1 == Introduction == 2 3 Hardware modules that control pin multiplexing 4 such as pull-up/down, tri-state, drive-strengt 5 controllers. Each pin controller must be repre 6 just like any other hardware module. 7 8 Hardware modules whose signals are affected by 9 designated client devices. Again, each client 10 node in device tree, just like any other hardw 11 12 For a client device to operate correctly, cert 13 set up certain specific pin configurations. So 14 single static pin configuration, e.g. set up d 15 need to reconfigure pins at run-time, for exam 16 device is inactive. Hence, each client device 17 states. The number and names of those states i 18 own binding. 19 20 The common pinctrl bindings defined in this fi 21 for client device device tree nodes to map tho 22 configuration used by those states. 23 24 Note that pin controllers themselves may also 25 For example, a pin controller may set up its o 26 driver loads. This would allow representing a 27 in a single place, rather than splitting it ac 28 nodes. The decision to do this or not somewhat 29 individual board device tree files, and any re 30 bindings for the individual client devices in 31 they require certain specific named states for 32 33 == Pinctrl client devices == 34 35 For each client device individually, every pin 36 ID. These numbers start at 0, and are contiguo 37 property exists to define the pin configuratio 38 assigned a name. When names are used, another 39 those names to the integer IDs. 40 41 Each client device's own binding determines th 42 defined in its device tree node, and whether t 43 IDs that must be provided, or whether to defin 44 must be provided. 45 46 Required properties: 47 pinctrl-0: List of phandles, each pointin 48 node. These referenced pin con 49 nodes of the pin controller th 50 entries may exist in this list 51 controllers may be configured, 52 from multiple nodes for a sing 53 contributing part of the overa 54 section of this document for d 55 pin configuration nodes. 56 57 In some cases, it may be usefu 58 to be empty. This may be requi 59 used in an SoC either without 60 pin controller does not affect 61 the binding for that IP block 62 exist, they must still be defi 63 64 Optional properties: 65 pinctrl-1: List of phandles, each pointin 66 node within a pin controller. 67 ... 68 pinctrl-n: List of phandles, each pointin 69 node within a pin controller. 70 pinctrl-names: The list of names to assign st 71 name for integer state ID 0, l 72 so on. 73 74 For example: 75 76 /* For a client device requiring named 77 device { 78 pinctrl-names = "active", "idl 79 pinctrl-0 = <&state_0_node_a>; 80 pinctrl-1 = <&state_1_node_a>, 81 }; 82 83 /* For the same device if using state 84 device { 85 pinctrl-0 = <&state_0_node_a>; 86 pinctrl-1 = <&state_1_node_a>, 87 }; 88 89 /* 90 * For an IP block whose binding suppo 91 * but in use on an SoC that doesn't h 92 */ 93 device { 94 pinctrl-names = "active", "idl 95 pinctrl-0 = <>; 96 pinctrl-1 = <>; 97 }; 98 99 == Pin controller devices == 100 101 See pinctrl.yaml 102 103 == Generic pin multiplexing node content == 104 105 See pinmux-node.yaml 106 107 == Generic pin configuration node content == 108 109 See pincfg-node.yaml
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.