1e67e8565SEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2e67e8565SEmmanuel Vadot%YAML 1.2 3e67e8565SEmmanuel Vadot--- 4e67e8565SEmmanuel Vadot$id: http://devicetree.org/schemas/arm/tegra/nvidia,tegra186-pmc.yaml# 5e67e8565SEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6e67e8565SEmmanuel Vadot 7e67e8565SEmmanuel Vadottitle: NVIDIA Tegra Power Management Controller (PMC) 8e67e8565SEmmanuel Vadot 9e67e8565SEmmanuel Vadotmaintainers: 10e67e8565SEmmanuel Vadot - Thierry Reding <thierry.reding@gmail.com> 11e67e8565SEmmanuel Vadot - Jon Hunter <jonathanh@nvidia.com> 12e67e8565SEmmanuel Vadot 13e67e8565SEmmanuel Vadotproperties: 14e67e8565SEmmanuel Vadot compatible: 15e67e8565SEmmanuel Vadot enum: 16e67e8565SEmmanuel Vadot - nvidia,tegra186-pmc 17e67e8565SEmmanuel Vadot - nvidia,tegra194-pmc 18e67e8565SEmmanuel Vadot - nvidia,tegra234-pmc 19e67e8565SEmmanuel Vadot 20e67e8565SEmmanuel Vadot reg: 21e67e8565SEmmanuel Vadot minItems: 4 22e67e8565SEmmanuel Vadot maxItems: 5 23e67e8565SEmmanuel Vadot 24e67e8565SEmmanuel Vadot reg-names: 25e67e8565SEmmanuel Vadot minItems: 4 26e67e8565SEmmanuel Vadot items: 27e67e8565SEmmanuel Vadot - const: pmc 28e67e8565SEmmanuel Vadot - const: wake 29e67e8565SEmmanuel Vadot - const: aotag 30*01950c46SEmmanuel Vadot - enum: [ scratch, misc ] 31e67e8565SEmmanuel Vadot - const: misc 32e67e8565SEmmanuel Vadot 33e67e8565SEmmanuel Vadot interrupt-controller: true 34e67e8565SEmmanuel Vadot 35e67e8565SEmmanuel Vadot "#interrupt-cells": 36e67e8565SEmmanuel Vadot description: Specifies the number of cells needed to encode an 37e67e8565SEmmanuel Vadot interrupt source. The value must be 2. 38e67e8565SEmmanuel Vadot const: 2 39e67e8565SEmmanuel Vadot 40e67e8565SEmmanuel Vadot nvidia,invert-interrupt: 41e67e8565SEmmanuel Vadot description: If present, inverts the PMU interrupt signal. 42e67e8565SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 43e67e8565SEmmanuel Vadot 44*01950c46SEmmanuel VadotallOf: 45*01950c46SEmmanuel Vadot - if: 46e67e8565SEmmanuel Vadot properties: 47e67e8565SEmmanuel Vadot compatible: 48e67e8565SEmmanuel Vadot contains: 49e67e8565SEmmanuel Vadot const: nvidia,tegra186-pmc 50e67e8565SEmmanuel Vadot then: 51e67e8565SEmmanuel Vadot properties: 52e67e8565SEmmanuel Vadot reg: 53e67e8565SEmmanuel Vadot maxItems: 4 54e67e8565SEmmanuel Vadot reg-names: 55e67e8565SEmmanuel Vadot maxItems: 4 56*01950c46SEmmanuel Vadot contains: 57*01950c46SEmmanuel Vadot const: scratch 58*01950c46SEmmanuel Vadot 59*01950c46SEmmanuel Vadot - if: 60*01950c46SEmmanuel Vadot properties: 61*01950c46SEmmanuel Vadot compatible: 62*01950c46SEmmanuel Vadot contains: 63*01950c46SEmmanuel Vadot const: nvidia,tegra194-pmc 64*01950c46SEmmanuel Vadot then: 65e67e8565SEmmanuel Vadot properties: 66e67e8565SEmmanuel Vadot reg: 67e67e8565SEmmanuel Vadot minItems: 5 68e67e8565SEmmanuel Vadot reg-names: 69e67e8565SEmmanuel Vadot minItems: 5 70e67e8565SEmmanuel Vadot 71*01950c46SEmmanuel Vadot - if: 72*01950c46SEmmanuel Vadot properties: 73*01950c46SEmmanuel Vadot compatible: 74*01950c46SEmmanuel Vadot contains: 75*01950c46SEmmanuel Vadot const: nvidia,tegra234-pmc 76*01950c46SEmmanuel Vadot then: 77*01950c46SEmmanuel Vadot properties: 78*01950c46SEmmanuel Vadot reg-names: 79*01950c46SEmmanuel Vadot contains: 80*01950c46SEmmanuel Vadot const: misc 81*01950c46SEmmanuel Vadot 82e67e8565SEmmanuel VadotpatternProperties: 83e67e8565SEmmanuel Vadot "^[a-z0-9]+-[a-z0-9]+$": 84e67e8565SEmmanuel Vadot if: 85e67e8565SEmmanuel Vadot type: object 86e67e8565SEmmanuel Vadot then: 87e67e8565SEmmanuel Vadot description: | 88e67e8565SEmmanuel Vadot These are pad configuration nodes. On Tegra SoCs a pad is a set of 89e67e8565SEmmanuel Vadot pins which are configured as a group. The pin grouping is a fixed 90e67e8565SEmmanuel Vadot attribute of the hardware. The PMC can be used to set pad power 91e67e8565SEmmanuel Vadot state and signaling voltage. A pad can be either in active or 92e67e8565SEmmanuel Vadot power down mode. The support for power state and signaling voltage 93e67e8565SEmmanuel Vadot configuration varies depending on the pad in question. 3.3 V and 94e67e8565SEmmanuel Vadot 1.8 V signaling voltages are supported on pins where software 95e67e8565SEmmanuel Vadot controllable signaling voltage switching is available. 96e67e8565SEmmanuel Vadot 97e67e8565SEmmanuel Vadot Pad configurations are described with pin configuration nodes 98e67e8565SEmmanuel Vadot which are placed under the pmc node and they are referred to by 99e67e8565SEmmanuel Vadot the pinctrl client properties. For more information see 100e67e8565SEmmanuel Vadot 101e67e8565SEmmanuel Vadot Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt 102e67e8565SEmmanuel Vadot 103e67e8565SEmmanuel Vadot The following pads are present on Tegra186: 104e67e8565SEmmanuel Vadot 105e67e8565SEmmanuel Vadot csia, csib, dsi, mipi-bias, pex-clk-bias, pex-clk3, pex-clk2, 106e67e8565SEmmanuel Vadot pex-clk1, usb0, usb1, usb2, usb-bias, uart, audio, hsic, dbg, 107e67e8565SEmmanuel Vadot hdmi-dp0, hdmi-dp1, pex-cntrl, sdmmc2-hv, sdmmc4, cam, dsib, 108e67e8565SEmmanuel Vadot dsic, dsid, csic, csid, csie, dsif, spi, ufs, dmic-hv, edp, 109e67e8565SEmmanuel Vadot sdmmc1-hv, sdmmc3-hv, conn, audio-hv, ao-hv 110e67e8565SEmmanuel Vadot 111e67e8565SEmmanuel Vadot The following pads are present on Tegra194: 112e67e8565SEmmanuel Vadot 113e67e8565SEmmanuel Vadot csia, csib, mipi-bias, pex-clk-bias, pex-clk3, pex-clk2, 114e67e8565SEmmanuel Vadot pex-clk1, eqos, pex-clk-2-bias, pex-clk-2, dap3, dap5, uart, 115e67e8565SEmmanuel Vadot pwr-ctl, soc-gpio53, audio, gp-pwm2, gp-pwm3, soc-gpio12, 116e67e8565SEmmanuel Vadot soc-gpio13, soc-gpio10, uart4, uart5, dbg, hdmi-dp3, hdmi-dp2, 117e67e8565SEmmanuel Vadot hdmi-dp0, hdmi-dp1, pex-cntrl, pex-ctl2, pex-l0-rst, 118e67e8565SEmmanuel Vadot pex-l1-rst, sdmmc4, pex-l5-rst, cam, csic, csid, csie, csif, 119e67e8565SEmmanuel Vadot spi, ufs, csig, csih, edp, sdmmc1-hv, sdmmc3-hv, conn, 120e67e8565SEmmanuel Vadot audio-hv, ao-hv 121e67e8565SEmmanuel Vadot 122e67e8565SEmmanuel Vadot properties: 123e67e8565SEmmanuel Vadot pins: 124e67e8565SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/string 125e67e8565SEmmanuel Vadot description: Must contain the name of the pad(s) to be 126e67e8565SEmmanuel Vadot configured. 127e67e8565SEmmanuel Vadot 128e67e8565SEmmanuel Vadot low-power-enable: 129e67e8565SEmmanuel Vadot description: Configure the pad into power down mode. 130e67e8565SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 131e67e8565SEmmanuel Vadot 132e67e8565SEmmanuel Vadot low-power-disable: 133e67e8565SEmmanuel Vadot description: Configure the pad into active mode. 134e67e8565SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/flag 135e67e8565SEmmanuel Vadot 136e67e8565SEmmanuel Vadot power-source: 137e67e8565SEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 138e67e8565SEmmanuel Vadot description: | 139e67e8565SEmmanuel Vadot Must contain either TEGRA_IO_PAD_VOLTAGE_1V8 or 140e67e8565SEmmanuel Vadot TEGRA_IO_PAD_VOLTAGE_3V3 to select between signalling 141e67e8565SEmmanuel Vadot voltages. 142e67e8565SEmmanuel Vadot 143e67e8565SEmmanuel Vadot The values are defined in 144e67e8565SEmmanuel Vadot 145e67e8565SEmmanuel Vadot include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h 146e67e8565SEmmanuel Vadot 147e67e8565SEmmanuel Vadot The power state can be configured on all of the above pads 148e67e8565SEmmanuel Vadot except for ao-hv. Following pads have software configurable 149e67e8565SEmmanuel Vadot signaling voltages: sdmmc2-hv, dmic-hv, sdmmc1-hv, sdmmc3-hv, 150e67e8565SEmmanuel Vadot audio-hv, ao-hv. 151e67e8565SEmmanuel Vadot 152e67e8565SEmmanuel Vadot phandle: true 153e67e8565SEmmanuel Vadot 154e67e8565SEmmanuel Vadot required: 155e67e8565SEmmanuel Vadot - pins 156e67e8565SEmmanuel Vadot 157e67e8565SEmmanuel Vadot additionalProperties: false 158e67e8565SEmmanuel Vadot 159e67e8565SEmmanuel Vadotrequired: 160e67e8565SEmmanuel Vadot - compatible 161e67e8565SEmmanuel Vadot - reg 162e67e8565SEmmanuel Vadot - reg-names 163e67e8565SEmmanuel Vadot 164e67e8565SEmmanuel VadotadditionalProperties: false 165e67e8565SEmmanuel Vadot 166e67e8565SEmmanuel Vadotdependencies: 167e67e8565SEmmanuel Vadot interrupt-controller: ['#interrupt-cells'] 168e67e8565SEmmanuel Vadot "#interrupt-cells": 169e67e8565SEmmanuel Vadot required: 170e67e8565SEmmanuel Vadot - interrupt-controller 171e67e8565SEmmanuel Vadot 172e67e8565SEmmanuel Vadotexamples: 173e67e8565SEmmanuel Vadot - | 174e67e8565SEmmanuel Vadot #include <dt-bindings/clock/tegra186-clock.h> 175e67e8565SEmmanuel Vadot #include <dt-bindings/interrupt-controller/arm-gic.h> 176e67e8565SEmmanuel Vadot #include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h> 177e67e8565SEmmanuel Vadot #include <dt-bindings/memory/tegra186-mc.h> 178e67e8565SEmmanuel Vadot #include <dt-bindings/reset/tegra186-reset.h> 179e67e8565SEmmanuel Vadot 180e67e8565SEmmanuel Vadot pmc@c3600000 { 181e67e8565SEmmanuel Vadot compatible = "nvidia,tegra186-pmc"; 182e67e8565SEmmanuel Vadot reg = <0x0c360000 0x10000>, 183e67e8565SEmmanuel Vadot <0x0c370000 0x10000>, 184e67e8565SEmmanuel Vadot <0x0c380000 0x10000>, 185e67e8565SEmmanuel Vadot <0x0c390000 0x10000>; 186e67e8565SEmmanuel Vadot reg-names = "pmc", "wake", "aotag", "scratch"; 187e67e8565SEmmanuel Vadot nvidia,invert-interrupt; 188e67e8565SEmmanuel Vadot 189e67e8565SEmmanuel Vadot sdmmc1_3v3: sdmmc1-3v3 { 190e67e8565SEmmanuel Vadot pins = "sdmmc1-hv"; 191e67e8565SEmmanuel Vadot power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>; 192e67e8565SEmmanuel Vadot }; 193e67e8565SEmmanuel Vadot 194e67e8565SEmmanuel Vadot sdmmc1_1v8: sdmmc1-1v8 { 195e67e8565SEmmanuel Vadot pins = "sdmmc1-hv"; 196e67e8565SEmmanuel Vadot power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>; 197e67e8565SEmmanuel Vadot }; 198e67e8565SEmmanuel Vadot }; 199e67e8565SEmmanuel Vadot 200e67e8565SEmmanuel Vadot sdmmc1: mmc@3400000 { 201e67e8565SEmmanuel Vadot compatible = "nvidia,tegra186-sdhci"; 202e67e8565SEmmanuel Vadot reg = <0x03400000 0x10000>; 203e67e8565SEmmanuel Vadot interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>; 204e67e8565SEmmanuel Vadot clocks = <&bpmp TEGRA186_CLK_SDMMC1>, 205e67e8565SEmmanuel Vadot <&bpmp TEGRA186_CLK_SDMMC_LEGACY_TM>; 206e67e8565SEmmanuel Vadot clock-names = "sdhci", "tmclk"; 207e67e8565SEmmanuel Vadot resets = <&bpmp TEGRA186_RESET_SDMMC1>; 208e67e8565SEmmanuel Vadot reset-names = "sdhci"; 209e67e8565SEmmanuel Vadot interconnects = <&mc TEGRA186_MEMORY_CLIENT_SDMMCRA &emc>, 210e67e8565SEmmanuel Vadot <&mc TEGRA186_MEMORY_CLIENT_SDMMCWA &emc>; 211e67e8565SEmmanuel Vadot interconnect-names = "dma-mem", "write"; 212e67e8565SEmmanuel Vadot iommus = <&smmu TEGRA186_SID_SDMMC1>; 213e67e8565SEmmanuel Vadot pinctrl-names = "sdmmc-3v3", "sdmmc-1v8"; 214e67e8565SEmmanuel Vadot pinctrl-0 = <&sdmmc1_3v3>; 215e67e8565SEmmanuel Vadot pinctrl-1 = <&sdmmc1_1v8>; 216e67e8565SEmmanuel Vadot }; 217