Bintian Wang | 86e8f52 | 2015-02-07 14:57:52 +0800 | [diff] [blame] | 1 | /* |
| 2 | * dts file for Hisilicon HiKey Development Board |
| 3 | * |
| 4 | * Copyright (C) 2015, Hisilicon Ltd. |
| 5 | * |
| 6 | */ |
| 7 | |
| 8 | /dts-v1/; |
Bintian Wang | 86e8f52 | 2015-02-07 14:57:52 +0800 | [diff] [blame] | 9 | #include "hi6220.dtsi" |
Zhong Kaihua | 379e9bf | 2016-04-13 07:55:41 +0800 | [diff] [blame] | 10 | #include "hikey-pinctrl.dtsi" |
Chen Feng | a817137 | 2016-04-13 07:55:50 +0800 | [diff] [blame] | 11 | #include <dt-bindings/gpio/gpio.h> |
Bintian Wang | 86e8f52 | 2015-02-07 14:57:52 +0800 | [diff] [blame] | 12 | |
| 13 | / { |
| 14 | model = "HiKey Development Board"; |
| 15 | compatible = "hisilicon,hi6220-hikey", "hisilicon,hi6220"; |
| 16 | |
| 17 | aliases { |
Tyler Baker | a362ec8 | 2015-09-30 18:19:48 -0700 | [diff] [blame] | 18 | serial0 = &uart0; /* On board UART0 */ |
| 19 | serial1 = &uart1; /* BT UART */ |
| 20 | serial2 = &uart2; /* LS Expansion UART0 */ |
| 21 | serial3 = &uart3; /* LS Expansion UART1 */ |
Bintian Wang | 86e8f52 | 2015-02-07 14:57:52 +0800 | [diff] [blame] | 22 | }; |
| 23 | |
| 24 | chosen { |
Tyler Baker | a362ec8 | 2015-09-30 18:19:48 -0700 | [diff] [blame] | 25 | stdout-path = "serial3:115200n8"; |
Bintian Wang | 86e8f52 | 2015-02-07 14:57:52 +0800 | [diff] [blame] | 26 | }; |
| 27 | |
Leo Yan | 6da3aba | 2016-04-13 07:55:37 +0800 | [diff] [blame] | 28 | /* |
| 29 | * Reserve below regions from memory node: |
| 30 | * |
| 31 | * 0x05e0,0000 - 0x05ef,ffff: MCU firmware runtime using |
| 32 | * 0x06df,f000 - 0x06df,ffff: Mailbox message data |
| 33 | * 0x0740,f000 - 0x0740,ffff: MCU firmware section |
| 34 | * 0x3e00,0000 - 0x3fff,ffff: OP-TEE |
| 35 | */ |
Bintian Wang | 86e8f52 | 2015-02-07 14:57:52 +0800 | [diff] [blame] | 36 | memory@0 { |
| 37 | device_type = "memory"; |
Leo Yan | 6da3aba | 2016-04-13 07:55:37 +0800 | [diff] [blame] | 38 | reg = <0x00000000 0x00000000 0x00000000 0x05e00000>, |
| 39 | <0x00000000 0x05f00000 0x00000000 0x00eff000>, |
| 40 | <0x00000000 0x06e00000 0x00000000 0x0060f000>, |
| 41 | <0x00000000 0x07410000 0x00000000 0x36bf0000>; |
Bintian Wang | 86e8f52 | 2015-02-07 14:57:52 +0800 | [diff] [blame] | 42 | }; |
Zhong Kaihua | 60dac1b | 2016-04-13 07:55:42 +0800 | [diff] [blame] | 43 | |
| 44 | soc { |
| 45 | spi0: spi@f7106000 { |
| 46 | status = "ok"; |
| 47 | }; |
Guodong Xu | 0c23175 | 2016-04-13 07:55:44 +0800 | [diff] [blame] | 48 | |
| 49 | i2c0: i2c@f7100000 { |
| 50 | status = "ok"; |
| 51 | }; |
| 52 | |
| 53 | i2c1: i2c@f7101000 { |
| 54 | status = "ok"; |
| 55 | }; |
Guodong Xu | c2aad932 | 2016-04-13 07:55:48 +0800 | [diff] [blame] | 56 | |
| 57 | uart1: uart@f7111000 { |
| 58 | status = "ok"; |
| 59 | }; |
| 60 | |
| 61 | uart2: uart@f7112000 { |
| 62 | status = "ok"; |
| 63 | }; |
| 64 | |
| 65 | uart3: uart@f7113000 { |
| 66 | status = "ok"; |
| 67 | }; |
Guodong Xu | 841478d | 2016-04-13 07:55:52 +0800 | [diff] [blame] | 68 | |
Linus Walleij | bbaf867e | 2016-06-24 01:06:04 +0200 | [diff] [blame] | 69 | /* |
| 70 | * Legend: proper name = the GPIO line is used as GPIO |
| 71 | * NC = not connected (not routed from the SoC) |
| 72 | * "[PER]" = pin is muxed for peripheral (not GPIO) |
| 73 | * "" = no idea, schematic doesn't say, could be |
| 74 | * unrouted (not connected to any external pin) |
| 75 | * LSEC = Low Speed External Connector |
| 76 | * HSEC = High Speed External Connector |
| 77 | * |
| 78 | * Pin assignments taken from LeMaker and CircuitCo Schematics |
| 79 | * Rev A1. |
| 80 | * |
| 81 | * For the lines routed to the external connectors the |
| 82 | * lines are named after the 96Boards CE Specification 1.0, |
| 83 | * Appendix "Expansion Connector Signal Description". |
| 84 | * |
| 85 | * When the 96Board naming of a line and the schematic name of |
| 86 | * the same line are in conflict, the 96Board specification |
| 87 | * takes precedence, which means that the external UART on the |
| 88 | * LSEC is named UART0 while the schematic and SoC names this |
| 89 | * UART2. This is only for the informational lines i.e. "[FOO]", |
| 90 | * the GPIO named lines "GPIO-A" thru "GPIO-L" are the only |
| 91 | * ones actually used for GPIO. |
| 92 | */ |
| 93 | gpio0: gpio@f8011000 { |
| 94 | gpio-line-names = "PWR_HOLD", "DSI_SEL", |
| 95 | "USB_HUB_RESET_N", "USB_SEL", "HDMI_PD", "WL_REG_ON", |
| 96 | "PWRON_DET", "5V_HUB_EN"; |
| 97 | }; |
| 98 | |
| 99 | gpio1: gpio@f8012000 { |
| 100 | gpio-line-names = "SD_DET", "HDMI_INT", "PMU_IRQ_N", |
| 101 | "WL_HOST_WAKE", "NC", "NC", "NC", "BT_REG_ON"; |
| 102 | }; |
| 103 | |
| 104 | gpio2: gpio@f8013000 { |
| 105 | gpio-line-names = |
| 106 | "GPIO-A", /* LSEC Pin 23: GPIO2_0 */ |
| 107 | "GPIO-B", /* LSEC Pin 24: GPIO2_1 */ |
| 108 | "GPIO-C", /* LSEC Pin 25: GPIO2_2 */ |
| 109 | "GPIO-D", /* LSEC Pin 26: GPIO2_3 */ |
| 110 | "GPIO-E", /* LSEC Pin 27: GPIO2_4 */ |
| 111 | "USB_ID_DET", "USB_VBUS_DET", |
| 112 | "GPIO-H"; /* LSEC Pin 30: GPIO2_7 */ |
| 113 | }; |
| 114 | |
| 115 | gpio3: gpio@f8014000 { |
| 116 | gpio-line-names = "GPIO3_0", "NC", "NC", "", "NC", "", |
| 117 | "WLAN_ACTIVE", "NC", "NC"; |
| 118 | }; |
| 119 | |
| 120 | gpio4: gpio@f7020000 { |
| 121 | gpio-line-names = "USER_LED1", "USER_LED2", "USER_LED3", |
| 122 | "USER_LED4", "SD_SEL", "NC", "NC", "BT_ACTIVE"; |
| 123 | }; |
| 124 | |
| 125 | gpio5: gpio@f7021000 { |
| 126 | gpio-line-names = "NC", "NC", |
| 127 | "[UART1_RxD]", /* LSEC Pin 11: UART3_RX */ |
| 128 | "[UART1_TxD]", /* LSEC Pin 13: UART3_TX */ |
| 129 | "[AUX_SSI1]", "NC", |
| 130 | "[PCM_CLK]", /* LSEC Pin 18: MODEM_PCM_XCLK */ |
| 131 | "[PCM_FS]"; /* LSEC Pin 16: MODEM_PCM_XFS */ |
| 132 | }; |
| 133 | |
| 134 | gpio6: gpio@f7022000 { |
| 135 | gpio-line-names = |
| 136 | "[SPI0_DIN]", /* Pin 10: SPI0_DI */ |
| 137 | "[SPI0_DOUT]", /* Pin 14: SPI0_DO */ |
| 138 | "[SPI0_CS]", /* Pin 12: SPI0_CS_N */ |
| 139 | "[SPI0_SCLK]", /* Pin 8: SPI0_SCLK */ |
| 140 | "NC", "NC", "NC", |
| 141 | "GPIO-G"; /* Pin 29: GPIO6_7_DSI_TE0 */ |
| 142 | }; |
| 143 | |
| 144 | gpio7: gpio@f7023000 { |
| 145 | gpio-line-names = "NC", "NC", "NC", "NC", |
| 146 | "[PCM_DI]", /* Pin 22: MODEM_PCM_DI */ |
| 147 | "[PCM_DO]", /* Pin 20: MODEM_PCM_DO */ |
| 148 | "NC", "NC"; |
| 149 | }; |
| 150 | |
| 151 | gpio8: gpio@f7024000 { |
| 152 | gpio-line-names = "NC", "[CEC_CLK_19_2MHZ]", "NC", |
| 153 | "", "", "", "", "", ""; |
| 154 | }; |
| 155 | |
| 156 | gpio9: gpio@f7025000 { |
| 157 | gpio-line-names = "", |
| 158 | "GPIO-J", /* LSEC Pin 32: ISP_PWDN0_GPIO9_1 */ |
| 159 | "GPIO-L", /* LSEC Pin 34: ISP_PWDN1_GPIO9_2 */ |
| 160 | "NC", "NC", "NC", "NC", "[ISP_CCLK0]"; |
| 161 | }; |
| 162 | |
| 163 | gpio10: gpio@f7026000 { |
| 164 | gpio-line-names = "BOOT_SEL", |
| 165 | "[ISP_CCLK1]", |
| 166 | "GPIO-I", /* LSEC Pin 31: ISP_RSTB0_GPIO10_2 */ |
| 167 | "GPIO-K", /* LSEC Pin 33: ISP_RSTB1_GPIO10_3 */ |
| 168 | "NC", "NC", |
| 169 | "[I2C2_SDA]", /* HSEC Pin 34: ISP0_SDA */ |
| 170 | "[I2C2_SCL]"; /* HSEC Pin 32: ISP0_SCL */ |
| 171 | }; |
| 172 | |
| 173 | gpio11: gpio@f7027000 { |
| 174 | gpio-line-names = |
| 175 | "[I2C3_SDA]", /* HSEC Pin 38: ISP1_SDA */ |
| 176 | "[I2C3_SCL]", /* HSEC Pin 36: ISP1_SCL */ |
| 177 | "", "NC", "NC", "NC", "", ""; |
| 178 | }; |
| 179 | |
| 180 | gpio12: gpio@f7028000 { |
| 181 | gpio-line-names = "[BT_PCM_XFS]", "[BT_PCM_DI]", |
| 182 | "[BT_PCM_DO]", |
| 183 | "NC", "NC", "NC", "NC", |
| 184 | "GPIO-F"; /* LSEC Pin 28: BL_PWM_GPIO12_7 */ |
| 185 | }; |
| 186 | |
| 187 | gpio13: gpio@f7029000 { |
| 188 | gpio-line-names = "[UART0_RX]", "[UART0_TX]", |
| 189 | "[BT_UART1_CTS]", "[BT_UART1_RTS]", |
| 190 | "[BT_UART1_RX]", "[BT_UART1_TX]", |
| 191 | "[UART0_CTS]", /* LSEC Pin 3: UART2_CTS_N */ |
| 192 | "[UART0_RTS]"; /* LSEC Pin 9: UART2_RTS_N */ |
| 193 | }; |
| 194 | |
| 195 | gpio14: gpio@f702a000 { |
| 196 | gpio-line-names = |
| 197 | "[UART0_RxD]", /* LSEC Pin 7: UART2_RX */ |
| 198 | "[UART0_TxD]", /* LSEC Pin 5: UART2_TX */ |
| 199 | "[I2C0_SCL]", /* LSEC Pin 15: I2C0_SCL */ |
| 200 | "[I2C0_SDA]", /* LSEC Pin 17: I2C0_SDA */ |
| 201 | "[I2C1_SCL]", /* LSEC Pin 19: I2C1_SCL */ |
| 202 | "[I2C1_SDA]", /* LSEC Pin 21: I2C1_SDA */ |
| 203 | "[I2C2_SCL]", "[I2C2_SDA]"; |
| 204 | }; |
| 205 | |
| 206 | gpio15: gpio@f702b000 { |
| 207 | gpio-line-names = "", "", "", "", "", "", "NC", ""; |
| 208 | }; |
| 209 | |
| 210 | /* GPIO blocks 16 thru 19 do not appear to be routed to pins */ |
| 211 | |
Guodong Xu | 841478d | 2016-04-13 07:55:52 +0800 | [diff] [blame] | 212 | dwmmc_2: dwmmc2@f723f000 { |
| 213 | ti,non-removable; |
| 214 | non-removable; |
| 215 | /* WL_EN */ |
| 216 | vmmc-supply = <&wlan_en_reg>; |
| 217 | |
| 218 | #address-cells = <0x1>; |
| 219 | #size-cells = <0x0>; |
| 220 | wlcore: wlcore@2 { |
| 221 | compatible = "ti,wl1835"; |
| 222 | reg = <2>; /* sdio func num */ |
| 223 | /* WL_IRQ, WL_HOST_WAKE_GPIO1_3 */ |
| 224 | interrupt-parent = <&gpio1>; |
| 225 | interrupts = <3 IRQ_TYPE_EDGE_RISING>; |
| 226 | }; |
| 227 | }; |
| 228 | |
| 229 | wlan_en_reg: regulator@1 { |
| 230 | compatible = "regulator-fixed"; |
| 231 | regulator-name = "wlan-en-regulator"; |
| 232 | regulator-min-microvolt = <1800000>; |
| 233 | regulator-max-microvolt = <1800000>; |
| 234 | /* WLAN_EN GPIO */ |
| 235 | gpio = <&gpio0 5 0>; |
| 236 | /* WLAN card specific delay */ |
| 237 | startup-delay-us = <70000>; |
| 238 | enable-active-high; |
| 239 | }; |
Zhong Kaihua | 60dac1b | 2016-04-13 07:55:42 +0800 | [diff] [blame] | 240 | }; |
Guodong Xu | ad05f38 | 2016-04-13 07:55:49 +0800 | [diff] [blame] | 241 | |
| 242 | leds { |
| 243 | compatible = "gpio-leds"; |
| 244 | user_led4 { |
| 245 | label = "user_led4"; |
| 246 | gpios = <&gpio4 0 0>; /* <&gpio_user_led_1>; */ |
| 247 | linux,default-trigger = "heartbeat"; |
| 248 | }; |
| 249 | |
| 250 | user_led3 { |
| 251 | label = "user_led3"; |
| 252 | gpios = <&gpio4 1 0>; /* <&gpio_user_led_2>; */ |
| 253 | linux,default-trigger = "mmc0"; |
| 254 | }; |
| 255 | |
| 256 | user_led2 { |
| 257 | label = "user_led2"; |
| 258 | gpios = <&gpio4 2 0>; /* <&gpio_user_led_3>; */ |
| 259 | linux,default-trigger = "mmc1"; |
| 260 | }; |
| 261 | |
| 262 | user_led1 { |
| 263 | label = "user_led1"; |
| 264 | gpios = <&gpio4 3 0>; /* <&gpio_user_led_4>; */ |
| 265 | linux,default-trigger = "cpu0"; |
| 266 | }; |
| 267 | |
| 268 | wlan_active_led { |
| 269 | label = "wifi_active"; |
| 270 | gpios = <&gpio3 5 0>; /* <&gpio_wlan_active_led>; */ |
| 271 | linux,default-trigger = "phy0tx"; |
| 272 | default-state = "off"; |
| 273 | }; |
| 274 | |
| 275 | bt_active_led { |
| 276 | label = "bt_active"; |
| 277 | gpios = <&gpio4 7 0>; /* <&gpio_bt_active_led>; */ |
| 278 | linux,default-trigger = "hci0rx"; |
| 279 | default-state = "off"; |
| 280 | }; |
| 281 | }; |
Chen Feng | a817137 | 2016-04-13 07:55:50 +0800 | [diff] [blame] | 282 | |
| 283 | pmic: pmic@f8000000 { |
| 284 | compatible = "hisilicon,hi655x-pmic"; |
| 285 | reg = <0x0 0xf8000000 0x0 0x1000>; |
| 286 | interrupt-controller; |
| 287 | #interrupt-cells = <2>; |
| 288 | pmic-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; |
| 289 | |
| 290 | regulators { |
| 291 | ldo2: LDO2 { |
| 292 | regulator-name = "LDO2_2V8"; |
| 293 | regulator-min-microvolt = <2500000>; |
| 294 | regulator-max-microvolt = <3200000>; |
| 295 | regulator-enable-ramp-delay = <120>; |
| 296 | }; |
| 297 | |
| 298 | ldo7: LDO7 { |
| 299 | regulator-name = "LDO7_SDIO"; |
| 300 | regulator-min-microvolt = <1800000>; |
| 301 | regulator-max-microvolt = <3300000>; |
| 302 | regulator-enable-ramp-delay = <120>; |
| 303 | }; |
| 304 | |
| 305 | ldo10: LDO10 { |
| 306 | regulator-name = "LDO10_2V85"; |
| 307 | regulator-min-microvolt = <1800000>; |
| 308 | regulator-max-microvolt = <3000000>; |
| 309 | regulator-enable-ramp-delay = <360>; |
| 310 | }; |
| 311 | |
| 312 | ldo13: LDO13 { |
| 313 | regulator-name = "LDO13_1V8"; |
| 314 | regulator-min-microvolt = <1600000>; |
| 315 | regulator-max-microvolt = <1950000>; |
| 316 | regulator-enable-ramp-delay = <120>; |
| 317 | }; |
| 318 | |
| 319 | ldo14: LDO14 { |
| 320 | regulator-name = "LDO14_2V8"; |
| 321 | regulator-min-microvolt = <2500000>; |
| 322 | regulator-max-microvolt = <3200000>; |
| 323 | regulator-enable-ramp-delay = <120>; |
| 324 | }; |
| 325 | |
| 326 | ldo15: LDO15 { |
| 327 | regulator-name = "LDO15_1V8"; |
| 328 | regulator-min-microvolt = <1600000>; |
| 329 | regulator-max-microvolt = <1950000>; |
| 330 | regulator-boot-on; |
| 331 | regulator-always-on; |
| 332 | regulator-enable-ramp-delay = <120>; |
| 333 | }; |
| 334 | |
| 335 | ldo17: LDO17 { |
| 336 | regulator-name = "LDO17_2V5"; |
| 337 | regulator-min-microvolt = <2500000>; |
| 338 | regulator-max-microvolt = <3200000>; |
| 339 | regulator-enable-ramp-delay = <120>; |
| 340 | }; |
| 341 | |
| 342 | ldo19: LDO19 { |
| 343 | regulator-name = "LDO19_3V0"; |
| 344 | regulator-min-microvolt = <1800000>; |
| 345 | regulator-max-microvolt = <3000000>; |
| 346 | regulator-enable-ramp-delay = <360>; |
| 347 | }; |
| 348 | |
| 349 | ldo21: LDO21 { |
| 350 | regulator-name = "LDO21_1V8"; |
| 351 | regulator-min-microvolt = <1650000>; |
| 352 | regulator-max-microvolt = <2000000>; |
| 353 | regulator-always-on; |
| 354 | regulator-enable-ramp-delay = <120>; |
| 355 | }; |
| 356 | |
| 357 | ldo22: LDO22 { |
| 358 | regulator-name = "LDO22_1V2"; |
| 359 | regulator-min-microvolt = <900000>; |
| 360 | regulator-max-microvolt = <1200000>; |
| 361 | regulator-boot-on; |
| 362 | regulator-always-on; |
| 363 | regulator-enable-ramp-delay = <120>; |
| 364 | }; |
| 365 | }; |
| 366 | }; |
Bintian Wang | 86e8f52 | 2015-02-07 14:57:52 +0800 | [diff] [blame] | 367 | }; |
Rob Herring | dd90caa | 2015-12-10 15:21:13 -0600 | [diff] [blame] | 368 | |
| 369 | &uart2 { |
| 370 | label = "LS-UART0"; |
| 371 | }; |
| 372 | &uart3 { |
| 373 | label = "LS-UART1"; |
| 374 | }; |