1/*
2 * Copyright (c) 2013-2015, The Linux Foundation. All rights reserved.
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License version 2 and
6 * only version 2 as published by the Free Software Foundation.
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
11 * GNU General Public License for more details.
12 */
13
14&msmgpio {
15
16	blsp1_uart1_default: blsp1_uart1_default {
17		pinmux {
18			function = "blsp_uart1";
19			//	TX, RX, CTS_N, RTS_N
20			pins = "gpio0", "gpio1",
21			       "gpio2", "gpio3";
22		};
23		pinconf {
24			pins = "gpio0", "gpio1",
25			       "gpio2", "gpio3";
26			drive-strength = <16>;
27			bias-disable;
28		};
29	};
30
31	blsp1_uart1_sleep: blsp1_uart1_sleep {
32		pinmux {
33			function = "gpio";
34			pins = "gpio0", "gpio1",
35			       "gpio2", "gpio3";
36		};
37		pinconf {
38			pins = "gpio0", "gpio1",
39			       "gpio2", "gpio3";
40			drive-strength = <2>;
41			bias-pull-down;
42		};
43	};
44
45	blsp1_uart2_default: blsp1_uart2_default {
46		pinmux {
47			function = "blsp_uart2";
48			pins = "gpio4", "gpio5";
49		};
50		pinconf {
51			pins = "gpio4", "gpio5";
52			drive-strength = <16>;
53			bias-disable;
54		};
55	};
56
57	blsp1_uart2_sleep: blsp1_uart2_sleep {
58		pinmux {
59			function = "gpio";
60			pins = "gpio4", "gpio5";
61		};
62		pinconf {
63			pins = "gpio4", "gpio5";
64			drive-strength = <2>;
65			bias-pull-down;
66		};
67	};
68
69	spi1_default: spi1_default {
70		pinmux {
71			function = "blsp_spi1";
72			pins = "gpio0", "gpio1", "gpio3";
73		};
74		pinmux_cs {
75			function = "gpio";
76			pins = "gpio2";
77		};
78		pinconf {
79			pins = "gpio0", "gpio1", "gpio3";
80			drive-strength = <12>;
81			bias-disable;
82		};
83		pinconf_cs {
84			pins = "gpio2";
85			drive-strength = <16>;
86			bias-disable;
87			output-high;
88		};
89	};
90
91	spi1_sleep: spi1_sleep {
92		pinmux {
93			function = "gpio";
94			pins = "gpio0", "gpio1", "gpio2", "gpio3";
95		};
96		pinconf {
97			pins = "gpio0", "gpio1", "gpio2", "gpio3";
98			drive-strength = <2>;
99			bias-pull-down;
100		};
101	};
102
103	spi2_default: spi2_default {
104		pinmux {
105			function = "blsp_spi2";
106			pins = "gpio4", "gpio5", "gpio7";
107		};
108		pinmux_cs {
109			function = "gpio";
110			pins = "gpio6";
111		};
112		pinconf {
113			pins = "gpio4", "gpio5", "gpio7";
114			drive-strength = <12>;
115			bias-disable;
116		};
117		pinconf_cs {
118			pins = "gpio6";
119			drive-strength = <16>;
120			bias-disable;
121			output-high;
122		};
123	};
124
125	spi2_sleep: spi2_sleep {
126		pinmux {
127			function = "gpio";
128			pins = "gpio4", "gpio5", "gpio6", "gpio7";
129		};
130		pinconf {
131			pins = "gpio4", "gpio5", "gpio6", "gpio7";
132			drive-strength = <2>;
133			bias-pull-down;
134		};
135	};
136
137	spi3_default: spi3_default {
138		pinmux {
139			function = "blsp_spi3";
140			pins = "gpio8", "gpio9", "gpio11";
141		};
142		pinmux_cs {
143			function = "gpio";
144			pins = "gpio10";
145		};
146		pinconf {
147			pins = "gpio8", "gpio9", "gpio11";
148			drive-strength = <12>;
149			bias-disable;
150		};
151		pinconf_cs {
152			pins = "gpio10";
153			drive-strength = <16>;
154			bias-disable;
155			output-high;
156		};
157	};
158
159	spi3_sleep: spi3_sleep {
160		pinmux {
161			function = "gpio";
162			pins = "gpio8", "gpio9", "gpio10", "gpio11";
163		};
164		pinconf {
165			pins = "gpio8", "gpio9", "gpio10", "gpio11";
166			drive-strength = <2>;
167			bias-pull-down;
168		};
169	};
170
171	spi4_default: spi4_default {
172		pinmux {
173			function = "blsp_spi4";
174			pins = "gpio12", "gpio13", "gpio15";
175		};
176		pinmux_cs {
177			function = "gpio";
178			pins = "gpio14";
179		};
180		pinconf {
181			pins = "gpio12", "gpio13", "gpio15";
182			drive-strength = <12>;
183			bias-disable;
184		};
185		pinconf_cs {
186			pins = "gpio14";
187			drive-strength = <16>;
188			bias-disable;
189			output-high;
190		};
191	};
192
193	spi4_sleep: spi4_sleep {
194		pinmux {
195			function = "gpio";
196			pins = "gpio12", "gpio13", "gpio14", "gpio15";
197		};
198		pinconf {
199			pins = "gpio12", "gpio13", "gpio14", "gpio15";
200			drive-strength = <2>;
201			bias-pull-down;
202		};
203	};
204
205	spi5_default: spi5_default {
206		pinmux {
207			function = "blsp_spi5";
208			pins = "gpio16", "gpio17", "gpio19";
209		};
210		pinmux_cs {
211			function = "gpio";
212			pins = "gpio18";
213		};
214		pinconf {
215			pins = "gpio16", "gpio17", "gpio19";
216			drive-strength = <12>;
217			bias-disable;
218		};
219		pinconf_cs {
220			pins = "gpio18";
221			drive-strength = <16>;
222			bias-disable;
223			output-high;
224		};
225	};
226
227	spi5_sleep: spi5_sleep {
228		pinmux {
229			function = "gpio";
230			pins = "gpio16", "gpio17", "gpio18", "gpio19";
231		};
232		pinconf {
233			pins = "gpio16", "gpio17", "gpio18", "gpio19";
234			drive-strength = <2>;
235			bias-pull-down;
236		};
237	};
238
239	spi6_default: spi6_default {
240		pinmux {
241			function = "blsp_spi6";
242			pins = "gpio20", "gpio21", "gpio23";
243		};
244		pinmux_cs {
245			function = "gpio";
246			pins = "gpio22";
247		};
248		pinconf {
249			pins = "gpio20", "gpio21", "gpio23";
250			drive-strength = <12>;
251			bias-disable;
252		};
253		pinconf_cs {
254			pins = "gpio22";
255			drive-strength = <16>;
256			bias-disable;
257			output-high;
258		};
259	};
260
261	spi6_sleep: spi6_sleep {
262		pinmux {
263			function = "gpio";
264			pins = "gpio20", "gpio21", "gpio22", "gpio23";
265		};
266		pinconf {
267			pins = "gpio20", "gpio21", "gpio22", "gpio23";
268			drive-strength = <2>;
269			bias-pull-down;
270		};
271	};
272
273	i2c2_default: i2c2_default {
274		pinmux {
275			function = "blsp_i2c2";
276			pins = "gpio6", "gpio7";
277		};
278		pinconf {
279			pins = "gpio6", "gpio7";
280			drive-strength = <16>;
281			bias-disable;
282		};
283	};
284
285	i2c2_sleep: i2c2_sleep {
286		pinmux {
287			function = "gpio";
288			pins = "gpio6", "gpio7";
289		};
290		pinconf {
291			pins = "gpio6", "gpio7";
292			drive-strength = <2>;
293			bias-disable;
294		};
295	};
296
297	i2c4_default: i2c4_default {
298		pinmux {
299			function = "blsp_i2c4";
300			pins = "gpio14", "gpio15";
301		};
302		pinconf {
303			pins = "gpio14", "gpio15";
304			drive-strength = <16>;
305			bias-disable;
306		};
307	};
308
309	i2c4_sleep: i2c4_sleep {
310		pinmux {
311			function = "gpio";
312			pins = "gpio14", "gpio15";
313		};
314		pinconf {
315			pins = "gpio14", "gpio15";
316			drive-strength = <2>;
317			bias-disable;
318		};
319	};
320
321	i2c6_default: i2c6_default {
322		pinmux {
323			function = "blsp_i2c6";
324			pins = "gpio22", "gpio23";
325		};
326		pinconf {
327			pins = "gpio22", "gpio23";
328			drive-strength = <16>;
329			bias-disable;
330		};
331	};
332
333	i2c6_sleep: i2c6_sleep {
334		pinmux {
335			function = "gpio";
336			pins = "gpio22", "gpio23";
337		};
338		pinconf {
339			pins = "gpio22", "gpio23";
340			drive-strength = <2>;
341			bias-disable;
342		};
343	};
344
345	pmx_sdc1_clk {
346		sdc1_clk_on: clk_on {
347			pinmux {
348				pins = "sdc1_clk";
349			};
350			pinconf {
351				pins = "sdc1_clk";
352				bias-disable;
353				drive-strength = <16>;
354			};
355		};
356		sdc1_clk_off: clk_off {
357			pinmux {
358				pins = "sdc1_clk";
359			};
360			pinconf {
361				pins = "sdc1_clk";
362				bias-disable;
363				drive-strength = <2>;
364			};
365		};
366	};
367
368	pmx_sdc1_cmd {
369		sdc1_cmd_on: cmd_on {
370			pinmux {
371				pins = "sdc1_cmd";
372			};
373			pinconf {
374				pins = "sdc1_cmd";
375				bias-pull-up;
376				drive-strength = <10>;
377			};
378		};
379		sdc1_cmd_off: cmd_off {
380			pinmux {
381				pins = "sdc1_cmd";
382			};
383			pinconf {
384				pins = "sdc1_cmd";
385				bias-pull-up;
386				drive-strength = <2>;
387			};
388		};
389	};
390
391	pmx_sdc1_data {
392		sdc1_data_on: data_on {
393			pinmux {
394				pins = "sdc1_data";
395			};
396			pinconf {
397				pins = "sdc1_data";
398				bias-pull-up;
399				drive-strength = <10>;
400			};
401		};
402		sdc1_data_off: data_off {
403			pinmux {
404				pins = "sdc1_data";
405			};
406			pinconf {
407				pins = "sdc1_data";
408				bias-pull-up;
409				drive-strength = <2>;
410			};
411		};
412	};
413
414	pmx_sdc2_clk {
415		sdc2_clk_on: clk_on {
416			pinmux {
417				pins = "sdc2_clk";
418			};
419			pinconf {
420				pins = "sdc2_clk";
421				bias-disable;
422				drive-strength = <16>;
423			};
424		};
425		sdc2_clk_off: clk_off {
426			pinmux {
427				pins = "sdc2_clk";
428			};
429			pinconf {
430				pins = "sdc2_clk";
431				bias-disable;
432				drive-strength = <2>;
433			};
434		};
435	};
436
437	pmx_sdc2_cmd {
438		sdc2_cmd_on: cmd_on {
439			pinmux {
440				pins = "sdc2_cmd";
441			};
442			pinconf {
443				pins = "sdc2_cmd";
444				bias-pull-up;
445				drive-strength = <10>;
446			};
447		};
448		sdc2_cmd_off: cmd_off {
449			pinmux {
450				pins = "sdc2_cmd";
451			};
452			pinconf {
453				pins = "sdc2_cmd";
454				bias-pull-up;
455				drive-strength = <2>;
456			};
457		};
458	};
459
460	pmx_sdc2_data {
461		sdc2_data_on: data_on {
462			pinmux {
463				pins = "sdc2_data";
464			};
465			pinconf {
466				pins = "sdc2_data";
467				bias-pull-up;
468				drive-strength = <10>;
469			};
470		};
471		sdc2_data_off: data_off {
472			pinmux {
473				pins = "sdc2_data";
474			};
475			pinconf {
476				pins = "sdc2_data";
477				bias-pull-up;
478				drive-strength = <2>;
479			};
480		};
481	};
482
483	pmx_sdc2_cd_pin {
484		sdc2_cd_on: cd_on {
485			pinmux {
486				function = "gpio";
487				pins = "gpio38";
488			};
489			pinconf {
490				pins = "gpio38";
491				drive-strength = <2>;
492				bias-pull-up;
493			};
494		};
495		sdc2_cd_off: cd_off {
496			pinmux {
497				function = "gpio";
498				pins = "gpio38";
499			};
500			pinconf {
501				pins = "gpio38";
502				drive-strength = <2>;
503				bias-disable;
504			};
505		};
506	};
507
508	cdc-pdm-lines {
509		cdc_pdm_lines_act: pdm_lines_on {
510			pinmux {
511				function = "cdc_pdm0";
512				pins = "gpio63", "gpio64", "gpio65", "gpio66",
513				       "gpio67", "gpio68";
514			};
515			pinconf {
516				pins = "gpio63", "gpio64", "gpio65", "gpio66",
517				       "gpio67", "gpio68";
518				drive-strength = <8>;
519				bias-pull-none;
520			};
521		};
522		cdc_pdm_lines_sus: pdm_lines_off {
523			pinmux {
524				function = "cdc_pdm0";
525				pins = "gpio63", "gpio64", "gpio65", "gpio66",
526				       "gpio67", "gpio68";
527			};
528			pinconf {
529				pins = "gpio63", "gpio64", "gpio65", "gpio66",
530				       "gpio67", "gpio68";
531				drive-strength = <2>;
532				bias-disable;
533			};
534		};
535	};
536
537	ext-pri-tlmm-lines {
538		ext_pri_tlmm_lines_act: ext_pa_on {
539			pinmux {
540				function = "pri_mi2s";
541				pins = "gpio113", "gpio114", "gpio115",
542				       "gpio116";
543			};
544			pinconf {
545				pins = "gpio113", "gpio114", "gpio115",
546				       "gpio116";
547				drive-strength = <8>;
548				bias-pull-none;
549			};
550		};
551
552		ext_pri_tlmm_lines_sus: ext_pa_off {
553			pinmux {
554				function = "pri_mi2s";
555				pins = "gpio113", "gpio114", "gpio115",
556				       "gpio116";
557			};
558			pinconf {
559				pins = "gpio113", "gpio114", "gpio115",
560				       "gpio116";
561				drive-strength = <2>;
562				bias-disable;
563			};
564		};
565	};
566
567	ext-pri-ws-line {
568		ext_pri_ws_act: ext_pa_on {
569			pinmux {
570				function = "pri_mi2s_ws";
571				pins = "gpio110";
572			};
573			pinconf {
574				pins = "gpio110";
575				drive-strength = <8>;
576				bias-pull-none;
577			};
578		};
579
580		ext_pri_ws_sus: ext_pa_off {
581			pinmux {
582				function = "pri_mi2s_ws";
583				pins = "gpio110";
584			};
585			pinconf {
586				pins = "gpio110";
587				drive-strength = <2>;
588				bias-disable;
589			};
590		};
591	};
592
593	ext-mclk-tlmm-lines {
594		ext_mclk_tlmm_lines_act: mclk_lines_on {
595			pinmux {
596				function = "pri_mi2s";
597				pins = "gpio116";
598			};
599			pinconf {
600				pins = "gpio116";
601				drive-strength = <8>;
602				bias-pull-none;
603			};
604		};
605		ext_mclk_tlmm_lines_sus: mclk_lines_off {
606			pinmux {
607				function = "pri_mi2s";
608				pins = "gpio116";
609			};
610			pinconf {
611				pins = "gpio116";
612				drive-strength = <2>;
613				bias-disable;
614			};
615		};
616	};
617
618	/* secondary Mi2S */
619	ext-sec-tlmm-lines {
620		ext_sec_tlmm_lines_act: tlmm_lines_on {
621			pinmux {
622				function = "sec_mi2s";
623				pins = "gpio112", "gpio117", "gpio118",
624				       "gpio119";
625			};
626			pinconf {
627				pins = "gpio112", "gpio117", "gpio118",
628					"gpio119";
629				drive-strength = <8>;
630				bias-pull-none;
631			};
632		};
633		ext_sec_tlmm_lines_sus: tlmm_lines_off {
634			pinmux {
635				function = "sec_mi2s";
636				pins = "gpio112", "gpio117", "gpio118",
637				       "gpio119";
638			};
639			pinconf {
640				pins = "gpio112", "gpio117", "gpio118",
641					"gpio119";
642				drive-strength = <2>;
643				bias-disable;
644			};
645		};
646	};
647
648	cdc-dmic-lines {
649		cdc_dmic_lines_act: dmic_lines_on {
650			pinmux_dmic0_clk {
651				function = "dmic0_clk";
652				pins = "gpio0";
653			};
654			pinmux_dmic0_data {
655				function = "dmic0_data";
656				pins = "gpio1";
657			};
658			pinconf {
659				pins = "gpio0", "gpio1";
660				drive-strength = <8>;
661			};
662		};
663		cdc_dmic_lines_sus: dmic_lines_off {
664			pinmux_dmic0_clk {
665				function = "dmic0_clk";
666				pins = "gpio0";
667			};
668			pinmux_dmic0_data {
669				function = "dmic0_data";
670				pins = "gpio1";
671			};
672			pinconf {
673				pins = "gpio0", "gpio1";
674				drive-strength = <2>;
675				bias-disable;
676			};
677		};
678	};
679
680	wcnss_pin_a: wcnss-active {
681		pinmux {
682			pins = "gpio40", "gpio41", "gpio42", "gpio43", "gpio44";
683			function = "wcss_wlan";
684		};
685
686		pinconf {
687			pins = "gpio40", "gpio41", "gpio42", "gpio43", "gpio44";
688			drive-strength = <6>;
689			bias-pull-up;
690		};
691	};
692};
693