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