1// SPDX-License-Identifier: GPL-2.0 2/* 3 * Copyright (c) 2015, The Linux Foundation. All rights reserved. 4 * Copyright (c) 2020-2023, Linaro Ltd. 5 * 6 */ 7 8/dts-v1/; 9 10#include "msm8939.dtsi" 11#include "msm8939-pm8916.dtsi" 12#include <dt-bindings/arm/qcom,ids.h> 13#include <dt-bindings/gpio/gpio.h> 14#include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 15#include <dt-bindings/sound/apq8016-lpass.h> 16 17/ { 18 model = "Square, Inc. T2 Devkit"; 19 compatible = "square,apq8039-t2", "qcom,msm8939"; 20 21 qcom,board-id = <0x53 0x54>; 22 qcom,msm-id = <QCOM_ID_APQ8039 0x30000>; 23 24 aliases { 25 mmc0 = &sdhc_1; 26 mmc1 = &sdhc_2; 27 serial0 = &blsp_uart1; 28 serial1 = &blsp_uart2; 29 }; 30 31 bl: backlight { 32 compatible = "gpio-backlight"; 33 pinctrl-0 = <&pinctrl_backlight>; 34 pinctrl-names = "default"; 35 gpios = <&tlmm 98 GPIO_ACTIVE_HIGH>; 36 }; 37 38 chosen { 39 stdout-path = "serial1:115200n8"; 40 }; 41 42 vreg_lcd_avdd_reg: lcd-avdd-regulator { 43 compatible = "regulator-fixed"; 44 regulator-name = "lcd_avdd"; 45 regulator-min-microvolt = <5600000>; 46 regulator-max-microvolt = <5600000>; 47 pinctrl-0 = <&pinctrl_lcd_avdd_reg>; 48 pinctrl-names = "default"; 49 gpio = <&tlmm 86 GPIO_ACTIVE_HIGH>; 50 startup-delay-us = <300>; 51 enable-active-high; 52 }; 53 54 vreg_lcd_avee_reg: lcd-avee-regulator { 55 compatible = "regulator-fixed"; 56 regulator-name = "lcd_avee"; 57 regulator-min-microvolt = <5600000>; 58 regulator-max-microvolt = <5600000>; 59 pinctrl-0 = <&pinctrl_lcd_avee_reg>; 60 pinctrl-names = "default"; 61 gpio = <&tlmm 87 GPIO_ACTIVE_HIGH>; 62 startup-delay-us = <300>; 63 enable-active-high; 64 }; 65 66 vreg_lcd_iovcc_reg: lcd-iovcc-regulator { 67 compatible = "regulator-fixed"; 68 regulator-name = "lcd_iovcc"; 69 regulator-min-microvolt = <1800000>; 70 regulator-max-microvolt = <1800000>; 71 pinctrl-0 = <&pinctrl_lcd_iovcc_reg>; 72 pinctrl-names = "default"; 73 gpio = <&tlmm 9 GPIO_ACTIVE_HIGH>; 74 startup-delay-us = <300>; 75 enable-active-high; 76 }; 77}; 78 79&blsp_i2c1 { 80 status = "okay"; 81}; 82 83&blsp_i2c2 { 84 status = "okay"; 85}; 86 87&blsp_i2c3 { 88 status = "okay"; 89 90 typec_pd: usb-pd@38 { 91 compatible = "ti,tps6598x"; 92 reg = <0x38>; 93 94 interrupt-parent = <&tlmm>; 95 interrupts = <107 IRQ_TYPE_LEVEL_LOW>; 96 interrupt-names = "irq"; 97 98 pinctrl-names = "default"; 99 pinctrl-0 = <&typec_irq>; 100 101 typec_con: connector { 102 compatible = "usb-c-connector"; 103 label = "USB-C"; 104 105 port { 106 typec_ep: endpoint { 107 remote-endpoint = <&otg_ep>; 108 }; 109 }; 110 }; 111 }; 112}; 113 114&blsp_i2c5 { 115 status = "okay"; 116}; 117 118&blsp_uart1 { 119 status = "okay"; 120}; 121 122&blsp_uart1_default { 123 pins = "gpio0", "gpio1"; 124}; 125 126&blsp_uart1_sleep { 127 pins = "gpio0", "gpio1"; 128}; 129 130&blsp_uart2 { 131 status = "okay"; 132}; 133 134&gpu { 135 status = "okay"; 136}; 137 138&lpass { 139 status = "okay"; 140}; 141 142&lpass_codec { 143 status = "okay"; 144}; 145 146&mdss { 147 status = "okay"; 148}; 149 150&pm8916_codec { 151 qcom,hphl-jack-type-normally-open; 152 qcom,mbhc-vthreshold-low = <75 150 237 450 500>; 153 qcom,mbhc-vthreshold-high = <75 150 237 450 500>; 154 status = "okay"; 155}; 156 157&pm8916_gpios { 158 gpio-line-names = 159 "PM_GPIO1", /* WIFI_GPIO1_PRE */ 160 "PM_GPIO2", /* WIFI_GPIO2_PRE */ 161 "PM_GPIO3", 162 "PM_GPIO4"; 163}; 164 165&sdhc_1 { 166 status = "okay"; 167}; 168 169&sound { 170 model = "apq8039-square-sndcard"; 171 audio-routing = "AMIC2", "MIC BIAS Internal2"; 172 pinctrl-names = "default", "sleep"; 173 pinctrl-0 = <&cdc_pdm_default>; 174 pinctrl-1 = <&cdc_pdm_sleep>; 175 176 internal-codec-playback-dai-link { 177 link-name = "WCD"; 178 cpu { 179 sound-dai = <&lpass MI2S_PRIMARY>; 180 }; 181 codec { 182 sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>; 183 }; 184 }; 185 186 internal-codec-capture-dai-link { 187 link-name = "WCD-Capture"; 188 cpu { 189 sound-dai = <&lpass MI2S_TERTIARY>; 190 }; 191 codec { 192 sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>; 193 }; 194 }; 195}; 196 197/* 198 * Line names are taken from the schematic of T2, Ver X03. 199 * July 14, 2018. Page 4 in particular. 200 */ 201&tlmm { 202 gpio-line-names = 203 "APQ_UART1_TX", /* GPIO_0 */ 204 "APQ_UART1_RX", 205 "APQ_I2C1_SDA", 206 "APQ_I2C1_SCL", 207 "APQ_UART2_TX_1V8", 208 "APQ_UART2_RX_1V8", 209 "APQ_I2C2_SDA", 210 "APQ_I2C2_SCL", 211 "NC", 212 "APQ_LCD_IOVCC_EN", 213 "APQ_I2C3_SDA", /* GPIO_10 */ 214 "APQ_I2C3_SCL", 215 "TOUCH_RST_1V8_L", 216 "NC", 217 "APQ_I2C4_SDA", 218 "APQ_I2C4_SCL", 219 "APQ_ID5", 220 "USB_DISCONNECT", 221 "APQ_I2C5_SDA", 222 "APQ_I2C5_SCL", 223 "APQ_USBC_SPI_MOSI", /* GPIO_20 */ 224 "APQ_USBC_SPI_MISO", 225 "APQ_USBC_SPI_SS_L", 226 "APQ_USBC_SPI_CLK", 227 "APQ_LCD_TE0", 228 "APQ_LCD_RST_L", 229 "NC", 230 "NC", 231 "ACCELEROMETER_INT1", 232 "APQ_CAM_I2C0_SDA", 233 "APQ_CAM_I2C0_SCL", /* GPIO_30 */ 234 "ACCELEROMETER_INT2", 235 "NC", 236 "NC", 237 "NC", 238 "APQ_K21_RST_1V8_L", 239 "NC", 240 "APQ_EDL_1V8", 241 "TP145", 242 "BT_SSBI", 243 "NC", /* GPIO_40 */ 244 "NC", 245 "NC", 246 "NC", 247 "NC", 248 "NC", 249 "NC", 250 "BT_CTRL", 251 "BT_DAT", 252 "PWR_GPIO_IN", 253 "PWR_GPIO_OUT", /* GPIO_50 */ 254 "CARD_DET_MLB_L", 255 "HALL_SENSOR", 256 "TP63", 257 "TP64", 258 "TP65", 259 "NC", 260 "NC", 261 "NC", 262 "NC", 263 "NC", /* GPIO_60 */ 264 "NC", 265 "APQ_K21_GPIO0_1V8", 266 "CDC_PDM_CLK", 267 "CDC_PDM_SYNC", 268 "CDC_PDM_TX", 269 "CDC_PDM_RX0", 270 "CDC_PDM_RX1", 271 "CDC_PDM_RX2", 272 "APQ_K21_GPIO1_1V8", 273 "NC", /* GPIO_70 */ 274 "APQ_HUB_SEL_1V8", 275 "APQ_K21_GPIO2_1V8", 276 "APQ_K21_GPIO3_1V8", 277 "APQ_ID0", 278 "APQ_ID1", 279 "APQ_ID2", 280 "APQ_ID3", 281 "APQ_ID4", 282 "APQ_HUB_SUSP_IND", 283 "BOOT_CONFIG_0", /* GPIO_80 */ 284 "BOOT_CONFIG_1", 285 "BOOT_CONFIG_2", 286 "BOOT_CONFIG_3", 287 "NC", 288 "NC", 289 "APQ_LCD_AVDD_EN", 290 "APQ_LCD_AVEE_EN", 291 "TP70", 292 "NC", 293 "APQ_DEBUG0", /* GPIO_90 */ 294 "APQ_DEBUG1", 295 "APQ_DEBUG2", 296 "APQ_DEBUG3", 297 "TP165", 298 "NC", 299 "APQ_LNA_PWR_EN", 300 "NC", 301 "APQ_LCD_BL_EN", 302 "NC", 303 "APQ_LCD_ID0", /* GPIO_100 */ 304 "APQ_LCD_ID1", 305 "USBC_GPIO5_1V8", 306 "NC", 307 "NC", 308 "NC", 309 "APQ_HUB_RST_1V8_L", 310 "USBC_I2C_IRQ_1V8_L", 311 "SPE_PWR_EN", 312 "NC", 313 "APQ_USB_ID", /* GPIO_110 */ 314 "APQ_EXT_BUCK_VSEL", 315 "APQ_USB_ID_OUT", 316 "NC", 317 "PRNT_RST_L", 318 "APQ_CRQ_I2C_RDY_1V8", 319 "TYPEC_RST_1V8_H", 320 "CHG_BACKPWR_EN", 321 "CHG_PROCHOT_L", 322 "NC", 323 "USBC_GPIO7_1V8", /* GPIO_120 */ 324 "NC"; 325 326 pinctrl_backlight: backlight-state { 327 pins = "gpio98"; 328 function = "gpio"; 329 }; 330 331 pinctrl_lcd_avdd_reg: lcd-avdd-reg-state { 332 pins = "gpio86"; 333 function = "gpio"; 334 }; 335 336 pinctrl_lcd_avee_reg: lcd-avee-reg-state { 337 pins = "gpio87"; 338 function = "gpio"; 339 }; 340 341 pinctrl_lcd_iovcc_reg: lcd-iovcc-reg-state { 342 pins = "gpio9"; 343 function = "gpio"; 344 }; 345 346 pinctrl_lcd_rst: lcd-rst-state { 347 pins = "gpio25"; 348 function = "gpio"; 349 }; 350 351 pinctrl_otg_default: otg-default-state { 352 function = "gpio"; 353 pins = "gpio17"; 354 output-high; 355 }; 356 357 pinctrl_otg_device: otg-device-state { 358 function = "gpio"; 359 pins = "gpio17"; 360 output-low; 361 }; 362 363 pinctrl_otg_host: otg-host-state { 364 function = "gpio"; 365 pins = "gpio17"; 366 output-low; 367 }; 368 369 typec_irq: typec-irq-state { 370 function = "gpio"; 371 pins = "gpio107"; 372 bias-pull-up; 373 }; 374}; 375 376&usb { 377 pinctrl-names = "default", "host", "device"; 378 pinctrl-0 = <&pinctrl_otg_default>; 379 pinctrl-1 = <&pinctrl_otg_host>; 380 pinctrl-2 = <&pinctrl_otg_device>; 381 usb-role-switch; 382 status = "okay"; 383 384 port { 385 otg_ep: endpoint { 386 remote-endpoint = <&typec_ep>; 387 }; 388 }; 389}; 390 391&wcnss { 392 status = "okay"; 393}; 394 395&wcnss_iris { 396 compatible = "qcom,wcn3680"; 397}; 398 399&wcnss_mem { 400 status = "okay"; 401}; 402