1*c66ec88fSEmmanuel VadotST Ericsson abx500 pinmux controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotRequired properties:
4*c66ec88fSEmmanuel Vadot- compatible: "stericsson,ab8500-gpio",  "stericsson,ab8540-gpio",
5*c66ec88fSEmmanuel Vadot	      "stericsson,ab8505-gpio", "stericsson,ab9540-gpio",
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel VadotPlease refer to pinctrl-bindings.txt in this directory for details of the
8*c66ec88fSEmmanuel Vadotcommon pinctrl bindings used by client devices, including the meaning of the
9*c66ec88fSEmmanuel Vadotphrase "pin configuration node".
10*c66ec88fSEmmanuel Vadot
11*c66ec88fSEmmanuel VadotST Ericsson's pin configuration nodes use the generic pin multiplexing
12*c66ec88fSEmmanuel Vadotand pin configuration bindings, see pinctrl-bindings.txt
13*c66ec88fSEmmanuel Vadot
14*c66ec88fSEmmanuel VadotExample board file extract:
15*c66ec88fSEmmanuel Vadot
16*c66ec88fSEmmanuel Vadot&pinctrl_abx500 {
17*c66ec88fSEmmanuel Vadot	pinctrl-names = "default";
18*c66ec88fSEmmanuel Vadot	pinctrl-0 = <&sysclkreq2_default_mode>, <&sysclkreq3_default_mode>, <&gpio3_default_mode>, <&sysclkreq6_default_mode>, <&pwmout1_default_mode>, <&pwmout2_default_mode>, <&pwmout3_default_mode>, <&adi1_default_mode>, <&dmic12_default_mode>, <&dmic34_default_mode>, <&dmic56_default_mode>, <&sysclkreq5_default_mode>, <&batremn_default_mode>, <&service_default_mode>, <&pwrctrl0_default_mode>, <&pwrctrl1_default_mode>, <&pwmextvibra1_default_mode>, <&pwmextvibra2_default_mode>, <&gpio51_default_mode>, <&gpio52_default_mode>, <&gpio53_default_mode>, <&gpio54_default_mode>, <&pdmclkdat_default_mode>;
19*c66ec88fSEmmanuel Vadot
20*c66ec88fSEmmanuel Vadot	sysclkreq2 {
21*c66ec88fSEmmanuel Vadot		sysclkreq2_default_mode: sysclkreq2_default {
22*c66ec88fSEmmanuel Vadot			default_mux {
23*c66ec88fSEmmanuel Vadot				function = "sysclkreq";
24*c66ec88fSEmmanuel Vadot				groups = "sysclkreq2_d_1";
25*c66ec88fSEmmanuel Vadot			};
26*c66ec88fSEmmanuel Vadot			default_cfg {
27*c66ec88fSEmmanuel Vadot				pins = "GPIO1";
28*c66ec88fSEmmanuel Vadot				bias-disable;
29*c66ec88fSEmmanuel Vadot			};
30*c66ec88fSEmmanuel Vadot		};
31*c66ec88fSEmmanuel Vadot	};
32*c66ec88fSEmmanuel Vadot	sysclkreq3 {
33*c66ec88fSEmmanuel Vadot		sysclkreq3_default_mode: sysclkreq3_default {
34*c66ec88fSEmmanuel Vadot			default_mux {
35*c66ec88fSEmmanuel Vadot				function = "sysclkreq";
36*c66ec88fSEmmanuel Vadot				groups = "sysclkreq3_d_1";
37*c66ec88fSEmmanuel Vadot			};
38*c66ec88fSEmmanuel Vadot			default_cfg {
39*c66ec88fSEmmanuel Vadot				pins = "GPIO2";
40*c66ec88fSEmmanuel Vadot				output-low;
41*c66ec88fSEmmanuel Vadot			};
42*c66ec88fSEmmanuel Vadot		};
43*c66ec88fSEmmanuel Vadot	};
44*c66ec88fSEmmanuel Vadot	gpio3 {
45*c66ec88fSEmmanuel Vadot		gpio3_default_mode: gpio3_default {
46*c66ec88fSEmmanuel Vadot			default_mux {
47*c66ec88fSEmmanuel Vadot				function = "gpio";
48*c66ec88fSEmmanuel Vadot				groups = "gpio3_a_1";
49*c66ec88fSEmmanuel Vadot			};
50*c66ec88fSEmmanuel Vadot			default_cfg {
51*c66ec88fSEmmanuel Vadot				pins = "GPIO3";
52*c66ec88fSEmmanuel Vadot				output-low;
53*c66ec88fSEmmanuel Vadot			};
54*c66ec88fSEmmanuel Vadot		};
55*c66ec88fSEmmanuel Vadot	};
56*c66ec88fSEmmanuel Vadot	sysclkreq6 {
57*c66ec88fSEmmanuel Vadot		sysclkreq6_default_mode: sysclkreq6_default {
58*c66ec88fSEmmanuel Vadot			default_mux {
59*c66ec88fSEmmanuel Vadot				function = "sysclkreq";
60*c66ec88fSEmmanuel Vadot				groups = "sysclkreq6_d_1";
61*c66ec88fSEmmanuel Vadot			};
62*c66ec88fSEmmanuel Vadot			default_cfg {
63*c66ec88fSEmmanuel Vadot				pins = "GPIO4";
64*c66ec88fSEmmanuel Vadot				bias-disable;
65*c66ec88fSEmmanuel Vadot			};
66*c66ec88fSEmmanuel Vadot		};
67*c66ec88fSEmmanuel Vadot	};
68*c66ec88fSEmmanuel Vadot	pwmout1 {
69*c66ec88fSEmmanuel Vadot		pwmout1_default_mode: pwmout1_default {
70*c66ec88fSEmmanuel Vadot			default_mux {
71*c66ec88fSEmmanuel Vadot				function = "pwmout";
72*c66ec88fSEmmanuel Vadot				groups = "pwmout1_d_1";
73*c66ec88fSEmmanuel Vadot			};
74*c66ec88fSEmmanuel Vadot			default_cfg {
75*c66ec88fSEmmanuel Vadot				pins = "GPIO14";
76*c66ec88fSEmmanuel Vadot				output-low;
77*c66ec88fSEmmanuel Vadot			};
78*c66ec88fSEmmanuel Vadot		};
79*c66ec88fSEmmanuel Vadot	};
80*c66ec88fSEmmanuel Vadot	pwmout2 {
81*c66ec88fSEmmanuel Vadot		pwmout2_default_mode: pwmout2_default {
82*c66ec88fSEmmanuel Vadot			pwmout2_default_mux {
83*c66ec88fSEmmanuel Vadot				function = "pwmout";
84*c66ec88fSEmmanuel Vadot				groups = "pwmout2_d_1";
85*c66ec88fSEmmanuel Vadot			};
86*c66ec88fSEmmanuel Vadot			pwmout2_default_cfg {
87*c66ec88fSEmmanuel Vadot				pins = "GPIO15";
88*c66ec88fSEmmanuel Vadot				output-low;
89*c66ec88fSEmmanuel Vadot			};
90*c66ec88fSEmmanuel Vadot		};
91*c66ec88fSEmmanuel Vadot	};
92*c66ec88fSEmmanuel Vadot	pwmout3 {
93*c66ec88fSEmmanuel Vadot		pwmout3_default_mode: pwmout3_default {
94*c66ec88fSEmmanuel Vadot			pwmout3_default_mux {
95*c66ec88fSEmmanuel Vadot				function = "pwmout";
96*c66ec88fSEmmanuel Vadot				groups = "pwmout3_d_1";
97*c66ec88fSEmmanuel Vadot			};
98*c66ec88fSEmmanuel Vadot			pwmout3_default_cfg {
99*c66ec88fSEmmanuel Vadot				pins = "GPIO16";
100*c66ec88fSEmmanuel Vadot				output-low;
101*c66ec88fSEmmanuel Vadot			};
102*c66ec88fSEmmanuel Vadot		};
103*c66ec88fSEmmanuel Vadot	};
104*c66ec88fSEmmanuel Vadot	adi1 {
105*c66ec88fSEmmanuel Vadot
106*c66ec88fSEmmanuel Vadot		adi1_default_mode: adi1_default {
107*c66ec88fSEmmanuel Vadot			adi1_default_mux {
108*c66ec88fSEmmanuel Vadot				function = "adi1";
109*c66ec88fSEmmanuel Vadot				groups = "adi1_d_1";
110*c66ec88fSEmmanuel Vadot			};
111*c66ec88fSEmmanuel Vadot			adi1_default_cfg1 {
112*c66ec88fSEmmanuel Vadot				pins = "GPIO17","GPIO19","GPIO20";
113*c66ec88fSEmmanuel Vadot				bias-disable;
114*c66ec88fSEmmanuel Vadot			};
115*c66ec88fSEmmanuel Vadot			adi1_default_cfg2 {
116*c66ec88fSEmmanuel Vadot				pins = "GPIO18";
117*c66ec88fSEmmanuel Vadot				output-low;
118*c66ec88fSEmmanuel Vadot			};
119*c66ec88fSEmmanuel Vadot		};
120*c66ec88fSEmmanuel Vadot	};
121*c66ec88fSEmmanuel Vadot	dmic12 {
122*c66ec88fSEmmanuel Vadot		dmic12_default_mode: dmic12_default {
123*c66ec88fSEmmanuel Vadot			dmic12_default_mux {
124*c66ec88fSEmmanuel Vadot				function = "dmic";
125*c66ec88fSEmmanuel Vadot				groups = "dmic12_d_1";
126*c66ec88fSEmmanuel Vadot			};
127*c66ec88fSEmmanuel Vadot			dmic12_default_cfg1 {
128*c66ec88fSEmmanuel Vadot				pins = "GPIO27";
129*c66ec88fSEmmanuel Vadot				output-low;
130*c66ec88fSEmmanuel Vadot			};
131*c66ec88fSEmmanuel Vadot			dmic12_default_cfg2 {
132*c66ec88fSEmmanuel Vadot				pins = "GPIO28";
133*c66ec88fSEmmanuel Vadot				bias-disable;
134*c66ec88fSEmmanuel Vadot			};
135*c66ec88fSEmmanuel Vadot		};
136*c66ec88fSEmmanuel Vadot	};
137*c66ec88fSEmmanuel Vadot	dmic34 {
138*c66ec88fSEmmanuel Vadot		dmic34_default_mode: dmic34_default {
139*c66ec88fSEmmanuel Vadot			dmic34_default_mux {
140*c66ec88fSEmmanuel Vadot				function = "dmic";
141*c66ec88fSEmmanuel Vadot				groups = "dmic34_d_1";
142*c66ec88fSEmmanuel Vadot			};
143*c66ec88fSEmmanuel Vadot			dmic34_default_cfg1 {
144*c66ec88fSEmmanuel Vadot				pins = "GPIO29";
145*c66ec88fSEmmanuel Vadot				output-low;
146*c66ec88fSEmmanuel Vadot			};
147*c66ec88fSEmmanuel Vadot			dmic34_default_cfg2 {
148*c66ec88fSEmmanuel Vadot				pins = "GPIO30";
149*c66ec88fSEmmanuel Vadot				bias-disable;{
150*c66ec88fSEmmanuel Vadot
151*c66ec88fSEmmanuel Vadot			};
152*c66ec88fSEmmanuel Vadot		};
153*c66ec88fSEmmanuel Vadot	};
154*c66ec88fSEmmanuel Vadot	dmic56 {
155*c66ec88fSEmmanuel Vadot		dmic56_default_mode: dmic56_default {
156*c66ec88fSEmmanuel Vadot			dmic56_default_mux {
157*c66ec88fSEmmanuel Vadot				function = "dmic";
158*c66ec88fSEmmanuel Vadot				groups = "dmic56_d_1";
159*c66ec88fSEmmanuel Vadot			};
160*c66ec88fSEmmanuel Vadot			dmic56_default_cfg1 {
161*c66ec88fSEmmanuel Vadot				pins = "GPIO31";
162*c66ec88fSEmmanuel Vadot				output-low;
163*c66ec88fSEmmanuel Vadot			};
164*c66ec88fSEmmanuel Vadot			dmic56_default_cfg2 {
165*c66ec88fSEmmanuel Vadot				pins = "GPIO32";
166*c66ec88fSEmmanuel Vadot				bias-disable;
167*c66ec88fSEmmanuel Vadot			};
168*c66ec88fSEmmanuel Vadot		};
169*c66ec88fSEmmanuel Vadot	};
170*c66ec88fSEmmanuel Vadot	sysclkreq5 {
171*c66ec88fSEmmanuel Vadot		sysclkreq5_default_mode: sysclkreq5_default {
172*c66ec88fSEmmanuel Vadot			sysclkreq5_default_mux {
173*c66ec88fSEmmanuel Vadot				function = "sysclkreq";
174*c66ec88fSEmmanuel Vadot				groups = "sysclkreq5_d_1";
175*c66ec88fSEmmanuel Vadot			};
176*c66ec88fSEmmanuel Vadot			sysclkreq5_default_cfg {
177*c66ec88fSEmmanuel Vadot				pins = "GPIO42";
178*c66ec88fSEmmanuel Vadot				output-low;
179*c66ec88fSEmmanuel Vadot			};
180*c66ec88fSEmmanuel Vadot		};
181*c66ec88fSEmmanuel Vadot	};
182*c66ec88fSEmmanuel Vadot	batremn {
183*c66ec88fSEmmanuel Vadot		batremn_default_mode: batremn_default {
184*c66ec88fSEmmanuel Vadot			batremn_default_mux {
185*c66ec88fSEmmanuel Vadot				function = "batremn";
186*c66ec88fSEmmanuel Vadot				groups = "batremn_d_1";
187*c66ec88fSEmmanuel Vadot			};
188*c66ec88fSEmmanuel Vadot			batremn_default_cfg {
189*c66ec88fSEmmanuel Vadot				pins = "GPIO43";
190*c66ec88fSEmmanuel Vadot				bias-disable;
191*c66ec88fSEmmanuel Vadot			};
192*c66ec88fSEmmanuel Vadot		};
193*c66ec88fSEmmanuel Vadot	};
194*c66ec88fSEmmanuel Vadot	service {
195*c66ec88fSEmmanuel Vadot		service_default_mode: service_default {
196*c66ec88fSEmmanuel Vadot			service_default_mux {
197*c66ec88fSEmmanuel Vadot				function = "service";
198*c66ec88fSEmmanuel Vadot				groups = "service_d_1";
199*c66ec88fSEmmanuel Vadot			};
200*c66ec88fSEmmanuel Vadot			service_default_cfg {
201*c66ec88fSEmmanuel Vadot				pins = "GPIO44";
202*c66ec88fSEmmanuel Vadot				bias-disable;
203*c66ec88fSEmmanuel Vadot			};
204*c66ec88fSEmmanuel Vadot		};
205*c66ec88fSEmmanuel Vadot	};
206*c66ec88fSEmmanuel Vadot	pwrctrl0 {
207*c66ec88fSEmmanuel Vadot		pwrctrl0_default_mux: pwrctrl0_mux {
208*c66ec88fSEmmanuel Vadot			pwrctrl0_default_mux {
209*c66ec88fSEmmanuel Vadot				function = "pwrctrl";
210*c66ec88fSEmmanuel Vadot				groups = "pwrctrl0_d_1";
211*c66ec88fSEmmanuel Vadot			};
212*c66ec88fSEmmanuel Vadot		};
213*c66ec88fSEmmanuel Vadot		pwrctrl0_default_mode: pwrctrl0_default {
214*c66ec88fSEmmanuel Vadot			pwrctrl0_default_cfg {
215*c66ec88fSEmmanuel Vadot				pins = "GPIO45";
216*c66ec88fSEmmanuel Vadot				bias-disable;
217*c66ec88fSEmmanuel Vadot			};
218*c66ec88fSEmmanuel Vadot		};
219*c66ec88fSEmmanuel Vadot	};
220*c66ec88fSEmmanuel Vadot	pwrctrl1 {
221*c66ec88fSEmmanuel Vadot		pwrctrl1_default_mux: pwrctrl1_mux {
222*c66ec88fSEmmanuel Vadot			pwrctrl1_default_mux {
223*c66ec88fSEmmanuel Vadot				function = "pwrctrl";
224*c66ec88fSEmmanuel Vadot				groups = "pwrctrl1_d_1";
225*c66ec88fSEmmanuel Vadot			};
226*c66ec88fSEmmanuel Vadot		};
227*c66ec88fSEmmanuel Vadot		pwrctrl1_default_mode: pwrctrl1_default {
228*c66ec88fSEmmanuel Vadot			pwrctrl1_default_cfg {
229*c66ec88fSEmmanuel Vadot				pins = "GPIO46";
230*c66ec88fSEmmanuel Vadot				bias-disable;
231*c66ec88fSEmmanuel Vadot			};
232*c66ec88fSEmmanuel Vadot		};
233*c66ec88fSEmmanuel Vadot	};
234*c66ec88fSEmmanuel Vadot	pwmextvibra1 {
235*c66ec88fSEmmanuel Vadot		pwmextvibra1_default_mode: pwmextvibra1_default {
236*c66ec88fSEmmanuel Vadot			pwmextvibra1_default_mux {
237*c66ec88fSEmmanuel Vadot				function = "pwmextvibra";
238*c66ec88fSEmmanuel Vadot				groups = "pwmextvibra1_d_1";
239*c66ec88fSEmmanuel Vadot			};
240*c66ec88fSEmmanuel Vadot			pwmextvibra1_default_cfg {
241*c66ec88fSEmmanuel Vadot				pins = "GPIO47";
242*c66ec88fSEmmanuel Vadot				bias-disable;
243*c66ec88fSEmmanuel Vadot			};
244*c66ec88fSEmmanuel Vadot		};
245*c66ec88fSEmmanuel Vadot	};
246*c66ec88fSEmmanuel Vadot	pwmextvibra2 {
247*c66ec88fSEmmanuel Vadot		pwmextvibra2_default_mode: pwmextvibra2_default {
248*c66ec88fSEmmanuel Vadot			pwmextvibra2_default_mux {
249*c66ec88fSEmmanuel Vadot				function = "pwmextvibra";
250*c66ec88fSEmmanuel Vadot				groups = "pwmextvibra2_d_1";
251*c66ec88fSEmmanuel Vadot			};
252*c66ec88fSEmmanuel Vadot			pwmextvibra1_default_cfg {
253*c66ec88fSEmmanuel Vadot				pins = "GPIO48";
254*c66ec88fSEmmanuel Vadot				bias-disable;
255*c66ec88fSEmmanuel Vadot			};
256*c66ec88fSEmmanuel Vadot		};
257*c66ec88fSEmmanuel Vadot	};
258*c66ec88fSEmmanuel Vadot	gpio51 {
259*c66ec88fSEmmanuel Vadot		gpio51_default_mode: gpio51_default {
260*c66ec88fSEmmanuel Vadot				gpio51_default_mux {
261*c66ec88fSEmmanuel Vadot				function = "gpio";
262*c66ec88fSEmmanuel Vadot				groups = "gpio51_a_1";
263*c66ec88fSEmmanuel Vadot			};
264*c66ec88fSEmmanuel Vadot			gpio51_default_cfg {
265*c66ec88fSEmmanuel Vadot				pins = "GPIO51";
266*c66ec88fSEmmanuel Vadot				output-low;
267*c66ec88fSEmmanuel Vadot			};
268*c66ec88fSEmmanuel Vadot		};
269*c66ec88fSEmmanuel Vadot	};
270*c66ec88fSEmmanuel Vadot	gpio52 {
271*c66ec88fSEmmanuel Vadot		gpio52_default_mode: gpio52_default {
272*c66ec88fSEmmanuel Vadot			gpio52_default_mux {
273*c66ec88fSEmmanuel Vadot				function = "gpio";
274*c66ec88fSEmmanuel Vadot				groups = "gpio52_a_1";
275*c66ec88fSEmmanuel Vadot			};
276*c66ec88fSEmmanuel Vadot			gpio52_default_cfg {
277*c66ec88fSEmmanuel Vadot				pins = "GPIO52";
278*c66ec88fSEmmanuel Vadot				bias-pull-down;
279*c66ec88fSEmmanuel Vadot			};
280*c66ec88fSEmmanuel Vadot		};
281*c66ec88fSEmmanuel Vadot	};
282*c66ec88fSEmmanuel Vadot	gpio53 {
283*c66ec88fSEmmanuel Vadot		gpio53_default_mode: gpio53_default {
284*c66ec88fSEmmanuel Vadot			gpio53_default_mux {
285*c66ec88fSEmmanuel Vadot				function = "gpio";
286*c66ec88fSEmmanuel Vadot				groups = "gpio53_a_1";
287*c66ec88fSEmmanuel Vadot			};
288*c66ec88fSEmmanuel Vadot			gpio53_default_cfg {
289*c66ec88fSEmmanuel Vadot				pins = "GPIO53";
290*c66ec88fSEmmanuel Vadot				bias-pull-down;
291*c66ec88fSEmmanuel Vadot			};
292*c66ec88fSEmmanuel Vadot		};
293*c66ec88fSEmmanuel Vadot	};
294*c66ec88fSEmmanuel Vadot	gpio54 {
295*c66ec88fSEmmanuel Vadot		gpio54_default_mode: gpio54_default {
296*c66ec88fSEmmanuel Vadot			gpio54_default_mux {
297*c66ec88fSEmmanuel Vadot				function = "gpio";
298*c66ec88fSEmmanuel Vadot				groups = "gpio54_a_1";
299*c66ec88fSEmmanuel Vadot			};
300*c66ec88fSEmmanuel Vadot			gpio54_default_cfg {
301*c66ec88fSEmmanuel Vadot				pins = "GPIO54";
302*c66ec88fSEmmanuel Vadot				output-low;
303*c66ec88fSEmmanuel Vadot			};
304*c66ec88fSEmmanuel Vadot		};
305*c66ec88fSEmmanuel Vadot	};
306*c66ec88fSEmmanuel Vadot	pdmclkdat {
307*c66ec88fSEmmanuel Vadot		pdmclkdat_default_mode: pdmclkdat_default {
308*c66ec88fSEmmanuel Vadot			pdmclkdat_default_mux {
309*c66ec88fSEmmanuel Vadot				function = "pdm";
310*c66ec88fSEmmanuel Vadot				groups = "pdmclkdat_d_1";
311*c66ec88fSEmmanuel Vadot			};
312*c66ec88fSEmmanuel Vadot			pdmclkdat_default_cfg {
313*c66ec88fSEmmanuel Vadot				pins = "GPIO55", "GPIO56";
314*c66ec88fSEmmanuel Vadot				bias-disable;
315*c66ec88fSEmmanuel Vadot			};
316*c66ec88fSEmmanuel Vadot		};
317*c66ec88fSEmmanuel Vadot	};
318*c66ec88fSEmmanuel Vadot};
319