1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/soc/tegra/nvidia,tegra20-pmc.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Tegra Power Management Controller (PMC)
10 - Thierry Reding <thierry.reding@gmail.com>
11 - Jonathan Hunter <jonathanh@nvidia.com>
27 # Tegra clock of the same name
38 Tegra PMC has clk_out_1, clk_out_2, and clk_out_3. PMC also has blink
39 control which allows 32Khz clock output to Tegra blink pad.
41 Consumer of PMC clock should specify the desired clock by having the
42 clock ID in its "clocks" phandle cell with PMC clock provider. See
43 include/dt-bindings/soc/tegra-pmc.h for the list of Tegra PMC clock IDs.
47 description: Specifies number of cells needed to encode an interrupt
50 interrupt-controller: true
52 nvidia,invert-interrupt:
53 $ref: /schemas/types.yaml#/definitions/flag
54 description: Inverts the PMU interrupt signal. The PMU is an external Power
55 Management Unit, whose interrupt output signal is fed into the PMC. This
56 signal is optionally inverted, and then fed into the ARM GIC. The PMC is
57 not involved in the detection or handling of this interrupt signal,
60 nvidia,core-power-req-active-high:
61 $ref: /schemas/types.yaml#/definitions/flag
62 description: core power request active-high
64 nvidia,sys-clock-req-active-high:
65 $ref: /schemas/types.yaml#/definitions/flag
66 description: system clock request active-high
68 nvidia,combined-power-req:
69 $ref: /schemas/types.yaml#/definitions/flag
70 description: combined power request for CPU and core
72 nvidia,cpu-pwr-good-en:
73 $ref: /schemas/types.yaml#/definitions/flag
74 description: CPU power good signal from external PMIC to PMC is enabled
77 $ref: /schemas/types.yaml#/definitions/uint32
78 description: the suspend mode that the platform should use
80 - description: LP0, CPU + Core voltage off and DRAM in self-refresh
82 - description: LP1, CPU voltage off and DRAM in self-refresh
84 - description: LP2, CPU voltage off
87 nvidia,cpu-pwr-good-time:
88 $ref: /schemas/types.yaml#/definitions/uint32
89 description: CPU power good time in microseconds
91 nvidia,cpu-pwr-off-time:
92 $ref: /schemas/types.yaml#/definitions/uint32
93 description: CPU power off time in microseconds
95 nvidia,core-pwr-good-time:
96 $ref: /schemas/types.yaml#/definitions/uint32-array
97 description: core power good time in microseconds
99 - description: oscillator stable time
100 - description: power stable time
102 nvidia,core-pwr-off-time:
103 $ref: /schemas/types.yaml#/definitions/uint32
104 description: core power off time in microseconds
107 $ref: /schemas/types.yaml#/definitions/uint32-array
109 Starting address and length of LP0 vector. The LP0 vector contains the
110 warm boot code that is executed by AVP when resuming from the LP0 state.
111 The AVP (Audio-Video Processor) is an ARM7 processor and always being
112 the first boot processor when chip is power on or resume from deep sleep
113 mode. When the system is resumed from the deep sleep mode, the warm boot
114 code will restore some PLLs, clocks and then brings up CPU0 for resuming
117 - description: starting address of LP0 vector
118 - description: length of LP0 vector
121 description: phandle to voltage regulator connected to the SoC core power
126 description: The vast majority of hardware blocks of Tegra SoC belong to a
127 core power domain, which has a dedicated voltage rail that powers the
129 additionalProperties: false
132 description: Should contain level, voltages and opp-supported-hw
133 property. The supported-hw is a bitfield indicating SoC speedo or
136 "#power-domain-cells":
140 - operating-points-v2
141 - "#power-domain-cells"
145 description: On Tegra30, Tegra114 and Tegra124 if i2c-thermtrip subnode
146 exists, hardware-triggered thermal reset will be enabled.
147 additionalProperties: false
149 nvidia,i2c-controller-id:
150 $ref: /schemas/types.yaml#/definitions/uint32
151 description: ID of I2C controller to send poweroff command to PMU.
152 Valid values are described in section 9.2.148 "APBDEV_PMC_SCRATCH53_0"
153 of the Tegra K1 Technical Reference Manual.
156 $ref: /schemas/types.yaml#/definitions/uint32
157 description: bus address of the PMU on the I2C bus
160 $ref: /schemas/types.yaml#/definitions/uint32
161 description: PMU I2C register address to issue poweroff command
164 $ref: /schemas/types.yaml#/definitions/uint32
165 description: power-off command to write to PMU
168 $ref: /schemas/types.yaml#/definitions/uint32
169 description: Pinmux used by the hardware when issuing power-off command.
170 Defaults to 0. Valid values are described in section 12.5.2 "Pinmux
171 Support" of the Tegra4 Technical Reference Manual.
174 - nvidia,i2c-controller-id
181 additionalProperties: false
183 This node contains a hierarchy of power domain nodes, which should match
184 the powergates on the Tegra SoC. Each powergate node represents a power-
185 domain on the Tegra SoC that can be power-gated by the Tegra PMC.
187 Hardware blocks belonging to a power domain should contain "power-domains"
188 property that is a phandle pointing to corresponding powergate node.
190 The name of the powergate node should be one of the below. Note that not
191 every powergate is applicable to all Tegra devices and the following list
192 shows which powergates are applicable to which devices.
194 Please refer to Tegra TRM for mode details on the powergate nodes to use
195 for each power-gate block inside Tegra.
197 Name Description Devices Applicable
198 --------------------------------------------------------------
199 3d 3D Graphics Tegra20/114/124/210
200 3d0 3D Graphics 0 Tegra30
201 3d1 3D Graphics 1 Tegra30
204 dis Display A Tegra114/124/210
205 disb Display B Tegra114/124/210
206 heg 2D Graphics Tegra30/114/124/210
207 iram Internal RAM Tegra124/210
209 nvdec NVIDIA Video Decode Engine Tegra210
210 nvjpg NVIDIA JPEG Engine Tegra210
211 pcie PCIE Tegra20/30/124/210
212 sata SATA Tegra30/124/210
213 sor Display interfaces Tegra124/210
214 ve2 Video Encode Engine 2 Tegra210
215 venc Video Encode Engine All
216 vdec Video Decode Engine Tegra20/30/114/124
217 vic Video Imaging Compositor Tegra124/210
218 xusba USB Partition A Tegra114/124/210
219 xusbb USB Partition B Tegra114/124/210
220 xusbc USB Partition C Tegra114/124/210
225 additionalProperties: false
238 '#power-domain-cells':
240 description: Must be 0.
245 - '#power-domain-cells'
249 additionalProperties:
252 This is a pad configuration node. On Tegra SoCs a pad is a set of pins
253 which are configured as a group. The pin grouping is a fixed attribute
254 of the hardware. The PMC can be used to set pad power state and
255 signaling voltage. A pad can be either in active or power down mode.
256 The support for power state and signaling voltage configuration varies
257 depending on the pad in question. 3.3V and 1.8V signaling voltages are
258 supported on pins where software controllable signaling voltage
259 switching is available.
261 The pad configuration state nodes are placed under the pmc node and
262 they are referred to by the pinctrl client properties. For more
265 Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
267 The pad name should be used as the value of the pins property in pin
270 The following pads are present on Tegra124 and Tegra132:
272 audio, bb, cam, comp, csia, csb, cse, dsi, dsib, dsic, dsid, hdmi,
273 hsic, hv, lvds, mipi-bias, nand, pex-bias, pex-clk1, pex-clk2,
274 pex-cntrl, sdmmc1, sdmmc3, sdmmc4, sys_ddc, uart, usb0, usb1, usb2,
277 The following pads are present on Tegra210:
279 audio, audio-hv, cam, csia, csib, csic, csid, csie, csif, dbg,
280 debug-nonao, dmic, dp, dsi, dsib, dsic, dsid, emmc, emmc2, gpio,
281 hdmi, hsic, lvds, mipi-bias, pex-bias, pex-clk1, pex-clk2, pex-cntrl,
282 sdmmc1, sdmmc3, spi, spi-hv, uart, usb0, usb1, usb2, usb3, usb-bias
283 additionalProperties: false
286 $ref: /schemas/types.yaml#/definitions/string-array
287 description: Must contain name of the pad(s) to be configured.
290 $ref: /schemas/types.yaml#/definitions/flag
291 description: Configure the pad into power down mode.
294 $ref: /schemas/types.yaml#/definitions/flag
295 description: Configure the pad into active mode.
298 $ref: /schemas/types.yaml#/definitions/uint32
300 Must contain either TEGRA_IO_PAD_VOLTAGE_1V8 or
301 TEGRA_IO_PAD_VOLTAGE_3V3 to select between signaling voltages. The
302 values are defined in:
304 include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h
306 Power state can be configured on all Tegra124 and Tegra132 pads.
307 None of the Tegra124 or Tegra132 pads support signaling voltage
308 switching. All of the listed Tegra210 pads except pex-cntrl support
309 power state configuration. Signaling voltage switching is supported
310 on the following Tegra210 pads:
312 audio, audio-hv, cam, dbg, dmic, gpio, pex-cntrl, sdmmc1, sdmmc3,
330 const: nvidia,tegra124-pmc
334 additionalProperties:
339 enum: [ audio, bb, cam, comp, csia, csb, cse, dsi, dsib,
340 dsic, dsid, hdmi, hsic, hv, lvds, mipi-bias, nand,
341 pex-bias, pex-clk1, pex-clk2, pex-cntrl, sdmmc1,
342 sdmmc3, sdmmc4, sys_ddc, uart, usb0, usb1, usb2,
349 const: nvidia,tegra210-pmc
353 additionalProperties:
358 enum: [ audio, audio-hv, cam, csia, csib, csic, csid, csie,
359 csif, dbg, debug-nonao, dmic, dp, dsi, dsib, dsic,
360 dsid, emmc, emmc2, gpio, hdmi, hsic, lvds, mipi-bias,
361 pex-bias, pex-clk1, pex-clk2, pex-cntrl, sdmmc1,
362 sdmmc3, spi, spi-hv, uart, usb0, usb1, usb2, usb3,
365 additionalProperties: false
368 "nvidia,suspend-mode": ["nvidia,core-pwr-off-time", "nvidia,cpu-pwr-off-time"]
369 "nvidia,core-pwr-off-time": ["nvidia,core-pwr-good-time"]
370 "nvidia,cpu-pwr-off-time": ["nvidia,cpu-pwr-good-time"]
374 #include <dt-bindings/clock/tegra210-car.h>
375 #include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
376 #include <dt-bindings/soc/tegra-pmc.h>
379 compatible = "nvidia,tegra210-pmc";
380 reg = <0x7000e400 0x400>;
381 core-supply = <®ulator>;
382 clocks = <&tegra_car TEGRA210_CLK_PCLK>, <&clk32k_in>;
383 clock-names = "pclk", "clk32k_in";
386 nvidia,invert-interrupt;
387 nvidia,suspend-mode = <0>;
388 nvidia,cpu-pwr-good-time = <0>;
389 nvidia,cpu-pwr-off-time = <0>;
390 nvidia,core-pwr-good-time = <4587 3876>;
391 nvidia,core-pwr-off-time = <39065>;
392 nvidia,core-power-req-active-high;
393 nvidia,sys-clock-req-active-high;
395 pd_core: core-domain {
396 operating-points-v2 = <&core_opp_table>;
397 #power-domain-cells = <0>;
402 clocks = <&tegra_car TEGRA210_CLK_APE>,
403 <&tegra_car TEGRA210_CLK_APB2APE>;
404 resets = <&tegra_car 198>;
405 power-domains = <&pd_core>;
406 #power-domain-cells = <0>;
410 clocks = <&tegra_car TEGRA210_CLK_XUSB_SS>;
411 resets = <&tegra_car TEGRA210_CLK_XUSB_SS>;
412 power-domains = <&pd_core>;
413 #power-domain-cells = <0>;