1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0-or-later
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright 2014 Linaro Ltd.
4*724ba675SRob Herring */
5*724ba675SRob Herring
6*724ba675SRob Herring#include "ste-ab8500.dtsi"
7*724ba675SRob Herring
8*724ba675SRob Herring/ {
9*724ba675SRob Herring	soc {
10*724ba675SRob Herring		prcmu@80157000 {
11*724ba675SRob Herring			ab8500 {
12*724ba675SRob Herring				gpio {
13*724ba675SRob Herring					/* Hog a few default settings */
14*724ba675SRob Herring					pinctrl-names = "default";
15*724ba675SRob Herring					pinctrl-0 = <&gpio2_default_mode>,
16*724ba675SRob Herring						    <&gpio4_default_mode>,
17*724ba675SRob Herring						    <&gpio10_default_mode>,
18*724ba675SRob Herring						    <&gpio11_default_mode>,
19*724ba675SRob Herring						    <&gpio12_default_mode>,
20*724ba675SRob Herring						    <&gpio13_default_mode>,
21*724ba675SRob Herring						    <&gpio16_default_mode>,
22*724ba675SRob Herring						    <&gpio24_default_mode>,
23*724ba675SRob Herring						    <&gpio25_default_mode>,
24*724ba675SRob Herring						    <&gpio36_default_mode>,
25*724ba675SRob Herring						    <&gpio37_default_mode>,
26*724ba675SRob Herring						    <&gpio38_default_mode>,
27*724ba675SRob Herring						    <&gpio39_default_mode>,
28*724ba675SRob Herring						    <&gpio42_default_mode>,
29*724ba675SRob Herring						    <&gpio26_default_mode>,
30*724ba675SRob Herring						    <&gpio35_default_mode>,
31*724ba675SRob Herring						    <&ycbcr_default_mode>,
32*724ba675SRob Herring						    <&pwm_default_mode>,
33*724ba675SRob Herring						    <&adi1_default_mode>,
34*724ba675SRob Herring						    <&usbuicc_default_mode>,
35*724ba675SRob Herring						    <&dmic_default_mode>,
36*724ba675SRob Herring						    <&extcpena_default_mode>,
37*724ba675SRob Herring						    <&modsclsda_default_mode>;
38*724ba675SRob Herring
39*724ba675SRob Herring					/*
40*724ba675SRob Herring					 * Pins 2, 4, 10, 11, 12, 13, 16, 24, 25, 36, 37, 38, 39 and 42
41*724ba675SRob Herring					 * are muxed in as GPIO, and configured as INPUT PULL DOWN
42*724ba675SRob Herring					 */
43*724ba675SRob Herring					gpio2 {
44*724ba675SRob Herring						gpio2_default_mode: gpio2_default {
45*724ba675SRob Herring							default_mux {
46*724ba675SRob Herring								function = "gpio";
47*724ba675SRob Herring								groups = "gpio2_a_1";
48*724ba675SRob Herring							};
49*724ba675SRob Herring							default_cfg {
50*724ba675SRob Herring								pins = "GPIO2_T9";
51*724ba675SRob Herring								input-enable;
52*724ba675SRob Herring								bias-pull-down;
53*724ba675SRob Herring							};
54*724ba675SRob Herring						};
55*724ba675SRob Herring					};
56*724ba675SRob Herring					gpio4 {
57*724ba675SRob Herring						gpio4_default_mode: gpio4_default {
58*724ba675SRob Herring							default_mux {
59*724ba675SRob Herring								function = "gpio";
60*724ba675SRob Herring								groups = "gpio4_a_1";
61*724ba675SRob Herring							};
62*724ba675SRob Herring							default_cfg {
63*724ba675SRob Herring								pins = "GPIO4_W2";
64*724ba675SRob Herring								input-enable;
65*724ba675SRob Herring								bias-pull-down;
66*724ba675SRob Herring							};
67*724ba675SRob Herring						};
68*724ba675SRob Herring					};
69*724ba675SRob Herring					gpio10 {
70*724ba675SRob Herring						gpio10_default_mode: gpio10_default {
71*724ba675SRob Herring							default_mux {
72*724ba675SRob Herring								function = "gpio";
73*724ba675SRob Herring								groups = "gpio10_d_1";
74*724ba675SRob Herring							};
75*724ba675SRob Herring							default_cfg {
76*724ba675SRob Herring								pins = "GPIO10_U17";
77*724ba675SRob Herring								input-enable;
78*724ba675SRob Herring								bias-pull-down;
79*724ba675SRob Herring							};
80*724ba675SRob Herring						};
81*724ba675SRob Herring					};
82*724ba675SRob Herring					gpio11 {
83*724ba675SRob Herring						gpio11_default_mode: gpio11_default {
84*724ba675SRob Herring							default_mux {
85*724ba675SRob Herring								function = "gpio";
86*724ba675SRob Herring								groups = "gpio11_d_1";
87*724ba675SRob Herring							};
88*724ba675SRob Herring							default_cfg {
89*724ba675SRob Herring								pins = "GPIO11_AA18";
90*724ba675SRob Herring								input-enable;
91*724ba675SRob Herring								bias-pull-down;
92*724ba675SRob Herring							};
93*724ba675SRob Herring						};
94*724ba675SRob Herring					};
95*724ba675SRob Herring					gpio12 {
96*724ba675SRob Herring						gpio12_default_mode: gpio12_default {
97*724ba675SRob Herring							default_mux {
98*724ba675SRob Herring								function = "gpio";
99*724ba675SRob Herring								groups = "gpio12_d_1";
100*724ba675SRob Herring							};
101*724ba675SRob Herring							default_cfg {
102*724ba675SRob Herring								pins = "GPIO12_U16";
103*724ba675SRob Herring								input-enable;
104*724ba675SRob Herring								bias-pull-down;
105*724ba675SRob Herring							};
106*724ba675SRob Herring						};
107*724ba675SRob Herring					};
108*724ba675SRob Herring					gpio13 {
109*724ba675SRob Herring						gpio13_default_mode: gpio13_default {
110*724ba675SRob Herring							default_mux {
111*724ba675SRob Herring								function = "gpio";
112*724ba675SRob Herring								groups = "gpio13_d_1";
113*724ba675SRob Herring							};
114*724ba675SRob Herring							default_cfg {
115*724ba675SRob Herring								pins = "GPIO13_W17";
116*724ba675SRob Herring								input-enable;
117*724ba675SRob Herring								bias-pull-down;
118*724ba675SRob Herring							};
119*724ba675SRob Herring						};
120*724ba675SRob Herring					};
121*724ba675SRob Herring					gpio16 {
122*724ba675SRob Herring						gpio16_default_mode: gpio16_default {
123*724ba675SRob Herring							default_mux {
124*724ba675SRob Herring								function = "gpio";
125*724ba675SRob Herring								groups = "gpio16_a_1";
126*724ba675SRob Herring							};
127*724ba675SRob Herring							default_cfg {
128*724ba675SRob Herring								pins = "GPIO16_F15";
129*724ba675SRob Herring								input-enable;
130*724ba675SRob Herring								bias-pull-down;
131*724ba675SRob Herring							};
132*724ba675SRob Herring						};
133*724ba675SRob Herring					};
134*724ba675SRob Herring					gpio24 {
135*724ba675SRob Herring						gpio24_default_mode: gpio24_default {
136*724ba675SRob Herring							default_mux {
137*724ba675SRob Herring								function = "gpio";
138*724ba675SRob Herring								groups = "gpio24_a_1";
139*724ba675SRob Herring							};
140*724ba675SRob Herring							default_cfg {
141*724ba675SRob Herring								pins = "GPIO24_T14";
142*724ba675SRob Herring								input-enable;
143*724ba675SRob Herring								bias-pull-down;
144*724ba675SRob Herring							};
145*724ba675SRob Herring						};
146*724ba675SRob Herring					};
147*724ba675SRob Herring					gpio25 {
148*724ba675SRob Herring						gpio25_default_mode: gpio25_default {
149*724ba675SRob Herring							default_mux {
150*724ba675SRob Herring								function = "gpio";
151*724ba675SRob Herring								groups = "gpio25_a_1";
152*724ba675SRob Herring							};
153*724ba675SRob Herring							default_cfg {
154*724ba675SRob Herring								pins = "GPIO25_R16";
155*724ba675SRob Herring								input-enable;
156*724ba675SRob Herring								bias-pull-down;
157*724ba675SRob Herring							};
158*724ba675SRob Herring						};
159*724ba675SRob Herring					};
160*724ba675SRob Herring					gpio36 {
161*724ba675SRob Herring						gpio36_default_mode: gpio36_default {
162*724ba675SRob Herring							default_mux {
163*724ba675SRob Herring								function = "gpio";
164*724ba675SRob Herring								groups = "gpio36_a_1";
165*724ba675SRob Herring							};
166*724ba675SRob Herring							default_cfg {
167*724ba675SRob Herring								pins = "GPIO36_A17";
168*724ba675SRob Herring								input-enable;
169*724ba675SRob Herring								bias-pull-down;
170*724ba675SRob Herring							};
171*724ba675SRob Herring						};
172*724ba675SRob Herring					};
173*724ba675SRob Herring					gpio37 {
174*724ba675SRob Herring						gpio37_default_mode: gpio37_default {
175*724ba675SRob Herring							default_mux {
176*724ba675SRob Herring								function = "gpio";
177*724ba675SRob Herring								groups = "gpio37_a_1";
178*724ba675SRob Herring							};
179*724ba675SRob Herring							default_cfg {
180*724ba675SRob Herring								pins = "GPIO37_E15";
181*724ba675SRob Herring								input-enable;
182*724ba675SRob Herring								bias-pull-down;
183*724ba675SRob Herring							};
184*724ba675SRob Herring						};
185*724ba675SRob Herring					};
186*724ba675SRob Herring					gpio38 {
187*724ba675SRob Herring						gpio38_default_mode: gpio38_default {
188*724ba675SRob Herring							default_mux {
189*724ba675SRob Herring								function = "gpio";
190*724ba675SRob Herring								groups = "gpio38_a_1";
191*724ba675SRob Herring							};
192*724ba675SRob Herring							default_cfg {
193*724ba675SRob Herring								pins = "GPIO38_C17";
194*724ba675SRob Herring								input-enable;
195*724ba675SRob Herring								bias-pull-down;
196*724ba675SRob Herring							};
197*724ba675SRob Herring						};
198*724ba675SRob Herring					};
199*724ba675SRob Herring					gpio39 {
200*724ba675SRob Herring						gpio39_default_mode: gpio39_default {
201*724ba675SRob Herring							default_mux {
202*724ba675SRob Herring								function = "gpio";
203*724ba675SRob Herring								groups = "gpio39_a_1";
204*724ba675SRob Herring							};
205*724ba675SRob Herring							default_cfg {
206*724ba675SRob Herring								pins = "GPIO39_E16";
207*724ba675SRob Herring								input-enable;
208*724ba675SRob Herring								bias-pull-down;
209*724ba675SRob Herring							};
210*724ba675SRob Herring						};
211*724ba675SRob Herring					};
212*724ba675SRob Herring					gpio42 {
213*724ba675SRob Herring						gpio42_default_mode: gpio42_default {
214*724ba675SRob Herring							default_mux {
215*724ba675SRob Herring								function = "gpio";
216*724ba675SRob Herring								groups = "gpio42_a_1";
217*724ba675SRob Herring							};
218*724ba675SRob Herring							default_cfg {
219*724ba675SRob Herring								pins = "GPIO42_U2";
220*724ba675SRob Herring								input-enable;
221*724ba675SRob Herring								bias-pull-down;
222*724ba675SRob Herring							};
223*724ba675SRob Herring						};
224*724ba675SRob Herring					};
225*724ba675SRob Herring					/*
226*724ba675SRob Herring					 * Pins 26 and 35 muxed in as GPIO, and configured as OUTPUT LOW
227*724ba675SRob Herring					 */
228*724ba675SRob Herring					gpio26 {
229*724ba675SRob Herring						gpio26_default_mode: gpio26_default {
230*724ba675SRob Herring							default_mux {
231*724ba675SRob Herring								function = "gpio";
232*724ba675SRob Herring								groups = "gpio26_d_1";
233*724ba675SRob Herring							};
234*724ba675SRob Herring							default_cfg {
235*724ba675SRob Herring								pins = "GPIO26_M16";
236*724ba675SRob Herring								output-low;
237*724ba675SRob Herring							};
238*724ba675SRob Herring						};
239*724ba675SRob Herring					};
240*724ba675SRob Herring					gpio35 {
241*724ba675SRob Herring						gpio35_default_mode: gpio35_default {
242*724ba675SRob Herring							default_mux {
243*724ba675SRob Herring								function = "gpio";
244*724ba675SRob Herring								groups = "gpio35_d_1";
245*724ba675SRob Herring							};
246*724ba675SRob Herring							default_cfg {
247*724ba675SRob Herring								pins = "GPIO35_W15";
248*724ba675SRob Herring								output-low;
249*724ba675SRob Herring							};
250*724ba675SRob Herring						};
251*724ba675SRob Herring					};
252*724ba675SRob Herring					/*
253*724ba675SRob Herring					 * This sets up the YCBCR connector pins, i.e. analog video out.
254*724ba675SRob Herring					 * Set as input with no bias.
255*724ba675SRob Herring					 */
256*724ba675SRob Herring					ycbcr {
257*724ba675SRob Herring						ycbcr_default_mode: ycbcr_default {
258*724ba675SRob Herring							default_mux {
259*724ba675SRob Herring								function = "ycbcr";
260*724ba675SRob Herring								groups = "ycbcr0123_d_1";
261*724ba675SRob Herring							};
262*724ba675SRob Herring							default_cfg {
263*724ba675SRob Herring								pins = "GPIO6_Y18",
264*724ba675SRob Herring									 "GPIO7_AA20",
265*724ba675SRob Herring									 "GPIO8_W18",
266*724ba675SRob Herring									 "GPIO9_AA19";
267*724ba675SRob Herring								input-enable;
268*724ba675SRob Herring								bias-disable;
269*724ba675SRob Herring							};
270*724ba675SRob Herring						};
271*724ba675SRob Herring					};
272*724ba675SRob Herring					/* This sets up the PWM pins 14 and 15 */
273*724ba675SRob Herring					pwm {
274*724ba675SRob Herring						pwm_default_mode: pwm_default {
275*724ba675SRob Herring							default_mux {
276*724ba675SRob Herring								function = "pwmout";
277*724ba675SRob Herring								groups = "pwmout1_d_1", "pwmout2_d_1";
278*724ba675SRob Herring							};
279*724ba675SRob Herring							default_cfg {
280*724ba675SRob Herring								pins = "GPIO14_F14",
281*724ba675SRob Herring									 "GPIO15_B17";
282*724ba675SRob Herring								input-enable;
283*724ba675SRob Herring								bias-pull-down;
284*724ba675SRob Herring							};
285*724ba675SRob Herring						};
286*724ba675SRob Herring					};
287*724ba675SRob Herring					/* This sets up audio interface 1 */
288*724ba675SRob Herring					adi1 {
289*724ba675SRob Herring						adi1_default_mode: adi1_default {
290*724ba675SRob Herring							default_mux {
291*724ba675SRob Herring								function = "adi1";
292*724ba675SRob Herring								groups = "adi1_d_1";
293*724ba675SRob Herring							};
294*724ba675SRob Herring							default_cfg {
295*724ba675SRob Herring								pins = "GPIO17_P5",
296*724ba675SRob Herring									 "GPIO18_R5",
297*724ba675SRob Herring									 "GPIO19_U5",
298*724ba675SRob Herring									 "GPIO20_T5";
299*724ba675SRob Herring								input-enable;
300*724ba675SRob Herring								bias-pull-down;
301*724ba675SRob Herring							};
302*724ba675SRob Herring						};
303*724ba675SRob Herring					};
304*724ba675SRob Herring					/* This sets up the USB UICC pins */
305*724ba675SRob Herring					usbuicc {
306*724ba675SRob Herring						usbuicc_default_mode: usbuicc_default {
307*724ba675SRob Herring							default_mux {
308*724ba675SRob Herring								function = "usbuicc";
309*724ba675SRob Herring								groups = "usbuicc_d_1";
310*724ba675SRob Herring							};
311*724ba675SRob Herring							default_cfg {
312*724ba675SRob Herring								pins = "GPIO21_H19",
313*724ba675SRob Herring									 "GPIO22_G20",
314*724ba675SRob Herring									 "GPIO23_G19";
315*724ba675SRob Herring								input-enable;
316*724ba675SRob Herring								bias-pull-down;
317*724ba675SRob Herring							};
318*724ba675SRob Herring						};
319*724ba675SRob Herring					};
320*724ba675SRob Herring					/* This sets up the microphone pins */
321*724ba675SRob Herring					dmic {
322*724ba675SRob Herring						dmic_default_mode: dmic_default {
323*724ba675SRob Herring							default_mux {
324*724ba675SRob Herring								function = "dmic";
325*724ba675SRob Herring								groups = "dmic12_d_1",
326*724ba675SRob Herring									 "dmic34_d_1",
327*724ba675SRob Herring									 "dmic56_d_1";
328*724ba675SRob Herring							};
329*724ba675SRob Herring							default_cfg {
330*724ba675SRob Herring								pins = "GPIO27_J6",
331*724ba675SRob Herring									 "GPIO28_K6",
332*724ba675SRob Herring									 "GPIO29_G6",
333*724ba675SRob Herring									 "GPIO30_H6",
334*724ba675SRob Herring									 "GPIO31_F5",
335*724ba675SRob Herring									 "GPIO32_G5";
336*724ba675SRob Herring								input-enable;
337*724ba675SRob Herring								bias-pull-down;
338*724ba675SRob Herring							};
339*724ba675SRob Herring						};
340*724ba675SRob Herring					};
341*724ba675SRob Herring					extcpena {
342*724ba675SRob Herring						extcpena_default_mode: extcpena_default {
343*724ba675SRob Herring							default_mux {
344*724ba675SRob Herring								function = "extcpena";
345*724ba675SRob Herring								groups = "extcpena_d_1";
346*724ba675SRob Herring							};
347*724ba675SRob Herring							default_cfg {
348*724ba675SRob Herring								pins = "GPIO34_R17";
349*724ba675SRob Herring								input-enable;
350*724ba675SRob Herring								bias-pull-down;
351*724ba675SRob Herring							};
352*724ba675SRob Herring						};
353*724ba675SRob Herring					};
354*724ba675SRob Herring					/* Modem I2C setup (SCL and SDA pins) */
355*724ba675SRob Herring					modsclsda {
356*724ba675SRob Herring						modsclsda_default_mode: modsclsda_default {
357*724ba675SRob Herring							default_mux {
358*724ba675SRob Herring								function = "modsclsda";
359*724ba675SRob Herring								groups = "modsclsda_d_1";
360*724ba675SRob Herring							};
361*724ba675SRob Herring							default_cfg {
362*724ba675SRob Herring								pins = "GPIO40_T19",
363*724ba675SRob Herring									"GPIO41_U19";
364*724ba675SRob Herring								input-enable;
365*724ba675SRob Herring								bias-pull-down;
366*724ba675SRob Herring							};
367*724ba675SRob Herring						};
368*724ba675SRob Herring					};
369*724ba675SRob Herring					/*
370*724ba675SRob Herring					 * Clock output pins associated with regulators.
371*724ba675SRob Herring					 */
372*724ba675SRob Herring					sysclkreq2 {
373*724ba675SRob Herring						sysclkreq2_default_mode: sysclkreq2_default {
374*724ba675SRob Herring							default_mux {
375*724ba675SRob Herring								function = "sysclkreq";
376*724ba675SRob Herring								groups = "sysclkreq2_d_1";
377*724ba675SRob Herring							};
378*724ba675SRob Herring							default_cfg {
379*724ba675SRob Herring								pins = "GPIO1_T10";
380*724ba675SRob Herring								input-enable;
381*724ba675SRob Herring								bias-disable;
382*724ba675SRob Herring							};
383*724ba675SRob Herring						};
384*724ba675SRob Herring						sysclkreq2_sleep_mode: sysclkreq2_sleep {
385*724ba675SRob Herring							default_mux {
386*724ba675SRob Herring								function = "gpio";
387*724ba675SRob Herring								groups = "gpio1_a_1";
388*724ba675SRob Herring							};
389*724ba675SRob Herring							default_cfg {
390*724ba675SRob Herring								pins = "GPIO1_T10";
391*724ba675SRob Herring								input-enable;
392*724ba675SRob Herring								bias-pull-down;
393*724ba675SRob Herring							};
394*724ba675SRob Herring						};
395*724ba675SRob Herring					};
396*724ba675SRob Herring					sysclkreq4 {
397*724ba675SRob Herring						sysclkreq4_default_mode: sysclkreq4_default {
398*724ba675SRob Herring							default_mux {
399*724ba675SRob Herring								function = "sysclkreq";
400*724ba675SRob Herring								groups = "sysclkreq4_d_1";
401*724ba675SRob Herring							};
402*724ba675SRob Herring							default_cfg {
403*724ba675SRob Herring								pins = "GPIO3_U9";
404*724ba675SRob Herring								input-enable;
405*724ba675SRob Herring								bias-disable;
406*724ba675SRob Herring							};
407*724ba675SRob Herring						};
408*724ba675SRob Herring						sysclkreq4_sleep_mode: sysclkreq4_sleep {
409*724ba675SRob Herring							default_mux {
410*724ba675SRob Herring								function = "gpio";
411*724ba675SRob Herring								groups = "gpio3_a_1";
412*724ba675SRob Herring							};
413*724ba675SRob Herring							default_cfg {
414*724ba675SRob Herring								pins = "GPIO3_U9";
415*724ba675SRob Herring								input-enable;
416*724ba675SRob Herring								bias-pull-down;
417*724ba675SRob Herring							};
418*724ba675SRob Herring						};
419*724ba675SRob Herring					};
420*724ba675SRob Herring				};
421*724ba675SRob Herring				/*
422*724ba675SRob Herring				 * Charging is not working on the HREF unless an actual battery is
423*724ba675SRob Herring				 * mounted, most HREFs have a DC cable in to the "battery power"
424*724ba675SRob Herring				 * which means this will only be cofusing. So do not enable charging
425*724ba675SRob Herring				 * of the HREFs.
426*724ba675SRob Herring				 */
427*724ba675SRob Herring				ab8500_fg {
428*724ba675SRob Herring					status = "disabled";
429*724ba675SRob Herring				};
430*724ba675SRob Herring				ab8500_btemp {
431*724ba675SRob Herring					status = "disabled";
432*724ba675SRob Herring				};
433*724ba675SRob Herring				ab8500_charger {
434*724ba675SRob Herring					status = "disabled";
435*724ba675SRob Herring				};
436*724ba675SRob Herring				ab8500_chargalg {
437*724ba675SRob Herring					status = "disabled";
438*724ba675SRob Herring				};
439*724ba675SRob Herring			};
440*724ba675SRob Herring		};
441*724ba675SRob Herring	};
442*724ba675SRob Herring};
443