1 // SPDX-License-Identifier: GPL-2.0-only 1 // SPDX-License-Identifier: GPL-2.0-only 2 /* 2 /* 3 * Copyright (c) 2015, The Linux Foundation. A 3 * Copyright (c) 2015, The Linux Foundation. All rights reserved. 4 */ 4 */ 5 5 6 /dts-v1/; 6 /dts-v1/; 7 7 8 #include "msm8916-pm8916.dtsi" 8 #include "msm8916-pm8916.dtsi" 9 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/gpio/gpio.h> 10 #include <dt-bindings/input/input.h> 10 #include <dt-bindings/input/input.h> 11 #include <dt-bindings/leds/common.h> 11 #include <dt-bindings/leds/common.h> 12 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h 12 #include <dt-bindings/pinctrl/qcom,pmic-gpio.h> 13 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h> 13 #include <dt-bindings/pinctrl/qcom,pmic-mpp.h> 14 #include <dt-bindings/sound/apq8016-lpass.h> 14 #include <dt-bindings/sound/apq8016-lpass.h> 15 15 16 / { 16 / { 17 model = "Qualcomm Technologies, Inc. A 17 model = "Qualcomm Technologies, Inc. APQ 8016 SBC"; 18 compatible = "qcom,apq8016-sbc", "qcom 18 compatible = "qcom,apq8016-sbc", "qcom,apq8016"; 19 19 20 aliases { 20 aliases { 21 mmc0 = &sdhc_1; /* eMMC */ 21 mmc0 = &sdhc_1; /* eMMC */ 22 mmc1 = &sdhc_2; /* SD card */ 22 mmc1 = &sdhc_2; /* SD card */ 23 serial0 = &blsp_uart2; 23 serial0 = &blsp_uart2; 24 serial1 = &blsp_uart1; 24 serial1 = &blsp_uart1; 25 usid0 = &pm8916_0; 25 usid0 = &pm8916_0; 26 i2c0 = &blsp_i2c2; 26 i2c0 = &blsp_i2c2; 27 i2c1 = &blsp_i2c6; 27 i2c1 = &blsp_i2c6; 28 i2c3 = &blsp_i2c4; 28 i2c3 = &blsp_i2c4; 29 spi0 = &blsp_spi5; 29 spi0 = &blsp_spi5; 30 spi1 = &blsp_spi3; 30 spi1 = &blsp_spi3; 31 }; 31 }; 32 32 33 chosen { 33 chosen { 34 stdout-path = "serial0"; 34 stdout-path = "serial0"; 35 }; 35 }; 36 36 37 reserved-memory { 37 reserved-memory { 38 ramoops@bff00000 { 38 ramoops@bff00000 { 39 compatible = "ramoops" 39 compatible = "ramoops"; 40 reg = <0x0 0xbff00000 40 reg = <0x0 0xbff00000 0x0 0x100000>; 41 41 42 record-size = <0x20000 42 record-size = <0x20000>; 43 console-size = <0x2000 43 console-size = <0x20000>; 44 ftrace-size = <0x20000 44 ftrace-size = <0x20000>; 45 }; 45 }; 46 }; 46 }; 47 47 48 usb2513 { 48 usb2513 { 49 compatible = "smsc,usb3503"; 49 compatible = "smsc,usb3503"; 50 reset-gpios = <&pm8916_gpios 3 50 reset-gpios = <&pm8916_gpios 3 GPIO_ACTIVE_LOW>; 51 initial-mode = <1>; 51 initial-mode = <1>; 52 }; 52 }; 53 53 54 usb_id: usb-id { 54 usb_id: usb-id { 55 compatible = "linux,extcon-usb 55 compatible = "linux,extcon-usb-gpio"; 56 id-gpios = <&tlmm 121 GPIO_ACT 56 id-gpios = <&tlmm 121 GPIO_ACTIVE_HIGH>; 57 pinctrl-names = "default"; 57 pinctrl-names = "default"; 58 pinctrl-0 = <&usb_id_default>; 58 pinctrl-0 = <&usb_id_default>; 59 }; 59 }; 60 60 61 hdmi-out { 61 hdmi-out { 62 compatible = "hdmi-connector"; 62 compatible = "hdmi-connector"; 63 type = "a"; 63 type = "a"; 64 64 65 port { 65 port { 66 hdmi_con: endpoint { 66 hdmi_con: endpoint { 67 remote-endpoin 67 remote-endpoint = <&adv7533_out>; 68 }; 68 }; 69 }; 69 }; 70 }; 70 }; 71 71 72 gpio-keys { 72 gpio-keys { 73 compatible = "gpio-keys"; 73 compatible = "gpio-keys"; 74 autorepeat; 74 autorepeat; 75 75 76 pinctrl-names = "default"; 76 pinctrl-names = "default"; 77 pinctrl-0 = <&msm_key_volp_n_d 77 pinctrl-0 = <&msm_key_volp_n_default>; 78 78 79 button { 79 button { 80 label = "Volume Up"; 80 label = "Volume Up"; 81 linux,code = <KEY_VOLU 81 linux,code = <KEY_VOLUMEUP>; 82 gpios = <&tlmm 107 GPI 82 gpios = <&tlmm 107 GPIO_ACTIVE_LOW>; 83 }; 83 }; 84 }; 84 }; 85 85 86 leds { 86 leds { 87 pinctrl-names = "default"; 87 pinctrl-names = "default"; 88 pinctrl-0 = <&tlmm_leds>, 88 pinctrl-0 = <&tlmm_leds>, 89 <&pm8916_gpios_led 89 <&pm8916_gpios_leds>, 90 <&pm8916_mpps_leds 90 <&pm8916_mpps_leds>; 91 91 92 compatible = "gpio-leds"; 92 compatible = "gpio-leds"; 93 93 94 led-1 { 94 led-1 { 95 label = "apq8016-sbc:g 95 label = "apq8016-sbc:green:user1"; 96 function = LED_FUNCTIO 96 function = LED_FUNCTION_HEARTBEAT; 97 color = <LED_COLOR_ID_ 97 color = <LED_COLOR_ID_GREEN>; 98 gpios = <&tlmm 21 GPIO 98 gpios = <&tlmm 21 GPIO_ACTIVE_HIGH>; 99 linux,default-trigger 99 linux,default-trigger = "heartbeat"; 100 default-state = "off"; 100 default-state = "off"; 101 }; 101 }; 102 102 103 led-2 { 103 led-2 { 104 label = "apq8016-sbc:g 104 label = "apq8016-sbc:green:user2"; 105 function = LED_FUNCTIO 105 function = LED_FUNCTION_DISK_ACTIVITY; 106 color = <LED_COLOR_ID_ 106 color = <LED_COLOR_ID_GREEN>; 107 gpios = <&tlmm 120 GPI 107 gpios = <&tlmm 120 GPIO_ACTIVE_HIGH>; 108 linux,default-trigger 108 linux,default-trigger = "mmc0"; 109 default-state = "off"; 109 default-state = "off"; 110 }; 110 }; 111 111 112 led-3 { 112 led-3 { 113 label = "apq8016-sbc:g 113 label = "apq8016-sbc:green:user3"; 114 function = LED_FUNCTIO 114 function = LED_FUNCTION_DISK_ACTIVITY; 115 color = <LED_COLOR_ID_ 115 color = <LED_COLOR_ID_GREEN>; 116 gpios = <&pm8916_gpios 116 gpios = <&pm8916_gpios 1 GPIO_ACTIVE_HIGH>; 117 linux,default-trigger 117 linux,default-trigger = "mmc1"; 118 default-state = "off"; 118 default-state = "off"; 119 }; 119 }; 120 120 121 led-4 { 121 led-4 { 122 label = "apq8016-sbc:g 122 label = "apq8016-sbc:green:user4"; 123 color = <LED_COLOR_ID_ 123 color = <LED_COLOR_ID_GREEN>; 124 gpios = <&pm8916_gpios 124 gpios = <&pm8916_gpios 2 GPIO_ACTIVE_HIGH>; 125 linux,default-trigger 125 linux,default-trigger = "none"; 126 panic-indicator; 126 panic-indicator; 127 default-state = "off"; 127 default-state = "off"; 128 }; 128 }; 129 129 130 led-5 { 130 led-5 { 131 label = "apq8016-sbc:y 131 label = "apq8016-sbc:yellow:wlan"; 132 function = LED_FUNCTIO 132 function = LED_FUNCTION_WLAN; 133 color = <LED_COLOR_ID_ 133 color = <LED_COLOR_ID_YELLOW>; 134 gpios = <&pm8916_mpps 134 gpios = <&pm8916_mpps 2 GPIO_ACTIVE_HIGH>; 135 linux,default-trigger 135 linux,default-trigger = "phy0tx"; 136 default-state = "off"; 136 default-state = "off"; 137 }; 137 }; 138 138 139 led-6 { 139 led-6 { 140 label = "apq8016-sbc:b 140 label = "apq8016-sbc:blue:bt"; 141 function = LED_FUNCTIO 141 function = LED_FUNCTION_BLUETOOTH; 142 color = <LED_COLOR_ID_ 142 color = <LED_COLOR_ID_BLUE>; 143 gpios = <&pm8916_mpps 143 gpios = <&pm8916_mpps 3 GPIO_ACTIVE_HIGH>; 144 linux,default-trigger 144 linux,default-trigger = "bluetooth-power"; 145 default-state = "off"; 145 default-state = "off"; 146 }; 146 }; 147 }; 147 }; 148 }; 148 }; 149 149 150 &blsp_i2c2 { 150 &blsp_i2c2 { 151 /* On Low speed expansion: LS-I2C0 */ 151 /* On Low speed expansion: LS-I2C0 */ 152 status = "okay"; 152 status = "okay"; 153 }; 153 }; 154 154 155 &blsp_i2c4 { 155 &blsp_i2c4 { 156 /* On High speed expansion: HS-I2C2 */ 156 /* On High speed expansion: HS-I2C2 */ 157 status = "okay"; 157 status = "okay"; 158 158 159 adv_bridge: bridge@39 { 159 adv_bridge: bridge@39 { 160 status = "okay"; 160 status = "okay"; 161 161 162 compatible = "adi,adv7533"; 162 compatible = "adi,adv7533"; 163 reg = <0x39>; 163 reg = <0x39>; 164 164 165 interrupt-parent = <&tlmm>; 165 interrupt-parent = <&tlmm>; 166 interrupts = <31 IRQ_TYPE_EDGE 166 interrupts = <31 IRQ_TYPE_EDGE_FALLING>; 167 167 168 adi,dsi-lanes = <4>; 168 adi,dsi-lanes = <4>; 169 clocks = <&rpmcc RPM_SMD_BB_CL 169 clocks = <&rpmcc RPM_SMD_BB_CLK2>; 170 clock-names = "cec"; 170 clock-names = "cec"; 171 171 172 pd-gpios = <&tlmm 32 GPIO_ACTI 172 pd-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>; 173 173 174 avdd-supply = <&pm8916_l6>; 174 avdd-supply = <&pm8916_l6>; 175 a2vdd-supply = <&pm8916_l6>; 175 a2vdd-supply = <&pm8916_l6>; 176 dvdd-supply = <&pm8916_l6>; 176 dvdd-supply = <&pm8916_l6>; 177 pvdd-supply = <&pm8916_l6>; 177 pvdd-supply = <&pm8916_l6>; 178 v1p2-supply = <&pm8916_l6>; 178 v1p2-supply = <&pm8916_l6>; 179 v3p3-supply = <&pm8916_l17>; 179 v3p3-supply = <&pm8916_l17>; 180 180 181 pinctrl-names = "default","sle 181 pinctrl-names = "default","sleep"; 182 pinctrl-0 = <&adv7533_int_acti 182 pinctrl-0 = <&adv7533_int_active &adv7533_switch_active>; 183 pinctrl-1 = <&adv7533_int_susp 183 pinctrl-1 = <&adv7533_int_suspend &adv7533_switch_suspend>; 184 #sound-dai-cells = <1>; 184 #sound-dai-cells = <1>; 185 185 186 ports { 186 ports { 187 #address-cells = <1>; 187 #address-cells = <1>; 188 #size-cells = <0>; 188 #size-cells = <0>; 189 189 190 port@0 { 190 port@0 { 191 reg = <0>; 191 reg = <0>; 192 adv7533_in: en 192 adv7533_in: endpoint { 193 remote 193 remote-endpoint = <&mdss_dsi0_out>; 194 }; 194 }; 195 }; 195 }; 196 196 197 port@1 { 197 port@1 { 198 reg = <1>; 198 reg = <1>; 199 adv7533_out: e 199 adv7533_out: endpoint { 200 remote 200 remote-endpoint = <&hdmi_con>; 201 }; 201 }; 202 }; 202 }; 203 }; 203 }; 204 }; 204 }; 205 }; 205 }; 206 206 207 &blsp_i2c6 { 207 &blsp_i2c6 { 208 /* On Low speed expansion: LS-I2C1 */ 208 /* On Low speed expansion: LS-I2C1 */ 209 status = "okay"; 209 status = "okay"; 210 }; 210 }; 211 211 212 &blsp_spi3 { 212 &blsp_spi3 { 213 /* On High speed expansion: HS-SPI1 */ 213 /* On High speed expansion: HS-SPI1 */ 214 status = "okay"; 214 status = "okay"; 215 }; 215 }; 216 216 217 &blsp_spi5 { 217 &blsp_spi5 { 218 /* On Low speed expansion: LS-SPI0 */ 218 /* On Low speed expansion: LS-SPI0 */ 219 status = "okay"; 219 status = "okay"; 220 }; 220 }; 221 221 222 &blsp_uart1 { 222 &blsp_uart1 { 223 status = "okay"; 223 status = "okay"; 224 label = "LS-UART0"; 224 label = "LS-UART0"; 225 }; 225 }; 226 226 227 &blsp_uart2 { 227 &blsp_uart2 { 228 status = "okay"; 228 status = "okay"; 229 label = "LS-UART1"; 229 label = "LS-UART1"; 230 }; 230 }; 231 231 232 &camss { 232 &camss { 233 status = "okay"; 233 status = "okay"; 234 }; 234 }; 235 235 236 &gpu { 236 &gpu { 237 status = "okay"; 237 status = "okay"; 238 }; 238 }; 239 239 240 &lpass { 240 &lpass { 241 status = "okay"; 241 status = "okay"; 242 }; 242 }; 243 243 244 &lpass_codec { 244 &lpass_codec { 245 status = "okay"; 245 status = "okay"; 246 }; 246 }; 247 247 248 &mba_mem { 248 &mba_mem { 249 status = "okay"; 249 status = "okay"; 250 }; 250 }; 251 251 252 &mdss { 252 &mdss { 253 status = "okay"; 253 status = "okay"; 254 }; 254 }; 255 255 256 &mdss_dsi0_out { 256 &mdss_dsi0_out { 257 data-lanes = <0 1 2 3>; 257 data-lanes = <0 1 2 3>; 258 remote-endpoint = <&adv7533_in>; 258 remote-endpoint = <&adv7533_in>; 259 }; 259 }; 260 260 261 &mpss { 261 &mpss { 262 status = "okay"; 262 status = "okay"; 263 263 264 firmware-name = "qcom/apq8016/mba.mbn" 264 firmware-name = "qcom/apq8016/mba.mbn", "qcom/apq8016/modem.mbn"; 265 }; 265 }; 266 266 267 &mpss_mem { 267 &mpss_mem { 268 status = "okay"; 268 status = "okay"; 269 reg = <0x0 0x86800000 0x0 0x2b00000>; 269 reg = <0x0 0x86800000 0x0 0x2b00000>; 270 }; 270 }; 271 271 272 &pm8916_codec { 272 &pm8916_codec { 273 status = "okay"; 273 status = "okay"; 274 qcom,mbhc-vthreshold-low = <75 150 237 274 qcom,mbhc-vthreshold-low = <75 150 237 450 500>; 275 qcom,mbhc-vthreshold-high = <75 150 23 275 qcom,mbhc-vthreshold-high = <75 150 237 450 500>; 276 }; 276 }; 277 277 278 &pm8916_resin { 278 &pm8916_resin { 279 status = "okay"; 279 status = "okay"; 280 linux,code = <KEY_VOLUMEDOWN>; 280 linux,code = <KEY_VOLUMEDOWN>; 281 }; 281 }; 282 282 283 &pm8916_rpm_regulators { 283 &pm8916_rpm_regulators { 284 /* 284 /* 285 * The 96Boards specification expects 285 * The 96Boards specification expects a 1.8V power rail on the low-speed 286 * expansion connector that is able to 286 * expansion connector that is able to provide at least 0.18W / 100 mA. 287 * L15/L16 are connected in parallel t 287 * L15/L16 are connected in parallel to provide 55 mA each. A minimum load 288 * must be specified to ensure the reg 288 * must be specified to ensure the regulators are not put in LPM where they 289 * would only provide 5 mA. 289 * would only provide 5 mA. 290 */ 290 */ 291 pm8916_l15: l15 { 291 pm8916_l15: l15 { 292 regulator-min-microvolt = <180 292 regulator-min-microvolt = <1800000>; 293 regulator-max-microvolt = <180 293 regulator-max-microvolt = <1800000>; 294 regulator-system-load = <50000 294 regulator-system-load = <50000>; 295 regulator-allow-set-load; 295 regulator-allow-set-load; 296 regulator-always-on; 296 regulator-always-on; 297 }; 297 }; 298 pm8916_l16: l16 { 298 pm8916_l16: l16 { 299 regulator-min-microvolt = <180 299 regulator-min-microvolt = <1800000>; 300 regulator-max-microvolt = <180 300 regulator-max-microvolt = <1800000>; 301 regulator-system-load = <50000 301 regulator-system-load = <50000>; 302 regulator-allow-set-load; 302 regulator-allow-set-load; 303 regulator-always-on; 303 regulator-always-on; 304 }; 304 }; 305 305 306 pm8916_l17: l17 { 306 pm8916_l17: l17 { 307 regulator-min-microvolt = <330 307 regulator-min-microvolt = <3300000>; 308 regulator-max-microvolt = <330 308 regulator-max-microvolt = <3300000>; 309 }; 309 }; 310 }; 310 }; 311 311 312 &sdhc_1 { 312 &sdhc_1 { 313 status = "okay"; 313 status = "okay"; 314 }; 314 }; 315 315 316 &sdhc_2 { 316 &sdhc_2 { 317 status = "okay"; 317 status = "okay"; 318 318 319 pinctrl-names = "default", "sleep"; 319 pinctrl-names = "default", "sleep"; 320 pinctrl-0 = <&sdc2_default &sdc2_cd_de 320 pinctrl-0 = <&sdc2_default &sdc2_cd_default>; 321 pinctrl-1 = <&sdc2_sleep &sdc2_cd_defa 321 pinctrl-1 = <&sdc2_sleep &sdc2_cd_default>; 322 322 323 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 323 cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; 324 }; 324 }; 325 325 326 &sound { 326 &sound { 327 status = "okay"; 327 status = "okay"; 328 328 329 pinctrl-0 = <&cdc_pdm_default &sec_mi2 329 pinctrl-0 = <&cdc_pdm_default &sec_mi2s_default>; 330 pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_ 330 pinctrl-1 = <&cdc_pdm_sleep &sec_mi2s_sleep>; 331 pinctrl-names = "default", "sleep"; 331 pinctrl-names = "default", "sleep"; 332 model = "DB410c"; 332 model = "DB410c"; 333 audio-routing = 333 audio-routing = 334 "AMIC2", "MIC BIAS Internal2", 334 "AMIC2", "MIC BIAS Internal2", 335 "AMIC3", "MIC BIAS External1"; 335 "AMIC3", "MIC BIAS External1"; 336 336 337 quaternary-dai-link { 337 quaternary-dai-link { 338 link-name = "ADV7533"; 338 link-name = "ADV7533"; 339 cpu { 339 cpu { 340 sound-dai = <&lpass MI 340 sound-dai = <&lpass MI2S_QUATERNARY>; 341 }; 341 }; 342 codec { 342 codec { 343 sound-dai = <&adv_brid 343 sound-dai = <&adv_bridge 0>; 344 }; 344 }; 345 }; 345 }; 346 346 347 primary-dai-link { 347 primary-dai-link { 348 link-name = "WCD"; 348 link-name = "WCD"; 349 cpu { 349 cpu { 350 sound-dai = <&lpass MI 350 sound-dai = <&lpass MI2S_PRIMARY>; 351 }; 351 }; 352 codec { 352 codec { 353 sound-dai = <&lpass_co 353 sound-dai = <&lpass_codec 0>, <&pm8916_codec 0>; 354 }; 354 }; 355 }; 355 }; 356 356 357 tertiary-dai-link { 357 tertiary-dai-link { 358 link-name = "WCD-Capture"; 358 link-name = "WCD-Capture"; 359 cpu { 359 cpu { 360 sound-dai = <&lpass MI 360 sound-dai = <&lpass MI2S_TERTIARY>; 361 }; 361 }; 362 codec { 362 codec { 363 sound-dai = <&lpass_co 363 sound-dai = <&lpass_codec 1>, <&pm8916_codec 1>; 364 }; 364 }; 365 }; 365 }; 366 }; 366 }; 367 367 368 &usb { 368 &usb { 369 status = "okay"; 369 status = "okay"; 370 extcon = <&usb_id>, <&usb_id>; 370 extcon = <&usb_id>, <&usb_id>; 371 371 372 pinctrl-names = "default", "device"; 372 pinctrl-names = "default", "device"; 373 pinctrl-0 = <&usb_sw_sel_pm &usb_hub_r 373 pinctrl-0 = <&usb_sw_sel_pm &usb_hub_reset_pm>; 374 pinctrl-1 = <&usb_sw_sel_pm_device &us 374 pinctrl-1 = <&usb_sw_sel_pm_device &usb_hub_reset_pm_device>; 375 }; 375 }; 376 376 377 &usb_hs_phy { 377 &usb_hs_phy { 378 extcon = <&usb_id>; 378 extcon = <&usb_id>; 379 }; 379 }; 380 380 381 &venus { 381 &venus { 382 status = "okay"; 382 status = "okay"; 383 }; 383 }; 384 384 385 &venus_mem { 385 &venus_mem { 386 status = "okay"; 386 status = "okay"; 387 }; 387 }; 388 388 389 &wcnss { 389 &wcnss { 390 status = "okay"; 390 status = "okay"; 391 firmware-name = "qcom/apq8016/wcnss.mb 391 firmware-name = "qcom/apq8016/wcnss.mbn"; 392 }; 392 }; 393 393 394 &wcnss_ctrl { 394 &wcnss_ctrl { 395 firmware-name = "qcom/apq8016/WCNSS_qc 395 firmware-name = "qcom/apq8016/WCNSS_qcom_wlan_nv_sbc.bin"; 396 }; 396 }; 397 397 398 &wcnss_iris { 398 &wcnss_iris { 399 compatible = "qcom,wcn3620"; 399 compatible = "qcom,wcn3620"; 400 }; 400 }; 401 401 402 &wcnss_mem { 402 &wcnss_mem { 403 status = "okay"; 403 status = "okay"; 404 }; 404 }; 405 405 406 /* Enable CoreSight */ 406 /* Enable CoreSight */ 407 &cti0 { status = "okay"; }; 407 &cti0 { status = "okay"; }; 408 &cti1 { status = "okay"; }; 408 &cti1 { status = "okay"; }; 409 &cti12 { status = "okay"; }; 409 &cti12 { status = "okay"; }; 410 &cti13 { status = "okay"; }; 410 &cti13 { status = "okay"; }; 411 &cti14 { status = "okay"; }; 411 &cti14 { status = "okay"; }; 412 &cti15 { status = "okay"; }; 412 &cti15 { status = "okay"; }; 413 &debug0 { status = "okay"; }; 413 &debug0 { status = "okay"; }; 414 &debug1 { status = "okay"; }; 414 &debug1 { status = "okay"; }; 415 &debug2 { status = "okay"; }; 415 &debug2 { status = "okay"; }; 416 &debug3 { status = "okay"; }; 416 &debug3 { status = "okay"; }; 417 &etf { status = "okay"; }; 417 &etf { status = "okay"; }; 418 &etm0 { status = "okay"; }; 418 &etm0 { status = "okay"; }; 419 &etm1 { status = "okay"; }; 419 &etm1 { status = "okay"; }; 420 &etm2 { status = "okay"; }; 420 &etm2 { status = "okay"; }; 421 &etm3 { status = "okay"; }; 421 &etm3 { status = "okay"; }; 422 &etr { status = "okay"; }; 422 &etr { status = "okay"; }; 423 &funnel0 { status = "okay"; }; 423 &funnel0 { status = "okay"; }; 424 &funnel1 { status = "okay"; }; 424 &funnel1 { status = "okay"; }; 425 &replicator { status = "okay"; }; 425 &replicator { status = "okay"; }; 426 &stm { status = "okay"; }; 426 &stm { status = "okay"; }; 427 &tpiu { status = "okay"; }; 427 &tpiu { status = "okay"; }; 428 428 429 /* 429 /* 430 * 2mA drive strength is not enough when conne 430 * 2mA drive strength is not enough when connecting multiple 431 * I2C devices with different pull up resistor 431 * I2C devices with different pull up resistors. 432 */ 432 */ 433 &blsp_i2c2_default { 433 &blsp_i2c2_default { 434 drive-strength = <16>; 434 drive-strength = <16>; 435 }; 435 }; 436 436 437 &blsp_i2c4_default { 437 &blsp_i2c4_default { 438 drive-strength = <16>; 438 drive-strength = <16>; 439 }; 439 }; 440 440 441 &blsp_i2c6_default { 441 &blsp_i2c6_default { 442 drive-strength = <16>; 442 drive-strength = <16>; 443 }; 443 }; 444 444 445 /* 445 /* 446 * GPIO name legend: proper name = the GPIO li 446 * GPIO name legend: proper name = the GPIO line is used as GPIO 447 * NC = not connected (pin out but not 447 * NC = not connected (pin out but not routed from the chip to 448 * anything the board) 448 * anything the board) 449 * "[PER]" = pin is muxed for [periphe 449 * "[PER]" = pin is muxed for [peripheral] (not GPIO) 450 * LSEC = Low Speed External Connector 450 * LSEC = Low Speed External Connector 451 * HSEC = High Speed External Connecto 451 * HSEC = High Speed External Connector 452 * 452 * 453 * Line names are taken from the schematic "Dr 453 * Line names are taken from the schematic "DragonBoard410c" 454 * dated monday, august 31, 2015. Page 5 in pa 454 * dated monday, august 31, 2015. Page 5 in particular. 455 * 455 * 456 * For the lines routed to the external connec 456 * For the lines routed to the external connectors the 457 * lines are named after the 96Boards CE Speci 457 * lines are named after the 96Boards CE Specification 1.0, 458 * Appendix "Expansion Connector Signal Descri 458 * Appendix "Expansion Connector Signal Description". 459 * 459 * 460 * When the 96Board naming of a line and the s 460 * When the 96Board naming of a line and the schematic name of 461 * the same line are in conflict, the 96Board 461 * the same line are in conflict, the 96Board specification 462 * takes precedence, which means that the exte 462 * takes precedence, which means that the external UART on the 463 * LSEC is named UART0 while the schematic and 463 * LSEC is named UART0 while the schematic and SoC names this 464 * UART3. This is only for the informational l 464 * UART3. This is only for the informational lines i.e. "[FOO]", 465 * the GPIO named lines "GPIO-A" thru "GPIO-L" 465 * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only 466 * ones actually used for GPIO. 466 * ones actually used for GPIO. 467 */ 467 */ 468 468 469 &tlmm { 469 &tlmm { 470 gpio-line-names = 470 gpio-line-names = 471 "[UART0_TX]", /* GPIO_0, LSEC 471 "[UART0_TX]", /* GPIO_0, LSEC pin 5 */ 472 "[UART0_RX]", /* GPIO_1, LSEC 472 "[UART0_RX]", /* GPIO_1, LSEC pin 7 */ 473 "[UART0_CTS_N]", /* GPIO_2, LS 473 "[UART0_CTS_N]", /* GPIO_2, LSEC pin 3 */ 474 "[UART0_RTS_N]", /* GPIO_3, LS 474 "[UART0_RTS_N]", /* GPIO_3, LSEC pin 9 */ 475 "[UART1_TX]", /* GPIO_4, LSEC 475 "[UART1_TX]", /* GPIO_4, LSEC pin 11 */ 476 "[UART1_RX]", /* GPIO_5, LSEC 476 "[UART1_RX]", /* GPIO_5, LSEC pin 13 */ 477 "[I2C0_SDA]", /* GPIO_8, LSEC 477 "[I2C0_SDA]", /* GPIO_8, LSEC pin 17 */ 478 "[I2C0_SCL]", /* GPIO_7, LSEC 478 "[I2C0_SCL]", /* GPIO_7, LSEC pin 15 */ 479 "[SPI1_DOUT]", /* SPI1_MOSI, H 479 "[SPI1_DOUT]", /* SPI1_MOSI, HSEC pin 1 */ 480 "[SPI1_DIN]", /* SPI1_MISO, HS 480 "[SPI1_DIN]", /* SPI1_MISO, HSEC pin 11 */ 481 "[SPI1_CS]", /* SPI1_CS_N, HSE 481 "[SPI1_CS]", /* SPI1_CS_N, HSEC pin 7 */ 482 "[SPI1_SCLK]", /* SPI1_CLK, HS 482 "[SPI1_SCLK]", /* SPI1_CLK, HSEC pin 9 */ 483 "GPIO-B", /* LS_EXP_GPIO_B, LS 483 "GPIO-B", /* LS_EXP_GPIO_B, LSEC pin 24 */ 484 "GPIO-C", /* LS_EXP_GPIO_C, LS 484 "GPIO-C", /* LS_EXP_GPIO_C, LSEC pin 25 */ 485 "[I2C3_SDA]", /* HSEC pin 38 * 485 "[I2C3_SDA]", /* HSEC pin 38 */ 486 "[I2C3_SCL]", /* HSEC pin 36 * 486 "[I2C3_SCL]", /* HSEC pin 36 */ 487 "[SPI0_MOSI]", /* LSEC pin 14 487 "[SPI0_MOSI]", /* LSEC pin 14 */ 488 "[SPI0_MISO]", /* LSEC pin 10 488 "[SPI0_MISO]", /* LSEC pin 10 */ 489 "[SPI0_CS_N]", /* LSEC pin 12 489 "[SPI0_CS_N]", /* LSEC pin 12 */ 490 "[SPI0_CLK]", /* LSEC pin 8 */ 490 "[SPI0_CLK]", /* LSEC pin 8 */ 491 "HDMI_HPD_N", /* GPIO 20 */ 491 "HDMI_HPD_N", /* GPIO 20 */ 492 "USR_LED_1_CTRL", 492 "USR_LED_1_CTRL", 493 "[I2C1_SDA]", /* GPIO_22, LSEC 493 "[I2C1_SDA]", /* GPIO_22, LSEC pin 21 */ 494 "[I2C1_SCL]", /* GPIO_23, LSEC 494 "[I2C1_SCL]", /* GPIO_23, LSEC pin 19 */ 495 "GPIO-G", /* LS_EXP_GPIO_G, LS 495 "GPIO-G", /* LS_EXP_GPIO_G, LSEC pin 29 */ 496 "GPIO-H", /* LS_EXP_GPIO_H, LS 496 "GPIO-H", /* LS_EXP_GPIO_H, LSEC pin 30 */ 497 "[CSI0_MCLK]", /* HSEC pin 15 497 "[CSI0_MCLK]", /* HSEC pin 15 */ 498 "[CSI1_MCLK]", /* HSEC pin 17 498 "[CSI1_MCLK]", /* HSEC pin 17 */ 499 "GPIO-K", /* LS_EXP_GPIO_K, LS 499 "GPIO-K", /* LS_EXP_GPIO_K, LSEC pin 33 */ 500 "[I2C2_SDA]", /* HSEC pin 34 * 500 "[I2C2_SDA]", /* HSEC pin 34 */ 501 "[I2C2_SCL]", /* HSEC pin 32 * 501 "[I2C2_SCL]", /* HSEC pin 32 */ 502 "DSI2HDMI_INT_N", 502 "DSI2HDMI_INT_N", 503 "DSI_SW_SEL_APQ", 503 "DSI_SW_SEL_APQ", 504 "GPIO-L", /* LS_EXP_GPIO_L, LS 504 "GPIO-L", /* LS_EXP_GPIO_L, LSEC pin 34 */ 505 "GPIO-J", /* LS_EXP_GPIO_J, LS 505 "GPIO-J", /* LS_EXP_GPIO_J, LSEC pin 32 */ 506 "GPIO-I", /* LS_EXP_GPIO_I, LS 506 "GPIO-I", /* LS_EXP_GPIO_I, LSEC pin 31 */ 507 "GPIO-A", /* LS_EXP_GPIO_A, LS 507 "GPIO-A", /* LS_EXP_GPIO_A, LSEC pin 23 */ 508 "FORCED_USB_BOOT", 508 "FORCED_USB_BOOT", 509 "SD_CARD_DET_N", 509 "SD_CARD_DET_N", 510 "[WCSS_BT_SSBI]", 510 "[WCSS_BT_SSBI]", 511 "[WCSS_WLAN_DATA_2]", /* GPIO 511 "[WCSS_WLAN_DATA_2]", /* GPIO 40 */ 512 "[WCSS_WLAN_DATA_1]", 512 "[WCSS_WLAN_DATA_1]", 513 "[WCSS_WLAN_DATA_0]", 513 "[WCSS_WLAN_DATA_0]", 514 "[WCSS_WLAN_SET]", 514 "[WCSS_WLAN_SET]", 515 "[WCSS_WLAN_CLK]", 515 "[WCSS_WLAN_CLK]", 516 "[WCSS_FM_SSBI]", 516 "[WCSS_FM_SSBI]", 517 "[WCSS_FM_SDI]", 517 "[WCSS_FM_SDI]", 518 "[WCSS_BT_DAT_CTL]", 518 "[WCSS_BT_DAT_CTL]", 519 "[WCSS_BT_DAT_STB]", 519 "[WCSS_BT_DAT_STB]", 520 "NC", 520 "NC", 521 "NC", /* GPIO 50 */ 521 "NC", /* GPIO 50 */ 522 "NC", 522 "NC", 523 "NC", 523 "NC", 524 "NC", 524 "NC", 525 "NC", 525 "NC", 526 "NC", 526 "NC", 527 "NC", 527 "NC", 528 "NC", 528 "NC", 529 "NC", 529 "NC", 530 "NC", 530 "NC", 531 "NC", /* GPIO 60 */ 531 "NC", /* GPIO 60 */ 532 "NC", 532 "NC", 533 "NC", 533 "NC", 534 "[CDC_PDM0_CLK]", 534 "[CDC_PDM0_CLK]", 535 "[CDC_PDM0_SYNC]", 535 "[CDC_PDM0_SYNC]", 536 "[CDC_PDM0_TX0]", 536 "[CDC_PDM0_TX0]", 537 "[CDC_PDM0_RX0]", 537 "[CDC_PDM0_RX0]", 538 "[CDC_PDM0_RX1]", 538 "[CDC_PDM0_RX1]", 539 "[CDC_PDM0_RX2]", 539 "[CDC_PDM0_RX2]", 540 "GPIO-D", /* LS_EXP_GPIO_D, LS 540 "GPIO-D", /* LS_EXP_GPIO_D, LSEC pin 26 */ 541 "NC", /* GPIO 70 */ 541 "NC", /* GPIO 70 */ 542 "NC", 542 "NC", 543 "NC", 543 "NC", 544 "NC", 544 "NC", 545 "NC", /* GPIO 74 */ 545 "NC", /* GPIO 74 */ 546 "NC", 546 "NC", 547 "NC", 547 "NC", 548 "NC", 548 "NC", 549 "NC", 549 "NC", 550 "NC", 550 "NC", 551 "BOOT_CONFIG_0", /* GPIO 80 */ 551 "BOOT_CONFIG_0", /* GPIO 80 */ 552 "BOOT_CONFIG_1", 552 "BOOT_CONFIG_1", 553 "BOOT_CONFIG_2", 553 "BOOT_CONFIG_2", 554 "BOOT_CONFIG_3", 554 "BOOT_CONFIG_3", 555 "NC", 555 "NC", 556 "NC", 556 "NC", 557 "BOOT_CONFIG_5", 557 "BOOT_CONFIG_5", 558 "NC", 558 "NC", 559 "NC", 559 "NC", 560 "NC", 560 "NC", 561 "NC", /* GPIO 90 */ 561 "NC", /* GPIO 90 */ 562 "NC", 562 "NC", 563 "NC", 563 "NC", 564 "NC", 564 "NC", 565 "NC", 565 "NC", 566 "NC", 566 "NC", 567 "NC", 567 "NC", 568 "NC", 568 "NC", 569 "NC", 569 "NC", 570 "NC", 570 "NC", 571 "NC", /* GPIO 100 */ 571 "NC", /* GPIO 100 */ 572 "NC", 572 "NC", 573 "NC", 573 "NC", 574 "NC", 574 "NC", 575 "SSBI_GPS", 575 "SSBI_GPS", 576 "NC", 576 "NC", 577 "NC", 577 "NC", 578 "KEY_VOLP_N", 578 "KEY_VOLP_N", 579 "NC", 579 "NC", 580 "NC", 580 "NC", 581 "[LS_EXP_MI2S_WS]", /* GPIO 11 581 "[LS_EXP_MI2S_WS]", /* GPIO 110 */ 582 "NC", 582 "NC", 583 "NC", 583 "NC", 584 "[LS_EXP_MI2S_SCK]", 584 "[LS_EXP_MI2S_SCK]", 585 "[LS_EXP_MI2S_DATA0]", 585 "[LS_EXP_MI2S_DATA0]", 586 "GPIO-E", /* LS_EXP_GPIO_E, LS 586 "GPIO-E", /* LS_EXP_GPIO_E, LSEC pin 27 */ 587 "NC", 587 "NC", 588 "[DSI2HDMI_MI2S_WS]", 588 "[DSI2HDMI_MI2S_WS]", 589 "[DSI2HDMI_MI2S_SCK]", 589 "[DSI2HDMI_MI2S_SCK]", 590 "[DSI2HDMI_MI2S_DATA0]", 590 "[DSI2HDMI_MI2S_DATA0]", 591 "USR_LED_2_CTRL", /* GPIO 120 591 "USR_LED_2_CTRL", /* GPIO 120 */ 592 "SB_HS_ID"; 592 "SB_HS_ID"; 593 593 594 sdc2_cd_default: sdc2-cd-default-state 594 sdc2_cd_default: sdc2-cd-default-state { 595 pins = "gpio38"; 595 pins = "gpio38"; 596 function = "gpio"; 596 function = "gpio"; 597 drive-strength = <2>; 597 drive-strength = <2>; 598 bias-disable; 598 bias-disable; 599 }; 599 }; 600 600 601 tlmm_leds: tlmm-leds-state { 601 tlmm_leds: tlmm-leds-state { 602 pins = "gpio21", "gpio120"; 602 pins = "gpio21", "gpio120"; 603 function = "gpio"; 603 function = "gpio"; 604 604 605 output-low; 605 output-low; 606 }; 606 }; 607 607 608 usb_id_default: usb-id-default-state { 608 usb_id_default: usb-id-default-state { 609 pins = "gpio121"; 609 pins = "gpio121"; 610 function = "gpio"; 610 function = "gpio"; 611 611 612 drive-strength = <8>; 612 drive-strength = <8>; 613 bias-pull-up; 613 bias-pull-up; 614 }; 614 }; 615 615 616 adv7533_int_active: adv533-int-active- 616 adv7533_int_active: adv533-int-active-state { 617 pins = "gpio31"; 617 pins = "gpio31"; 618 function = "gpio"; 618 function = "gpio"; 619 619 620 drive-strength = <16>; 620 drive-strength = <16>; 621 bias-disable; 621 bias-disable; 622 }; 622 }; 623 623 624 adv7533_int_suspend: adv7533-int-suspe 624 adv7533_int_suspend: adv7533-int-suspend-state { 625 pins = "gpio31"; 625 pins = "gpio31"; 626 function = "gpio"; 626 function = "gpio"; 627 627 628 drive-strength = <2>; 628 drive-strength = <2>; 629 bias-disable; 629 bias-disable; 630 }; 630 }; 631 631 632 adv7533_switch_active: adv7533-switch- 632 adv7533_switch_active: adv7533-switch-active-state { 633 pins = "gpio32"; 633 pins = "gpio32"; 634 function = "gpio"; 634 function = "gpio"; 635 635 636 drive-strength = <16>; 636 drive-strength = <16>; 637 bias-disable; 637 bias-disable; 638 }; 638 }; 639 639 640 adv7533_switch_suspend: adv7533-switch 640 adv7533_switch_suspend: adv7533-switch-suspend-state { 641 pins = "gpio32"; 641 pins = "gpio32"; 642 function = "gpio"; 642 function = "gpio"; 643 643 644 drive-strength = <2>; 644 drive-strength = <2>; 645 bias-disable; 645 bias-disable; 646 }; 646 }; 647 647 648 msm_key_volp_n_default: msm-key-volp-n 648 msm_key_volp_n_default: msm-key-volp-n-default-state { 649 pins = "gpio107"; 649 pins = "gpio107"; 650 function = "gpio"; 650 function = "gpio"; 651 651 652 drive-strength = <8>; 652 drive-strength = <8>; 653 bias-pull-up; 653 bias-pull-up; 654 }; 654 }; 655 }; 655 }; 656 656 657 &pm8916_gpios { 657 &pm8916_gpios { 658 gpio-line-names = 658 gpio-line-names = 659 "USR_LED_3_CTRL", 659 "USR_LED_3_CTRL", 660 "USR_LED_4_CTRL", 660 "USR_LED_4_CTRL", 661 "USB_HUB_RESET_N_PM", 661 "USB_HUB_RESET_N_PM", 662 "USB_SW_SEL_PM"; 662 "USB_SW_SEL_PM"; 663 663 664 usb_hub_reset_pm: usb-hub-reset-pm-sta 664 usb_hub_reset_pm: usb-hub-reset-pm-state { 665 pins = "gpio3"; 665 pins = "gpio3"; 666 function = PMIC_GPIO_FUNC_NORM 666 function = PMIC_GPIO_FUNC_NORMAL; 667 667 668 input-disable; 668 input-disable; 669 output-high; 669 output-high; 670 }; 670 }; 671 671 672 usb_hub_reset_pm_device: usb-hub-reset 672 usb_hub_reset_pm_device: usb-hub-reset-pm-device-state { 673 pins = "gpio3"; 673 pins = "gpio3"; 674 function = PMIC_GPIO_FUNC_NORM 674 function = PMIC_GPIO_FUNC_NORMAL; 675 675 676 output-low; 676 output-low; 677 }; 677 }; 678 678 679 usb_sw_sel_pm: usb-sw-sel-pm-state { 679 usb_sw_sel_pm: usb-sw-sel-pm-state { 680 pins = "gpio4"; 680 pins = "gpio4"; 681 function = PMIC_GPIO_FUNC_NORM 681 function = PMIC_GPIO_FUNC_NORMAL; 682 682 683 power-source = <PM8916_GPIO_VP 683 power-source = <PM8916_GPIO_VPH>; 684 input-disable; 684 input-disable; 685 output-high; 685 output-high; 686 }; 686 }; 687 687 688 usb_sw_sel_pm_device: usb-sw-sel-pm-de 688 usb_sw_sel_pm_device: usb-sw-sel-pm-device-state { 689 pins = "gpio4"; 689 pins = "gpio4"; 690 function = PMIC_GPIO_FUNC_NORM 690 function = PMIC_GPIO_FUNC_NORMAL; 691 691 692 power-source = <PM8916_GPIO_VP 692 power-source = <PM8916_GPIO_VPH>; 693 input-disable; 693 input-disable; 694 output-low; 694 output-low; 695 }; 695 }; 696 696 697 pm8916_gpios_leds: pm8916-gpios-leds-s 697 pm8916_gpios_leds: pm8916-gpios-leds-state { 698 pins = "gpio1", "gpio2"; 698 pins = "gpio1", "gpio2"; 699 function = PMIC_GPIO_FUNC_NORM 699 function = PMIC_GPIO_FUNC_NORMAL; 700 700 701 output-low; 701 output-low; 702 }; 702 }; 703 }; 703 }; 704 704 705 &pm8916_mpps { 705 &pm8916_mpps { 706 gpio-line-names = 706 gpio-line-names = 707 "VDD_PX_BIAS", 707 "VDD_PX_BIAS", 708 "WLAN_LED_CTRL", 708 "WLAN_LED_CTRL", 709 "BT_LED_CTRL", 709 "BT_LED_CTRL", 710 "GPIO-F"; /* LS_EXP_GPIO_F, LS 710 "GPIO-F"; /* LS_EXP_GPIO_F, LSEC pin 28 */ 711 711 712 pinctrl-names = "default"; 712 pinctrl-names = "default"; 713 pinctrl-0 = <&ls_exp_gpio_f>; 713 pinctrl-0 = <&ls_exp_gpio_f>; 714 714 715 ls_exp_gpio_f: pm8916-mpp4-state { 715 ls_exp_gpio_f: pm8916-mpp4-state { 716 pins = "mpp4"; 716 pins = "mpp4"; 717 function = "digital"; 717 function = "digital"; 718 718 719 output-low; 719 output-low; 720 power-source = <PM8916_MPP_L5> 720 power-source = <PM8916_MPP_L5>; /* 1.8V */ 721 }; 721 }; 722 722 723 pm8916_mpps_leds: pm8916-mpps-state { 723 pm8916_mpps_leds: pm8916-mpps-state { 724 pins = "mpp2", "mpp3"; 724 pins = "mpp2", "mpp3"; 725 function = "digital"; 725 function = "digital"; 726 726 727 output-low; 727 output-low; 728 }; 728 }; 729 }; 729 };
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.