Commit | Line | Data |
---|---|---|
e32af889 GF |
1 | ST Ericsson Nomadik pinmux controller |
2 | ||
3 | Required properties: | |
5dc26af1 LJ |
4 | - compatible: "stericsson,db8500-pinctrl", "stericsson,db8540-pinctrl", |
5 | "stericsson,stn8815-pinctrl" | |
ab4a9362 LW |
6 | - nomadik-gpio-chips: array of phandles to the corresponding GPIO chips |
7 | (these have the register ranges used by the pin controller). | |
8 | - prcm: phandle to the PRCMU managing the back end of this pin controller | |
e32af889 GF |
9 | |
10 | Please refer to pinctrl-bindings.txt in this directory for details of the | |
11 | common pinctrl bindings used by client devices, including the meaning of the | |
12 | phrase "pin configuration node". | |
13 | ||
14 | ST Ericsson's pin configuration nodes act as a container for an arbitrary number of | |
15 | subnodes. Each of these subnodes represents some desired configuration for a | |
16 | pin, a group, or a list of pins or groups. This configuration can include the | |
17 | mux function to select on those pin(s)/group(s), and various pin configuration | |
18 | parameters, such as input, output, pull up, pull down... | |
19 | ||
20 | The name of each subnode is not important; all subnodes should be enumerated | |
2ef2a489 LW |
21 | and processed purely based on their content. The subnodes use the generic |
22 | pin multiplexing node layout from the standard pin control bindings | |
23 | (see pinctrl-bindings.txt): | |
e32af889 | 24 | |
2ef2a489 LW |
25 | Required pin multiplexing subnode properties: |
26 | - function: A string containing the name of the function to mux to the | |
e32af889 | 27 | pin or group. |
2ef2a489 LW |
28 | - groups : An array of strings. Each string contains the name of a pin |
29 | group that will be combined with the function to form a multiplexing | |
30 | set-up. | |
e32af889 | 31 | |
2ef2a489 LW |
32 | Required pin configuration subnode properties: |
33 | - pins: A string array describing the pins affected by the configuration | |
34 | in the node. | |
35 | - ste,config: Handle of pin configuration node | |
36 | (e.g. ste,config = <&slpm_in_wkup_pdis>) | |
e32af889 GF |
37 | |
38 | - ste,input : <0/1/2> | |
39 | 0: input with no pull | |
40 | 1: input with pull up, | |
41 | 2: input with pull down, | |
42 | ||
43 | - ste,output: <0/1/2> | |
44 | 0: output low, | |
45 | 1: output high, | |
46 | 2: output (value is not specified). | |
47 | ||
48 | - ste,sleep: <0/1> | |
49 | 0: sleep mode disable, | |
50 | 1: sleep mode enable. | |
51 | ||
52 | - ste,sleep-input: <0/1/2/3> | |
53 | 0: sleep input with no pull, | |
54 | 1: sleep input with pull up, | |
55 | 2: sleep input with pull down. | |
56 | 3: sleep input and keep last input configuration (no pull, pull up or pull down). | |
57 | ||
58 | - ste,sleep-output: <0/1/2> | |
59 | 0: sleep output low, | |
60 | 1: sleep output high, | |
61 | 2: sleep output (value is not specified). | |
62 | ||
63 | - ste,sleep-gpio: <0/1> | |
64 | 0: disable sleep gpio mode, | |
65 | 1: enable sleep gpio mode. | |
66 | ||
67 | - ste,sleep-wakeup: <0/1> | |
68 | 0: wake-up detection enabled, | |
69 | 1: wake-up detection disabled. | |
70 | ||
71 | - ste,sleep-pull-disable: <0/1> | |
72 | 0: GPIO pull-up or pull-down resistor is enabled, when pin is an input, | |
73 | 1: GPIO pull-up and pull-down resistor are disabled. | |
74 | ||
75 | Example board file extract: | |
76 | ||
77 | pinctrl@80157000 { | |
5dc26af1 | 78 | compatible = "stericsson,db8500-pinctrl"; |
ab4a9362 LW |
79 | nomadik-gpio-chips = <&gpio0>, <&gpio1>, <&gpio2>, <&gpio3>; |
80 | prcm = <&prcmu>; | |
e32af889 GF |
81 | |
82 | pinctrl-names = "default"; | |
83 | ||
84 | slpm_in_wkup_pdis: slpm_in_wkup_pdis { | |
85 | ste,sleep = <1>; | |
86 | ste,sleep-input = <3>; | |
87 | ste,sleep-wakeup = <1>; | |
88 | ste,sleep-pull-disable = <0>; | |
89 | }; | |
90 | ||
91 | slpm_out_hi_wkup_pdis: slpm_out_hi_wkup_pdis { | |
92 | ste,sleep = <1>; | |
93 | ste,sleep-output = <1>; | |
94 | ste,sleep-wakeup = <1>; | |
95 | ste,sleep-pull-disable = <0>; | |
96 | }; | |
97 | ||
98 | slpm_out_wkup_pdis: slpm_out_wkup_pdis { | |
99 | ste,sleep = <1>; | |
100 | ste,sleep-output = <2>; | |
101 | ste,sleep-wakeup = <1>; | |
102 | ste,sleep-pull-disable = <0>; | |
103 | }; | |
104 | ||
105 | uart0 { | |
106 | uart0_default_mux: uart0_mux { | |
107 | u0_default_mux { | |
2ef2a489 LW |
108 | function = "u0"; |
109 | pins = "u0_a_1"; | |
e32af889 GF |
110 | }; |
111 | }; | |
112 | uart0_default_mode: uart0_default { | |
113 | uart0_default_cfg1 { | |
2ef2a489 | 114 | pins = "GPIO0", "GPIO2"; |
e32af889 GF |
115 | ste,input = <1>; |
116 | }; | |
117 | ||
118 | uart0_default_cfg2 { | |
2ef2a489 | 119 | pins = "GPIO1", "GPIO3"; |
e32af889 GF |
120 | ste,output = <1>; |
121 | }; | |
122 | }; | |
123 | uart0_sleep_mode: uart0_sleep { | |
124 | uart0_sleep_cfg1 { | |
2ef2a489 | 125 | pins = "GPIO0", "GPIO2"; |
e32af889 GF |
126 | ste,config = <&slpm_in_wkup_pdis>; |
127 | }; | |
128 | uart0_sleep_cfg2 { | |
2ef2a489 | 129 | pins = "GPIO1"; |
e32af889 GF |
130 | ste,config = <&slpm_out_hi_wkup_pdis>; |
131 | }; | |
132 | uart0_sleep_cfg3 { | |
2ef2a489 | 133 | pins = "GPIO3"; |
e32af889 GF |
134 | ste,config = <&slpm_out_wkup_pdis>; |
135 | }; | |
136 | }; | |
137 | }; | |
138 | }; | |
139 | ||
140 | uart@80120000 { | |
141 | compatible = "arm,pl011", "arm,primecell"; | |
142 | reg = <0x80120000 0x1000>; | |
143 | interrupts = <0 11 0x4>; | |
144 | ||
145 | pinctrl-names = "default","sleep"; | |
146 | pinctrl-0 = <&uart0_default_mux>, <&uart0_default_mode>; | |
147 | pinctrl-1 = <&uart0_sleep_mode>; | |
148 | }; |