| // SPDX-License-Identifier: GPL-2.0 |
| /* |
| * Copyright (c) 2015, The Linux Foundation. All rights reserved. |
| * Copyright (c) 2020-2023, Linaro Ltd. |
| * |
| */ |
| |
| /dts-v1/; |
| |
| #include "msm8939.dtsi" |
| #include "msm8939-pm8916.dtsi" |
| #include <dt-bindings/arm/qcom,ids.h> |
| #include <dt-bindings/gpio/gpio.h> |
| #include <dt-bindings/pinctrl/qcom,pmic-gpio.h> |
| #include <dt-bindings/sound/apq8016-lpass.h> |
| |
| / { |
| model = "Square, Inc. T2 Devkit"; |
| compatible = "square,apq8039-t2", "qcom,msm8939"; |
| |
| qcom,board-id = <0x53 0x54>; |
| qcom,msm-id = <QCOM_ID_APQ8039 0x30000>; |
| |
| aliases { |
| mmc0 = &sdhc_1; |
| mmc1 = &sdhc_2; |
| serial0 = &blsp_uart1; |
| serial1 = &blsp_uart2; |
| }; |
| |
| bl: backlight { |
| compatible = "gpio-backlight"; |
| pinctrl-0 = <&pinctrl_backlight>; |
| pinctrl-names = "default"; |
| gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>; |
| }; |
| |
| chosen { |
| stdout-path = "serial1:115200n8"; |
| }; |
| |
| vreg_lcd_avdd_reg: lcd-avdd-regulator { |
| compatible = "regulator-fixed"; |
| regulator-name = "lcd_avdd"; |
| regulator-min-microvolt = <5600000>; |
| regulator-max-microvolt = <5600000>; |
| pinctrl-0 = <&pinctrl_lcd_avdd_reg>; |
| pinctrl-names = "default"; |
| gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>; |
| startup-delay-us = <300>; |
| enable-active-high; |
| }; |
| |
| vreg_lcd_avee_reg: lcd-avee-regulator { |
| compatible = "regulator-fixed"; |
| regulator-name = "lcd_avee"; |
| regulator-min-microvolt = <5600000>; |
| regulator-max-microvolt = <5600000>; |
| pinctrl-0 = <&pinctrl_lcd_avee_reg>; |
| pinctrl-names = "default"; |
| gpio = <&tlmm 87 GPIO_ACTIVE_HIGH>; |
| startup-delay-us = <300>; |
| enable-active-high; |
| }; |
| |
| vreg_lcd_iovcc_reg: lcd-iovcc-regulator { |
| compatible = "regulator-fixed"; |
| regulator-name = "lcd_iovcc"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| pinctrl-0 = <&pinctrl_lcd_iovcc_reg>; |
| pinctrl-names = "default"; |
| gpio = <&tlmm 9 GPIO_ACTIVE_HIGH>; |
| startup-delay-us = <300>; |
| enable-active-high; |
| }; |
| }; |
| |
| &blsp_i2c1 { |
| status = "okay"; |
| }; |
| |
| &blsp_i2c2 { |
| status = "okay"; |
| }; |
| |
| &blsp_i2c3 { |
| status = "okay"; |
| |
| typec_pd: usb-pd@38 { |
| compatible = "ti,tps6598x"; |
| reg = <0x38>; |
| |
| interrupt-parent = <&tlmm>; |
| interrupts = <107 IRQ_TYPE_LEVEL_LOW>; |
| interrupt-names = "irq"; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&typec_irq>; |
| |
| typec_con: connector { |
| compatible = "usb-c-connector"; |
| label = "USB-C"; |
| |
| port { |
| typec_ep: endpoint { |
| remote-endpoint = <&otg_ep>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| &blsp_i2c5 { |
| status = "okay"; |
| }; |
| |
| &blsp_uart1 { |
| status = "okay"; |
| }; |
| |
| &blsp_uart1_default { |
| pins = "gpio0", "gpio1"; |
| }; |
| |
| &blsp_uart1_sleep { |
| pins = "gpio0", "gpio1"; |
| }; |
| |
| &blsp_uart2 { |
| status = "okay"; |
| }; |
| |
| &gpu { |
| status = "okay"; |
| }; |
| |
| &lpass { |
| status = "okay"; |
| }; |
| |
| &lpass_codec { |
| status = "okay"; |
| }; |
| |
| &mdss { |
| status = "okay"; |
| }; |
| |
| &pm8916_codec { |
| qcom,hphl-jack-type-normally-open; |
| qcom,mbhc-vthreshold-low = <75 150 237 450 500>; |
| qcom,mbhc-vthreshold-high = <75 150 237 450 500>; |
| status = "okay"; |
| }; |
| |
| &pm8916_gpios { |
| gpio-line-names = |
| "PM_GPIO1", /* WIFI_GPIO1_PRE */ |
| "PM_GPIO2", /* WIFI_GPIO2_PRE */ |
| "PM_GPIO3", |
| "PM_GPIO4"; |
| }; |
| |
| &sdhc_1 { |
| status = "okay"; |
| }; |
| |
| &sound { |
| model = "apq8039-square-sndcard"; |
| audio-routing = "AMIC2", "MIC BIAS Internal2"; |
| pinctrl-names = "default", "sleep"; |
| pinctrl-0 = <&cdc_pdm_default>; |
| pinctrl-1 = <&cdc_pdm_sleep>; |
| |
| internal-codec-playback-dai-link { |
| link-name = "WCD"; |
| cpu { |
| sound-dai = <&lpass MI2S_PRIMARY>; |
| }; |
| codec { |
| sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>; |
| }; |
| }; |
| |
| internal-codec-capture-dai-link { |
| link-name = "WCD-Capture"; |
| cpu { |
| sound-dai = <&lpass MI2S_TERTIARY>; |
| }; |
| codec { |
| sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>; |
| }; |
| }; |
| }; |
| |
| /* |
| * Line names are taken from the schematic of T2, Ver X03. |
| * July 14, 2018. Page 4 in particular. |
| */ |
| &tlmm { |
| gpio-line-names = |
| "APQ_UART1_TX", /* GPIO_0 */ |
| "APQ_UART1_RX", |
| "APQ_I2C1_SDA", |
| "APQ_I2C1_SCL", |
| "APQ_UART2_TX_1V8", |
| "APQ_UART2_RX_1V8", |
| "APQ_I2C2_SDA", |
| "APQ_I2C2_SCL", |
| "NC", |
| "APQ_LCD_IOVCC_EN", |
| "APQ_I2C3_SDA", /* GPIO_10 */ |
| "APQ_I2C3_SCL", |
| "TOUCH_RST_1V8_L", |
| "NC", |
| "APQ_I2C4_SDA", |
| "APQ_I2C4_SCL", |
| "APQ_ID5", |
| "USB_DISCONNECT", |
| "APQ_I2C5_SDA", |
| "APQ_I2C5_SCL", |
| "APQ_USBC_SPI_MOSI", /* GPIO_20 */ |
| "APQ_USBC_SPI_MISO", |
| "APQ_USBC_SPI_SS_L", |
| "APQ_USBC_SPI_CLK", |
| "APQ_LCD_TE0", |
| "APQ_LCD_RST_L", |
| "NC", |
| "NC", |
| "ACCELEROMETER_INT1", |
| "APQ_CAM_I2C0_SDA", |
| "APQ_CAM_I2C0_SCL", /* GPIO_30 */ |
| "ACCELEROMETER_INT2", |
| "NC", |
| "NC", |
| "NC", |
| "APQ_K21_RST_1V8_L", |
| "NC", |
| "APQ_EDL_1V8", |
| "TP145", |
| "BT_SSBI", |
| "NC", /* GPIO_40 */ |
| "NC", |
| "NC", |
| "NC", |
| "NC", |
| "NC", |
| "NC", |
| "BT_CTRL", |
| "BT_DAT", |
| "PWR_GPIO_IN", |
| "PWR_GPIO_OUT", /* GPIO_50 */ |
| "CARD_DET_MLB_L", |
| "HALL_SENSOR", |
| "TP63", |
| "TP64", |
| "TP65", |
| "NC", |
| "NC", |
| "NC", |
| "NC", |
| "NC", /* GPIO_60 */ |
| "NC", |
| "APQ_K21_GPIO0_1V8", |
| "CDC_PDM_CLK", |
| "CDC_PDM_SYNC", |
| "CDC_PDM_TX", |
| "CDC_PDM_RX0", |
| "CDC_PDM_RX1", |
| "CDC_PDM_RX2", |
| "APQ_K21_GPIO1_1V8", |
| "NC", /* GPIO_70 */ |
| "APQ_HUB_SEL_1V8", |
| "APQ_K21_GPIO2_1V8", |
| "APQ_K21_GPIO3_1V8", |
| "APQ_ID0", |
| "APQ_ID1", |
| "APQ_ID2", |
| "APQ_ID3", |
| "APQ_ID4", |
| "APQ_HUB_SUSP_IND", |
| "BOOT_CONFIG_0", /* GPIO_80 */ |
| "BOOT_CONFIG_1", |
| "BOOT_CONFIG_2", |
| "BOOT_CONFIG_3", |
| "NC", |
| "NC", |
| "APQ_LCD_AVDD_EN", |
| "APQ_LCD_AVEE_EN", |
| "TP70", |
| "NC", |
| "APQ_DEBUG0", /* GPIO_90 */ |
| "APQ_DEBUG1", |
| "APQ_DEBUG2", |
| "APQ_DEBUG3", |
| "TP165", |
| "NC", |
| "APQ_LNA_PWR_EN", |
| "NC", |
| "APQ_LCD_BL_EN", |
| "NC", |
| "APQ_LCD_ID0", /* GPIO_100 */ |
| "APQ_LCD_ID1", |
| "USBC_GPIO5_1V8", |
| "NC", |
| "NC", |
| "NC", |
| "APQ_HUB_RST_1V8_L", |
| "USBC_I2C_IRQ_1V8_L", |
| "SPE_PWR_EN", |
| "NC", |
| "APQ_USB_ID", /* GPIO_110 */ |
| "APQ_EXT_BUCK_VSEL", |
| "APQ_USB_ID_OUT", |
| "NC", |
| "PRNT_RST_L", |
| "APQ_CRQ_I2C_RDY_1V8", |
| "TYPEC_RST_1V8_H", |
| "CHG_BACKPWR_EN", |
| "CHG_PROCHOT_L", |
| "NC", |
| "USBC_GPIO7_1V8", /* GPIO_120 */ |
| "NC"; |
| |
| pinctrl_backlight: backlight-state { |
| pins = "gpio98"; |
| function = "gpio"; |
| }; |
| |
| pinctrl_lcd_avdd_reg: lcd-avdd-reg-state { |
| pins = "gpio86"; |
| function = "gpio"; |
| }; |
| |
| pinctrl_lcd_avee_reg: lcd-avee-reg-state { |
| pins = "gpio87"; |
| function = "gpio"; |
| }; |
| |
| pinctrl_lcd_iovcc_reg: lcd-iovcc-reg-state { |
| pins = "gpio9"; |
| function = "gpio"; |
| }; |
| |
| pinctrl_lcd_rst: lcd-rst-state { |
| pins = "gpio25"; |
| function = "gpio"; |
| }; |
| |
| pinctrl_otg_default: otg-default-state { |
| function = "gpio"; |
| pins = "gpio17"; |
| output-high; |
| }; |
| |
| pinctrl_otg_device: otg-device-state { |
| function = "gpio"; |
| pins = "gpio17"; |
| output-low; |
| }; |
| |
| pinctrl_otg_host: otg-host-state { |
| function = "gpio"; |
| pins = "gpio17"; |
| output-low; |
| }; |
| |
| typec_irq: typec-irq-state { |
| function = "gpio"; |
| pins = "gpio107"; |
| bias-pull-up; |
| }; |
| }; |
| |
| &usb { |
| pinctrl-names = "default", "host", "device"; |
| pinctrl-0 = <&pinctrl_otg_default>; |
| pinctrl-1 = <&pinctrl_otg_host>; |
| pinctrl-2 = <&pinctrl_otg_device>; |
| usb-role-switch; |
| status = "okay"; |
| |
| port { |
| otg_ep: endpoint { |
| remote-endpoint = <&typec_ep>; |
| }; |
| }; |
| }; |
| |
| &wcnss { |
| status = "okay"; |
| }; |
| |
| &wcnss_iris { |
| compatible = "qcom,wcn3680"; |
| }; |
| |
| &wcnss_mem { |
| status = "okay"; |
| }; |