1// SPDX-License-Identifier: GPL-2.0-only
2/*
3 * Copyright (c) 2015, The Linux Foundation. All rights reserved.
4 */
5
6/dts-v1/;
7
8#include "msm8916-pm8916.dtsi"
9#include <dt-bindings/gpio/gpio.h>
10#include <dt-bindings/input/input.h>
11#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
12#include <dt-bindings/pinctrl/qcom,pmic-mpp.h>
13#include <dt-bindings/sound/apq8016-lpass.h>
14
15/ {
16	model = "Qualcomm Technologies, Inc. APQ 8016 SBC";
17	compatible = "qcom,apq8016-sbc", "qcom,apq8016";
18
19	aliases {
20		serial0 = &blsp1_uart2;
21		serial1 = &blsp1_uart1;
22		usid0 = &pm8916_0;
23		i2c0	= &blsp_i2c2;
24		i2c1	= &blsp_i2c6;
25		i2c3	= &blsp_i2c4;
26		spi0	= &blsp_spi5;
27		spi1	= &blsp_spi3;
28	};
29
30	chosen {
31		stdout-path = "serial0";
32	};
33
34	camera_vdddo_1v8: camera-vdddo-1v8 {
35		compatible = "regulator-fixed";
36		regulator-name = "camera_vdddo";
37		regulator-min-microvolt = <1800000>;
38		regulator-max-microvolt = <1800000>;
39		regulator-always-on;
40	};
41
42	camera_vdda_2v8: camera-vdda-2v8 {
43		compatible = "regulator-fixed";
44		regulator-name = "camera_vdda";
45		regulator-min-microvolt = <2800000>;
46		regulator-max-microvolt = <2800000>;
47		regulator-always-on;
48	};
49
50	camera_vddd_1v5: camera-vddd-1v5 {
51		compatible = "regulator-fixed";
52		regulator-name = "camera_vddd";
53		regulator-min-microvolt = <1500000>;
54		regulator-max-microvolt = <1500000>;
55		regulator-always-on;
56	};
57
58	reserved-memory {
59		ramoops@bff00000 {
60			compatible = "ramoops";
61			reg = <0x0 0xbff00000 0x0 0x100000>;
62
63			record-size = <0x20000>;
64			console-size = <0x20000>;
65			ftrace-size = <0x20000>;
66		};
67	};
68
69	usb2513 {
70		compatible = "smsc,usb3503";
71		reset-gpios = <&pm8916_gpios 3 GPIO_ACTIVE_LOW>;
72		initial-mode = <1>;
73	};
74
75	usb_id: usb-id {
76		compatible = "linux,extcon-usb-gpio";
77		id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
78		pinctrl-names = "default";
79		pinctrl-0 = <&usb_id_default>;
80	};
81
82	hdmi-out {
83		compatible = "hdmi-connector";
84		type = "a";
85
86		port {
87			hdmi_con: endpoint {
88				remote-endpoint = <&adv7533_out>;
89			};
90		};
91	};
92
93	gpio-keys {
94		compatible = "gpio-keys";
95		#address-cells = <1>;
96		#size-cells = <0>;
97		autorepeat;
98
99		pinctrl-names = "default";
100		pinctrl-0 = <&msm_key_volp_n_default>;
101
102		button@0 {
103			label = "Volume Up";
104			linux,code = <KEY_VOLUMEUP>;
105			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
106		};
107	};
108
109	leds {
110		pinctrl-names = "default";
111		pinctrl-0 = <&msmgpio_leds>,
112			    <&pm8916_gpios_leds>,
113			    <&pm8916_mpps_leds>;
114
115		compatible = "gpio-leds";
116
117		led@1 {
118			label = "apq8016-sbc:green:user1";
119			gpios = <&msmgpio 21 GPIO_ACTIVE_HIGH>;
120			linux,default-trigger = "heartbeat";
121			default-state = "off";
122		};
123
124		led@2 {
125			label = "apq8016-sbc:green:user2";
126			gpios = <&msmgpio 120 GPIO_ACTIVE_HIGH>;
127			linux,default-trigger = "mmc0";
128			default-state = "off";
129		};
130
131		led@3 {
132			label = "apq8016-sbc:green:user3";
133			gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>;
134			linux,default-trigger = "mmc1";
135			default-state = "off";
136		};
137
138		led@4 {
139			label = "apq8016-sbc:green:user4";
140			gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>;
141			linux,default-trigger = "none";
142			panic-indicator;
143			default-state = "off";
144		};
145
146		led@5 {
147			label = "apq8016-sbc:yellow:wlan";
148			gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>;
149			linux,default-trigger = "phy0tx";
150			default-state = "off";
151		};
152
153		led@6 {
154			label = "apq8016-sbc:blue:bt";
155			gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>;
156			linux,default-trigger = "bluetooth-power";
157			default-state = "off";
158		};
159	};
160};
161
162&blsp_dma {
163	status = "okay";
164};
165
166&blsp_i2c2 {
167	/* On Low speed expansion */
168	status = "okay";
169	label = "LS-I2C0";
170};
171
172&blsp_i2c4 {
173	/* On High speed expansion */
174	status = "okay";
175	label = "HS-I2C2";
176
177	adv_bridge: bridge@39 {
178		status = "okay";
179
180		compatible = "adi,adv7533";
181		reg = <0x39>;
182
183		interrupt-parent = <&msmgpio>;
184		interrupts = <31 IRQ_TYPE_EDGE_FALLING>;
185
186		adi,dsi-lanes = <4>;
187		clocks = <&rpmcc RPM_SMD_BB_CLK2>;
188		clock-names = "cec";
189
190		pd-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
191
192		avdd-supply = <&pm8916_l6>;
193		v1p2-supply = <&pm8916_l6>;
194		v3p3-supply = <&pm8916_l17>;
195
196		pinctrl-names = "default","sleep";
197		pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>;
198		pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>;
199		#sound-dai-cells = <1>;
200
201		ports {
202			#address-cells = <1>;
203			#size-cells = <0>;
204
205			port@0 {
206				reg = <0>;
207				adv7533_in: endpoint {
208					remote-endpoint = <&dsi0_out>;
209				};
210			};
211
212			port@1 {
213				reg = <1>;
214				adv7533_out: endpoint {
215					remote-endpoint = <&hdmi_con>;
216				};
217			};
218		};
219	};
220};
221
222&blsp_i2c6 {
223	/* On Low speed expansion */
224	status = "okay";
225	label = "LS-I2C1";
226};
227
228&blsp_spi3 {
229	/* On High speed expansion */
230	status = "okay";
231	label = "HS-SPI1";
232};
233
234&blsp_spi5 {
235	/* On Low speed expansion */
236	status = "okay";
237	label = "LS-SPI0";
238};
239
240&blsp1_uart1 {
241	status = "okay";
242	label = "LS-UART0";
243};
244
245&blsp1_uart2 {
246	status = "okay";
247	label = "LS-UART1";
248};
249
250&camss {
251	status = "okay";
252	ports {
253		port@0 {
254			reg = <0>;
255			csiphy0_ep: endpoint {
256				clock-lanes = <1>;
257				data-lanes = <0 2>;
258				remote-endpoint = <&ov5640_ep>;
259				status = "okay";
260			};
261		};
262	};
263};
264
265&cci {
266	status = "okay";
267};
268
269&cci_i2c0 {
270	camera_rear@3b {
271		compatible = "ovti,ov5640";
272		reg = <0x3b>;
273
274		enable-gpios = <&msmgpio 34 GPIO_ACTIVE_HIGH>;
275		reset-gpios = <&msmgpio 35 GPIO_ACTIVE_LOW>;
276		pinctrl-names = "default";
277		pinctrl-0 = <&camera_rear_default>;
278
279		clocks = <&gcc GCC_CAMSS_MCLK0_CLK>;
280		clock-names = "xclk";
281		clock-frequency = <23880000>;
282
283		vdddo-supply = <&camera_vdddo_1v8>;
284		vdda-supply = <&camera_vdda_2v8>;
285		vddd-supply = <&camera_vddd_1v5>;
286
287		/* No camera mezzanine by default */
288		status = "disabled";
289
290		port {
291			ov5640_ep: endpoint {
292				clock-lanes = <1>;
293				data-lanes = <0 2>;
294				remote-endpoint = <&csiphy0_ep>;
295			};
296		};
297	};
298};
299
300&dsi0_out {
301	data-lanes = <0 1 2 3>;
302	remote-endpoint = <&adv7533_in>;
303};
304
305&lpass {
306	status = "okay";
307};
308
309&mdss {
310	status = "okay";
311};
312
313&mpss {
314	status = "okay";
315
316	firmware-name = "qcom/apq8016/mba.mbn", "qcom/apq8016/modem.mbn";
317};
318
319&pm8916_resin {
320	status = "okay";
321	linux,code = <KEY_VOLUMEDOWN>;
322};
323
324&pronto {
325	status = "okay";
326
327	firmware-name = "qcom/apq8016/wcnss.mbn";
328};
329
330&sdhc_1 {
331	status = "okay";
332
333	pinctrl-names = "default", "sleep";
334	pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
335	pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
336};
337
338&sdhc_2 {
339	status = "okay";
340
341	pinctrl-names = "default", "sleep";
342	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
343	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
344
345	cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
346};
347
348&sound {
349	status = "okay";
350
351	pinctrl-0 = <&cdc_pdm_lines_act &ext_sec_tlmm_lines_act &ext_mclk_tlmm_lines_act>;
352	pinctrl-1 = <&cdc_pdm_lines_sus &ext_sec_tlmm_lines_sus &ext_mclk_tlmm_lines_sus>;
353	pinctrl-names = "default", "sleep";
354	qcom,model = "DB410c";
355	qcom,audio-routing =
356		"AMIC2", "MIC BIAS Internal2",
357		"AMIC3", "MIC BIAS External1";
358
359	external-dai-link@0 {
360		link-name = "ADV7533";
361		cpu {
362			sound-dai = <&lpass MI2S_QUATERNARY>;
363		};
364		codec {
365			sound-dai = <&adv_bridge 0>;
366		};
367	};
368
369	internal-codec-playback-dai-link@0 {
370		link-name = "WCD";
371		cpu {
372			sound-dai = <&lpass MI2S_PRIMARY>;
373		};
374		codec {
375			sound-dai = <&lpass_codec 0>, <&wcd_codec 0>;
376		};
377	};
378
379	internal-codec-capture-dai-link@0 {
380		link-name = "WCD-Capture";
381		cpu {
382			sound-dai = <&lpass MI2S_TERTIARY>;
383		};
384		codec {
385			sound-dai = <&lpass_codec 1>, <&wcd_codec 1>;
386		};
387	};
388};
389
390&usb {
391	status = "okay";
392	extcon = <&usb_id>, <&usb_id>;
393
394	pinctrl-names = "default", "device";
395	pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>;
396	pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>;
397};
398
399&usb_hs_phy {
400	extcon = <&usb_id>;
401};
402
403&wcd_codec {
404	clocks = <&gcc GCC_CODEC_DIGCODEC_CLK>;
405	clock-names = "mclk";
406	qcom,mbhc-vthreshold-low = <75 150 237 450 500>;
407	qcom,mbhc-vthreshold-high = <75 150 237 450 500>;
408};
409
410&wcnss_ctrl {
411	firmware-name = "qcom/apq8016/WCNSS_qcom_wlan_nv_sbc.bin";
412};
413
414/* Enable CoreSight */
415&cti0 { status = "okay"; };
416&cti1 { status = "okay"; };
417&cti12 { status = "okay"; };
418&cti13 { status = "okay"; };
419&cti14 { status = "okay"; };
420&cti15 { status = "okay"; };
421&debug0 { status = "okay"; };
422&debug1 { status = "okay"; };
423&debug2 { status = "okay"; };
424&debug3 { status = "okay"; };
425&etf { status = "okay"; };
426&etm0 { status = "okay"; };
427&etm1 { status = "okay"; };
428&etm2 { status = "okay"; };
429&etm3 { status = "okay"; };
430&etr { status = "okay"; };
431&funnel0 { status = "okay"; };
432&funnel1 { status = "okay"; };
433&replicator { status = "okay"; };
434&stm { status = "okay"; };
435&tpiu { status = "okay"; };
436
437&smd_rpm_regulators {
438	vdd_l1_l2_l3-supply = <&pm8916_s3>;
439	vdd_l4_l5_l6-supply = <&pm8916_s4>;
440	vdd_l7-supply = <&pm8916_s4>;
441
442	s3 {
443		regulator-min-microvolt = <375000>;
444		regulator-max-microvolt = <1562000>;
445	};
446
447	s4 {
448		regulator-min-microvolt = <1800000>;
449		regulator-max-microvolt = <1800000>;
450
451		regulator-always-on;
452		regulator-boot-on;
453	};
454
455	l1 {
456		regulator-min-microvolt = <375000>;
457		regulator-max-microvolt = <1525000>;
458	};
459
460	l2 {
461		regulator-min-microvolt = <1200000>;
462		regulator-max-microvolt = <1200000>;
463	};
464
465	l4 {
466		regulator-min-microvolt = <1750000>;
467		regulator-max-microvolt = <3337000>;
468	};
469
470	l5 {
471		regulator-min-microvolt = <1750000>;
472		regulator-max-microvolt = <3337000>;
473	};
474
475	l6 {
476		regulator-min-microvolt = <1800000>;
477		regulator-max-microvolt = <1800000>;
478	};
479
480	l7 {
481		regulator-min-microvolt = <1750000>;
482		regulator-max-microvolt = <3337000>;
483	};
484
485	l8 {
486		regulator-min-microvolt = <1750000>;
487		regulator-max-microvolt = <3337000>;
488	};
489
490	l9 {
491		regulator-min-microvolt = <1750000>;
492		regulator-max-microvolt = <3337000>;
493	};
494
495	l10 {
496		regulator-min-microvolt = <1750000>;
497		regulator-max-microvolt = <3337000>;
498	};
499
500	l11 {
501		regulator-min-microvolt = <1750000>;
502		regulator-max-microvolt = <3337000>;
503		regulator-allow-set-load;
504		regulator-system-load = <200000>;
505	};
506
507	l12 {
508		regulator-min-microvolt = <1750000>;
509		regulator-max-microvolt = <3337000>;
510	};
511
512	l13 {
513		regulator-min-microvolt = <1750000>;
514		regulator-max-microvolt = <3337000>;
515	};
516
517	l14 {
518		regulator-min-microvolt = <1750000>;
519		regulator-max-microvolt = <3337000>;
520	};
521
522	/**
523	 * 1.8v required on LS expansion
524	 * for mezzanine boards
525	 */
526	l15 {
527		regulator-min-microvolt = <1750000>;
528		regulator-max-microvolt = <3337000>;
529		regulator-always-on;
530	};
531
532	l16 {
533		regulator-min-microvolt = <1750000>;
534		regulator-max-microvolt = <3337000>;
535	};
536
537	l17 {
538		regulator-min-microvolt = <3300000>;
539		regulator-max-microvolt = <3300000>;
540	};
541
542	l18 {
543		regulator-min-microvolt = <1750000>;
544		regulator-max-microvolt = <3337000>;
545	};
546};
547
548/*
549 * 2mA drive strength is not enough when connecting multiple
550 * I2C devices with different pull up resistors.
551 */
552&i2c2_default {
553	drive-strength = <16>;
554};
555
556&i2c4_default {
557	drive-strength = <16>;
558};
559
560&i2c6_default {
561	drive-strength = <16>;
562};
563
564/*
565 * GPIO name legend: proper name = the GPIO line is used as GPIO
566 *         NC = not connected (pin out but not routed from the chip to
567 *              anything the board)
568 *         "[PER]" = pin is muxed for [peripheral] (not GPIO)
569 *         LSEC = Low Speed External Connector
570 *         HSEC = High Speed External Connector
571 *
572 * Line names are taken from the schematic "DragonBoard410c"
573 * dated monday, august 31, 2015. Page 5 in particular.
574 *
575 * For the lines routed to the external connectors the
576 * lines are named after the 96Boards CE Specification 1.0,
577 * Appendix "Expansion Connector Signal Description".
578 *
579 * When the 96Board naming of a line and the schematic name of
580 * the same line are in conflict, the 96Board specification
581 * takes precedence, which means that the external UART on the
582 * LSEC is named UART0 while the schematic and SoC names this
583 * UART3. This is only for the informational lines i.e. "[FOO]",
584 * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only
585 * ones actually used for GPIO.
586 */
587
588&msmgpio {
589	gpio-line-names =
590		"[UART0_TX]", /* GPIO_0, LSEC pin 5 */
591		"[UART0_RX]", /* GPIO_1, LSEC pin 7 */
592		"[UART0_CTS_N]", /* GPIO_2, LSEC pin 3 */
593		"[UART0_RTS_N]", /* GPIO_3, LSEC pin 9 */
594		"[UART1_TX]", /* GPIO_4, LSEC pin 11 */
595		"[UART1_RX]", /* GPIO_5, LSEC pin 13 */
596		"[I2C0_SDA]", /* GPIO_8, LSEC pin 17 */
597		"[I2C0_SCL]", /* GPIO_7, LSEC pin 15 */
598		"[SPI1_DOUT]", /* SPI1_MOSI, HSEC pin 1 */
599		"[SPI1_DIN]", /* SPI1_MISO, HSEC pin 11 */
600		"[SPI1_CS]", /* SPI1_CS_N, HSEC pin 7 */
601		"[SPI1_SCLK]", /* SPI1_CLK, HSEC pin 9 */
602		"GPIO-B", /* LS_EXP_GPIO_B, LSEC pin 24 */
603		"GPIO-C", /* LS_EXP_GPIO_C, LSEC pin 25 */
604		"[I2C3_SDA]", /* HSEC pin 38 */
605		"[I2C3_SCL]", /* HSEC pin 36 */
606		"[SPI0_MOSI]", /* LSEC pin 14 */
607		"[SPI0_MISO]", /* LSEC pin 10 */
608		"[SPI0_CS_N]", /* LSEC pin 12 */
609		"[SPI0_CLK]", /* LSEC pin 8 */
610		"HDMI_HPD_N", /* GPIO 20 */
611		"USR_LED_1_CTRL",
612		"[I2C1_SDA]", /* GPIO_22, LSEC pin 21 */
613		"[I2C1_SCL]", /* GPIO_23, LSEC pin 19 */
614		"GPIO-G", /* LS_EXP_GPIO_G, LSEC pin 29 */
615		"GPIO-H", /* LS_EXP_GPIO_H, LSEC pin 30 */
616		"[CSI0_MCLK]", /* HSEC pin 15 */
617		"[CSI1_MCLK]", /* HSEC pin 17 */
618		"GPIO-K", /* LS_EXP_GPIO_K, LSEC pin 33 */
619		"[I2C2_SDA]", /* HSEC pin 34 */
620		"[I2C2_SCL]", /* HSEC pin 32 */
621		"DSI2HDMI_INT_N",
622		"DSI_SW_SEL_APQ",
623		"GPIO-L", /* LS_EXP_GPIO_L, LSEC pin 34 */
624		"GPIO-J", /* LS_EXP_GPIO_J, LSEC pin 32 */
625		"GPIO-I", /* LS_EXP_GPIO_I, LSEC pin 31 */
626		"GPIO-A", /* LS_EXP_GPIO_A, LSEC pin 23 */
627		"FORCED_USB_BOOT",
628		"SD_CARD_DET_N",
629		"[WCSS_BT_SSBI]",
630		"[WCSS_WLAN_DATA_2]", /* GPIO 40 */
631		"[WCSS_WLAN_DATA_1]",
632		"[WCSS_WLAN_DATA_0]",
633		"[WCSS_WLAN_SET]",
634		"[WCSS_WLAN_CLK]",
635		"[WCSS_FM_SSBI]",
636		"[WCSS_FM_SDI]",
637		"[WCSS_BT_DAT_CTL]",
638		"[WCSS_BT_DAT_STB]",
639		"NC",
640		"NC", /* GPIO 50 */
641		"NC",
642		"NC",
643		"NC",
644		"NC",
645		"NC",
646		"NC",
647		"NC",
648		"NC",
649		"NC",
650		"NC", /* GPIO 60 */
651		"NC",
652		"NC",
653		"[CDC_PDM0_CLK]",
654		"[CDC_PDM0_SYNC]",
655		"[CDC_PDM0_TX0]",
656		"[CDC_PDM0_RX0]",
657		"[CDC_PDM0_RX1]",
658		"[CDC_PDM0_RX2]",
659		"GPIO-D", /* LS_EXP_GPIO_D, LSEC pin 26 */
660		"NC", /* GPIO 70 */
661		"NC",
662		"NC",
663		"NC",
664		"NC", /* GPIO 74 */
665		"NC",
666		"NC",
667		"NC",
668		"NC",
669		"NC",
670		"BOOT_CONFIG_0", /* GPIO 80 */
671		"BOOT_CONFIG_1",
672		"BOOT_CONFIG_2",
673		"BOOT_CONFIG_3",
674		"NC",
675		"NC",
676		"BOOT_CONFIG_5",
677		"NC",
678		"NC",
679		"NC",
680		"NC", /* GPIO 90 */
681		"NC",
682		"NC",
683		"NC",
684		"NC",
685		"NC",
686		"NC",
687		"NC",
688		"NC",
689		"NC",
690		"NC", /* GPIO 100 */
691		"NC",
692		"NC",
693		"NC",
694		"SSBI_GPS",
695		"NC",
696		"NC",
697		"KEY_VOLP_N",
698		"NC",
699		"NC",
700		"[LS_EXP_MI2S_WS]", /* GPIO 110 */
701		"NC",
702		"NC",
703		"[LS_EXP_MI2S_SCK]",
704		"[LS_EXP_MI2S_DATA0]",
705		"GPIO-E", /* LS_EXP_GPIO_E, LSEC pin 27 */
706		"NC",
707		"[DSI2HDMI_MI2S_WS]",
708		"[DSI2HDMI_MI2S_SCK]",
709		"[DSI2HDMI_MI2S_DATA0]",
710		"USR_LED_2_CTRL", /* GPIO 120 */
711		"SB_HS_ID";
712
713	msmgpio_leds: msmgpio-leds {
714		pins = "gpio21", "gpio120";
715		function = "gpio";
716
717		output-low;
718	};
719
720	usb_id_default: usb-id-default {
721		pins = "gpio121";
722		function = "gpio";
723
724		drive-strength = <8>;
725		input-enable;
726		bias-pull-up;
727	};
728
729	adv7533_int_active: adv533-int-active {
730		pins = "gpio31";
731		function = "gpio";
732
733		drive-strength = <16>;
734		bias-disable;
735	};
736
737	adv7533_int_suspend: adv7533-int-suspend {
738		pins = "gpio31";
739		function = "gpio";
740
741		drive-strength = <2>;
742		bias-disable;
743	};
744
745	adv7533_switch_active: adv7533-switch-active {
746		pins = "gpio32";
747		function = "gpio";
748
749		drive-strength = <16>;
750		bias-disable;
751	};
752
753	adv7533_switch_suspend: adv7533-switch-suspend {
754		pins = "gpio32";
755		function = "gpio";
756
757		drive-strength = <2>;
758		bias-disable;
759	};
760
761	msm_key_volp_n_default: msm-key-volp-n-default {
762		pins = "gpio107";
763		function = "gpio";
764
765		drive-strength = <8>;
766		input-enable;
767		bias-pull-up;
768	};
769};
770
771&pm8916_gpios {
772	gpio-line-names =
773		"USR_LED_3_CTRL",
774		"USR_LED_4_CTRL",
775		"USB_HUB_RESET_N_PM",
776		"USB_SW_SEL_PM";
777
778	usb_hub_reset_pm: usb-hub-reset-pm {
779		pins = "gpio3";
780		function = PMIC_GPIO_FUNC_NORMAL;
781
782		input-disable;
783		output-high;
784	};
785
786	usb_hub_reset_pm_device: usb-hub-reset-pm-device {
787		pins = "gpio3";
788		function = PMIC_GPIO_FUNC_NORMAL;
789
790		output-low;
791	};
792
793	usb_sw_sel_pm: usb-sw-sel-pm {
794		pins = "gpio4";
795		function = PMIC_GPIO_FUNC_NORMAL;
796
797		power-source = <PM8916_GPIO_VPH>;
798		input-disable;
799		output-high;
800	};
801
802	usb_sw_sel_pm_device: usb-sw-sel-pm-device {
803		pins = "gpio4";
804		function = PMIC_GPIO_FUNC_NORMAL;
805
806		power-source = <PM8916_GPIO_VPH>;
807		input-disable;
808		output-low;
809	};
810
811	pm8916_gpios_leds: pm8916-gpios-leds {
812		pins = "gpio1", "gpio2";
813		function = PMIC_GPIO_FUNC_NORMAL;
814
815		output-low;
816	};
817};
818
819&pm8916_mpps {
820	gpio-line-names =
821		"VDD_PX_BIAS",
822		"WLAN_LED_CTRL",
823		"BT_LED_CTRL",
824		"GPIO-F"; /* LS_EXP_GPIO_F, LSEC pin 28 */
825
826	pinctrl-names = "default";
827	pinctrl-0 = <&ls_exp_gpio_f>;
828
829	ls_exp_gpio_f: pm8916-mpp4-state {
830		pins = "mpp4";
831		function = "digital";
832
833		output-low;
834		power-source = <PM8916_MPP_L5>;	// 1.8V
835	};
836
837	pm8916_mpps_leds: pm8916-mpps-state {
838		pins = "mpp2", "mpp3";
839		function = "digital";
840
841		output-low;
842	};
843};
844