Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: Add power domain info for NVIDIA PMC

Add power-domain binding documentation for the NVIDIA PMC driver in
order to support generic power-domains.

Signed-off-by: Jon Hunter <jonathanh@nvidia.com>
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Thierry Reding <treding@nvidia.com>

authored by

Jon Hunter and committed by
Thierry Reding
b5c46cef 62b40def

+80
+80
Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt
··· 1 1 NVIDIA Tegra Power Management Controller (PMC) 2 2 3 + == Power Management Controller Node == 4 + 3 5 The PMC block interacts with an external Power Management Unit. The PMC 4 6 mostly controls the entry and exit of the system from different sleep 5 7 modes. It provides power-gating controllers for SoC and CPU power-islands. ··· 72 70 Defaults to 0. Valid values are described in section 12.5.2 73 71 "Pinmux Support" of the Tegra4 Technical Reference Manual. 74 72 73 + Optional nodes: 74 + - powergates : This node contains a hierarchy of power domain nodes, which 75 + should match the powergates on the Tegra SoC. See "Powergate 76 + Nodes" below. 77 + 75 78 Example: 76 79 77 80 / SoC dts including file ··· 122 115 }; 123 116 ... 124 117 }; 118 + 119 + 120 + == Powergate Nodes == 121 + 122 + Each of the powergate nodes represents a power-domain on the Tegra SoC 123 + that can be power-gated by the Tegra PMC. The name of the powergate node 124 + should be one of the below. Note that not every powergate is applicable 125 + to all Tegra devices and the following list shows which powergates are 126 + applicable to which devices. Please refer to the Tegra TRM for more 127 + details on the various powergates. 128 + 129 + Name Description Devices Applicable 130 + 3d 3D Graphics Tegra20/114/124/210 131 + 3d0 3D Graphics 0 Tegra30 132 + 3d1 3D Graphics 1 Tegra30 133 + aud Audio Tegra210 134 + dfd Debug Tegra210 135 + dis Display A Tegra114/124/210 136 + disb Display B Tegra114/124/210 137 + heg 2D Graphics Tegra30/114/124/210 138 + iram Internal RAM Tegra124/210 139 + mpe MPEG Encode All 140 + nvdec NVIDIA Video Decode Engine Tegra210 141 + nvjpg NVIDIA JPEG Engine Tegra210 142 + pcie PCIE Tegra20/30/124/210 143 + sata SATA Tegra30/124/210 144 + sor Display interfaces Tegra124/210 145 + ve2 Video Encode Engine 2 Tegra210 146 + venc Video Encode Engine All 147 + vdec Video Decode Engine Tegra20/30/114/124 148 + vic Video Imaging Compositor Tegra124/210 149 + xusba USB Partition A Tegra114/124/210 150 + xusbb USB Partition B Tegra114/124/210 151 + xusbc USB Partition C Tegra114/124/210 152 + 153 + Required properties: 154 + - clocks: Must contain an entry for each clock required by the PMC for 155 + controlling a power-gate. See ../clocks/clock-bindings.txt for details. 156 + - resets: Must contain an entry for each reset required by the PMC for 157 + controlling a power-gate. See ../reset/reset.txt for details. 158 + - #power-domain-cells: Must be 0. 159 + 160 + Example: 161 + 162 + pmc: pmc@7000e400 { 163 + compatible = "nvidia,tegra210-pmc"; 164 + reg = <0x0 0x7000e400 0x0 0x400>; 165 + clocks = <&tegra_car TEGRA210_CLK_PCLK>, <&clk32k_in>; 166 + clock-names = "pclk", "clk32k_in"; 167 + 168 + powergates { 169 + pd_audio: aud { 170 + clocks = <&tegra_car TEGRA210_CLK_APE>, 171 + <&tegra_car TEGRA210_CLK_APB2APE>; 172 + resets = <&tegra_car 198>; 173 + #power-domain-cells = <0>; 174 + }; 175 + }; 176 + }; 177 + 178 + 179 + == Powergate Clients == 180 + 181 + Hardware blocks belonging to a power domain should contain a "power-domains" 182 + property that is a phandle pointing to the corresponding powergate node. 183 + 184 + Example: 185 + 186 + adma: adma@702e2000 { 187 + ... 188 + power-domains = <&pd_audio>; 189 + ... 190 + };