xref: /freebsd/sys/contrib/device-tree/Bindings/soc/tegra/nvidia,tegra20-pmc.yaml (revision 7d0873ebb83b19ba1e8a89e679470d885efe12e3)
184943d6fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
284943d6fSEmmanuel Vadot%YAML 1.2
384943d6fSEmmanuel Vadot---
484943d6fSEmmanuel Vadot$id: http://devicetree.org/schemas/soc/tegra/nvidia,tegra20-pmc.yaml#
584943d6fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
684943d6fSEmmanuel Vadot
784943d6fSEmmanuel Vadottitle: Tegra Power Management Controller (PMC)
884943d6fSEmmanuel Vadot
984943d6fSEmmanuel Vadotmaintainers:
1084943d6fSEmmanuel Vadot  - Thierry Reding <thierry.reding@gmail.com>
1184943d6fSEmmanuel Vadot  - Jonathan Hunter <jonathanh@nvidia.com>
1284943d6fSEmmanuel Vadot
1384943d6fSEmmanuel Vadotproperties:
1484943d6fSEmmanuel Vadot  compatible:
1584943d6fSEmmanuel Vadot    enum:
1684943d6fSEmmanuel Vadot      - nvidia,tegra20-pmc
1784943d6fSEmmanuel Vadot      - nvidia,tegra30-pmc
1884943d6fSEmmanuel Vadot      - nvidia,tegra114-pmc
1984943d6fSEmmanuel Vadot      - nvidia,tegra124-pmc
2084943d6fSEmmanuel Vadot      - nvidia,tegra210-pmc
2184943d6fSEmmanuel Vadot
2284943d6fSEmmanuel Vadot  reg:
2384943d6fSEmmanuel Vadot    maxItems: 1
2484943d6fSEmmanuel Vadot
2584943d6fSEmmanuel Vadot  clock-names:
2684943d6fSEmmanuel Vadot    items:
2784943d6fSEmmanuel Vadot      # Tegra clock of the same name
2884943d6fSEmmanuel Vadot      - const: pclk
2984943d6fSEmmanuel Vadot      # 32 KHz clock input
3084943d6fSEmmanuel Vadot      - const: clk32k_in
3184943d6fSEmmanuel Vadot
3284943d6fSEmmanuel Vadot  clocks:
3384943d6fSEmmanuel Vadot    maxItems: 2
3484943d6fSEmmanuel Vadot
3584943d6fSEmmanuel Vadot  '#clock-cells':
3684943d6fSEmmanuel Vadot    const: 1
3784943d6fSEmmanuel Vadot    description: |
3884943d6fSEmmanuel Vadot      Tegra PMC has clk_out_1, clk_out_2, and clk_out_3. PMC also has blink
3984943d6fSEmmanuel Vadot      control which allows 32Khz clock output to Tegra blink pad.
4084943d6fSEmmanuel Vadot
4184943d6fSEmmanuel Vadot      Consumer of PMC clock should specify the desired clock by having the
4284943d6fSEmmanuel Vadot      clock ID in its "clocks" phandle cell with PMC clock provider. See
4384943d6fSEmmanuel Vadot      include/dt-bindings/soc/tegra-pmc.h for the list of Tegra PMC clock IDs.
4484943d6fSEmmanuel Vadot
4584943d6fSEmmanuel Vadot  '#interrupt-cells':
4684943d6fSEmmanuel Vadot    const: 2
4784943d6fSEmmanuel Vadot    description: Specifies number of cells needed to encode an interrupt
4884943d6fSEmmanuel Vadot      source.
4984943d6fSEmmanuel Vadot
5084943d6fSEmmanuel Vadot  interrupt-controller: true
5184943d6fSEmmanuel Vadot
5284943d6fSEmmanuel Vadot  nvidia,invert-interrupt:
5384943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
5484943d6fSEmmanuel Vadot    description: Inverts the PMU interrupt signal. The PMU is an external Power
5584943d6fSEmmanuel Vadot      Management Unit, whose interrupt output signal is fed into the PMC. This
5684943d6fSEmmanuel Vadot      signal is optionally inverted, and then fed into the ARM GIC. The PMC is
5784943d6fSEmmanuel Vadot      not involved in the detection or handling of this interrupt signal,
5884943d6fSEmmanuel Vadot      merely its inversion.
5984943d6fSEmmanuel Vadot
6084943d6fSEmmanuel Vadot  nvidia,core-power-req-active-high:
6184943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
6284943d6fSEmmanuel Vadot    description: core power request active-high
6384943d6fSEmmanuel Vadot
6484943d6fSEmmanuel Vadot  nvidia,sys-clock-req-active-high:
6584943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
6684943d6fSEmmanuel Vadot    description: system clock request active-high
6784943d6fSEmmanuel Vadot
6884943d6fSEmmanuel Vadot  nvidia,combined-power-req:
6984943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
7084943d6fSEmmanuel Vadot    description: combined power request for CPU and core
7184943d6fSEmmanuel Vadot
7284943d6fSEmmanuel Vadot  nvidia,cpu-pwr-good-en:
7384943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/flag
7484943d6fSEmmanuel Vadot    description: CPU power good signal from external PMIC to PMC is enabled
7584943d6fSEmmanuel Vadot
7684943d6fSEmmanuel Vadot  nvidia,suspend-mode:
7784943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
7884943d6fSEmmanuel Vadot    description: the suspend mode that the platform should use
7984943d6fSEmmanuel Vadot    oneOf:
8084943d6fSEmmanuel Vadot      - description: LP0, CPU + Core voltage off and DRAM in self-refresh
8184943d6fSEmmanuel Vadot        const: 0
8284943d6fSEmmanuel Vadot      - description: LP1, CPU voltage off and DRAM in self-refresh
8384943d6fSEmmanuel Vadot        const: 1
8484943d6fSEmmanuel Vadot      - description: LP2, CPU voltage off
8584943d6fSEmmanuel Vadot        const: 2
8684943d6fSEmmanuel Vadot
8784943d6fSEmmanuel Vadot  nvidia,cpu-pwr-good-time:
8884943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
8984943d6fSEmmanuel Vadot    description: CPU power good time in microseconds
9084943d6fSEmmanuel Vadot
9184943d6fSEmmanuel Vadot  nvidia,cpu-pwr-off-time:
9284943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
9384943d6fSEmmanuel Vadot    description: CPU power off time in microseconds
9484943d6fSEmmanuel Vadot
9584943d6fSEmmanuel Vadot  nvidia,core-pwr-good-time:
9684943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
9784943d6fSEmmanuel Vadot    description: core power good time in microseconds
9884943d6fSEmmanuel Vadot    items:
9984943d6fSEmmanuel Vadot      - description: oscillator stable time
10084943d6fSEmmanuel Vadot      - description: power stable time
10184943d6fSEmmanuel Vadot
10284943d6fSEmmanuel Vadot  nvidia,core-pwr-off-time:
10384943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
10484943d6fSEmmanuel Vadot    description: core power off time in microseconds
10584943d6fSEmmanuel Vadot
10684943d6fSEmmanuel Vadot  nvidia,lp0-vec:
10784943d6fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32-array
10884943d6fSEmmanuel Vadot    description: |
10984943d6fSEmmanuel Vadot      Starting address and length of LP0 vector. The LP0 vector contains the
11084943d6fSEmmanuel Vadot      warm boot code that is executed by AVP when resuming from the LP0 state.
11184943d6fSEmmanuel Vadot      The AVP (Audio-Video Processor) is an ARM7 processor and always being
11284943d6fSEmmanuel Vadot      the first boot processor when chip is power on or resume from deep sleep
11384943d6fSEmmanuel Vadot      mode. When the system is resumed from the deep sleep mode, the warm boot
11484943d6fSEmmanuel Vadot      code will restore some PLLs, clocks and then brings up CPU0 for resuming
11584943d6fSEmmanuel Vadot      the system.
11684943d6fSEmmanuel Vadot    items:
11784943d6fSEmmanuel Vadot      - description: starting address of LP0 vector
11884943d6fSEmmanuel Vadot      - description: length of LP0 vector
11984943d6fSEmmanuel Vadot
12084943d6fSEmmanuel Vadot  core-supply:
12184943d6fSEmmanuel Vadot    description: phandle to voltage regulator connected to the SoC core power
12284943d6fSEmmanuel Vadot      rail
12384943d6fSEmmanuel Vadot
12484943d6fSEmmanuel Vadot  core-domain:
12584943d6fSEmmanuel Vadot    type: object
12684943d6fSEmmanuel Vadot    description: The vast majority of hardware blocks of Tegra SoC belong to a
12784943d6fSEmmanuel Vadot      core power domain, which has a dedicated voltage rail that powers the
12884943d6fSEmmanuel Vadot      blocks.
12984943d6fSEmmanuel Vadot    additionalProperties: false
13084943d6fSEmmanuel Vadot    properties:
13184943d6fSEmmanuel Vadot      operating-points-v2:
13284943d6fSEmmanuel Vadot        description: Should contain level, voltages and opp-supported-hw
13384943d6fSEmmanuel Vadot          property. The supported-hw is a bitfield indicating SoC speedo or
13484943d6fSEmmanuel Vadot          process ID mask.
13584943d6fSEmmanuel Vadot
13684943d6fSEmmanuel Vadot      "#power-domain-cells":
13784943d6fSEmmanuel Vadot        const: 0
13884943d6fSEmmanuel Vadot
13984943d6fSEmmanuel Vadot    required:
14084943d6fSEmmanuel Vadot      - operating-points-v2
14184943d6fSEmmanuel Vadot      - "#power-domain-cells"
14284943d6fSEmmanuel Vadot
14384943d6fSEmmanuel Vadot  i2c-thermtrip:
14484943d6fSEmmanuel Vadot    type: object
14584943d6fSEmmanuel Vadot    description: On Tegra30, Tegra114 and Tegra124 if i2c-thermtrip subnode
14684943d6fSEmmanuel Vadot      exists, hardware-triggered thermal reset will be enabled.
14784943d6fSEmmanuel Vadot    additionalProperties: false
14884943d6fSEmmanuel Vadot    properties:
14984943d6fSEmmanuel Vadot      nvidia,i2c-controller-id:
15084943d6fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
15184943d6fSEmmanuel Vadot        description: ID of I2C controller to send poweroff command to PMU.
15284943d6fSEmmanuel Vadot          Valid values are described in section 9.2.148 "APBDEV_PMC_SCRATCH53_0"
15384943d6fSEmmanuel Vadot          of the Tegra K1 Technical Reference Manual.
15484943d6fSEmmanuel Vadot
15584943d6fSEmmanuel Vadot      nvidia,bus-addr:
15684943d6fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
15784943d6fSEmmanuel Vadot        description: bus address of the PMU on the I2C bus
15884943d6fSEmmanuel Vadot
15984943d6fSEmmanuel Vadot      nvidia,reg-addr:
16084943d6fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
16184943d6fSEmmanuel Vadot        description: PMU I2C register address to issue poweroff command
16284943d6fSEmmanuel Vadot
16384943d6fSEmmanuel Vadot      nvidia,reg-data:
16484943d6fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
16584943d6fSEmmanuel Vadot        description: power-off command to write to PMU
16684943d6fSEmmanuel Vadot
16784943d6fSEmmanuel Vadot      nvidia,pinmux-id:
16884943d6fSEmmanuel Vadot        $ref: /schemas/types.yaml#/definitions/uint32
16984943d6fSEmmanuel Vadot        description: Pinmux used by the hardware when issuing power-off command.
17084943d6fSEmmanuel Vadot          Defaults to 0. Valid values are described in section 12.5.2 "Pinmux
17184943d6fSEmmanuel Vadot          Support" of the Tegra4 Technical Reference Manual.
17284943d6fSEmmanuel Vadot
17384943d6fSEmmanuel Vadot    required:
17484943d6fSEmmanuel Vadot      - nvidia,i2c-controller-id
17584943d6fSEmmanuel Vadot      - nvidia,bus-addr
17684943d6fSEmmanuel Vadot      - nvidia,reg-addr
17784943d6fSEmmanuel Vadot      - nvidia,reg-data
17884943d6fSEmmanuel Vadot
17984943d6fSEmmanuel Vadot  powergates:
18084943d6fSEmmanuel Vadot    type: object
18184943d6fSEmmanuel Vadot    additionalProperties: false
18284943d6fSEmmanuel Vadot    description: |
18384943d6fSEmmanuel Vadot      This node contains a hierarchy of power domain nodes, which should match
18484943d6fSEmmanuel Vadot      the powergates on the Tegra SoC. Each powergate node represents a power-
18584943d6fSEmmanuel Vadot      domain on the Tegra SoC that can be power-gated by the Tegra PMC.
18684943d6fSEmmanuel Vadot
18784943d6fSEmmanuel Vadot      Hardware blocks belonging to a power domain should contain "power-domains"
18884943d6fSEmmanuel Vadot      property that is a phandle pointing to corresponding powergate node.
18984943d6fSEmmanuel Vadot
19084943d6fSEmmanuel Vadot      The name of the powergate node should be one of the below. Note that not
19184943d6fSEmmanuel Vadot      every powergate is applicable to all Tegra devices and the following list
19284943d6fSEmmanuel Vadot      shows which powergates are applicable to which devices.
19384943d6fSEmmanuel Vadot
19484943d6fSEmmanuel Vadot      Please refer to Tegra TRM for mode details on the powergate nodes to use
19584943d6fSEmmanuel Vadot      for each power-gate block inside Tegra.
19684943d6fSEmmanuel Vadot
19784943d6fSEmmanuel Vadot        Name     Description                   Devices Applicable
19884943d6fSEmmanuel Vadot        --------------------------------------------------------------
19984943d6fSEmmanuel Vadot        3d       3D Graphics                   Tegra20/114/124/210
20084943d6fSEmmanuel Vadot        3d0      3D Graphics 0                 Tegra30
20184943d6fSEmmanuel Vadot        3d1      3D Graphics 1                 Tegra30
20284943d6fSEmmanuel Vadot        aud      Audio                         Tegra210
20384943d6fSEmmanuel Vadot        dfd      Debug                         Tegra210
20484943d6fSEmmanuel Vadot        dis      Display A                     Tegra114/124/210
20584943d6fSEmmanuel Vadot        disb     Display B                     Tegra114/124/210
20684943d6fSEmmanuel Vadot        heg      2D Graphics                   Tegra30/114/124/210
20784943d6fSEmmanuel Vadot        iram     Internal RAM                  Tegra124/210
20884943d6fSEmmanuel Vadot        mpe      MPEG Encode                   All
20984943d6fSEmmanuel Vadot        nvdec    NVIDIA Video Decode Engine    Tegra210
21084943d6fSEmmanuel Vadot        nvjpg    NVIDIA JPEG Engine            Tegra210
21184943d6fSEmmanuel Vadot        pcie     PCIE                          Tegra20/30/124/210
21284943d6fSEmmanuel Vadot        sata     SATA                          Tegra30/124/210
21384943d6fSEmmanuel Vadot        sor      Display interfaces            Tegra124/210
21484943d6fSEmmanuel Vadot        ve2      Video Encode Engine 2         Tegra210
21584943d6fSEmmanuel Vadot        venc     Video Encode Engine           All
21684943d6fSEmmanuel Vadot        vdec     Video Decode Engine           Tegra20/30/114/124
21784943d6fSEmmanuel Vadot        vic      Video Imaging Compositor      Tegra124/210
21884943d6fSEmmanuel Vadot        xusba    USB Partition A               Tegra114/124/210
21984943d6fSEmmanuel Vadot        xusbb    USB Partition B               Tegra114/124/210
22084943d6fSEmmanuel Vadot        xusbc    USB Partition C               Tegra114/124/210
22184943d6fSEmmanuel Vadot
22284943d6fSEmmanuel Vadot    patternProperties:
22384943d6fSEmmanuel Vadot      "^[a-z0-9]+$":
22484943d6fSEmmanuel Vadot        type: object
22584943d6fSEmmanuel Vadot        additionalProperties: false
22684943d6fSEmmanuel Vadot        properties:
22784943d6fSEmmanuel Vadot          clocks:
22884943d6fSEmmanuel Vadot            minItems: 1
22984943d6fSEmmanuel Vadot            maxItems: 10
23084943d6fSEmmanuel Vadot
23184943d6fSEmmanuel Vadot          resets:
23284943d6fSEmmanuel Vadot            minItems: 1
23384943d6fSEmmanuel Vadot            maxItems: 8
23484943d6fSEmmanuel Vadot
23584943d6fSEmmanuel Vadot          power-domains:
23684943d6fSEmmanuel Vadot            maxItems: 1
23784943d6fSEmmanuel Vadot
23884943d6fSEmmanuel Vadot          '#power-domain-cells':
23984943d6fSEmmanuel Vadot            const: 0
24084943d6fSEmmanuel Vadot            description: Must be 0.
24184943d6fSEmmanuel Vadot
24284943d6fSEmmanuel Vadot        required:
24384943d6fSEmmanuel Vadot          - clocks
24484943d6fSEmmanuel Vadot          - resets
24584943d6fSEmmanuel Vadot          - '#power-domain-cells'
24684943d6fSEmmanuel Vadot
24784943d6fSEmmanuel Vadot  pinmux:
24884943d6fSEmmanuel Vadot    type: object
24984943d6fSEmmanuel Vadot    additionalProperties:
25084943d6fSEmmanuel Vadot      type: object
25184943d6fSEmmanuel Vadot      description: |
25284943d6fSEmmanuel Vadot        This is a pad configuration node. On Tegra SoCs a pad is a set of pins
25384943d6fSEmmanuel Vadot        which are configured as a group. The pin grouping is a fixed attribute
25484943d6fSEmmanuel Vadot        of the hardware. The PMC can be used to set pad power state and
25584943d6fSEmmanuel Vadot        signaling voltage. A pad can be either in active or power down mode.
25684943d6fSEmmanuel Vadot        The support for power state and signaling voltage configuration varies
25784943d6fSEmmanuel Vadot        depending on the pad in question. 3.3V and 1.8V signaling voltages are
25884943d6fSEmmanuel Vadot        supported on pins where software controllable signaling voltage
25984943d6fSEmmanuel Vadot        switching is available.
26084943d6fSEmmanuel Vadot
26184943d6fSEmmanuel Vadot        The pad configuration state nodes are placed under the pmc node and
26284943d6fSEmmanuel Vadot        they are referred to by the pinctrl client properties. For more
26384943d6fSEmmanuel Vadot        information see:
26484943d6fSEmmanuel Vadot
26584943d6fSEmmanuel Vadot          Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt
26684943d6fSEmmanuel Vadot
26784943d6fSEmmanuel Vadot        The pad name should be used as the value of the pins property in pin
26884943d6fSEmmanuel Vadot        configuration nodes.
26984943d6fSEmmanuel Vadot
27084943d6fSEmmanuel Vadot        The following pads are present on Tegra124 and Tegra132:
27184943d6fSEmmanuel Vadot
27284943d6fSEmmanuel Vadot          audio, bb, cam, comp, csia, csb, cse, dsi, dsib, dsic, dsid, hdmi,
27384943d6fSEmmanuel Vadot          hsic, hv, lvds, mipi-bias, nand, pex-bias, pex-clk1, pex-clk2,
27484943d6fSEmmanuel Vadot          pex-cntrl, sdmmc1, sdmmc3, sdmmc4, sys_ddc, uart, usb0, usb1, usb2,
27584943d6fSEmmanuel Vadot          usb_bias
27684943d6fSEmmanuel Vadot
27784943d6fSEmmanuel Vadot        The following pads are present on Tegra210:
27884943d6fSEmmanuel Vadot
27984943d6fSEmmanuel Vadot          audio, audio-hv, cam, csia, csib, csic, csid, csie, csif, dbg,
28084943d6fSEmmanuel Vadot          debug-nonao, dmic, dp, dsi, dsib, dsic, dsid, emmc, emmc2, gpio,
28184943d6fSEmmanuel Vadot          hdmi, hsic, lvds, mipi-bias, pex-bias, pex-clk1, pex-clk2, pex-cntrl,
28284943d6fSEmmanuel Vadot          sdmmc1, sdmmc3, spi, spi-hv, uart, usb0, usb1, usb2, usb3, usb-bias
28384943d6fSEmmanuel Vadot      additionalProperties: false
28484943d6fSEmmanuel Vadot      properties:
28584943d6fSEmmanuel Vadot        pins:
28684943d6fSEmmanuel Vadot          $ref: /schemas/types.yaml#/definitions/string-array
28784943d6fSEmmanuel Vadot          description: Must contain name of the pad(s) to be configured.
28884943d6fSEmmanuel Vadot
28984943d6fSEmmanuel Vadot        low-power-enable:
29084943d6fSEmmanuel Vadot          $ref: /schemas/types.yaml#/definitions/flag
29184943d6fSEmmanuel Vadot          description: Configure the pad into power down mode.
29284943d6fSEmmanuel Vadot
29384943d6fSEmmanuel Vadot        low-power-disable:
29484943d6fSEmmanuel Vadot          $ref: /schemas/types.yaml#/definitions/flag
29584943d6fSEmmanuel Vadot          description: Configure the pad into active mode.
29684943d6fSEmmanuel Vadot
29784943d6fSEmmanuel Vadot        power-source:
29884943d6fSEmmanuel Vadot          $ref: /schemas/types.yaml#/definitions/uint32
29984943d6fSEmmanuel Vadot          description: |
30084943d6fSEmmanuel Vadot            Must contain either TEGRA_IO_PAD_VOLTAGE_1V8 or
30184943d6fSEmmanuel Vadot            TEGRA_IO_PAD_VOLTAGE_3V3 to select between signaling voltages. The
30284943d6fSEmmanuel Vadot            values are defined in:
30384943d6fSEmmanuel Vadot
30484943d6fSEmmanuel Vadot              include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h
30584943d6fSEmmanuel Vadot
30684943d6fSEmmanuel Vadot            Power state can be configured on all Tegra124 and Tegra132 pads.
30784943d6fSEmmanuel Vadot            None of the Tegra124 or Tegra132 pads support signaling voltage
30884943d6fSEmmanuel Vadot            switching. All of the listed Tegra210 pads except pex-cntrl support
30984943d6fSEmmanuel Vadot            power state configuration. Signaling voltage switching is supported
31084943d6fSEmmanuel Vadot            on the following Tegra210 pads:
31184943d6fSEmmanuel Vadot
31284943d6fSEmmanuel Vadot              audio, audio-hv, cam, dbg, dmic, gpio, pex-cntrl, sdmmc1, sdmmc3,
31384943d6fSEmmanuel Vadot              spi, spi-hv, uart
31484943d6fSEmmanuel Vadot
31584943d6fSEmmanuel Vadot      required:
31684943d6fSEmmanuel Vadot        - pins
31784943d6fSEmmanuel Vadot
31884943d6fSEmmanuel Vadotrequired:
31984943d6fSEmmanuel Vadot  - compatible
32084943d6fSEmmanuel Vadot  - reg
32184943d6fSEmmanuel Vadot  - clock-names
32284943d6fSEmmanuel Vadot  - clocks
32384943d6fSEmmanuel Vadot  - '#clock-cells'
32484943d6fSEmmanuel Vadot
32584943d6fSEmmanuel VadotallOf:
32684943d6fSEmmanuel Vadot  - if:
32784943d6fSEmmanuel Vadot      properties:
32884943d6fSEmmanuel Vadot        compatible:
32984943d6fSEmmanuel Vadot          contains:
33084943d6fSEmmanuel Vadot            const: nvidia,tegra124-pmc
33184943d6fSEmmanuel Vadot    then:
33284943d6fSEmmanuel Vadot      properties:
33384943d6fSEmmanuel Vadot        pinmux:
33484943d6fSEmmanuel Vadot          additionalProperties:
33584943d6fSEmmanuel Vadot            type: object
33684943d6fSEmmanuel Vadot            properties:
33784943d6fSEmmanuel Vadot              pins:
33884943d6fSEmmanuel Vadot                items:
33984943d6fSEmmanuel Vadot                  enum: [ audio, bb, cam, comp, csia, csb, cse, dsi, dsib,
34084943d6fSEmmanuel Vadot                          dsic, dsid, hdmi, hsic, hv, lvds, mipi-bias, nand,
34184943d6fSEmmanuel Vadot                          pex-bias, pex-clk1, pex-clk2, pex-cntrl, sdmmc1,
34284943d6fSEmmanuel Vadot                          sdmmc3, sdmmc4, sys_ddc, uart, usb0, usb1, usb2,
34384943d6fSEmmanuel Vadot                          usb_bias ]
34484943d6fSEmmanuel Vadot
34584943d6fSEmmanuel Vadot  - if:
34684943d6fSEmmanuel Vadot      properties:
34784943d6fSEmmanuel Vadot        compatible:
34884943d6fSEmmanuel Vadot          contains:
34984943d6fSEmmanuel Vadot            const: nvidia,tegra210-pmc
35084943d6fSEmmanuel Vadot    then:
35184943d6fSEmmanuel Vadot      properties:
35284943d6fSEmmanuel Vadot        pinmux:
35384943d6fSEmmanuel Vadot          additionalProperties:
35484943d6fSEmmanuel Vadot            type: object
35584943d6fSEmmanuel Vadot            properties:
35684943d6fSEmmanuel Vadot              pins:
35784943d6fSEmmanuel Vadot                items:
35884943d6fSEmmanuel Vadot                  enum: [ audio, audio-hv, cam, csia, csib, csic, csid, csie,
35984943d6fSEmmanuel Vadot                          csif, dbg, debug-nonao, dmic, dp, dsi, dsib, dsic,
36084943d6fSEmmanuel Vadot                          dsid, emmc, emmc2, gpio, hdmi, hsic, lvds, mipi-bias,
36184943d6fSEmmanuel Vadot                          pex-bias, pex-clk1, pex-clk2, pex-cntrl, sdmmc1,
36284943d6fSEmmanuel Vadot                          sdmmc3, spi, spi-hv, uart, usb0, usb1, usb2, usb3,
36384943d6fSEmmanuel Vadot                          usb-bias ]
36484943d6fSEmmanuel Vadot
36584943d6fSEmmanuel VadotadditionalProperties: false
36684943d6fSEmmanuel Vadot
36784943d6fSEmmanuel Vadotdependencies:
368*7d0873ebSEmmanuel Vadot  nvidia,suspend-mode: ["nvidia,core-pwr-off-time", "nvidia,cpu-pwr-off-time"]
369*7d0873ebSEmmanuel Vadot  nvidia,core-pwr-off-time: ["nvidia,core-pwr-good-time"]
370*7d0873ebSEmmanuel Vadot  nvidia,cpu-pwr-off-time: ["nvidia,cpu-pwr-good-time"]
37184943d6fSEmmanuel Vadot
37284943d6fSEmmanuel Vadotexamples:
37384943d6fSEmmanuel Vadot  - |
37484943d6fSEmmanuel Vadot    #include <dt-bindings/clock/tegra210-car.h>
37584943d6fSEmmanuel Vadot    #include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
37684943d6fSEmmanuel Vadot    #include <dt-bindings/soc/tegra-pmc.h>
37784943d6fSEmmanuel Vadot
37884943d6fSEmmanuel Vadot    pmc@7000e400 {
37984943d6fSEmmanuel Vadot        compatible = "nvidia,tegra210-pmc";
38084943d6fSEmmanuel Vadot        reg = <0x7000e400 0x400>;
38184943d6fSEmmanuel Vadot        core-supply = <&regulator>;
38284943d6fSEmmanuel Vadot        clocks = <&tegra_car TEGRA210_CLK_PCLK>, <&clk32k_in>;
38384943d6fSEmmanuel Vadot        clock-names = "pclk", "clk32k_in";
38484943d6fSEmmanuel Vadot        #clock-cells = <1>;
38584943d6fSEmmanuel Vadot
38684943d6fSEmmanuel Vadot        nvidia,invert-interrupt;
38784943d6fSEmmanuel Vadot        nvidia,suspend-mode = <0>;
38884943d6fSEmmanuel Vadot        nvidia,cpu-pwr-good-time = <0>;
38984943d6fSEmmanuel Vadot        nvidia,cpu-pwr-off-time = <0>;
39084943d6fSEmmanuel Vadot        nvidia,core-pwr-good-time = <4587 3876>;
39184943d6fSEmmanuel Vadot        nvidia,core-pwr-off-time = <39065>;
39284943d6fSEmmanuel Vadot        nvidia,core-power-req-active-high;
39384943d6fSEmmanuel Vadot        nvidia,sys-clock-req-active-high;
39484943d6fSEmmanuel Vadot
39584943d6fSEmmanuel Vadot        pd_core: core-domain {
39684943d6fSEmmanuel Vadot            operating-points-v2 = <&core_opp_table>;
39784943d6fSEmmanuel Vadot            #power-domain-cells = <0>;
39884943d6fSEmmanuel Vadot        };
39984943d6fSEmmanuel Vadot
40084943d6fSEmmanuel Vadot        powergates {
40184943d6fSEmmanuel Vadot            pd_audio: aud {
40284943d6fSEmmanuel Vadot                clocks = <&tegra_car TEGRA210_CLK_APE>,
40384943d6fSEmmanuel Vadot                         <&tegra_car TEGRA210_CLK_APB2APE>;
40484943d6fSEmmanuel Vadot                resets = <&tegra_car 198>;
40584943d6fSEmmanuel Vadot                power-domains = <&pd_core>;
40684943d6fSEmmanuel Vadot                #power-domain-cells = <0>;
40784943d6fSEmmanuel Vadot            };
40884943d6fSEmmanuel Vadot
40984943d6fSEmmanuel Vadot            pd_xusbss: xusba {
41084943d6fSEmmanuel Vadot                clocks = <&tegra_car TEGRA210_CLK_XUSB_SS>;
41184943d6fSEmmanuel Vadot                resets = <&tegra_car TEGRA210_CLK_XUSB_SS>;
41284943d6fSEmmanuel Vadot                power-domains = <&pd_core>;
41384943d6fSEmmanuel Vadot                #power-domain-cells = <0>;
41484943d6fSEmmanuel Vadot            };
41584943d6fSEmmanuel Vadot        };
41684943d6fSEmmanuel Vadot    };
417