Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 1 | /* |
| 2 | * Copyright (c) 2018, The Linux Foundation. All rights reserved. |
| 3 | * |
| 4 | * This program is free software; you can redistribute it and/or modify |
| 5 | * it under the terms of the GNU General Public License version 2 and |
| 6 | * only version 2 as published by the Free Software Foundation. |
| 7 | * |
| 8 | * This program is distributed in the hope that it will be useful, |
| 9 | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 10 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
| 11 | * GNU General Public License for more details. |
| 12 | */ |
| 13 | |
| 14 | /dts-v1/; |
| 15 | |
| 16 | #include "msm8909-mtp.dtsi" |
| 17 | #include "8909-pm8916.dtsi" |
| 18 | #include "msm8909-pm8916-mtp.dtsi" |
| 19 | #include "apq8009-audio-external_codec.dtsi" |
taojiang | f3ca09d | 2018-06-21 19:51:00 +0800 | [diff] [blame] | 20 | #include "msm8909-pm8916-camera.dtsi" |
| 21 | #include "msm8909-pm8916-camera-sensor-robot-som.dtsi" |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 22 | |
| 23 | / { |
| 24 | model = "Qualcomm Technologies, Inc. APQ8009 Robot SOM refboard"; |
| 25 | compatible = "qcom,apq8009-mtp", "qcom,apq8009", "qcom,mtp"; |
| 26 | qcom,msm-id = <265 2>; |
| 27 | qcom,board-id = <8 0x15>; |
| 28 | }; |
| 29 | |
Meng Wang | e0253bd | 2018-06-13 09:53:59 +0800 | [diff] [blame] | 30 | &audio_codec_mtp { |
| 31 | status = "disabled"; |
| 32 | }; |
| 33 | |
| 34 | &i2c_4 { |
| 35 | status= "okay"; |
| 36 | }; |
| 37 | |
| 38 | &pm8916_gpios { |
| 39 | wcd_vdd_en { /* GPIO 4 */ |
| 40 | wcd_vdd_en_active: wcd_vdd_en_active { |
| 41 | status = "ok"; |
| 42 | pins = "gpio4"; |
| 43 | function = "normal"; |
| 44 | output-high; |
| 45 | qcom,drive-strength = <2>; |
| 46 | }; |
| 47 | wcd_vdd_en_sleep: wcd_vdd_en_sleep { |
| 48 | status = "ok"; |
| 49 | pins = "gpio4"; |
| 50 | function = "normal"; |
| 51 | output-low; |
| 52 | qcom,drive-strength = <2>; |
| 53 | }; |
| 54 | |
| 55 | }; |
| 56 | }; |
| 57 | |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 58 | &soc { |
Meng Wang | e0253bd | 2018-06-13 09:53:59 +0800 | [diff] [blame] | 59 | ext_codec: sound-9335 { |
| 60 | compatible = "qcom,apq8009-audio-i2s-codec"; |
| 61 | qcom,model = "apq8009-tashalite-snd-card-tdm"; |
| 62 | |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 63 | qcom,audio-routing = |
| 64 | "AIF4 VI", "MCLK", |
| 65 | "RX_BIAS", "MCLK", |
| 66 | "MADINPUT", "MCLK", |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 67 | "SpkrLeft IN", "SPK1 OUT", |
| 68 | "SpkrRight IN", "SPK2 OUT"; |
Meng Wang | e0253bd | 2018-06-13 09:53:59 +0800 | [diff] [blame] | 69 | |
| 70 | qcom,tdm-i2s-switch-enable = <&msm_gpio 88 0>; |
| 71 | qcom,pri-mi2s-gpios = <&cdc_pri_mi2s_gpios>; |
| 72 | qcom,quat-mi2s-gpios = <&cdc_quat_tdm_gpios>; |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 73 | }; |
| 74 | |
Meng Wang | e0253bd | 2018-06-13 09:53:59 +0800 | [diff] [blame] | 75 | clock_audio: audio_ext_clk { |
| 76 | compatible = "qcom,audio-ref-clk"; |
| 77 | qcom,codec-mclk-clk-freq = <9600000>; |
| 78 | qcom,lpass-clock = <1>; |
| 79 | reg = <0x07702004 0x4>; |
| 80 | pinctrl-names = "sleep", "active"; |
| 81 | pinctrl-0 = <&i2s_mclk_sleep>; |
| 82 | pinctrl-1 = <&i2s_mclk_active>; |
| 83 | #clock-cells = <1>; |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 84 | }; |
| 85 | |
| 86 | i2c@78b8000 { |
| 87 | wcd9xxx_codec@d { |
Meng Wang | e0253bd | 2018-06-13 09:53:59 +0800 | [diff] [blame] | 88 | status = "okay"; |
| 89 | compatible = "qcom,tasha-i2c-pgd"; |
| 90 | reg = <0x0d>; |
| 91 | |
| 92 | interrupt-parent = <&wcd9xxx_intc>; |
| 93 | interrupts = <0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
| 94 | 17 18 19 20 21 22 23 24 25 26 27 28 29 |
| 95 | 30>; |
| 96 | |
| 97 | qcom,wcd-rst-gpio-node = <&wcd_rst_gpio>; |
| 98 | |
| 99 | qcom,has-buck-vsel-gpio; |
| 100 | qcom,buck-vsel-gpio-node = <&wcd_vdd_gpio>; |
| 101 | swr_master { |
| 102 | compatible = "qcom,swr-wcd"; |
| 103 | qcom,swr-num-dev = <2>; |
| 104 | #address-cells = <2>; |
| 105 | #size-cells = <0>; |
| 106 | |
| 107 | wsa881x_211:wsa881x@21170211 { |
| 108 | compatible = "qcom,wsa881x"; |
| 109 | reg = <0x00 0x21170211>; |
| 110 | qcom,spkr-sd-n-node = <&wsa_spkr>; |
| 111 | }; |
| 112 | |
| 113 | wsa881x_212:wsa881x@21170212 { |
| 114 | compatible = "qcom,wsa881x"; |
| 115 | reg = <0x00 0x21170212>; |
| 116 | qcom,spkr-sd-n-node = <&wsa_spkr>; |
| 117 | }; |
| 118 | |
| 119 | wsa881x_213:wsa881x@21170213 { |
| 120 | compatible = "qcom,wsa881x"; |
| 121 | reg = <0x00 0x21170213>; |
| 122 | qcom,spkr-sd-n-node = <&wsa_spkr>; |
| 123 | }; |
| 124 | |
| 125 | wsa881x_214:wsa881x@21170214 { |
| 126 | compatible = "qcom,wsa881x"; |
| 127 | reg = <0x00 0x21170214>; |
| 128 | qcom,spkr-sd-n-node = <&wsa_spkr>; |
| 129 | }; |
| 130 | }; |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 131 | }; |
| 132 | }; |
| 133 | |
Meng Wang | e0253bd | 2018-06-13 09:53:59 +0800 | [diff] [blame] | 134 | cdc_pri_mi2s_gpios: msm_cdc_pinctrl_pri { |
| 135 | compatible = "qcom,msm-cdc-pinctrl"; |
| 136 | pinctrl-names = "aud_active", "aud_sleep"; |
| 137 | pinctrl-0 = <&pri_mi2s_active &pri_mi2s_ws_active |
| 138 | &pri_mi2s_dout_active &pri_mi2s_din_active>; |
| 139 | pinctrl-1 = <&pri_mi2s_sleep &pri_mi2s_ws_sleep |
| 140 | &pri_mi2s_dout_sleep &pri_mi2s_din_sleep>; |
| 141 | }; |
| 142 | |
| 143 | cdc_quat_tdm_gpios: msm_cdc_pinctrl_quat { |
| 144 | compatible = "qcom,msm-cdc-pinctrl"; |
| 145 | pinctrl-names = "aud_active", "aud_sleep"; |
| 146 | pinctrl-0 = <&quat_mi2s_active &quat_mi2s_din_active>; |
| 147 | pinctrl-1 = <&quat_mi2s_sleep &quat_mi2s_din_sleep>; |
| 148 | }; |
| 149 | |
| 150 | wcd_rst_gpio: wcd_gpio_ctrl { |
| 151 | compatible = "qcom,msm-cdc-pinctrl"; |
| 152 | pinctrl-names = "aud_active", "aud_sleep"; |
| 153 | pinctrl-0 = <&cdc_reset1_active>; |
| 154 | pinctrl-1 = <&cdc_reset1_sleep>; |
| 155 | }; |
| 156 | |
| 157 | wcd_vdd_gpio: wcd_vdd_gpio_ctrl { |
| 158 | compatible = "qcom,msm-cdc-pinctrl"; |
| 159 | pinctrl-names = "aud_active", "aud_sleep"; |
| 160 | pinctrl-0 = <&wcd_vdd_en_active>; |
| 161 | pinctrl-1 = <&wcd_vdd_en_sleep>; |
| 162 | }; |
| 163 | |
| 164 | wsa_spkr: msm_cdc_pinctrll { |
| 165 | compatible = "qcom,msm-cdc-pinctrl"; |
| 166 | pinctrl-names = "aud_active", "aud_sleep"; |
| 167 | pinctrl-0 = <&spkr_en_active>; |
| 168 | pinctrl-1 = <&spkr_en_sleep>; |
| 169 | }; |
| 170 | |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 171 | vph_pwr_vreg: vph_pwr_vreg { |
| 172 | compatible = "regulator-fixed"; |
| 173 | status = "ok"; |
| 174 | regulator-name = "vph_pwr"; |
| 175 | regulator-always-on; |
| 176 | }; |
| 177 | |
zhaochen | 5868daf | 2018-07-09 17:55:17 +0800 | [diff] [blame] | 178 | otg_vreg_5p0: otg_vreg_5p0 { |
| 179 | compatible = "regulator-fixed"; |
| 180 | regulator-name = "sbc_vreg_5p0"; |
| 181 | regulator-min-microvolt = <5000000>; |
| 182 | regulator-max-microvolt = <5000000>; |
| 183 | status = "ok"; |
| 184 | enable-active-low; |
| 185 | vin-supply = <&vph_pwr_vreg>; |
| 186 | }; |
| 187 | |
| 188 | vbus_otg_vreg: vbus_otg_vreg { |
| 189 | compatible = "regulator-fixed"; |
| 190 | regulator-name = "vbus_otg_vreg"; |
| 191 | gpio = <&msm_gpio 74 0>; |
| 192 | vin-supply = <&otg_vreg_5p0>; |
| 193 | }; |
| 194 | |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 195 | mdss_mdp: qcom,mdss_mdp@1a00000 { |
| 196 | status = "disabled"; |
| 197 | }; |
Tim Jiang | 6b649f5 | 2018-05-08 13:52:17 +0800 | [diff] [blame] | 198 | |
| 199 | bluetooth: bt_qca9379 { |
| 200 | compatible = "qca,qca9379"; |
| 201 | qca,bt-reset-gpio = <&msm_gpio 47 0>; /* BT_EN */ |
| 202 | }; |
bings | c5fca96 | 2018-05-08 14:42:14 +0800 | [diff] [blame] | 203 | cnss_sdio: qcom,cnss_sdio { |
| 204 | compatible = "qcom,cnss_sdio"; |
| 205 | subsys-name = "AR6320"; |
| 206 | /** |
| 207 | * There is no vdd-wlan on board and this is not for DSRC. |
| 208 | * IO and XTAL share the same vreg. |
| 209 | */ |
| 210 | vdd-wlan-io-supply = <&pm8916_l5>; |
| 211 | qcom,cap-tsf-gpio = <&msm_gpio 42 1>; |
| 212 | qcom,wlan-ramdump-dynamic = <0x200000>; |
| 213 | qcom,msm-bus,name = "msm-cnss"; |
| 214 | qcom,msm-bus,num-cases = <4>; |
| 215 | qcom,msm-bus,num-paths = <1>; |
| 216 | qcom,msm-bus,vectors-KBps = |
| 217 | <79 512 0 0>, /* No vote */ |
| 218 | <79 512 6250 200000>, /* 50 Mbps */ |
| 219 | <79 512 25000 200000>, /* 200 Mbps */ |
| 220 | <79 512 2048000 4096000>; /* MAX */ |
| 221 | }; |
taojiang | f3ca09d | 2018-06-21 19:51:00 +0800 | [diff] [blame] | 222 | |
| 223 | gpio_keys { |
| 224 | status = "disable"; |
| 225 | }; |
Miaoqing Pan | 99497db | 2018-06-07 10:30:50 +0800 | [diff] [blame] | 226 | |
| 227 | spi@78ba000 { |
| 228 | reg = <0x78ba000 0x600>; |
| 229 | spi-max-frequency = <50000000>; |
| 230 | status = "okay"; |
| 231 | |
| 232 | spi@0 { |
| 233 | compatible = "qcom,spi-msm-slave"; |
| 234 | reg = <0>; |
| 235 | spi-max-frequency = <50000000>; |
| 236 | }; |
| 237 | }; |
bings | c5fca96 | 2018-05-08 14:42:14 +0800 | [diff] [blame] | 238 | }; |
| 239 | |
zhaochen | 024979a | 2018-06-14 10:33:45 +0800 | [diff] [blame] | 240 | &i2c_1 { |
| 241 | status = "okay"; |
| 242 | icm20602@68 { |
| 243 | compatible = "invensense,icm20602"; |
| 244 | reg = <0x68>; |
| 245 | interrupt-parent = <&msm_gpio>; |
| 246 | interrupts = <12 0>; |
| 247 | invensense,icm20602-gpio = <&msm_gpio 12 0x0>; |
| 248 | vdd-ldo-supply = <&pm8916_l6>; |
| 249 | interrupt-names = "icm20602_irq"; |
| 250 | pinctrl-names = "imu_active","imu_suspend"; |
| 251 | pinctrl-0 = <&imu_int_active>; |
| 252 | pinctrl-1 = <&imu_int_suspend>; |
| 253 | status = "ok"; |
| 254 | }; |
| 255 | vl53l0x@29 { |
| 256 | compatible = "st,stmvl53l0"; |
| 257 | reg = <0x29>; |
| 258 | status = "ok"; |
| 259 | }; |
| 260 | }; |
| 261 | |
bings | c5fca96 | 2018-05-08 14:42:14 +0800 | [diff] [blame] | 262 | &wcnss { |
| 263 | status = "disabled"; |
| 264 | }; |
| 265 | |
| 266 | &msm_gpio { |
| 267 | sdc2_wlan_gpio_on: sdc2_wlan_gpio_on { |
| 268 | mux { |
| 269 | pins = "gpio43"; |
| 270 | function = "gpio"; |
| 271 | }; |
| 272 | config { |
| 273 | pins = "gpio43"; |
| 274 | drive-strength = <10>; |
| 275 | bias-pull-up; |
| 276 | output-high; |
| 277 | }; |
| 278 | }; |
| 279 | |
| 280 | sdc2_wlan_gpio_off: sdc2_wlan_gpio_off { |
| 281 | mux { |
| 282 | pins = "gpio43"; |
| 283 | function = "gpio"; |
| 284 | }; |
| 285 | config { |
| 286 | pins = "gpio43"; |
| 287 | drive-strength = <2>; |
| 288 | bias-disable; |
| 289 | output-low; |
| 290 | }; |
| 291 | }; |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 292 | }; |
| 293 | |
| 294 | &sdhc_2 { |
bings | c5fca96 | 2018-05-08 14:42:14 +0800 | [diff] [blame] | 295 | /delete-property/cd-gpios; |
| 296 | #address-cells = <0>; |
| 297 | interrupt-parent = <&sdhc_2>; |
| 298 | interrupts = <0 1 2>; |
| 299 | #interrupt-cells = <1>; |
| 300 | interrupt-map-mask = <0xffffffff>; |
| 301 | interrupt-map = <0 &intc 0 125 0 |
| 302 | 1 &intc 0 221 0 |
bings | 9cae9e9 | 2018-06-15 08:40:54 +0800 | [diff] [blame] | 303 | 2 &msm_gpio 40 0x1>; |
bings | c5fca96 | 2018-05-08 14:42:14 +0800 | [diff] [blame] | 304 | interrupt-names = "hc_irq", "pwr_irq", "sdiowakeup_irq"; |
| 305 | |
| 306 | qcom,vdd-voltage-level = <1800000 2950000>; |
| 307 | qcom,vdd-current-level = <15000 400000>; |
| 308 | |
| 309 | qcom,vdd-io-voltage-level = <1800000 1800000>; |
| 310 | qcom,vdd-io-current-level = <200 50000>; |
| 311 | qcom,clk-rates = <400000 25000000 50000000 100000000 200000000>; |
| 312 | qcom,bus-speed-mode = "SDR12", "SDR25", "SDR50", "DDR50", "SDR104"; |
| 313 | |
| 314 | pinctrl-names = "active", "sleep"; |
| 315 | pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on |
| 316 | &sdc2_wlan_gpio_on>; |
| 317 | pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off |
| 318 | &sdc2_wlan_gpio_off>; |
| 319 | qcom,nonremovable; |
| 320 | qcom,core_3_0v_support; |
| 321 | status = "ok"; |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 322 | }; |
| 323 | |
| 324 | &usb_otg { |
| 325 | interrupts = <0 134 0>,<0 140 0>,<0 136 0>; |
| 326 | interrupt-names = "core_irq", "async_irq", "phy_irq"; |
| 327 | qcom,hsusb-otg-mode = <3>; |
| 328 | qcom,switch-vbus-w-id; |
zhaochen | 5868daf | 2018-07-09 17:55:17 +0800 | [diff] [blame] | 329 | qcom,phy-id-high-as-peripheral; |
| 330 | vbus_otg-supply = <&vbus_otg_vreg>; |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 331 | }; |
| 332 | |
| 333 | &external_image_mem { |
Vishwanath Raju K | 483f90a | 2018-05-29 13:38:37 +0530 | [diff] [blame] | 334 | reg = <0x0 0x87900000 0x0 0x0700000>; |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 335 | }; |
| 336 | |
| 337 | &modem_adsp_mem { |
| 338 | reg = <0x0 0x88000000 0x0 0x01e00000>; |
| 339 | }; |
| 340 | |
| 341 | &peripheral_mem { |
Vishwanath Raju K | 483f90a | 2018-05-29 13:38:37 +0530 | [diff] [blame] | 342 | status = "disabled"; |
Tiequan Luo | 7984a52 | 2018-05-07 11:22:27 +0800 | [diff] [blame] | 343 | }; |
| 344 | |
| 345 | &pm8916_chg { |
| 346 | status = "ok"; |
| 347 | }; |
| 348 | |
| 349 | &pm8916_bms { |
| 350 | status = "ok"; |
| 351 | }; |
Tim Jiang | 6b649f5 | 2018-05-08 13:52:17 +0800 | [diff] [blame] | 352 | |
| 353 | &blsp1_uart2_hs { |
| 354 | status = "ok"; |
| 355 | }; |
Chaojun Wang | df1442e | 2018-05-22 19:26:39 +0800 | [diff] [blame] | 356 | |
| 357 | &i2c_1 { |
| 358 | status = "okay"; |
| 359 | vl53l0x@52 { |
| 360 | compatible = "st,stmvl53l0"; |
| 361 | reg = <0x29>; |
| 362 | status = "ok"; |
| 363 | }; |
| 364 | }; |
Meng Wang | e0253bd | 2018-06-13 09:53:59 +0800 | [diff] [blame] | 365 | |
| 366 | |
| 367 | &wcd_rst_gpio { |
| 368 | status = "okay"; |
| 369 | }; |
| 370 | |
| 371 | &ext_codec { |
| 372 | status = "okay"; |
| 373 | }; |