xref: /openbmc/linux/arch/arm/boot/dts/qcom/qcom-mdm9615-wp8548-mangoh-green.dts (revision 2612e3bbc0386368a850140a6c9b990cd496a5ec)
1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0+ OR MIT
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Device Tree Source for mangOH Green Board with WP8548 Module
4*724ba675SRob Herring *
5*724ba675SRob Herring * Copyright (C) 2016 BayLibre, SAS.
6*724ba675SRob Herring * Author : Neil Armstrong <narmstrong@baylibre.com>
7*724ba675SRob Herring */
8*724ba675SRob Herring
9*724ba675SRob Herring#include <dt-bindings/input/input.h>
10*724ba675SRob Herring
11*724ba675SRob Herring#include "qcom-mdm9615-wp8548.dtsi"
12*724ba675SRob Herring#include <dt-bindings/interrupt-controller/irq.h>
13*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
14*724ba675SRob Herring
15*724ba675SRob Herring/ {
16*724ba675SRob Herring	model = "MangOH Green with WP8548 Module";
17*724ba675SRob Herring	compatible = "swir,mangoh-green-wp8548", "swir,wp8548", "qcom,mdm9615";
18*724ba675SRob Herring
19*724ba675SRob Herring	aliases {
20*724ba675SRob Herring		spi0 = &gsbi3_spi;
21*724ba675SRob Herring		serial0 = &gsbi4_serial;
22*724ba675SRob Herring		serial1 = &gsbi5_serial;
23*724ba675SRob Herring		i2c0 = &gsbi5_i2c;
24*724ba675SRob Herring		mmc0 = &sdcc1;
25*724ba675SRob Herring	};
26*724ba675SRob Herring
27*724ba675SRob Herring	chosen {
28*724ba675SRob Herring		stdout-path = "serial1:115200n8";
29*724ba675SRob Herring	};
30*724ba675SRob Herring};
31*724ba675SRob Herring
32*724ba675SRob Herring&msmgpio {
33*724ba675SRob Herring	/* MangOH GPIO Mapping :
34*724ba675SRob Herring	 * - 2 : GPIOEXP_INT2
35*724ba675SRob Herring	 * - 7 : IOT1_GPIO2
36*724ba675SRob Herring	 * - 8 : IOT0_GPIO4
37*724ba675SRob Herring	 * - 13: IOT0_GPIO3
38*724ba675SRob Herring	 * - 21: IOT1_GPIO4
39*724ba675SRob Herring	 * - 22: IOT2_GPIO1
40*724ba675SRob Herring	 * - 23: IOT2_GPIO2
41*724ba675SRob Herring	 * - 24: IOT2_GPIO3
42*724ba675SRob Herring	 * - 25: IOT1_GPIO1
43*724ba675SRob Herring	 * - 32: IOT1_GPIO3
44*724ba675SRob Herring	 * - 33: IOT0_GPIO2
45*724ba675SRob Herring	 * - 42: IOT0_GPIO1 and SD Card Detect
46*724ba675SRob Herring	 */
47*724ba675SRob Herring
48*724ba675SRob Herring	gpioext1_pins: gpioext1-state {
49*724ba675SRob Herring		gpioext1-pins {
50*724ba675SRob Herring			pins = "gpio2";
51*724ba675SRob Herring			function = "gpio";
52*724ba675SRob Herring			bias-disable;
53*724ba675SRob Herring		};
54*724ba675SRob Herring	};
55*724ba675SRob Herring
56*724ba675SRob Herring	sdc_cd_pins: sdc-cd-state {
57*724ba675SRob Herring		sdc-cd-pins {
58*724ba675SRob Herring			pins = "gpio42";
59*724ba675SRob Herring			function = "gpio";
60*724ba675SRob Herring			drive-strength = <2>;
61*724ba675SRob Herring			bias-pull-up;
62*724ba675SRob Herring		};
63*724ba675SRob Herring	};
64*724ba675SRob Herring};
65*724ba675SRob Herring
66*724ba675SRob Herring&gsbi3_spi {
67*724ba675SRob Herring	spi@0 {
68*724ba675SRob Herring		compatible = "swir,mangoh-iotport-spi";
69*724ba675SRob Herring		spi-max-frequency = <24000000>;
70*724ba675SRob Herring		reg = <0>;
71*724ba675SRob Herring	};
72*724ba675SRob Herring};
73*724ba675SRob Herring
74*724ba675SRob Herring&gsbi5_i2c {
75*724ba675SRob Herring	mux@71 {
76*724ba675SRob Herring		compatible = "nxp,pca9548";
77*724ba675SRob Herring		#address-cells = <1>;
78*724ba675SRob Herring		#size-cells = <0>;
79*724ba675SRob Herring		reg = <0x71>;
80*724ba675SRob Herring
81*724ba675SRob Herring		i2c_iot0: i2c@0 {
82*724ba675SRob Herring			#address-cells = <1>;
83*724ba675SRob Herring			#size-cells = <0>;
84*724ba675SRob Herring			reg = <0>;
85*724ba675SRob Herring		};
86*724ba675SRob Herring
87*724ba675SRob Herring		i2c_iot1: i2c@1 {
88*724ba675SRob Herring			#address-cells = <1>;
89*724ba675SRob Herring			#size-cells = <0>;
90*724ba675SRob Herring			reg = <1>;
91*724ba675SRob Herring		};
92*724ba675SRob Herring
93*724ba675SRob Herring		i2c_iot2: i2c@2 {
94*724ba675SRob Herring			#address-cells = <1>;
95*724ba675SRob Herring			#size-cells = <0>;
96*724ba675SRob Herring			reg = <2>;
97*724ba675SRob Herring		};
98*724ba675SRob Herring
99*724ba675SRob Herring		i2c@3 {
100*724ba675SRob Herring			#address-cells = <1>;
101*724ba675SRob Herring			#size-cells = <0>;
102*724ba675SRob Herring			reg = <3>;
103*724ba675SRob Herring
104*724ba675SRob Herring			usbhub: hub@8 {
105*724ba675SRob Herring				compatible = "smsc,usb3503a";
106*724ba675SRob Herring				reg = <0x8>;
107*724ba675SRob Herring				connect-gpios = <&gpioext2 1 GPIO_ACTIVE_HIGH>;
108*724ba675SRob Herring				intn-gpios = <&gpioext2 0 GPIO_ACTIVE_HIGH>;
109*724ba675SRob Herring				initial-mode = <1>;
110*724ba675SRob Herring			};
111*724ba675SRob Herring		};
112*724ba675SRob Herring
113*724ba675SRob Herring		i2c@4 {
114*724ba675SRob Herring			#address-cells = <1>;
115*724ba675SRob Herring			#size-cells = <0>;
116*724ba675SRob Herring			reg = <4>;
117*724ba675SRob Herring
118*724ba675SRob Herring			gpioext0: pinctrl@3e {
119*724ba675SRob Herring				/* GPIO Expander 0 Mapping :
120*724ba675SRob Herring				 * - 0: ARDUINO_RESET_Level shift
121*724ba675SRob Herring				 * - 1: BattChrgr_PG_N
122*724ba675SRob Herring				 * - 2: BattGauge_GPIO
123*724ba675SRob Herring				 * - 3: LED_ON (out active high)
124*724ba675SRob Herring				 * - 4: ATmega_reset_GPIO
125*724ba675SRob Herring				 * - 5: X
126*724ba675SRob Herring				 * - 6: PCM_ANALOG_SELECT (out active high)
127*724ba675SRob Herring				 * - 7: X
128*724ba675SRob Herring				 * - 8: Board_rev_res1 (in)
129*724ba675SRob Herring				 * - 9: Board_rev_res2 (in)
130*724ba675SRob Herring				 * - 10: UART_EXP1_ENn (out active low / pull-down)
131*724ba675SRob Herring				 * - 11: UART_EXP1_IN (out pull-down)
132*724ba675SRob Herring				 * - 12: UART_EXP2_IN (out pull-down)
133*724ba675SRob Herring				 * - 13: SDIO_SEL (out pull-down)
134*724ba675SRob Herring				 * - 14: SPI_EXP1_ENn (out active low / pull-down)
135*724ba675SRob Herring				 * - 15: SPI_EXP1_IN (out pull-down)
136*724ba675SRob Herring				 */
137*724ba675SRob Herring				#gpio-cells = <2>;
138*724ba675SRob Herring				#interrupt-cells = <2>;
139*724ba675SRob Herring				compatible = "semtech,sx1509q";
140*724ba675SRob Herring				reg = <0x3e>;
141*724ba675SRob Herring				interrupt-parent = <&gpioext1>;
142*724ba675SRob Herring				interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
143*724ba675SRob Herring
144*724ba675SRob Herring				semtech,probe-reset;
145*724ba675SRob Herring
146*724ba675SRob Herring				gpio-controller;
147*724ba675SRob Herring				interrupt-controller;
148*724ba675SRob Herring			};
149*724ba675SRob Herring		};
150*724ba675SRob Herring
151*724ba675SRob Herring		i2c@5 {
152*724ba675SRob Herring			#address-cells = <1>;
153*724ba675SRob Herring			#size-cells = <0>;
154*724ba675SRob Herring			reg = <5>;
155*724ba675SRob Herring
156*724ba675SRob Herring			gpioext1: pinctrl@3f {
157*724ba675SRob Herring				/* GPIO Expander 1 Mapping :
158*724ba675SRob Herring				 * - 0: GPIOEXP_INT1
159*724ba675SRob Herring				 * - 1: Battery detect
160*724ba675SRob Herring				 * - 2: GPIO_SCF3_RESET
161*724ba675SRob Herring				 * - 3: LED_CARD_DETECT_IOT0 (in)
162*724ba675SRob Herring				 * - 4: LED_CARD_DETECT_IOT1 (in)
163*724ba675SRob Herring				 * - 5: LED_CARD_DETECT_IOT2 (in)
164*724ba675SRob Herring				 * - 6: UIM2_PWM_SELECT
165*724ba675SRob Herring				 * - 7: UIM2_M2_S_SELECT
166*724ba675SRob Herring				 * - 8: TP900
167*724ba675SRob Herring				 * - 9: SENSOR_INT1 (in)
168*724ba675SRob Herring				 * - 10: SENSOR_INT2 (in)
169*724ba675SRob Herring				 * - 11: CARD_DETECT_IOT0 (in pull-up)
170*724ba675SRob Herring				 * - 12: CARD_DETECT_IOT2 (in pull-up)
171*724ba675SRob Herring				 * - 13: CARD_DETECT_IOT1 (in pull-up)
172*724ba675SRob Herring				 * - 14: GPIOEXP_INT3 (in active low / pull-up)
173*724ba675SRob Herring				 * - 15: BattChrgr_INT_N
174*724ba675SRob Herring				 */
175*724ba675SRob Herring				pinctrl-0 = <&gpioext1_pins>;
176*724ba675SRob Herring				pinctrl-names = "default";
177*724ba675SRob Herring
178*724ba675SRob Herring				#gpio-cells = <2>;
179*724ba675SRob Herring				#interrupt-cells = <2>;
180*724ba675SRob Herring				compatible = "semtech,sx1509q";
181*724ba675SRob Herring				reg = <0x3f>;
182*724ba675SRob Herring				interrupt-parent = <&msmgpio>;
183*724ba675SRob Herring				interrupts = <0 IRQ_TYPE_EDGE_FALLING>;
184*724ba675SRob Herring
185*724ba675SRob Herring				semtech,probe-reset;
186*724ba675SRob Herring
187*724ba675SRob Herring				gpio-controller;
188*724ba675SRob Herring				interrupt-controller;
189*724ba675SRob Herring			};
190*724ba675SRob Herring		};
191*724ba675SRob Herring
192*724ba675SRob Herring		i2c@6 {
193*724ba675SRob Herring			#address-cells = <1>;
194*724ba675SRob Herring			#size-cells = <0>;
195*724ba675SRob Herring			reg = <6>;
196*724ba675SRob Herring
197*724ba675SRob Herring			gpioext2: pinctrl@70 {
198*724ba675SRob Herring				/* GPIO Expander 2 Mapping :
199*724ba675SRob Herring				 * - 0: USB_HUB_INTn
200*724ba675SRob Herring				 * - 1: HUB_CONNECT
201*724ba675SRob Herring				 * - 2: GPIO_IOT2_RESET (out active low / pull-up)
202*724ba675SRob Herring				 * - 3: GPIO_IOT1_RESET (out active low / pull-up)
203*724ba675SRob Herring				 * - 4: GPIO_IOT0_RESET (out active low / pull-up)
204*724ba675SRob Herring				 * - 5: TP901
205*724ba675SRob Herring				 * - 6: TP902
206*724ba675SRob Herring				 * - 7: TP903
207*724ba675SRob Herring				 * - 8: UART_EXP2_ENn (out active low / pull-down)
208*724ba675SRob Herring				 * - 9: PCM_EXP1_ENn (out active low)
209*724ba675SRob Herring				 * - 10: PCM_EXP1_SEL (out)
210*724ba675SRob Herring				 * - 11: ARD_FTDI
211*724ba675SRob Herring				 * - 12: TP904
212*724ba675SRob Herring				 * - 13: TP905
213*724ba675SRob Herring				 * - 14: TP906
214*724ba675SRob Herring				 * - 15: RS232_Enable (out active high / pull-up)
215*724ba675SRob Herring				 */
216*724ba675SRob Herring				#gpio-cells = <2>;
217*724ba675SRob Herring				#interrupt-cells = <2>;
218*724ba675SRob Herring				compatible = "semtech,sx1509q";
219*724ba675SRob Herring				reg = <0x70>;
220*724ba675SRob Herring				interrupt-parent = <&gpioext1>;
221*724ba675SRob Herring				interrupts = <14 IRQ_TYPE_EDGE_FALLING>;
222*724ba675SRob Herring
223*724ba675SRob Herring				semtech,probe-reset;
224*724ba675SRob Herring
225*724ba675SRob Herring				gpio-controller;
226*724ba675SRob Herring				interrupt-controller;
227*724ba675SRob Herring			};
228*724ba675SRob Herring		};
229*724ba675SRob Herring
230*724ba675SRob Herring		i2c@7 {
231*724ba675SRob Herring			#address-cells = <1>;
232*724ba675SRob Herring			#size-cells = <0>;
233*724ba675SRob Herring			reg = <7>;
234*724ba675SRob Herring		};
235*724ba675SRob Herring	};
236*724ba675SRob Herring};
237*724ba675SRob Herring
238*724ba675SRob Herring&sdcc1 {
239*724ba675SRob Herring	pinctrl-0 = <&sdc_cd_pins>;
240*724ba675SRob Herring	pinctrl-names = "default";
241*724ba675SRob Herring	disable-wp;
242*724ba675SRob Herring	cd-gpios = <&msmgpio 42 GPIO_ACTIVE_LOW>; /* Active low CD */
243*724ba675SRob Herring};
244