The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/device-tree/Bindings/arm/tegra/nvidia,tegra20-pmc.yaml

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

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

Cache object: e77df73375af74eb18ed9b2b32c60b27


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.