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

dt-bindings: Add Tegra PMC pad configuration bindings

Document the PMC pinctrl bindings for pad power state and signaling
voltage configuration. Both nvidia,tegra186-pmc.txt and
nvidia,tegra20-pmc.txt are modified as they both cover SoC generations
for which these bindings apply.

Add a header defining Tegra PMC pad voltage configurations.

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

authored by

Aapo Vienamo and committed by
Thierry Reding
d9be10ed 5b394b2d

+214
+93
Documentation/devicetree/bindings/arm/tegra/nvidia,tegra186-pmc.txt
··· 34 34 pmc@c360000 { 35 35 nvidia,invert-interrupt; 36 36 }; 37 + 38 + == Pad Control == 39 + 40 + On Tegra SoCs a pad is a set of pins which are configured as a group. 41 + The pin grouping is a fixed attribute of the hardware. The PMC can be 42 + used to set pad power state and signaling voltage. A pad can be either 43 + in active or power down mode. The support for power state and signaling 44 + voltage configuration varies depending on the pad in question. 3.3 V and 45 + 1.8 V signaling voltages are supported on pins where software 46 + controllable signaling voltage switching is available. 47 + 48 + Pad configurations are described with pin configuration nodes which 49 + are placed under the pmc node and they are referred to by the pinctrl 50 + client properties. For more information see 51 + Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. 52 + 53 + The following pads are present on Tegra186: 54 + csia csib dsi mipi-bias 55 + pex-clk-bias pex-clk3 pex-clk2 pex-clk1 56 + usb0 usb1 usb2 usb-bias 57 + uart audio hsic dbg 58 + hdmi-dp0 hdmi-dp1 pex-cntrl sdmmc2-hv 59 + sdmmc4 cam dsib dsic 60 + dsid csic csid csie 61 + dsif spi ufs dmic-hv 62 + edp sdmmc1-hv sdmmc3-hv conn 63 + audio-hv ao-hv 64 + 65 + Required pin configuration properties: 66 + - pins: A list of strings, each of which contains the name of a pad 67 + to be configured. 68 + 69 + Optional pin configuration properties: 70 + - low-power-enable: Configure the pad into power down mode 71 + - low-power-disable: Configure the pad into active mode 72 + - power-source: Must contain either TEGRA_IO_PAD_VOLTAGE_1V8 or 73 + TEGRA_IO_PAD_VOLTAGE_3V3 to select between signaling voltages. 74 + The values are defined in 75 + include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. 76 + 77 + Note: The power state can be configured on all of the above pads except 78 + for ao-hv. Following pads have software configurable signaling 79 + voltages: sdmmc2-hv, dmic-hv, sdmmc1-hv, sdmmc3-hv, audio-hv, 80 + ao-hv. 81 + 82 + Pad configuration state example: 83 + pmc: pmc@7000e400 { 84 + compatible = "nvidia,tegra186-pmc"; 85 + reg = <0 0x0c360000 0 0x10000>, 86 + <0 0x0c370000 0 0x10000>, 87 + <0 0x0c380000 0 0x10000>, 88 + <0 0x0c390000 0 0x10000>; 89 + reg-names = "pmc", "wake", "aotag", "scratch"; 90 + 91 + ... 92 + 93 + sdmmc1_3v3: sdmmc1-3v3 { 94 + pins = "sdmmc1-hv"; 95 + power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>; 96 + }; 97 + 98 + sdmmc1_1v8: sdmmc1-1v8 { 99 + pins = "sdmmc1-hv"; 100 + power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>; 101 + }; 102 + 103 + hdmi_off: hdmi-off { 104 + pins = "hdmi"; 105 + low-power-enable; 106 + } 107 + 108 + hdmi_on: hdmi-on { 109 + pins = "hdmi"; 110 + low-power-disable; 111 + } 112 + }; 113 + 114 + Pinctrl client example: 115 + sdmmc1: sdhci@3400000 { 116 + ... 117 + pinctrl-names = "sdmmc-3v3", "sdmmc-1v8"; 118 + pinctrl-0 = <&sdmmc1_3v3>; 119 + pinctrl-1 = <&sdmmc1_1v8>; 120 + }; 121 + 122 + ... 123 + 124 + sor0: sor@15540000 { 125 + ... 126 + pinctrl-0 = <&hdmi_off>; 127 + pinctrl-1 = <&hdmi_on>; 128 + pinctrl-names = "hdmi-on", "hdmi-off"; 129 + };
+103
Documentation/devicetree/bindings/arm/tegra/nvidia,tegra20-pmc.txt
··· 195 195 power-domains = <&pd_audio>; 196 196 ... 197 197 }; 198 + 199 + == Pad Control == 200 + 201 + On Tegra SoCs a pad is a set of pins which are configured as a group. 202 + The pin grouping is a fixed attribute of the hardware. The PMC can be 203 + used to set pad power state and signaling voltage. A pad can be either 204 + in active or power down mode. The support for power state and signaling 205 + voltage configuration varies depending on the pad in question. 3.3 V and 206 + 1.8 V signaling voltages are supported on pins where software 207 + controllable signaling voltage switching is available. 208 + 209 + The pad configuration state nodes are placed under the pmc node and they 210 + are referred to by the pinctrl client properties. For more information 211 + see Documentation/devicetree/bindings/pinctrl/pinctrl-bindings.txt. 212 + The pad name should be used as the value of the pins property in pin 213 + configuration nodes. 214 + 215 + The following pads are present on Tegra124 and Tegra132: 216 + audio bb cam comp 217 + csia csb cse dsi 218 + dsib dsic dsid hdmi 219 + hsic hv lvds mipi-bias 220 + nand pex-bias pex-clk1 pex-clk2 221 + pex-cntrl sdmmc1 sdmmc3 sdmmc4 222 + sys_ddc uart usb0 usb1 223 + usb2 usb_bias 224 + 225 + The following pads are present on Tegra210: 226 + audio audio-hv cam csia 227 + csib csic csid csie 228 + csif dbg debug-nonao dmic 229 + dp dsi dsib dsic 230 + dsid emmc emmc2 gpio 231 + hdmi hsic lvds mipi-bias 232 + pex-bias pex-clk1 pex-clk2 pex-cntrl 233 + sdmmc1 sdmmc3 spi spi-hv 234 + uart usb0 usb1 usb2 235 + usb3 usb-bias 236 + 237 + Required pin configuration properties: 238 + - pins: Must contain name of the pad(s) to be configured. 239 + 240 + Optional pin configuration properties: 241 + - low-power-enable: Configure the pad into power down mode 242 + - low-power-disable: Configure the pad into active mode 243 + - power-source: Must contain either TEGRA_IO_PAD_VOLTAGE_1V8 244 + or TEGRA_IO_PAD_VOLTAGE_3V3 to select between signaling voltages. 245 + The values are defined in 246 + include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h. 247 + 248 + Note: The power state can be configured on all of the Tegra124 and 249 + Tegra132 pads. None of the Tegra124 or Tegra132 pads support 250 + signaling voltage switching. 251 + 252 + Note: All of the listed Tegra210 pads except pex-cntrl support power 253 + state configuration. Signaling voltage switching is supported on 254 + following Tegra210 pads: audio, audio-hv, cam, dbg, dmic, gpio, 255 + pex-cntrl, sdmmc1, sdmmc3, spi, spi-hv, and uart. 256 + 257 + Pad configuration state example: 258 + pmc: pmc@7000e400 { 259 + compatible = "nvidia,tegra210-pmc"; 260 + reg = <0x0 0x7000e400 0x0 0x400>; 261 + clocks = <&tegra_car TEGRA210_CLK_PCLK>, <&clk32k_in>; 262 + clock-names = "pclk", "clk32k_in"; 263 + 264 + ... 265 + 266 + sdmmc1_3v3: sdmmc1-3v3 { 267 + pins = "sdmmc1"; 268 + power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>; 269 + }; 270 + 271 + sdmmc1_1v8: sdmmc1-1v8 { 272 + pins = "sdmmc1"; 273 + power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>; 274 + }; 275 + 276 + hdmi_off: hdmi-off { 277 + pins = "hdmi"; 278 + low-power-enable; 279 + } 280 + 281 + hdmi_on: hdmi-on { 282 + pins = "hdmi"; 283 + low-power-disable; 284 + } 285 + }; 286 + 287 + Pinctrl client example: 288 + sdmmc1: sdhci@700b0000 { 289 + ... 290 + pinctrl-names = "sdmmc-3v3", "sdmmc-1v8"; 291 + pinctrl-0 = <&sdmmc1_3v3>; 292 + pinctrl-1 = <&sdmmc1_1v8>; 293 + }; 294 + ... 295 + sor@54540000 { 296 + ... 297 + pinctrl-0 = <&hdmi_off>; 298 + pinctrl-1 = <&hdmi_on>; 299 + pinctrl-names = "hdmi-on", "hdmi-off"; 300 + };
+18
include/dt-bindings/pinctrl/pinctrl-tegra-io-pad.h
··· 1 + /* SPDX-License-Identifier: GPL-2.0 */ 2 + /* 3 + * pinctrl-tegra-io-pad.h: Tegra I/O pad source voltage configuration constants 4 + * pinctrl bindings. 5 + * 6 + * Copyright (c) 2018, NVIDIA CORPORATION. All rights reserved. 7 + * 8 + * Author: Aapo Vienamo <avienamo@nvidia.com> 9 + */ 10 + 11 + #ifndef _DT_BINDINGS_PINCTRL_TEGRA_IO_PAD_H 12 + #define _DT_BINDINGS_PINCTRL_TEGRA_IO_PAD_H 13 + 14 + /* Voltage levels of the I/O pad's source rail */ 15 + #define TEGRA_IO_PAD_VOLTAGE_1V8 0 16 + #define TEGRA_IO_PAD_VOLTAGE_3V3 1 17 + 18 + #endif