xref: /freebsd/sys/contrib/device-tree/Bindings/arm/tegra/nvidia,tegra20-pmc.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/arm/tegra/nvidia,tegra20-pmc.yaml#
5c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7c66ec88fSEmmanuel Vadottitle: Tegra Power Management Controller (PMC)
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Thierry Reding <thierry.reding@gmail.com>
11c66ec88fSEmmanuel Vadot  - Jonathan Hunter <jonathanh@nvidia.com>
12c66ec88fSEmmanuel Vadot
13c66ec88fSEmmanuel Vadotproperties:
14c66ec88fSEmmanuel Vadot  compatible:
15c66ec88fSEmmanuel Vadot    enum:
16c66ec88fSEmmanuel Vadot      - nvidia,tegra20-pmc
17c66ec88fSEmmanuel Vadot      - nvidia,tegra30-pmc
18c66ec88fSEmmanuel Vadot      - nvidia,tegra114-pmc
19c66ec88fSEmmanuel Vadot      - nvidia,tegra124-pmc
20c66ec88fSEmmanuel Vadot      - nvidia,tegra210-pmc
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel Vadot  reg:
23c66ec88fSEmmanuel Vadot    maxItems: 1
24c66ec88fSEmmanuel Vadot    description:
25c66ec88fSEmmanuel Vadot      Offset and length of the register set for the device.
26c66ec88fSEmmanuel Vadot
27c66ec88fSEmmanuel Vadot  clock-names:
28c66ec88fSEmmanuel Vadot    items:
29c66ec88fSEmmanuel Vadot      - const: pclk
30c66ec88fSEmmanuel Vadot      - const: clk32k_in
31c66ec88fSEmmanuel Vadot    description:
32c66ec88fSEmmanuel Vadot      Must includes entries pclk and clk32k_in.
33c66ec88fSEmmanuel Vadot      pclk is the Tegra clock of that name and clk32k_in is 32KHz clock
34c66ec88fSEmmanuel Vadot      input to Tegra.
35c66ec88fSEmmanuel Vadot
36c66ec88fSEmmanuel Vadot  clocks:
37c66ec88fSEmmanuel Vadot    maxItems: 2
38c66ec88fSEmmanuel Vadot    description:
39c66ec88fSEmmanuel Vadot      Must contain an entry for each entry in clock-names.
40c66ec88fSEmmanuel Vadot      See ../clocks/clocks-bindings.txt for details.
41c66ec88fSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot  '#clock-cells':
43c66ec88fSEmmanuel Vadot    const: 1
44c66ec88fSEmmanuel Vadot    description:
45c66ec88fSEmmanuel Vadot      Tegra PMC has clk_out_1, clk_out_2, and clk_out_3.
46c66ec88fSEmmanuel Vadot      PMC also has blink control which allows 32Khz clock output to
47c66ec88fSEmmanuel Vadot      Tegra blink pad.
48c66ec88fSEmmanuel Vadot      Consumer of PMC clock should specify the desired clock by having
49c66ec88fSEmmanuel Vadot      the clock ID in its "clocks" phandle cell with pmc clock provider.
50c66ec88fSEmmanuel Vadot      See include/dt-bindings/soc/tegra-pmc.h for the list of Tegra PMC
51c66ec88fSEmmanuel Vadot      clock IDs.
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot  '#interrupt-cells':
54c66ec88fSEmmanuel Vadot    const: 2
55c66ec88fSEmmanuel Vadot    description:
56c66ec88fSEmmanuel Vadot      Specifies number of cells needed to encode an interrupt source.
57c66ec88fSEmmanuel Vadot      The value must be 2.
58c66ec88fSEmmanuel Vadot
59c66ec88fSEmmanuel Vadot  interrupt-controller: true
60c66ec88fSEmmanuel Vadot
61c66ec88fSEmmanuel Vadot  nvidia,invert-interrupt:
62c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
63c66ec88fSEmmanuel Vadot    description: Inverts the PMU interrupt signal.
64c66ec88fSEmmanuel Vadot      The PMU is an external Power Management Unit, whose interrupt output
65c66ec88fSEmmanuel Vadot      signal is fed into the PMC. This signal is optionally inverted, and
66c66ec88fSEmmanuel Vadot      then fed into the ARM GIC. The PMC is not involved in the detection
67c66ec88fSEmmanuel Vadot      or handling of this interrupt signal, merely its inversion.
68c66ec88fSEmmanuel Vadot
69c66ec88fSEmmanuel Vadot  nvidia,core-power-req-active-high:
70c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
71c66ec88fSEmmanuel Vadot    description: Core power request active-high.
72c66ec88fSEmmanuel Vadot
73c66ec88fSEmmanuel Vadot  nvidia,sys-clock-req-active-high:
74c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
75c66ec88fSEmmanuel Vadot    description: System clock request active-high.
76c66ec88fSEmmanuel Vadot
77c66ec88fSEmmanuel Vadot  nvidia,combined-power-req:
78c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
79c66ec88fSEmmanuel Vadot    description: combined power request for CPU and Core.
80c66ec88fSEmmanuel Vadot
81c66ec88fSEmmanuel Vadot  nvidia,cpu-pwr-good-en:
82c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
83c66ec88fSEmmanuel Vadot    description:
84c66ec88fSEmmanuel Vadot      CPU power good signal from external PMIC to PMC is enabled.
85c66ec88fSEmmanuel Vadot
86c66ec88fSEmmanuel Vadot  nvidia,suspend-mode:
87c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
88c66ec88fSEmmanuel Vadot    enum: [0, 1, 2]
89c66ec88fSEmmanuel Vadot    description:
90c66ec88fSEmmanuel Vadot      The suspend mode that the platform should use.
91c66ec88fSEmmanuel Vadot      Mode 0 is for LP0, CPU + Core voltage off and DRAM in self-refresh
92c66ec88fSEmmanuel Vadot      Mode 1 is for LP1, CPU voltage off and DRAM in self-refresh
93c66ec88fSEmmanuel Vadot      Mode 2 is for LP2, CPU voltage off
94c66ec88fSEmmanuel Vadot
95c66ec88fSEmmanuel Vadot  nvidia,cpu-pwr-good-time:
96c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
97c66ec88fSEmmanuel Vadot    description: CPU power good time in uSec.
98c66ec88fSEmmanuel Vadot
99c66ec88fSEmmanuel Vadot  nvidia,cpu-pwr-off-time:
100c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
101c66ec88fSEmmanuel Vadot    description: CPU power off time in uSec.
102c66ec88fSEmmanuel Vadot
103c66ec88fSEmmanuel Vadot  nvidia,core-pwr-good-time:
104c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
105c66ec88fSEmmanuel Vadot    description:
106c66ec88fSEmmanuel Vadot      <Oscillator-stable-time Power-stable-time>
107c66ec88fSEmmanuel Vadot      Core power good time in uSec.
108c66ec88fSEmmanuel Vadot
109c66ec88fSEmmanuel Vadot  nvidia,core-pwr-off-time:
110c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
111c66ec88fSEmmanuel Vadot    description: Core power off time in uSec.
112c66ec88fSEmmanuel Vadot
113c66ec88fSEmmanuel Vadot  nvidia,lp0-vec:
114c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
115c66ec88fSEmmanuel Vadot    description:
116c66ec88fSEmmanuel Vadot      <start length> Starting address and length of LP0 vector.
117c66ec88fSEmmanuel Vadot      The LP0 vector contains the warm boot code that is executed
118c66ec88fSEmmanuel Vadot      by AVP when resuming from the LP0 state.
119c66ec88fSEmmanuel Vadot      The AVP (Audio-Video Processor) is an ARM7 processor and
120c66ec88fSEmmanuel Vadot      always being the first boot processor when chip is power on
121c66ec88fSEmmanuel Vadot      or resume from deep sleep mode. When the system is resumed
122c66ec88fSEmmanuel Vadot      from the deep sleep mode, the warm boot code will restore
123c66ec88fSEmmanuel Vadot      some PLLs, clocks and then brings up CPU0 for resuming the
124c66ec88fSEmmanuel Vadot      system.
125c66ec88fSEmmanuel Vadot
1268bab661aSEmmanuel Vadot  core-supply:
1278bab661aSEmmanuel Vadot    description:
1288bab661aSEmmanuel Vadot      Phandle to voltage regulator connected to the SoC Core power rail.
1298bab661aSEmmanuel Vadot
1308bab661aSEmmanuel Vadot  core-domain:
1318bab661aSEmmanuel Vadot    type: object
1328bab661aSEmmanuel Vadot    description: |
1338bab661aSEmmanuel Vadot      The vast majority of hardware blocks of Tegra SoC belong to a
1348bab661aSEmmanuel Vadot      Core power domain, which has a dedicated voltage rail that powers
1358bab661aSEmmanuel Vadot      the blocks.
1368bab661aSEmmanuel Vadot
1378bab661aSEmmanuel Vadot    properties:
1388bab661aSEmmanuel Vadot      operating-points-v2:
1398bab661aSEmmanuel Vadot        description:
1408bab661aSEmmanuel Vadot          Should contain level, voltages and opp-supported-hw property.
1418bab661aSEmmanuel Vadot          The supported-hw is a bitfield indicating SoC speedo or process
1428bab661aSEmmanuel Vadot          ID mask.
1438bab661aSEmmanuel Vadot
1448bab661aSEmmanuel Vadot      "#power-domain-cells":
1458bab661aSEmmanuel Vadot        const: 0
1468bab661aSEmmanuel Vadot
1478bab661aSEmmanuel Vadot    required:
1488bab661aSEmmanuel Vadot      - operating-points-v2
1498bab661aSEmmanuel Vadot      - "#power-domain-cells"
1508bab661aSEmmanuel Vadot
1518bab661aSEmmanuel Vadot    additionalProperties: false
1528bab661aSEmmanuel Vadot
153c66ec88fSEmmanuel Vadot  i2c-thermtrip:
154c66ec88fSEmmanuel Vadot    type: object
155c66ec88fSEmmanuel Vadot    description:
156c66ec88fSEmmanuel Vadot      On Tegra30, Tegra114 and Tegra124 if i2c-thermtrip subnode exists,
157c66ec88fSEmmanuel Vadot      hardware-triggered thermal reset will be enabled.
158c66ec88fSEmmanuel Vadot
159c66ec88fSEmmanuel Vadot    properties:
160c66ec88fSEmmanuel Vadot      nvidia,i2c-controller-id:
161c66ec88fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
162c66ec88fSEmmanuel Vadot        description:
163c66ec88fSEmmanuel Vadot          ID of I2C controller to send poweroff command to PMU.
164c66ec88fSEmmanuel Vadot          Valid values are described in section 9.2.148
165c66ec88fSEmmanuel Vadot          "APBDEV_PMC_SCRATCH53_0" of the Tegra K1 Technical Reference
166c66ec88fSEmmanuel Vadot          Manual.
167c66ec88fSEmmanuel Vadot
168c66ec88fSEmmanuel Vadot      nvidia,bus-addr:
169c66ec88fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
170c66ec88fSEmmanuel Vadot        description: Bus address of the PMU on the I2C bus.
171c66ec88fSEmmanuel Vadot
172c66ec88fSEmmanuel Vadot      nvidia,reg-addr:
173c66ec88fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
174c66ec88fSEmmanuel Vadot        description: PMU I2C register address to issue poweroff command.
175c66ec88fSEmmanuel Vadot
176c66ec88fSEmmanuel Vadot      nvidia,reg-data:
177c66ec88fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
178c66ec88fSEmmanuel Vadot        description: Poweroff command to write to PMU.
179c66ec88fSEmmanuel Vadot
180c66ec88fSEmmanuel Vadot      nvidia,pinmux-id:
181c66ec88fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
182c66ec88fSEmmanuel Vadot        description:
183c66ec88fSEmmanuel Vadot          Pinmux used by the hardware when issuing Poweroff command.
184c66ec88fSEmmanuel Vadot          Defaults to 0. Valid values are described in section 12.5.2
185c66ec88fSEmmanuel Vadot          "Pinmux Support" of the Tegra4 Technical Reference Manual.
186c66ec88fSEmmanuel Vadot
187c66ec88fSEmmanuel Vadot    required:
188c66ec88fSEmmanuel Vadot      - nvidia,i2c-controller-id
189c66ec88fSEmmanuel Vadot      - nvidia,bus-addr
190c66ec88fSEmmanuel Vadot      - nvidia,reg-addr
191c66ec88fSEmmanuel Vadot      - nvidia,reg-data
192c66ec88fSEmmanuel Vadot
193c66ec88fSEmmanuel Vadot    additionalProperties: false
194c66ec88fSEmmanuel Vadot
195c66ec88fSEmmanuel Vadot  powergates:
196c66ec88fSEmmanuel Vadot    type: object
197c66ec88fSEmmanuel Vadot    description: |
198c66ec88fSEmmanuel Vadot      This node contains a hierarchy of power domain nodes, which should
199c66ec88fSEmmanuel Vadot      match the powergates on the Tegra SoC. Each powergate node
200c66ec88fSEmmanuel Vadot      represents a power-domain on the Tegra SoC that can be power-gated
201c66ec88fSEmmanuel Vadot      by the Tegra PMC.
202c66ec88fSEmmanuel Vadot      Hardware blocks belonging to a power domain should contain
203c66ec88fSEmmanuel Vadot      "power-domains" property that is a phandle pointing to corresponding
204c66ec88fSEmmanuel Vadot      powergate node.
205c66ec88fSEmmanuel Vadot      The name of the powergate node should be one of the below. Note that
206c66ec88fSEmmanuel Vadot      not every powergate is applicable to all Tegra devices and the following
207c66ec88fSEmmanuel Vadot      list shows which powergates are applicable to which devices.
208c66ec88fSEmmanuel Vadot      Please refer to Tegra TRM for mode details on the powergate nodes to
209c66ec88fSEmmanuel Vadot      use for each power-gate block inside Tegra.
210c66ec88fSEmmanuel Vadot      Name		Description			            Devices Applicable
211c66ec88fSEmmanuel Vadot      3d		  3D Graphics			            Tegra20/114/124/210
212c66ec88fSEmmanuel Vadot      3d0		  3D Graphics 0		            Tegra30
213c66ec88fSEmmanuel Vadot      3d1		  3D Graphics 1		            Tegra30
214c66ec88fSEmmanuel Vadot      aud		  Audio				                Tegra210
215c66ec88fSEmmanuel Vadot      dfd		  Debug				                Tegra210
216c66ec88fSEmmanuel Vadot      dis		  Display A			              Tegra114/124/210
217c66ec88fSEmmanuel Vadot      disb		Display B			              Tegra114/124/210
218c66ec88fSEmmanuel Vadot      heg		  2D Graphics		            	Tegra30/114/124/210
219c66ec88fSEmmanuel Vadot      iram		Internal RAM		            Tegra124/210
220c66ec88fSEmmanuel Vadot      mpe		  MPEG Encode			            All
221c66ec88fSEmmanuel Vadot      nvdec		NVIDIA Video Decode Engine	Tegra210
222c66ec88fSEmmanuel Vadot      nvjpg		NVIDIA JPEG Engine		      Tegra210
223c66ec88fSEmmanuel Vadot      pcie		PCIE				                Tegra20/30/124/210
224c66ec88fSEmmanuel Vadot      sata		SATA				                Tegra30/124/210
225c66ec88fSEmmanuel Vadot      sor		  Display interfaces       		Tegra124/210
226c66ec88fSEmmanuel Vadot      ve2		  Video Encode Engine 2		    Tegra210
227c66ec88fSEmmanuel Vadot      venc		Video Encode Engine		      All
228c66ec88fSEmmanuel Vadot      vdec		Video Decode Engine		      Tegra20/30/114/124
229c66ec88fSEmmanuel Vadot      vic		  Video Imaging Compositor	  Tegra124/210
230c66ec88fSEmmanuel Vadot      xusba		USB Partition A			        Tegra114/124/210
231c66ec88fSEmmanuel Vadot      xusbb		USB Partition B 		        Tegra114/124/210
232c66ec88fSEmmanuel Vadot      xusbc		USB Partition C			        Tegra114/124/210
233c66ec88fSEmmanuel Vadot
234c66ec88fSEmmanuel Vadot    patternProperties:
235c66ec88fSEmmanuel Vadot      "^[a-z0-9]+$":
236c66ec88fSEmmanuel Vadot        type: object
237*fac71e4eSEmmanuel Vadot        additionalProperties: false
238c66ec88fSEmmanuel Vadot
239b97ee269SEmmanuel Vadot        properties:
240c66ec88fSEmmanuel Vadot          clocks:
241c66ec88fSEmmanuel Vadot            minItems: 1
242c66ec88fSEmmanuel Vadot            maxItems: 8
243c66ec88fSEmmanuel Vadot            description:
244c66ec88fSEmmanuel Vadot              Must contain an entry for each clock required by the PMC
245c66ec88fSEmmanuel Vadot              for controlling a power-gate.
246c66ec88fSEmmanuel Vadot              See ../clocks/clock-bindings.txt document for more details.
247c66ec88fSEmmanuel Vadot
248c66ec88fSEmmanuel Vadot          resets:
249c66ec88fSEmmanuel Vadot            minItems: 1
250c66ec88fSEmmanuel Vadot            maxItems: 8
251c66ec88fSEmmanuel Vadot            description:
252c66ec88fSEmmanuel Vadot              Must contain an entry for each reset required by the PMC
253c66ec88fSEmmanuel Vadot              for controlling a power-gate.
254c66ec88fSEmmanuel Vadot              See ../reset/reset.txt for more details.
255c66ec88fSEmmanuel Vadot
256*fac71e4eSEmmanuel Vadot          power-domains:
257*fac71e4eSEmmanuel Vadot            maxItems: 1
258*fac71e4eSEmmanuel Vadot
259c66ec88fSEmmanuel Vadot          '#power-domain-cells':
260c66ec88fSEmmanuel Vadot            const: 0
261c66ec88fSEmmanuel Vadot            description: Must be 0.
262c66ec88fSEmmanuel Vadot
263c66ec88fSEmmanuel Vadot        required:
264c66ec88fSEmmanuel Vadot          - clocks
265c66ec88fSEmmanuel Vadot          - resets
266c66ec88fSEmmanuel Vadot          - '#power-domain-cells'
267c66ec88fSEmmanuel Vadot
268c66ec88fSEmmanuel Vadot    additionalProperties: false
269c66ec88fSEmmanuel Vadot
270c66ec88fSEmmanuel VadotpatternProperties:
271c66ec88fSEmmanuel Vadot  "^[a-f0-9]+-[a-f0-9]+$":
272c66ec88fSEmmanuel Vadot    type: object
273c66ec88fSEmmanuel Vadot    description:
274c66ec88fSEmmanuel Vadot      This is a Pad configuration node. On Tegra SOCs a pad is a set of
275c66ec88fSEmmanuel Vadot      pins which are configured as a group. The pin grouping is a fixed
276c66ec88fSEmmanuel Vadot      attribute of the hardware. The PMC can be used to set pad power state
277c66ec88fSEmmanuel Vadot      and signaling voltage. A pad can be either in active or power down mode.
278c66ec88fSEmmanuel Vadot      The support for power state and signaling voltage configuration varies
279c66ec88fSEmmanuel Vadot      depending on the pad in question. 3.3V and 1.8V signaling voltages
280c66ec88fSEmmanuel Vadot      are supported on pins where software controllable signaling voltage
281c66ec88fSEmmanuel Vadot      switching is available.
282c66ec88fSEmmanuel Vadot
283c66ec88fSEmmanuel Vadot      The pad configuration state nodes are placed under the pmc node and they
284c66ec88fSEmmanuel Vadot      are referred to by the pinctrl client properties. For more information
285c66ec88fSEmmanuel Vadot      see Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt.
286c66ec88fSEmmanuel Vadot      The pad name should be used as the value of the pins property in pin
287c66ec88fSEmmanuel Vadot      configuration nodes.
288c66ec88fSEmmanuel Vadot
289c66ec88fSEmmanuel Vadot      The following pads are present on Tegra124 and Tegra132
290c66ec88fSEmmanuel Vadot      audio, bb, cam, comp, csia, csb, cse, dsi, dsib, dsic, dsid, hdmi, hsic,
291c66ec88fSEmmanuel Vadot      hv, lvds, mipi-bias, nand, pex-bias, pex-clk1, pex-clk2, pex-cntrl,
292c66ec88fSEmmanuel Vadot      sdmmc1, sdmmc3, sdmmc4, sys_ddc, uart, usb0, usb1, usb2, usb_bias.
293c66ec88fSEmmanuel Vadot
294c66ec88fSEmmanuel Vadot      The following pads are present on Tegra210
295c66ec88fSEmmanuel Vadot      audio, audio-hv, cam, csia, csib, csic, csid, csie, csif, dbg,
296c66ec88fSEmmanuel Vadot      debug-nonao, dmic, dp, dsi, dsib, dsic, dsid, emmc, emmc2, gpio, hdmi,
297c66ec88fSEmmanuel Vadot      hsic, lvds, mipi-bias, pex-bias, pex-clk1, pex-clk2, pex-cntrl, sdmmc1,
298c66ec88fSEmmanuel Vadot      sdmmc3, spi, spi-hv, uart, usb0, usb1, usb2, usb3, usb-bias.
299c66ec88fSEmmanuel Vadot
300c66ec88fSEmmanuel Vadot    properties:
301c66ec88fSEmmanuel Vadot      pins:
302c66ec88fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/string
303c66ec88fSEmmanuel Vadot        description: Must contain name of the pad(s) to be configured.
304c66ec88fSEmmanuel Vadot
305c66ec88fSEmmanuel Vadot      low-power-enable:
306c66ec88fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/flag
307c66ec88fSEmmanuel Vadot        description: Configure the pad into power down mode.
308c66ec88fSEmmanuel Vadot
309c66ec88fSEmmanuel Vadot      low-power-disable:
310c66ec88fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/flag
311c66ec88fSEmmanuel Vadot        description: Configure the pad into active mode.
312c66ec88fSEmmanuel Vadot
313c66ec88fSEmmanuel Vadot      power-source:
314c66ec88fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
315c66ec88fSEmmanuel Vadot        description:
316c66ec88fSEmmanuel Vadot          Must contain either TEGRA_IO_PAD_VOLTAGE_1V8 or
317c66ec88fSEmmanuel Vadot          TEGRA_IO_PAD_VOLTAGE_3V3 to select between signaling voltages.
318c66ec88fSEmmanuel Vadot          The values are defined in
319c66ec88fSEmmanuel Vadot          include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h.
320c66ec88fSEmmanuel Vadot          Power state can be configured on all Tegra124 and Tegra132
321c66ec88fSEmmanuel Vadot          pads. None of the Tegra124 or Tegra132 pads support signaling
322c66ec88fSEmmanuel Vadot          voltage switching.
323c66ec88fSEmmanuel Vadot          All of the listed Tegra210 pads except pex-cntrl support power
324c66ec88fSEmmanuel Vadot          state configuration. Signaling voltage switching is supported
325c66ec88fSEmmanuel Vadot          on below Tegra210 pads.
326c66ec88fSEmmanuel Vadot          audio, audio-hv, cam, dbg, dmic, gpio, pex-cntrl, sdmmc1,
327c66ec88fSEmmanuel Vadot          sdmmc3, spi, spi-hv, and uart.
328c66ec88fSEmmanuel Vadot
329c66ec88fSEmmanuel Vadot    required:
330c66ec88fSEmmanuel Vadot      - pins
331c66ec88fSEmmanuel Vadot
332c66ec88fSEmmanuel Vadot    additionalProperties: false
333c66ec88fSEmmanuel Vadot
334c66ec88fSEmmanuel Vadotrequired:
335c66ec88fSEmmanuel Vadot  - compatible
336c66ec88fSEmmanuel Vadot  - reg
337c66ec88fSEmmanuel Vadot  - clock-names
338c66ec88fSEmmanuel Vadot  - clocks
339c66ec88fSEmmanuel Vadot  - '#clock-cells'
340c66ec88fSEmmanuel Vadot
3416be33864SEmmanuel VadotadditionalProperties: false
3426be33864SEmmanuel Vadot
343c66ec88fSEmmanuel Vadotdependencies:
344c66ec88fSEmmanuel Vadot  "nvidia,suspend-mode": ["nvidia,core-pwr-off-time", "nvidia,cpu-pwr-off-time"]
345c66ec88fSEmmanuel Vadot  "nvidia,core-pwr-off-time": ["nvidia,core-pwr-good-time"]
346c66ec88fSEmmanuel Vadot  "nvidia,cpu-pwr-off-time": ["nvidia,cpu-pwr-good-time"]
347c66ec88fSEmmanuel Vadot
348c66ec88fSEmmanuel Vadotexamples:
349c66ec88fSEmmanuel Vadot  - |
350c66ec88fSEmmanuel Vadot
351c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/tegra210-car.h>
352c66ec88fSEmmanuel Vadot    #include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
353c66ec88fSEmmanuel Vadot    #include <dt-bindings/soc/tegra-pmc.h>
354c66ec88fSEmmanuel Vadot
355c66ec88fSEmmanuel Vadot    tegra_pmc: pmc@7000e400 {
356c66ec88fSEmmanuel Vadot              compatible = "nvidia,tegra210-pmc";
357c66ec88fSEmmanuel Vadot              reg = <0x7000e400 0x400>;
3585956d97fSEmmanuel Vadot              core-supply = <&regulator>;
359c66ec88fSEmmanuel Vadot              clocks = <&tegra_car TEGRA210_CLK_PCLK>, <&clk32k_in>;
360c66ec88fSEmmanuel Vadot              clock-names = "pclk", "clk32k_in";
361c66ec88fSEmmanuel Vadot              #clock-cells = <1>;
362c66ec88fSEmmanuel Vadot
363c66ec88fSEmmanuel Vadot              nvidia,invert-interrupt;
364c66ec88fSEmmanuel Vadot              nvidia,suspend-mode = <0>;
365c66ec88fSEmmanuel Vadot              nvidia,cpu-pwr-good-time = <0>;
366c66ec88fSEmmanuel Vadot              nvidia,cpu-pwr-off-time = <0>;
367c66ec88fSEmmanuel Vadot              nvidia,core-pwr-good-time = <4587 3876>;
368c66ec88fSEmmanuel Vadot              nvidia,core-pwr-off-time = <39065>;
369c66ec88fSEmmanuel Vadot              nvidia,core-power-req-active-high;
370c66ec88fSEmmanuel Vadot              nvidia,sys-clock-req-active-high;
371c66ec88fSEmmanuel Vadot
3725956d97fSEmmanuel Vadot              pd_core: core-domain {
3735956d97fSEmmanuel Vadot                      operating-points-v2 = <&core_opp_table>;
3745956d97fSEmmanuel Vadot                      #power-domain-cells = <0>;
3755956d97fSEmmanuel Vadot              };
3765956d97fSEmmanuel Vadot
377c66ec88fSEmmanuel Vadot              powergates {
378c66ec88fSEmmanuel Vadot                    pd_audio: aud {
379c66ec88fSEmmanuel Vadot                            clocks = <&tegra_car TEGRA210_CLK_APE>,
380c66ec88fSEmmanuel Vadot                                     <&tegra_car TEGRA210_CLK_APB2APE>;
381c66ec88fSEmmanuel Vadot                            resets = <&tegra_car 198>;
3825956d97fSEmmanuel Vadot                            power-domains = <&pd_core>;
383c66ec88fSEmmanuel Vadot                            #power-domain-cells = <0>;
384c66ec88fSEmmanuel Vadot                    };
385c66ec88fSEmmanuel Vadot
386c66ec88fSEmmanuel Vadot                    pd_xusbss: xusba {
387c66ec88fSEmmanuel Vadot                            clocks = <&tegra_car TEGRA210_CLK_XUSB_SS>;
388c66ec88fSEmmanuel Vadot                            resets = <&tegra_car TEGRA210_CLK_XUSB_SS>;
3895956d97fSEmmanuel Vadot                            power-domains = <&pd_core>;
390c66ec88fSEmmanuel Vadot                            #power-domain-cells = <0>;
391c66ec88fSEmmanuel Vadot                    };
392c66ec88fSEmmanuel Vadot              };
393c66ec88fSEmmanuel Vadot    };
394