blob: 4946743de7b9b8be09faffb09e6d70a4186594a3 [file] [log] [blame]
Thomas Gleixnerfcaf2032019-05-27 08:55:08 +02001// SPDX-License-Identifier: GPL-2.0-or-later
Linus Walleij83200622014-02-03 14:32:20 +01002/*
3 * Copyright 2014 Linaro Ltd.
Linus Walleij83200622014-02-03 14:32:20 +01004 */
5
Stephan Gerholda46f7c62019-08-22 13:07:19 +02006#include "ste-ab8500.dtsi"
7
Linus Walleij83200622014-02-03 14:32:20 +01008/ {
9 soc {
10 prcmu@80157000 {
11 ab8500 {
12 ab8500-gpio {
13 /* Hog a few default settings */
14 pinctrl-names = "default";
15 pinctrl-0 = <&gpio2_default_mode>,
16 <&gpio4_default_mode>,
17 <&gpio10_default_mode>,
18 <&gpio11_default_mode>,
19 <&gpio12_default_mode>,
20 <&gpio13_default_mode>,
21 <&gpio16_default_mode>,
22 <&gpio24_default_mode>,
23 <&gpio25_default_mode>,
24 <&gpio36_default_mode>,
25 <&gpio37_default_mode>,
26 <&gpio38_default_mode>,
27 <&gpio39_default_mode>,
28 <&gpio42_default_mode>,
29 <&gpio26_default_mode>,
Linus Walleijfd385b32014-02-03 14:46:19 +010030 <&gpio35_default_mode>,
Linus Walleije2377c82014-02-03 14:57:22 +010031 <&ycbcr_default_mode>,
Linus Walleijb2985cf2014-02-03 15:43:22 +010032 <&pwm_default_mode>,
Linus Walleijc7bb47a2014-02-03 22:43:45 +010033 <&adi1_default_mode>,
Linus Walleij1f041592014-02-03 22:51:58 +010034 <&usbuicc_default_mode>,
Linus Walleij81d78492014-02-03 22:56:27 +010035 <&dmic_default_mode>,
Linus Walleijd88ae112014-02-03 23:02:02 +010036 <&extcpena_default_mode>,
37 <&modsclsda_default_mode>;
Linus Walleij83200622014-02-03 14:32:20 +010038
39 /*
40 * Pins 2, 4, 10, 11, 12, 13, 16, 24, 25, 36, 37, 38, 39 and 42
41 * are muxed in as GPIO, and configured as INPUT PULL DOWN
42 */
43 gpio2 {
44 gpio2_default_mode: gpio2_default {
45 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +020046 function = "gpio";
47 groups = "gpio2_a_1";
Linus Walleij83200622014-02-03 14:32:20 +010048 };
49 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +020050 pins = "GPIO2_T9";
Linus Walleij83200622014-02-03 14:32:20 +010051 input-enable;
52 bias-pull-down;
53 };
54 };
55 };
56 gpio4 {
57 gpio4_default_mode: gpio4_default {
58 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +020059 function = "gpio";
60 groups = "gpio4_a_1";
Linus Walleij83200622014-02-03 14:32:20 +010061 };
62 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +020063 pins = "GPIO4_W2";
Linus Walleij83200622014-02-03 14:32:20 +010064 input-enable;
65 bias-pull-down;
66 };
67 };
68 };
69 gpio10 {
70 gpio10_default_mode: gpio10_default {
71 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +020072 function = "gpio";
73 groups = "gpio10_d_1";
Linus Walleij83200622014-02-03 14:32:20 +010074 };
75 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +020076 pins = "GPIO10_U17";
Linus Walleij83200622014-02-03 14:32:20 +010077 input-enable;
78 bias-pull-down;
79 };
80 };
81 };
82 gpio11 {
83 gpio11_default_mode: gpio11_default {
84 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +020085 function = "gpio";
86 groups = "gpio11_d_1";
Linus Walleij83200622014-02-03 14:32:20 +010087 };
88 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +020089 pins = "GPIO11_AA18";
Linus Walleij83200622014-02-03 14:32:20 +010090 input-enable;
91 bias-pull-down;
92 };
93 };
94 };
95 gpio12 {
96 gpio12_default_mode: gpio12_default {
97 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +020098 function = "gpio";
99 groups = "gpio12_d_1";
Linus Walleij83200622014-02-03 14:32:20 +0100100 };
101 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200102 pins = "GPIO12_U16";
Linus Walleij83200622014-02-03 14:32:20 +0100103 input-enable;
104 bias-pull-down;
105 };
106 };
107 };
108 gpio13 {
109 gpio13_default_mode: gpio13_default {
110 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200111 function = "gpio";
112 groups = "gpio13_d_1";
Linus Walleij83200622014-02-03 14:32:20 +0100113 };
114 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200115 pins = "GPIO13_W17";
Linus Walleij83200622014-02-03 14:32:20 +0100116 input-enable;
117 bias-pull-down;
118 };
119 };
120 };
121 gpio16 {
122 gpio16_default_mode: gpio16_default {
123 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200124 function = "gpio";
125 groups = "gpio16_a_1";
Linus Walleij83200622014-02-03 14:32:20 +0100126 };
127 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200128 pins = "GPIO16_F15";
Linus Walleij83200622014-02-03 14:32:20 +0100129 input-enable;
130 bias-pull-down;
131 };
132 };
133 };
134 gpio24 {
135 gpio24_default_mode: gpio24_default {
136 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200137 function = "gpio";
138 groups = "gpio24_a_1";
Linus Walleij83200622014-02-03 14:32:20 +0100139 };
140 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200141 pins = "GPIO24_T14";
Linus Walleij83200622014-02-03 14:32:20 +0100142 input-enable;
143 bias-pull-down;
144 };
145 };
146 };
147 gpio25 {
148 gpio25_default_mode: gpio25_default {
149 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200150 function = "gpio";
151 groups = "gpio25_a_1";
Linus Walleij83200622014-02-03 14:32:20 +0100152 };
153 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200154 pins = "GPIO25_R16";
Linus Walleij83200622014-02-03 14:32:20 +0100155 input-enable;
156 bias-pull-down;
157 };
158 };
159 };
160 gpio36 {
161 gpio36_default_mode: gpio36_default {
162 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200163 function = "gpio";
164 groups = "gpio36_a_1";
Linus Walleij83200622014-02-03 14:32:20 +0100165 };
166 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200167 pins = "GPIO36_A17";
Linus Walleij83200622014-02-03 14:32:20 +0100168 input-enable;
169 bias-pull-down;
170 };
171 };
172 };
173 gpio37 {
174 gpio37_default_mode: gpio37_default {
175 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200176 function = "gpio";
177 groups = "gpio37_a_1";
Linus Walleij83200622014-02-03 14:32:20 +0100178 };
179 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200180 pins = "GPIO37_E15";
Linus Walleij83200622014-02-03 14:32:20 +0100181 input-enable;
182 bias-pull-down;
183 };
184 };
185 };
186 gpio38 {
187 gpio38_default_mode: gpio38_default {
188 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200189 function = "gpio";
190 groups = "gpio38_a_1";
Linus Walleij83200622014-02-03 14:32:20 +0100191 };
192 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200193 pins = "GPIO38_C17";
Linus Walleij83200622014-02-03 14:32:20 +0100194 input-enable;
195 bias-pull-down;
196 };
197 };
198 };
199 gpio39 {
200 gpio39_default_mode: gpio39_default {
201 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200202 function = "gpio";
203 groups = "gpio39_a_1";
Linus Walleij83200622014-02-03 14:32:20 +0100204 };
205 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200206 pins = "GPIO39_E16";
Linus Walleij83200622014-02-03 14:32:20 +0100207 input-enable;
208 bias-pull-down;
209 };
210 };
211 };
212 gpio42 {
213 gpio42_default_mode: gpio42_default {
214 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200215 function = "gpio";
216 groups = "gpio42_a_1";
Linus Walleij83200622014-02-03 14:32:20 +0100217 };
218 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200219 pins = "GPIO42_U2";
Linus Walleij83200622014-02-03 14:32:20 +0100220 input-enable;
221 bias-pull-down;
222 };
223 };
224 };
225 /*
226 * Pins 26 and 35 muxed in as GPIO, and configured as OUTPUT LOW
227 */
228 gpio26 {
229 gpio26_default_mode: gpio26_default {
230 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200231 function = "gpio";
232 groups = "gpio26_d_1";
Linus Walleij83200622014-02-03 14:32:20 +0100233 };
234 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200235 pins = "GPIO26_M16";
Linus Walleij83200622014-02-03 14:32:20 +0100236 output-low;
237 };
238 };
239 };
240 gpio35 {
241 gpio35_default_mode: gpio35_default {
242 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200243 function = "gpio";
244 groups = "gpio35_d_1";
Linus Walleij83200622014-02-03 14:32:20 +0100245 };
246 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200247 pins = "GPIO35_W15";
Linus Walleij83200622014-02-03 14:32:20 +0100248 output-low;
249 };
250 };
251 };
Linus Walleijfd385b32014-02-03 14:46:19 +0100252 /*
253 * This sets up the YCBCR connector pins, i.e. analog video out.
254 * Set as input with no bias.
255 */
256 ycbcr {
257 ycbcr_default_mode: ycbcr_default {
258 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200259 function = "ycbcr";
260 groups = "ycbcr0123_d_1";
Linus Walleijfd385b32014-02-03 14:46:19 +0100261 };
262 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200263 pins = "GPIO6_Y18",
Linus Walleijfd385b32014-02-03 14:46:19 +0100264 "GPIO7_AA20",
265 "GPIO8_W18",
266 "GPIO9_AA19";
267 input-enable;
268 bias-disable;
269 };
270 };
271 };
Linus Walleije2377c82014-02-03 14:57:22 +0100272 /* This sets up the PWM pins 14 and 15 */
273 pwm {
274 pwm_default_mode: pwm_default {
275 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200276 function = "pwmout";
277 groups = "pwmout1_d_1", "pwmout2_d_1";
Linus Walleije2377c82014-02-03 14:57:22 +0100278 };
279 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200280 pins = "GPIO14_F14",
Linus Walleije2377c82014-02-03 14:57:22 +0100281 "GPIO15_B17";
282 input-enable;
283 bias-pull-down;
284 };
285 };
286 };
Linus Walleijb2985cf2014-02-03 15:43:22 +0100287 /* This sets up audio interface 1 */
288 adi1 {
289 adi1_default_mode: adi1_default {
290 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200291 function = "adi1";
292 groups = "adi1_d_1";
Linus Walleijb2985cf2014-02-03 15:43:22 +0100293 };
294 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200295 pins = "GPIO17_P5",
Linus Walleijb2985cf2014-02-03 15:43:22 +0100296 "GPIO18_R5",
297 "GPIO19_U5",
298 "GPIO20_T5";
299 input-enable;
300 bias-pull-down;
301 };
302 };
303 };
Linus Walleijc7bb47a2014-02-03 22:43:45 +0100304 /* This sets up the USB UICC pins */
305 usbuicc {
306 usbuicc_default_mode: usbuicc_default {
307 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200308 function = "usbuicc";
309 groups = "usbuicc_d_1";
Linus Walleijc7bb47a2014-02-03 22:43:45 +0100310 };
311 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200312 pins = "GPIO21_H19",
Linus Walleijc7bb47a2014-02-03 22:43:45 +0100313 "GPIO22_G20",
314 "GPIO23_G19";
315 input-enable;
316 bias-pull-down;
317 };
318 };
319 };
Linus Walleij1f041592014-02-03 22:51:58 +0100320 /* This sets up the microphone pins */
321 dmic {
322 dmic_default_mode: dmic_default {
323 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200324 function = "dmic";
325 groups = "dmic12_d_1",
Linus Walleij1f041592014-02-03 22:51:58 +0100326 "dmic34_d_1",
327 "dmic56_d_1";
328 };
329 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200330 pins = "GPIO27_J6",
Linus Walleij1f041592014-02-03 22:51:58 +0100331 "GPIO28_K6",
332 "GPIO29_G6",
333 "GPIO30_H6",
334 "GPIO31_F5",
335 "GPIO32_G5";
336 input-enable;
337 bias-pull-down;
338 };
339 };
340 };
Linus Walleij81d78492014-02-03 22:56:27 +0100341 extcpena {
342 extcpena_default_mode: extcpena_default {
343 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200344 function = "extcpena";
345 groups = "extcpena_d_1";
Linus Walleij81d78492014-02-03 22:56:27 +0100346 };
347 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200348 pins = "GPIO34_R17";
Linus Walleij81d78492014-02-03 22:56:27 +0100349 input-enable;
350 bias-pull-down;
351 };
352 };
353 };
Linus Walleijd88ae112014-02-03 23:02:02 +0100354 /* Modem I2C setup (SCL and SDA pins) */
355 modsclsda {
356 modsclsda_default_mode: modsclsda_default {
357 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200358 function = "modsclsda";
359 groups = "modsclsda_d_1";
Linus Walleijd88ae112014-02-03 23:02:02 +0100360 };
361 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200362 pins = "GPIO40_T19",
Linus Walleijd88ae112014-02-03 23:02:02 +0100363 "GPIO41_U19";
364 input-enable;
365 bias-pull-down;
366 };
367 };
368 };
Linus Walleij7acacfb2014-02-03 23:16:49 +0100369 /*
370 * Clock output pins associated with regulators.
371 */
372 sysclkreq2 {
373 sysclkreq2_default_mode: sysclkreq2_default {
374 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200375 function = "sysclkreq";
376 groups = "sysclkreq2_d_1";
Linus Walleij7acacfb2014-02-03 23:16:49 +0100377 };
378 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200379 pins = "GPIO1_T10";
Linus Walleij7acacfb2014-02-03 23:16:49 +0100380 input-enable;
381 bias-disable;
382 };
383 };
384 sysclkreq2_sleep_mode: sysclkreq2_sleep {
385 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200386 function = "gpio";
387 groups = "gpio1_a_1";
Linus Walleij7acacfb2014-02-03 23:16:49 +0100388 };
389 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200390 pins = "GPIO1_T10";
Linus Walleij7acacfb2014-02-03 23:16:49 +0100391 input-enable;
392 bias-pull-down;
393 };
394 };
395 };
396 sysclkreq4 {
397 sysclkreq4_default_mode: sysclkreq4_default {
398 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200399 function = "sysclkreq";
400 groups = "sysclkreq4_d_1";
Linus Walleij7acacfb2014-02-03 23:16:49 +0100401 };
402 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200403 pins = "GPIO3_U9";
Linus Walleij7acacfb2014-02-03 23:16:49 +0100404 input-enable;
405 bias-disable;
406 };
407 };
408 sysclkreq4_sleep_mode: sysclkreq4_sleep {
409 default_mux {
Linus Walleij51d39932014-09-30 12:10:11 +0200410 function = "gpio";
411 groups = "gpio3_a_1";
Linus Walleij7acacfb2014-02-03 23:16:49 +0100412 };
413 default_cfg {
Linus Walleij0564f7d2014-09-30 12:19:40 +0200414 pins = "GPIO3_U9";
Linus Walleij7acacfb2014-02-03 23:16:49 +0100415 input-enable;
416 bias-pull-down;
417 };
418 };
419 };
Linus Walleij83200622014-02-03 14:32:20 +0100420 };
421 };
422 };
423 };
424};