Lines Matching +full:pin +full:- +full:controller
1 # SPDX-License-Identifier: GPL-2.0-only
3 ---
4 $id: http://devicetree.org/schemas/pinctrl/pinmux-node.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Generic Pin Multiplexing Node
10 - Linus Walleij <linus.walleij@linaro.org>
13 The contents of the pin configuration child nodes are defined by the binding
14 for the individual pin controller device. The pin configuration nodes need not
15 be direct children of the pin controller device; they may be grandchildren,
18 the binding for the individual pin controller device.
20 While not required to be used, there are 3 generic forms of pin muxing nodes
21 which pin controller devices can use.
23 pin multiplexing nodes:
45 pin controller hardware. For hardware where there is a large number of identical
46 pin controller instances, naming each pin and function can easily become
47 unmaintainable. This is especially the case if the same controller is used for
50 For cases like this, the pin controller driver may use pinctrl-pin-array helper
51 binding with a hardware based index and a number of pin configuration values:
55 #pinctrl-cells = <2>;
58 pinctrl-pin-array = <
67 Above #pinctrl-cells specifies the number of value cells in addition to the
68 index of the registers. This is similar to the interrupts-extended binding with
70 is already known as the defined pins are always children of the pin controller
71 node. Further having the phandle pointing to another pin controller would not
73 pin control device.
75 The index for pinctrl-pin-array must relate to the hardware for the pinctrl
76 registers, and must not be a virtual index of pin instances. The reason for
77 this is to avoid mapping of the index in the dts files and the pin controller
80 For hardware where pin multiplexing configurations have to be specified for
81 each single pin the number of required sub-nodes containing "pin" and
85 For cases like this, the pin controller driver may use the pinmux helper
86 property, where the pin identifier is provided with mux configuration settings
87 in a pinmux group. A pinmux group consists of the pin identifier and mux
91 a single pin multiplexing configuration.
99 Each individual pin controller driver bindings documentation shall specify
100 how pin IDs and pin multiplexing configuration are defined and assembled
110 - $ref: /schemas/types.yaml#/definitions/uint32-array
111 - $ref: /schemas/types.yaml#/definitions/string-array
113 The list of pin identifiers that properties in the node apply to. The
118 $ref: /schemas/types.yaml#/definitions/string-array
126 The list of numeric pin ids and their mux settings that properties in the
128 $ref: /schemas/types.yaml#/definitions/uint32-array
130 pinctrl-pin-array:
131 $ref: /schemas/types.yaml#/definitions/uint32-array