1/* 2 * dts file for Hisilicon HiKey Development Board 3 * 4 * Copyright (C) 2015, Hisilicon Ltd. 5 * 6 */ 7 8/dts-v1/; 9#include "hi6220.dtsi" 10#include "hikey-pinctrl.dtsi" 11#include <dt-bindings/gpio/gpio.h> 12 13/ { 14 model = "HiKey Development Board"; 15 compatible = "hisilicon,hi6220-hikey", "hisilicon,hi6220"; 16 17 aliases { 18 serial0 = &uart0; /* On board UART0 */ 19 serial1 = &uart1; /* BT UART */ 20 serial2 = &uart2; /* LS Expansion UART0 */ 21 serial3 = &uart3; /* LS Expansion UART1 */ 22 }; 23 24 chosen { 25 stdout-path = "serial3:115200n8"; 26 }; 27 28 /* 29 * Reserve below regions from memory node: 30 * 31 * 0x05e0,0000 - 0x05ef,ffff: MCU firmware runtime using 32 * 0x05f0,1000 - 0x05f0,1fff: Reboot reason 33 * 0x06df,f000 - 0x06df,ffff: Mailbox message data 34 * 0x0740,f000 - 0x0740,ffff: MCU firmware section 35 * 0x21f0,0000 - 0x21ff,ffff: pstore/ramoops buffer 36 * 0x3e00,0000 - 0x3fff,ffff: OP-TEE 37 */ 38 memory@0 { 39 device_type = "memory"; 40 reg = <0x00000000 0x00000000 0x00000000 0x05e00000>, 41 <0x00000000 0x05f00000 0x00000000 0x00001000>, 42 <0x00000000 0x05f02000 0x00000000 0x00efd000>, 43 <0x00000000 0x06e00000 0x00000000 0x0060f000>, 44 <0x00000000 0x07410000 0x00000000 0x1aaf0000>, 45 <0x00000000 0x22000000 0x00000000 0x1c000000>; 46 }; 47 48 reserved-memory { 49 #address-cells = <2>; 50 #size-cells = <2>; 51 ranges; 52 53 ramoops@0x21f00000 { 54 compatible = "ramoops"; 55 reg = <0x0 0x21f00000 0x0 0x00100000>; 56 record-size = <0x00020000>; 57 console-size = <0x00020000>; 58 ftrace-size = <0x00020000>; 59 }; 60 61 /* global autoconfigured region for contiguous allocations */ 62 linux,cma { 63 compatible = "shared-dma-pool"; 64 reusable; 65 size = <0x00000000 0x08000000>; 66 linux,cma-default; 67 }; 68 }; 69 70 reboot-mode-syscon@5f01000 { 71 compatible = "syscon", "simple-mfd"; 72 reg = <0x0 0x05f01000 0x0 0x00001000>; 73 74 reboot-mode { 75 compatible = "syscon-reboot-mode"; 76 offset = <0x0>; 77 78 mode-normal = <0x77665501>; 79 mode-bootloader = <0x77665500>; 80 mode-recovery = <0x77665502>; 81 }; 82 }; 83 84 soc { 85 spi0: spi@f7106000 { 86 status = "ok"; 87 }; 88 89 i2c0: i2c@f7100000 { 90 status = "ok"; 91 }; 92 93 i2c1: i2c@f7101000 { 94 status = "ok"; 95 }; 96 97 uart1: uart@f7111000 { 98 assigned-clocks = <&sys_ctrl HI6220_UART1_SRC>; 99 assigned-clock-rates = <150000000>; 100 status = "ok"; 101 102 bluetooth { 103 compatible = "ti,wl1835-st"; 104 enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; 105 }; 106 }; 107 108 uart2: uart@f7112000 { 109 status = "ok"; 110 }; 111 112 uart3: uart@f7113000 { 113 status = "ok"; 114 }; 115 116 /* 117 * Legend: proper name = the GPIO line is used as GPIO 118 * NC = not connected (not routed from the SoC) 119 * "[PER]" = pin is muxed for peripheral (not GPIO) 120 * "" = no idea, schematic doesn't say, could be 121 * unrouted (not connected to any external pin) 122 * LSEC = Low Speed External Connector 123 * HSEC = High Speed External Connector 124 * 125 * Pin assignments taken from LeMaker and CircuitCo Schematics 126 * Rev A1. 127 * 128 * For the lines routed to the external connectors the 129 * lines are named after the 96Boards CE Specification 1.0, 130 * Appendix "Expansion Connector Signal Description". 131 * 132 * When the 96Board naming of a line and the schematic name of 133 * the same line are in conflict, the 96Board specification 134 * takes precedence, which means that the external UART on the 135 * LSEC is named UART0 while the schematic and SoC names this 136 * UART2. This is only for the informational lines i.e. "[FOO]", 137 * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only 138 * ones actually used for GPIO. 139 */ 140 gpio0: gpio@f8011000 { 141 gpio-line-names = "PWR_HOLD", "DSI_SEL", 142 "USB_HUB_RESET_N", "USB_SEL", "HDMI_PD", "WL_REG_ON", 143 "PWRON_DET", "5V_HUB_EN"; 144 }; 145 146 gpio1: gpio@f8012000 { 147 gpio-line-names = "SD_DET", "HDMI_INT", "PMU_IRQ_N", 148 "WL_HOST_WAKE", "NC", "NC", "NC", "BT_REG_ON"; 149 }; 150 151 gpio2: gpio@f8013000 { 152 gpio-line-names = 153 "GPIO-A", /* LSEC Pin 23: GPIO2_0 */ 154 "GPIO-B", /* LSEC Pin 24: GPIO2_1 */ 155 "GPIO-C", /* LSEC Pin 25: GPIO2_2 */ 156 "GPIO-D", /* LSEC Pin 26: GPIO2_3 */ 157 "GPIO-E", /* LSEC Pin 27: GPIO2_4 */ 158 "USB_ID_DET", "USB_VBUS_DET", 159 "GPIO-H"; /* LSEC Pin 30: GPIO2_7 */ 160 }; 161 162 gpio3: gpio@f8014000 { 163 gpio-line-names = "GPIO3_0", "NC", "NC", "", "NC", "", 164 "WLAN_ACTIVE", "NC", "NC"; 165 }; 166 167 gpio4: gpio@f7020000 { 168 gpio-line-names = "USER_LED1", "USER_LED2", "USER_LED3", 169 "USER_LED4", "SD_SEL", "NC", "NC", "BT_ACTIVE"; 170 }; 171 172 gpio5: gpio@f7021000 { 173 gpio-line-names = "NC", "NC", 174 "[UART1_RxD]", /* LSEC Pin 11: UART3_RX */ 175 "[UART1_TxD]", /* LSEC Pin 13: UART3_TX */ 176 "[AUX_SSI1]", "NC", 177 "[PCM_CLK]", /* LSEC Pin 18: MODEM_PCM_XCLK */ 178 "[PCM_FS]"; /* LSEC Pin 16: MODEM_PCM_XFS */ 179 }; 180 181 gpio6: gpio@f7022000 { 182 gpio-line-names = 183 "[SPI0_DIN]", /* Pin 10: SPI0_DI */ 184 "[SPI0_DOUT]", /* Pin 14: SPI0_DO */ 185 "[SPI0_CS]", /* Pin 12: SPI0_CS_N */ 186 "[SPI0_SCLK]", /* Pin 8: SPI0_SCLK */ 187 "NC", "NC", "NC", 188 "GPIO-G"; /* Pin 29: GPIO6_7_DSI_TE0 */ 189 }; 190 191 gpio7: gpio@f7023000 { 192 gpio-line-names = "NC", "NC", "NC", "NC", 193 "[PCM_DI]", /* Pin 22: MODEM_PCM_DI */ 194 "[PCM_DO]", /* Pin 20: MODEM_PCM_DO */ 195 "NC", "NC"; 196 }; 197 198 gpio8: gpio@f7024000 { 199 gpio-line-names = "NC", "[CEC_CLK_19_2MHZ]", "NC", 200 "", "", "", "", "", ""; 201 }; 202 203 gpio9: gpio@f7025000 { 204 gpio-line-names = "", 205 "GPIO-J", /* LSEC Pin 32: ISP_PWDN0_GPIO9_1 */ 206 "GPIO-L", /* LSEC Pin 34: ISP_PWDN1_GPIO9_2 */ 207 "NC", "NC", "NC", "NC", "[ISP_CCLK0]"; 208 }; 209 210 gpio10: gpio@f7026000 { 211 gpio-line-names = "BOOT_SEL", 212 "[ISP_CCLK1]", 213 "GPIO-I", /* LSEC Pin 31: ISP_RSTB0_GPIO10_2 */ 214 "GPIO-K", /* LSEC Pin 33: ISP_RSTB1_GPIO10_3 */ 215 "NC", "NC", 216 "[I2C2_SDA]", /* HSEC Pin 34: ISP0_SDA */ 217 "[I2C2_SCL]"; /* HSEC Pin 32: ISP0_SCL */ 218 }; 219 220 gpio11: gpio@f7027000 { 221 gpio-line-names = 222 "[I2C3_SDA]", /* HSEC Pin 38: ISP1_SDA */ 223 "[I2C3_SCL]", /* HSEC Pin 36: ISP1_SCL */ 224 "", "NC", "NC", "NC", "", ""; 225 }; 226 227 gpio12: gpio@f7028000 { 228 gpio-line-names = "[BT_PCM_XFS]", "[BT_PCM_DI]", 229 "[BT_PCM_DO]", 230 "NC", "NC", "NC", "NC", 231 "GPIO-F"; /* LSEC Pin 28: BL_PWM_GPIO12_7 */ 232 }; 233 234 gpio13: gpio@f7029000 { 235 gpio-line-names = "[UART0_RX]", "[UART0_TX]", 236 "[BT_UART1_CTS]", "[BT_UART1_RTS]", 237 "[BT_UART1_RX]", "[BT_UART1_TX]", 238 "[UART0_CTS]", /* LSEC Pin 3: UART2_CTS_N */ 239 "[UART0_RTS]"; /* LSEC Pin 9: UART2_RTS_N */ 240 }; 241 242 gpio14: gpio@f702a000 { 243 gpio-line-names = 244 "[UART0_RxD]", /* LSEC Pin 7: UART2_RX */ 245 "[UART0_TxD]", /* LSEC Pin 5: UART2_TX */ 246 "[I2C0_SCL]", /* LSEC Pin 15: I2C0_SCL */ 247 "[I2C0_SDA]", /* LSEC Pin 17: I2C0_SDA */ 248 "[I2C1_SCL]", /* LSEC Pin 19: I2C1_SCL */ 249 "[I2C1_SDA]", /* LSEC Pin 21: I2C1_SDA */ 250 "[I2C2_SCL]", "[I2C2_SDA]"; 251 }; 252 253 gpio15: gpio@f702b000 { 254 gpio-line-names = "", "", "", "", "", "", "NC", ""; 255 }; 256 257 /* GPIO blocks 16 thru 19 do not appear to be routed to pins */ 258 259 dwmmc_2: dwmmc2@f723f000 { 260 ti,non-removable; 261 non-removable; 262 /* WL_EN */ 263 vmmc-supply = <&wlan_en_reg>; 264 265 #address-cells = <0x1>; 266 #size-cells = <0x0>; 267 wlcore: wlcore@2 { 268 compatible = "ti,wl1835"; 269 reg = <2>; /* sdio func num */ 270 /* WL_IRQ, WL_HOST_WAKE_GPIO1_3 */ 271 interrupt-parent = <&gpio1>; 272 interrupts = <3 IRQ_TYPE_EDGE_RISING>; 273 }; 274 }; 275 276 wlan_en_reg: regulator@1 { 277 compatible = "regulator-fixed"; 278 regulator-name = "wlan-en-regulator"; 279 regulator-min-microvolt = <1800000>; 280 regulator-max-microvolt = <1800000>; 281 /* WLAN_EN GPIO */ 282 gpio = <&gpio0 5 0>; 283 /* WLAN card specific delay */ 284 startup-delay-us = <70000>; 285 enable-active-high; 286 }; 287 }; 288 289 leds { 290 compatible = "gpio-leds"; 291 user_led4 { 292 label = "user_led4"; 293 gpios = <&gpio4 0 0>; /* <&gpio_user_led_1>; */ 294 linux,default-trigger = "heartbeat"; 295 }; 296 297 user_led3 { 298 label = "user_led3"; 299 gpios = <&gpio4 1 0>; /* <&gpio_user_led_2>; */ 300 linux,default-trigger = "mmc0"; 301 }; 302 303 user_led2 { 304 label = "user_led2"; 305 gpios = <&gpio4 2 0>; /* <&gpio_user_led_3>; */ 306 linux,default-trigger = "mmc1"; 307 }; 308 309 user_led1 { 310 label = "user_led1"; 311 gpios = <&gpio4 3 0>; /* <&gpio_user_led_4>; */ 312 linux,default-trigger = "cpu0"; 313 }; 314 315 wlan_active_led { 316 label = "wifi_active"; 317 gpios = <&gpio3 5 0>; /* <&gpio_wlan_active_led>; */ 318 linux,default-trigger = "phy0tx"; 319 default-state = "off"; 320 }; 321 322 bt_active_led { 323 label = "bt_active"; 324 gpios = <&gpio4 7 0>; /* <&gpio_bt_active_led>; */ 325 linux,default-trigger = "hci0rx"; 326 default-state = "off"; 327 }; 328 }; 329 330 pmic: pmic@f8000000 { 331 compatible = "hisilicon,hi655x-pmic"; 332 reg = <0x0 0xf8000000 0x0 0x1000>; 333 interrupt-controller; 334 #interrupt-cells = <2>; 335 pmic-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; 336 337 regulators { 338 ldo2: LDO2 { 339 regulator-name = "LDO2_2V8"; 340 regulator-min-microvolt = <2500000>; 341 regulator-max-microvolt = <3200000>; 342 regulator-enable-ramp-delay = <120>; 343 }; 344 345 ldo7: LDO7 { 346 regulator-name = "LDO7_SDIO"; 347 regulator-min-microvolt = <1800000>; 348 regulator-max-microvolt = <3300000>; 349 regulator-enable-ramp-delay = <120>; 350 }; 351 352 ldo10: LDO10 { 353 regulator-name = "LDO10_2V85"; 354 regulator-min-microvolt = <1800000>; 355 regulator-max-microvolt = <3000000>; 356 regulator-enable-ramp-delay = <360>; 357 }; 358 359 ldo13: LDO13 { 360 regulator-name = "LDO13_1V8"; 361 regulator-min-microvolt = <1600000>; 362 regulator-max-microvolt = <1950000>; 363 regulator-enable-ramp-delay = <120>; 364 }; 365 366 ldo14: LDO14 { 367 regulator-name = "LDO14_2V8"; 368 regulator-min-microvolt = <2500000>; 369 regulator-max-microvolt = <3200000>; 370 regulator-enable-ramp-delay = <120>; 371 }; 372 373 ldo15: LDO15 { 374 regulator-name = "LDO15_1V8"; 375 regulator-min-microvolt = <1600000>; 376 regulator-max-microvolt = <1950000>; 377 regulator-boot-on; 378 regulator-always-on; 379 regulator-enable-ramp-delay = <120>; 380 }; 381 382 ldo17: LDO17 { 383 regulator-name = "LDO17_2V5"; 384 regulator-min-microvolt = <2500000>; 385 regulator-max-microvolt = <3200000>; 386 regulator-enable-ramp-delay = <120>; 387 }; 388 389 ldo19: LDO19 { 390 regulator-name = "LDO19_3V0"; 391 regulator-min-microvolt = <1800000>; 392 regulator-max-microvolt = <3000000>; 393 regulator-enable-ramp-delay = <360>; 394 }; 395 396 ldo21: LDO21 { 397 regulator-name = "LDO21_1V8"; 398 regulator-min-microvolt = <1650000>; 399 regulator-max-microvolt = <2000000>; 400 regulator-always-on; 401 regulator-enable-ramp-delay = <120>; 402 }; 403 404 ldo22: LDO22 { 405 regulator-name = "LDO22_1V2"; 406 regulator-min-microvolt = <900000>; 407 regulator-max-microvolt = <1200000>; 408 regulator-boot-on; 409 regulator-always-on; 410 regulator-enable-ramp-delay = <120>; 411 }; 412 }; 413 }; 414 415 firmware { 416 optee { 417 compatible = "linaro,optee-tz"; 418 method = "smc"; 419 }; 420 }; 421}; 422 423&uart2 { 424 label = "LS-UART0"; 425}; 426&uart3 { 427 label = "LS-UART1"; 428}; 429 430&ade { 431 status = "ok"; 432}; 433 434&dsi { 435 status = "ok"; 436 437 ports { 438 /* 1 for output port */ 439 port@1 { 440 reg = <1>; 441 442 dsi_out0: endpoint@0 { 443 remote-endpoint = <&adv7533_in>; 444 }; 445 }; 446 }; 447}; 448 449&i2c2 { 450 #address-cells = <1>; 451 #size-cells = <0>; 452 status = "ok"; 453 454 adv7533: adv7533@39 { 455 compatible = "adi,adv7533"; 456 reg = <0x39>; 457 interrupt-parent = <&gpio1>; 458 interrupts = <1 2>; 459 pd-gpio = <&gpio0 4 0>; 460 adi,dsi-lanes = <4>; 461 462 port { 463 adv7533_in: endpoint { 464 remote-endpoint = <&dsi_out0>; 465 }; 466 }; 467 }; 468}; 469