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.
35 - const: pinctrl-single
40 interrupt-controller: true
53 Number of cells. Usually 2, consisting of register offset, pin configuration
54 value, and pinmux mode. Some controllers may use 1 for just offset and value.
57 pinctrl-single,bit-per-mux:
58 description: Optional flag to indicate register controls more than one pin
61 pinctrl-single,function-mask:
62 description: Mask of the allowed register bits
63 $ref: /schemas/types.yaml#/definitions/uint32
65 pinctrl-single,function-off:
66 description: Optional function off mode for disabled state
67 $ref: /schemas/types.yaml#/definitions/uint32
69 pinctrl-single,register-width:
70 description: Width of pin specific bits in the register
71 $ref: /schemas/types.yaml#/definitions/uint32
74 pinctrl-single,gpio-range:
75 description: Optional list of pin base, nr pins & gpio function
76 $ref: /schemas/types.yaml#/definitions/phandle-array
79 - description: phandle of a gpio-range node
80 - description: pin base
81 - description: number of pins
82 - description: gpio function
85 description: No longer needed, may exist in older files for gpio-ranges
90 description: Optional node for gpio range cells
92 additionalProperties: false
94 '#pinctrl-single,gpio-range-cells':
95 description: Number of gpio range cells
97 $ref: /schemas/types.yaml#/definitions/uint32
100 '-pins(-[0-9]+)?$|-pin$':
102 Pin group node name using naming ending in -pins followed by an optional
105 additionalProperties: false
110 Array of pins as described in pinmux-node.yaml for pinctrl-pin-array
111 $ref: /schemas/types.yaml#/definitions/uint32-array
114 description: Register bit configuration for pinctrl-single,bit-per-mux
115 $ref: /schemas/types.yaml#/definitions/uint32-array
117 - description: register offset
119 - description: pin bitmask in the register
121 pinctrl-single,bias-pullup:
122 description: Optional bias pull up configuration
123 $ref: /schemas/types.yaml#/definitions/uint32-array
126 - description: enabled pull up bits
127 - description: disabled pull up bits
128 - description: bias pull up mask
130 pinctrl-single,bias-pulldown:
131 description: Optional bias pull down configuration
132 $ref: /schemas/types.yaml#/definitions/uint32-array
135 - description: enabled pull down bits
136 - description: disabled pull down bits
137 - description: bias pull down mask
139 pinctrl-single,drive-strength:
140 description: Optional drive strength configuration
141 $ref: /schemas/types.yaml#/definitions/uint32-array
143 - description: drive strength current
144 - description: drive strength mask
146 pinctrl-single,input-schmitt:
147 description: Optional input schmitt configuration
148 $ref: /schemas/types.yaml#/definitions/uint32-array
151 - description: enable bits
152 - description: disable bits
153 - description: input schmitt mask
155 pinctrl-single,low-power-mode:
156 description: Optional low power mode configuration
157 $ref: /schemas/types.yaml#/definitions/uint32-array
159 - description: low power mode value
160 - description: low power mode mask
162 pinctrl-single,slew-rate:
163 description: Optional slew rate configuration
164 $ref: /schemas/types.yaml#/definitions/uint32-array
166 - description: slew rate
167 - description: slew rate mask
170 - $ref: pinctrl.yaml#
175 - pinctrl-single,register-width
177 additionalProperties: false
182 #address-cells = <1>;
186 compatible = "pinctrl-single";
187 reg = <0x4a100040 0x0196>;
188 #address-cells = <1>;
190 #pinctrl-cells = <2>;
191 #interrupt-cells = <1>;
192 interrupt-controller;
193 pinctrl-single,register-width = <16>;
194 pinctrl-single,function-mask = <0xffff>;
195 pinctrl-single,gpio-range = <&range 0 3 0>;
197 #pinctrl-single,gpio-range-cells = <3>;
201 pinctrl-single,pins =