162306a36Sopenharmony_ci// SPDX-License-Identifier: GPL-2.0+ OR MIT 262306a36Sopenharmony_ci/* 362306a36Sopenharmony_ci * Device Tree Source for mangOH Green Board with WP8548 Module 462306a36Sopenharmony_ci * 562306a36Sopenharmony_ci * Copyright (C) 2016 BayLibre, SAS. 662306a36Sopenharmony_ci * Author : Neil Armstrong <narmstrong@baylibre.com> 762306a36Sopenharmony_ci */ 862306a36Sopenharmony_ci 962306a36Sopenharmony_ci#include <dt-bindings/input/input.h> 1062306a36Sopenharmony_ci 1162306a36Sopenharmony_ci#include "qcom-mdm9615-wp8548.dtsi" 1262306a36Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h> 1362306a36Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 1462306a36Sopenharmony_ci 1562306a36Sopenharmony_ci/ { 1662306a36Sopenharmony_ci model = "MangOH Green with WP8548 Module"; 1762306a36Sopenharmony_ci compatible = "swir,mangoh-green-wp8548", "swir,wp8548", "qcom,mdm9615"; 1862306a36Sopenharmony_ci 1962306a36Sopenharmony_ci aliases { 2062306a36Sopenharmony_ci spi0 = &gsbi3_spi; 2162306a36Sopenharmony_ci serial0 = &gsbi4_serial; 2262306a36Sopenharmony_ci serial1 = &gsbi5_serial; 2362306a36Sopenharmony_ci i2c0 = &gsbi5_i2c; 2462306a36Sopenharmony_ci mmc0 = &sdcc1; 2562306a36Sopenharmony_ci }; 2662306a36Sopenharmony_ci 2762306a36Sopenharmony_ci chosen { 2862306a36Sopenharmony_ci stdout-path = "serial1:115200n8"; 2962306a36Sopenharmony_ci }; 3062306a36Sopenharmony_ci}; 3162306a36Sopenharmony_ci 3262306a36Sopenharmony_ci&msmgpio { 3362306a36Sopenharmony_ci /* MangOH GPIO Mapping : 3462306a36Sopenharmony_ci * - 2 : GPIOEXP_INT2 3562306a36Sopenharmony_ci * - 7 : IOT1_GPIO2 3662306a36Sopenharmony_ci * - 8 : IOT0_GPIO4 3762306a36Sopenharmony_ci * - 13: IOT0_GPIO3 3862306a36Sopenharmony_ci * - 21: IOT1_GPIO4 3962306a36Sopenharmony_ci * - 22: IOT2_GPIO1 4062306a36Sopenharmony_ci * - 23: IOT2_GPIO2 4162306a36Sopenharmony_ci * - 24: IOT2_GPIO3 4262306a36Sopenharmony_ci * - 25: IOT1_GPIO1 4362306a36Sopenharmony_ci * - 32: IOT1_GPIO3 4462306a36Sopenharmony_ci * - 33: IOT0_GPIO2 4562306a36Sopenharmony_ci * - 42: IOT0_GPIO1 and SD Card Detect 4662306a36Sopenharmony_ci */ 4762306a36Sopenharmony_ci 4862306a36Sopenharmony_ci gpioext1_pins: gpioext1-state { 4962306a36Sopenharmony_ci gpioext1-pins { 5062306a36Sopenharmony_ci pins = "gpio2"; 5162306a36Sopenharmony_ci function = "gpio"; 5262306a36Sopenharmony_ci bias-disable; 5362306a36Sopenharmony_ci }; 5462306a36Sopenharmony_ci }; 5562306a36Sopenharmony_ci 5662306a36Sopenharmony_ci sdc_cd_pins: sdc-cd-state { 5762306a36Sopenharmony_ci sdc-cd-pins { 5862306a36Sopenharmony_ci pins = "gpio42"; 5962306a36Sopenharmony_ci function = "gpio"; 6062306a36Sopenharmony_ci drive-strength = <2>; 6162306a36Sopenharmony_ci bias-pull-up; 6262306a36Sopenharmony_ci }; 6362306a36Sopenharmony_ci }; 6462306a36Sopenharmony_ci}; 6562306a36Sopenharmony_ci 6662306a36Sopenharmony_ci&gsbi3_spi { 6762306a36Sopenharmony_ci spi@0 { 6862306a36Sopenharmony_ci compatible = "swir,mangoh-iotport-spi"; 6962306a36Sopenharmony_ci spi-max-frequency = <24000000>; 7062306a36Sopenharmony_ci reg = <0>; 7162306a36Sopenharmony_ci }; 7262306a36Sopenharmony_ci}; 7362306a36Sopenharmony_ci 7462306a36Sopenharmony_ci&gsbi5_i2c { 7562306a36Sopenharmony_ci mux@71 { 7662306a36Sopenharmony_ci compatible = "nxp,pca9548"; 7762306a36Sopenharmony_ci #address-cells = <1>; 7862306a36Sopenharmony_ci #size-cells = <0>; 7962306a36Sopenharmony_ci reg = <0x71>; 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci i2c_iot0: i2c@0 { 8262306a36Sopenharmony_ci #address-cells = <1>; 8362306a36Sopenharmony_ci #size-cells = <0>; 8462306a36Sopenharmony_ci reg = <0>; 8562306a36Sopenharmony_ci }; 8662306a36Sopenharmony_ci 8762306a36Sopenharmony_ci i2c_iot1: i2c@1 { 8862306a36Sopenharmony_ci #address-cells = <1>; 8962306a36Sopenharmony_ci #size-cells = <0>; 9062306a36Sopenharmony_ci reg = <1>; 9162306a36Sopenharmony_ci }; 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci i2c_iot2: i2c@2 { 9462306a36Sopenharmony_ci #address-cells = <1>; 9562306a36Sopenharmony_ci #size-cells = <0>; 9662306a36Sopenharmony_ci reg = <2>; 9762306a36Sopenharmony_ci }; 9862306a36Sopenharmony_ci 9962306a36Sopenharmony_ci i2c@3 { 10062306a36Sopenharmony_ci #address-cells = <1>; 10162306a36Sopenharmony_ci #size-cells = <0>; 10262306a36Sopenharmony_ci reg = <3>; 10362306a36Sopenharmony_ci 10462306a36Sopenharmony_ci usbhub: hub@8 { 10562306a36Sopenharmony_ci compatible = "smsc,usb3503a"; 10662306a36Sopenharmony_ci reg = <0x8>; 10762306a36Sopenharmony_ci connect-gpios = <&gpioext2 1 GPIO_ACTIVE_HIGH>; 10862306a36Sopenharmony_ci intn-gpios = <&gpioext2 0 GPIO_ACTIVE_HIGH>; 10962306a36Sopenharmony_ci initial-mode = <1>; 11062306a36Sopenharmony_ci }; 11162306a36Sopenharmony_ci }; 11262306a36Sopenharmony_ci 11362306a36Sopenharmony_ci i2c@4 { 11462306a36Sopenharmony_ci #address-cells = <1>; 11562306a36Sopenharmony_ci #size-cells = <0>; 11662306a36Sopenharmony_ci reg = <4>; 11762306a36Sopenharmony_ci 11862306a36Sopenharmony_ci gpioext0: pinctrl@3e { 11962306a36Sopenharmony_ci /* GPIO Expander 0 Mapping : 12062306a36Sopenharmony_ci * - 0: ARDUINO_RESET_Level shift 12162306a36Sopenharmony_ci * - 1: BattChrgr_PG_N 12262306a36Sopenharmony_ci * - 2: BattGauge_GPIO 12362306a36Sopenharmony_ci * - 3: LED_ON (out active high) 12462306a36Sopenharmony_ci * - 4: ATmega_reset_GPIO 12562306a36Sopenharmony_ci * - 5: X 12662306a36Sopenharmony_ci * - 6: PCM_ANALOG_SELECT (out active high) 12762306a36Sopenharmony_ci * - 7: X 12862306a36Sopenharmony_ci * - 8: Board_rev_res1 (in) 12962306a36Sopenharmony_ci * - 9: Board_rev_res2 (in) 13062306a36Sopenharmony_ci * - 10: UART_EXP1_ENn (out active low / pull-down) 13162306a36Sopenharmony_ci * - 11: UART_EXP1_IN (out pull-down) 13262306a36Sopenharmony_ci * - 12: UART_EXP2_IN (out pull-down) 13362306a36Sopenharmony_ci * - 13: SDIO_SEL (out pull-down) 13462306a36Sopenharmony_ci * - 14: SPI_EXP1_ENn (out active low / pull-down) 13562306a36Sopenharmony_ci * - 15: SPI_EXP1_IN (out pull-down) 13662306a36Sopenharmony_ci */ 13762306a36Sopenharmony_ci #gpio-cells = <2>; 13862306a36Sopenharmony_ci #interrupt-cells = <2>; 13962306a36Sopenharmony_ci compatible = "semtech,sx1509q"; 14062306a36Sopenharmony_ci reg = <0x3e>; 14162306a36Sopenharmony_ci interrupt-parent = <&gpioext1>; 14262306a36Sopenharmony_ci interrupts = <0 IRQ_TYPE_EDGE_FALLING>; 14362306a36Sopenharmony_ci 14462306a36Sopenharmony_ci semtech,probe-reset; 14562306a36Sopenharmony_ci 14662306a36Sopenharmony_ci gpio-controller; 14762306a36Sopenharmony_ci interrupt-controller; 14862306a36Sopenharmony_ci }; 14962306a36Sopenharmony_ci }; 15062306a36Sopenharmony_ci 15162306a36Sopenharmony_ci i2c@5 { 15262306a36Sopenharmony_ci #address-cells = <1>; 15362306a36Sopenharmony_ci #size-cells = <0>; 15462306a36Sopenharmony_ci reg = <5>; 15562306a36Sopenharmony_ci 15662306a36Sopenharmony_ci gpioext1: pinctrl@3f { 15762306a36Sopenharmony_ci /* GPIO Expander 1 Mapping : 15862306a36Sopenharmony_ci * - 0: GPIOEXP_INT1 15962306a36Sopenharmony_ci * - 1: Battery detect 16062306a36Sopenharmony_ci * - 2: GPIO_SCF3_RESET 16162306a36Sopenharmony_ci * - 3: LED_CARD_DETECT_IOT0 (in) 16262306a36Sopenharmony_ci * - 4: LED_CARD_DETECT_IOT1 (in) 16362306a36Sopenharmony_ci * - 5: LED_CARD_DETECT_IOT2 (in) 16462306a36Sopenharmony_ci * - 6: UIM2_PWM_SELECT 16562306a36Sopenharmony_ci * - 7: UIM2_M2_S_SELECT 16662306a36Sopenharmony_ci * - 8: TP900 16762306a36Sopenharmony_ci * - 9: SENSOR_INT1 (in) 16862306a36Sopenharmony_ci * - 10: SENSOR_INT2 (in) 16962306a36Sopenharmony_ci * - 11: CARD_DETECT_IOT0 (in pull-up) 17062306a36Sopenharmony_ci * - 12: CARD_DETECT_IOT2 (in pull-up) 17162306a36Sopenharmony_ci * - 13: CARD_DETECT_IOT1 (in pull-up) 17262306a36Sopenharmony_ci * - 14: GPIOEXP_INT3 (in active low / pull-up) 17362306a36Sopenharmony_ci * - 15: BattChrgr_INT_N 17462306a36Sopenharmony_ci */ 17562306a36Sopenharmony_ci pinctrl-0 = <&gpioext1_pins>; 17662306a36Sopenharmony_ci pinctrl-names = "default"; 17762306a36Sopenharmony_ci 17862306a36Sopenharmony_ci #gpio-cells = <2>; 17962306a36Sopenharmony_ci #interrupt-cells = <2>; 18062306a36Sopenharmony_ci compatible = "semtech,sx1509q"; 18162306a36Sopenharmony_ci reg = <0x3f>; 18262306a36Sopenharmony_ci interrupt-parent = <&msmgpio>; 18362306a36Sopenharmony_ci interrupts = <0 IRQ_TYPE_EDGE_FALLING>; 18462306a36Sopenharmony_ci 18562306a36Sopenharmony_ci semtech,probe-reset; 18662306a36Sopenharmony_ci 18762306a36Sopenharmony_ci gpio-controller; 18862306a36Sopenharmony_ci interrupt-controller; 18962306a36Sopenharmony_ci }; 19062306a36Sopenharmony_ci }; 19162306a36Sopenharmony_ci 19262306a36Sopenharmony_ci i2c@6 { 19362306a36Sopenharmony_ci #address-cells = <1>; 19462306a36Sopenharmony_ci #size-cells = <0>; 19562306a36Sopenharmony_ci reg = <6>; 19662306a36Sopenharmony_ci 19762306a36Sopenharmony_ci gpioext2: pinctrl@70 { 19862306a36Sopenharmony_ci /* GPIO Expander 2 Mapping : 19962306a36Sopenharmony_ci * - 0: USB_HUB_INTn 20062306a36Sopenharmony_ci * - 1: HUB_CONNECT 20162306a36Sopenharmony_ci * - 2: GPIO_IOT2_RESET (out active low / pull-up) 20262306a36Sopenharmony_ci * - 3: GPIO_IOT1_RESET (out active low / pull-up) 20362306a36Sopenharmony_ci * - 4: GPIO_IOT0_RESET (out active low / pull-up) 20462306a36Sopenharmony_ci * - 5: TP901 20562306a36Sopenharmony_ci * - 6: TP902 20662306a36Sopenharmony_ci * - 7: TP903 20762306a36Sopenharmony_ci * - 8: UART_EXP2_ENn (out active low / pull-down) 20862306a36Sopenharmony_ci * - 9: PCM_EXP1_ENn (out active low) 20962306a36Sopenharmony_ci * - 10: PCM_EXP1_SEL (out) 21062306a36Sopenharmony_ci * - 11: ARD_FTDI 21162306a36Sopenharmony_ci * - 12: TP904 21262306a36Sopenharmony_ci * - 13: TP905 21362306a36Sopenharmony_ci * - 14: TP906 21462306a36Sopenharmony_ci * - 15: RS232_Enable (out active high / pull-up) 21562306a36Sopenharmony_ci */ 21662306a36Sopenharmony_ci #gpio-cells = <2>; 21762306a36Sopenharmony_ci #interrupt-cells = <2>; 21862306a36Sopenharmony_ci compatible = "semtech,sx1509q"; 21962306a36Sopenharmony_ci reg = <0x70>; 22062306a36Sopenharmony_ci interrupt-parent = <&gpioext1>; 22162306a36Sopenharmony_ci interrupts = <14 IRQ_TYPE_EDGE_FALLING>; 22262306a36Sopenharmony_ci 22362306a36Sopenharmony_ci semtech,probe-reset; 22462306a36Sopenharmony_ci 22562306a36Sopenharmony_ci gpio-controller; 22662306a36Sopenharmony_ci interrupt-controller; 22762306a36Sopenharmony_ci }; 22862306a36Sopenharmony_ci }; 22962306a36Sopenharmony_ci 23062306a36Sopenharmony_ci i2c@7 { 23162306a36Sopenharmony_ci #address-cells = <1>; 23262306a36Sopenharmony_ci #size-cells = <0>; 23362306a36Sopenharmony_ci reg = <7>; 23462306a36Sopenharmony_ci }; 23562306a36Sopenharmony_ci }; 23662306a36Sopenharmony_ci}; 23762306a36Sopenharmony_ci 23862306a36Sopenharmony_ci&sdcc1 { 23962306a36Sopenharmony_ci pinctrl-0 = <&sdc_cd_pins>; 24062306a36Sopenharmony_ci pinctrl-names = "default"; 24162306a36Sopenharmony_ci disable-wp; 24262306a36Sopenharmony_ci cd-gpios = <&msmgpio 42 GPIO_ACTIVE_LOW>; /* Active low CD */ 24362306a36Sopenharmony_ci}; 244