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