1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
4 $id: http://devicetree.org/schemas/pinctrl/pinctrl-single.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Generic Pin Controller with a Single Register for One or More Pins
10 - Tony Lindgren <tony@atomide.com>
13 Some pin controller devices use a single register for one or more pins. The
14 range of pin control registers can vary from one to many for each controller
15 instance. Some SoCs from Altera, Broadcom, HiSilicon, Ralink, and TI have this
16 kind of pin controller instances.
34 - const: pinctrl-single
39 interrupt-controller: true
52 Number of cells. Usually 2, consisting of register offset, pin configuration
53 value, and pinmux mode. Some controllers may use 1 for just offset and value.
56 pinctrl-single,bit-per-mux:
57 description: Optional flag to indicate register controls more than one pin
60 pinctrl-single,function-mask:
61 description: Mask of the allowed register bits
62 $ref: /schemas/types.yaml#/definitions/uint32
64 pinctrl-single,function-off:
65 description: Optional function off mode for disabled state
66 $ref: /schemas/types.yaml#/definitions/uint32
68 pinctrl-single,register-width:
69 description: Width of pin specific bits in the register
70 $ref: /schemas/types.yaml#/definitions/uint32
73 pinctrl-single,gpio-range:
74 description: Optional list of pin base, nr pins & gpio function
75 $ref: /schemas/types.yaml#/definitions/phandle-array
78 - description: phandle of a gpio-range node
79 - description: pin base
80 - description: number of pins
81 - description: gpio function
84 description: No longer needed, may exist in older files for gpio-ranges
89 description: Optional node for gpio range cells
91 additionalProperties: false
93 '#pinctrl-single,gpio-range-cells':
94 description: Number of gpio range cells
96 $ref: /schemas/types.yaml#/definitions/uint32
99 '-pins(-[0-9]+)?$|-pin$':
101 Pin group node name using naming ending in -pins followed by an optional
104 additionalProperties: false
109 Array of pins as described in pinmux-node.yaml for pinctrl-pin-array
110 $ref: /schemas/types.yaml#/definitions/uint32-array
113 description: Register bit configuration for pinctrl-single,bit-per-mux
114 $ref: /schemas/types.yaml#/definitions/uint32-array
116 - description: register offset
118 - description: pin bitmask in the register
120 pinctrl-single,bias-pullup:
121 description: Optional bias pull up configuration
122 $ref: /schemas/types.yaml#/definitions/uint32-array
125 - description: enabled pull up bits
126 - description: disabled pull up bits
127 - description: bias pull up mask
129 pinctrl-single,bias-pulldown:
130 description: Optional bias pull down configuration
131 $ref: /schemas/types.yaml#/definitions/uint32-array
134 - description: enabled pull down bits
135 - description: disabled pull down bits
136 - description: bias pull down mask
138 pinctrl-single,drive-strength:
139 description: Optional drive strength configuration
140 $ref: /schemas/types.yaml#/definitions/uint32-array
142 - description: drive strength current
143 - description: drive strength mask
145 pinctrl-single,input-schmitt:
146 description: Optional input schmitt configuration
147 $ref: /schemas/types.yaml#/definitions/uint32-array
150 - description: enable bits
151 - description: disable bits
152 - description: input schmitt mask
154 pinctrl-single,low-power-mode:
155 description: Optional low power mode configuration
156 $ref: /schemas/types.yaml#/definitions/uint32-array
158 - description: low power mode value
159 - description: low power mode mask
161 pinctrl-single,slew-rate:
162 description: Optional slew rate configuration
163 $ref: /schemas/types.yaml#/definitions/uint32-array
165 - description: slew rate
166 - description: slew rate mask
169 - $ref: pinctrl.yaml#
174 - pinctrl-single,register-width
176 additionalProperties: false
181 #address-cells = <1>;
185 compatible = "pinctrl-single";
186 reg = <0x4a100040 0x0196>;
187 #address-cells = <1>;
189 #pinctrl-cells = <2>;
190 #interrupt-cells = <1>;
191 interrupt-controller;
192 pinctrl-single,register-width = <16>;
193 pinctrl-single,function-mask = <0xffff>;
194 pinctrl-single,gpio-range = <&range 0 3 0>;
196 #pinctrl-single,gpio-range-cells = <3>;
200 pinctrl-single,pins =