1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/pinctrl/nvidia,tegra-pinmux-common.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: NVIDIA Tegra Pinmux Controller
10 - Thierry Reding <thierry.reding@gmail.com>
11 - Jonathan Hunter <jonathanh@nvidia.com>
14 Please refer to pinctrl-bindings.txt in this directory for details of the
15 common pinctrl bindings used by client devices, including the meaning of
16 the phrase "pin configuration node".
18 Tegra's pin configuration nodes act as a container for an arbitrary number
19 of subnodes. Each of these subnodes represents some desired configuration
20 for a pin, a group, or a list of pins or groups. This configuration can
21 include the mux function to select on those pin(s)/ group(s), and various
22 pin configuration parameters, such as pull-up, tristate, drive strength,
25 The name of each subnode is not important; all subnodes should be
26 enumerated and processed purely based on their content.
28 Each subnode only affects those parameters that are explicitly listed. In
29 other words, a subnode that lists a mux function but no pin configuration
30 parameters implies no information about any pin configuration parameters.
32 Similarly, a pin subnode that describes a pullup parameter implies no
33 information about e.g. the mux function or tristate parameter. For this
34 reason, even seemingly boolean values are actually tristates in this
35 binding: unspecified, off, or on. Unspecified is represented as an absent
36 property, and off/on are represented as integer values 0 and 1.
38 Note that many of these properties are only valid for certain specific pins
39 or groups. See the Tegra TRM and various pinmux spreadsheets for complete
40 details regarding which groups support which functionality. The Linux
41 pinctrl driver may also be a useful reference, since it consolidates,
42 disambiguates, and corrects data from all those sources.
46 $ref: /schemas/types.yaml#/definitions/string-array
47 description: An array of strings. Each string contains the name of a pin
48 or group. Valid values for these names are listed below.
51 $ref: /schemas/types.yaml#/definitions/string
52 description: A string containing the name of the function to mux to the
53 pin or group. Valid values for function names are listed below. See the
54 Tegra TRM to determine which are valid for each pin or group.
57 description: Pull-down/up setting to apply to the pin.
58 $ref: /schemas/types.yaml#/definitions/uint32
68 description: Tristate setting to apply to the pin.
69 $ref: /schemas/types.yaml#/definitions/uint32
73 - description: tristate
77 description: Enable Schmitt trigger on the input.
78 $ref: /schemas/types.yaml#/definitions/uint32
80 - description: disable Schmitt trigger on the input
82 - description: enable Schmitt trigger on the input
85 nvidia,pull-down-strength:
86 description: Controls drive strength. 0 is weakest. The range of valid
87 values depends on the pingroup. See "CAL_DRVDN" in the Tegra TRM.
88 $ref: /schemas/types.yaml#/definitions/uint32
90 nvidia,pull-up-strength:
91 description: Controls drive strength. 0 is weakest. The range of valid
92 values depends on the pingroup. See "CAL_DRVUP" in the Tegra TRM.
93 $ref: /schemas/types.yaml#/definitions/uint32
95 nvidia,high-speed-mode:
96 description: Enable high speed mode the pins.
97 $ref: /schemas/types.yaml#/definitions/uint32
99 - description: normal speed mode
101 - description: high speed mode
104 nvidia,low-power-mode:
105 description: Controls the drive power or current. Valid values are from 0
106 through 3, where 0 specifies the least power and 3 specifies the most
107 power. See "Low Power Mode" or "LPMD1" and "LPMD0" in the Tegra TRM.
108 $ref: /schemas/types.yaml#/definitions/uint32
112 description: Enable the pin's input path.
113 $ref: /schemas/types.yaml#/definitions/uint32
115 - description: disable input (i.e. output only)
117 - description: enable input
121 description: Open-drain configuration for the pin.
122 $ref: /schemas/types.yaml#/definitions/uint32
124 - description: disable open-drain
126 - description: enable open-drain
130 description: Lock the pin configuration against further changes until
132 $ref: /schemas/types.yaml#/definitions/uint32
134 - description: disable pin configuration lock
136 - description: enable pin configuration lock
140 description: reset the I/O path
141 $ref: /schemas/types.yaml#/definitions/uint32
145 description: select VIL/VIH receivers
146 $ref: /schemas/types.yaml#/definitions/uint32
148 - description: normal receivers
150 - description: high-voltage receivers
154 description: Drive type to configure for the pin.
155 $ref: /schemas/types.yaml#/definitions/uint32
159 description: Select high-voltage receivers.
160 $ref: /schemas/types.yaml#/definitions/uint32
162 - description: Use normal receivers.
164 - description: Use high-voltage receivers.
167 nvidia,slew-rate-rising:
168 description: Controls rising signal slew rate. 0 is fastest. The range of
169 valid values depends on the pingroup. See "DRVDN_SLWR" in the Tegra TRM.
170 $ref: /schemas/types.yaml#/definitions/uint32
172 nvidia,slew-rate-falling:
173 description: Controls falling signal slew rate. 0 is fastest. The range of
174 valid values depends on the pingroup. See "DRVUP_SLWF" in the Tegra TRM.
175 $ref: /schemas/types.yaml#/definitions/uint32
177 additionalProperties: true