| /* |
| * dts file for Hisilicon HiKey Development Board |
| * |
| * Copyright (C) 2015, Hisilicon Ltd. |
| * |
| */ |
| |
| /dts-v1/; |
| #include <dt-bindings/gpio/gpio.h> |
| |
| #include "hi6220.dtsi" |
| #include "hikey-gpio.dtsi" |
| #include "hikey-pinctrl.dtsi" |
| |
| / { |
| model = "HiKey Development Board"; |
| compatible = "hisilicon,hi6220-hikey", "hisilicon,hi6220"; |
| |
| aliases { |
| serial0 = &uart0; /* On board UART0 */ |
| serial1 = &uart1; /* BT UART */ |
| serial2 = &uart2; /* LS Expansion UART0 */ |
| serial3 = &uart3; /* LS Expansion UART1 */ |
| spi0 = &spi_0; |
| }; |
| |
| chosen { |
| stdout-path = "serial3:115200n8"; |
| }; |
| |
| overlay_mgr { |
| compatible = "linux,overlay_manager"; |
| hardware_cfg_innolux_panel { |
| overlay_0 { |
| fragment@0 { |
| target-path="/soc/dsi@f4107800"; |
| __overlay__ { /* For panel reg's value should >= 1 */ |
| #address-cells = <1>; |
| #size-cells = <0>; |
| panel@1 { |
| compatible = "innolux,n070icn-pb1"; |
| reg = <1>; |
| power-on-delay= <50>; |
| reset-delay = <100>; |
| init-delay = <100>; |
| panel-width-mm = <58>; |
| panel-height-mm = <103>; |
| pwr-en-gpio = <&gpio2 1 0>; |
| bl-en-gpio = <&gpio2 3 0>; |
| pwm-gpio = <&gpio12 7 0>; |
| |
| port { |
| panel0_in: endpoint { |
| remote-endpoint = <&dsi_out1>; |
| }; |
| }; |
| }; |
| }; |
| }; |
| }; |
| }; |
| hardware_cfg_spidev0 { |
| overlay_0 { |
| fragment@0 { |
| target-path="/soc/spi@f7106000/spidev@0"; |
| __overlay__ { |
| status = "ok"; |
| }; |
| }; |
| }; |
| }; |
| hardware_cfg_spidev_dma0 { |
| overlay_0 { |
| fragment@0 { |
| target-path="/soc/spi@f7106000/spidev_dma@0"; |
| __overlay__ { |
| status = "ok"; |
| }; |
| }; |
| }; |
| }; |
| hardware_cfg_neonkey { |
| overlay_0 { |
| fragment@0 { |
| target-path="/soc/spi@f7106000/sensorhub@0"; |
| __overlay__ { |
| status = "ok"; |
| }; |
| }; |
| }; |
| }; |
| hardware_cfg_argonkey { |
| overlay_0 { |
| fragment@0 { |
| target-path="/soc/spi@f7106000/argonkey@0"; |
| __overlay__ { |
| status = "ok"; |
| }; |
| }; |
| }; |
| }; |
| hardware_cfg_cs_sd_qb { |
| overlay_0 { |
| fragment@0 { /* Select SD from Quick Bus */ |
| target-path="/soc/gpio@f7020000"; |
| __overlay__ { |
| sd_sel { |
| gpio-hog; |
| gpios = <4 0>; |
| output-high; |
| line-name = "gpio_sd_sel"; |
| }; |
| }; |
| }; |
| }; |
| }; |
| hardware_cfg_enable_android_fstab { |
| overlay_0 { |
| fragment@0 { |
| target-path="/firmware/android/fstab/system"; |
| __overlay__ { |
| status = "ok"; |
| }; |
| }; |
| fragment@1 { |
| target-path="/firmware/android/fstab/vendor"; |
| __overlay__ { |
| fsmgr_flags = "wait"; |
| status = "ok"; |
| }; |
| }; |
| }; |
| }; |
| hardware_cfg_enable_android_fstab_v2 { |
| overlay_0 { |
| fragment@0 { |
| target-path="/firmware/android/fstab/vendor"; |
| __overlay__ { |
| status = "ok"; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| /* |
| * Reserve below regions from memory node: |
| * |
| * 0x05e0,0000 - 0x05ef,ffff: MCU firmware runtime using |
| * 0x05f0,1000 - 0x05f0,1fff: Reboot reason |
| * 0x06df,f000 - 0x06df,ffff: Mailbox message data |
| * 0x0740,f000 - 0x0740,ffff: MCU firmware section |
| * 0x21f0,0000 - 0x21ff,ffff: pstore/ramoops buffer |
| * 0x3e00,0000 - 0x3fff,ffff: OP-TEE |
| */ |
| memory@0 { |
| device_type = "memory"; |
| reg = <0x00000000 0x00000000 0x00000000 0x05e00000>, |
| <0x00000000 0x05f00000 0x00000000 0x00001000>, |
| <0x00000000 0x05f02000 0x00000000 0x00efd000>, |
| <0x00000000 0x06e00000 0x00000000 0x0060f000>, |
| <0x00000000 0x07410000 0x00000000 0x1aaf0000>, |
| <0x00000000 0x22000000 0x00000000 0x1c000000>; |
| }; |
| |
| pstore: pstore@0x21f00000 { |
| no-map; |
| reg = <0x0 0x21f00000 0x0 0x00100000>; /* pstore/ramoops buffer */ |
| }; |
| |
| ramoops { |
| compatible = "ramoops"; |
| memory-region = <&pstore>; |
| record-size = <0x0 0x00020000>; |
| console-size = <0x0 0x00020000>; |
| ftrace-size = <0x0 0x00020000>; |
| }; |
| |
| reboot_reason: reboot-reason@05f01000 { |
| compatible = "linux,reboot-reason-sram"; |
| reg = <0x0 0x05F01000 0x0 0x4>; |
| reason,none = <0x77665501>; |
| reason,bootloader = <0x77665500>; |
| reason,recovery = <0x77665502>; |
| reason,oem = <0x6f656d00>; |
| }; |
| |
| soc { |
| i2c0: i2c@f7100000 { |
| status = "ok"; |
| }; |
| |
| i2c1: i2c@f7101000 { |
| status = "ok"; |
| }; |
| |
| i2c2: i2c@f7102000 { |
| status = "ok"; |
| |
| #address-cells = <0x1>; |
| #size-cells = <0x0>; |
| adv7533: adv7533@39 { |
| compatible = "adi,adv7533"; |
| reg = <0x39>; |
| interrupt-parent = <&gpio1>; |
| interrupts = <1 2>; |
| pd-gpio = <&gpio0 4 0>; |
| adi,dsi-lanes = <4>; |
| adi,disable-timing-generator; |
| |
| port { |
| adv7533_in: endpoint { |
| remote-endpoint = <&dsi_out0>; |
| }; |
| }; |
| }; |
| }; |
| uart1: uart@f7111000 { |
| status = "ok"; |
| }; |
| |
| uart2: uart@f7112000 { |
| status = "ok"; |
| }; |
| |
| uart3: uart@f7113000 { |
| status = "ok"; |
| }; |
| |
| dwmmc_2: dwmmc2@f723f000 { |
| ti,non-removable; |
| non-removable; |
| /* WL_EN */ |
| vmmc-supply = <&wlan_en_reg>; |
| |
| #address-cells = <0x1>; |
| #size-cells = <0x0>; |
| wlcore: wlcore@2 { |
| compatible = "ti,wl1835"; |
| reg = <2>; /* sdio func num */ |
| /* WL_IRQ, WL_HOST_WAKE_GPIO1_3 */ |
| interrupt-parent = <&gpio1>; |
| interrupts = <3 IRQ_TYPE_EDGE_RISING>; |
| }; |
| }; |
| |
| wlan_en_reg: fixedregulator@1 { |
| compatible = "regulator-fixed"; |
| regulator-name = "wlan-en-regulator"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <1800000>; |
| /* WLAN_EN GPIO */ |
| gpio = <&gpio0 5 0>; |
| /* WLAN card specific delay */ |
| startup-delay-us = <70000>; |
| enable-active-high; |
| }; |
| |
| }; |
| |
| leds { |
| compatible = "gpio-leds"; |
| user_led1 { |
| label = "user_led4"; |
| gpios = <&gpio4 0 0>; /* <&gpio_user_led_1>; */ |
| linux,default-trigger = "heartbeat"; |
| }; |
| |
| user_led2 { |
| label = "user_led3"; |
| gpios = <&gpio4 1 0>; /* <&gpio_user_led_2>; */ |
| linux,default-trigger = "mmc0"; |
| }; |
| |
| user_led3 { |
| label = "user_led2"; |
| gpios = <&gpio4 2 0>; /* <&gpio_user_led_3>; */ |
| linux,default-trigger = "mmc1"; |
| }; |
| |
| user_led4 { |
| label = "user_led1"; |
| gpios = <&gpio4 3 0>; /* <&gpio_user_led_4>; */ |
| linux,default-trigger = "cpu0"; |
| }; |
| |
| wlan_active_led { |
| label = "wifi_active"; |
| gpios = <&gpio3 5 0>; /* <&gpio_wlan_active_led>; */ |
| linux,default-trigger = "phy0tx"; |
| default-state = "off"; |
| }; |
| |
| bt_active_led { |
| label = "bt_active"; |
| gpios = <&gpio4 7 0>; /* <&gpio_bt_active_led>; */ |
| linux,default-trigger = "hci0rx"; |
| default-state = "off"; |
| }; |
| }; |
| |
| kim { |
| compatible = "kim"; |
| pinctrl-names = "default"; |
| pinctrl-0 = <>; /* FIXME: add BT PCM pinctrl here */ |
| /* |
| * FIXME: The following is complete CRAP since |
| * the vendor driver doesn't follow the gpio |
| * binding. Passing in a magic Linux gpio number |
| * here until we fix the vendor driver. |
| */ |
| /* BT_EN: BT_REG_ON_GPIO1_7 */ |
| nshutdown_gpio = <503>; |
| dev_name = "/dev/ttyAMA1"; |
| flow_cntrl = <1>; |
| baud_rate = <3000000>; |
| }; |
| |
| btwilink { |
| compatible = "btwilink"; |
| }; |
| |
| pmic: pmic@f8000000 { |
| compatible = "hisilicon,hi655x-pmic"; |
| reg = <0x0 0xf8000000 0x0 0x1000>; |
| interrupt-controller; |
| #interrupt-cells = <2>; |
| pmic-gpios = <&gpio1 2 GPIO_ACTIVE_HIGH>; |
| status = "okay"; |
| |
| ponkey:ponkey@b1{ |
| compatible = "hisilicon,hi6552-powerkey"; |
| interrupt-parent = <&pmic>; |
| interrupts = <6 0>, <5 0>, <4 0>; |
| interrupt-names = "down", "up", "hold 4s"; |
| }; |
| |
| regulators { |
| ldo2: LDO2@a21 { |
| |
| regulator-name = "LDO2_2V8"; |
| regulator-min-microvolt = <2500000>; |
| regulator-max-microvolt = <3200000>; |
| regulator-enable-ramp-delay = <120>; |
| }; |
| |
| ldo7: LDO7@a26 { |
| regulator-name = "LDO7_SDIO"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <3300000>; |
| regulator-enable-ramp-delay = <120>; |
| }; |
| |
| ldo10: LDO10@a29 { |
| regulator-name = "LDO10_2V85"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <3000000>; |
| regulator-enable-ramp-delay = <360>; |
| }; |
| |
| ldo13: LDO13@a32 { |
| regulator-name = "LDO13_1V8"; |
| regulator-min-microvolt = <1600000>; |
| regulator-max-microvolt = <1950000>; |
| regulator-enable-ramp-delay = <120>; |
| }; |
| |
| ldo14: LDO14@a33 { |
| regulator-name = "LDO14_2V8"; |
| regulator-min-microvolt = <2500000>; |
| regulator-max-microvolt = <3200000>; |
| regulator-enable-ramp-delay = <120>; |
| }; |
| |
| ldo15: LDO15@a34 { |
| regulator-name = "LDO15_1V8"; |
| regulator-min-microvolt = <1600000>; |
| regulator-max-microvolt = <1950000>; |
| regulator-boot-on; |
| regulator-always-on; |
| regulator-enable-ramp-delay = <120>; |
| }; |
| |
| ldo17: LDO17@a36 { |
| regulator-name = "LDO17_2V5"; |
| regulator-min-microvolt = <2500000>; |
| regulator-max-microvolt = <3200000>; |
| regulator-enable-ramp-delay = <120>; |
| }; |
| |
| ldo19: LDO19@a38 { |
| regulator-name = "LDO19_3V0"; |
| regulator-min-microvolt = <1800000>; |
| regulator-max-microvolt = <3000000>; |
| regulator-enable-ramp-delay = <360>; |
| }; |
| |
| ldo21: LDO21@a40 { |
| regulator-name = "LDO21_1V8"; |
| regulator-min-microvolt = <1650000>; |
| regulator-max-microvolt = <2000000>; |
| regulator-always-on; |
| regulator-enable-ramp-delay = <120>; |
| }; |
| |
| ldo22: LDO22@a41 { |
| regulator-name = "LDO22_1V2"; |
| regulator-min-microvolt = <900000>; |
| regulator-max-microvolt = <1200000>; |
| regulator-boot-on; |
| regulator-always-on; |
| regulator-enable-ramp-delay = <120>; |
| }; |
| }; |
| }; |
| |
| firmware { |
| optee { |
| compatible = "linaro,optee-tz"; |
| method = "smc"; |
| }; |
| android { |
| compatible = "android,firmware"; |
| fstab { |
| compatible = "android,fstab"; |
| system { |
| compatible = "android,system"; |
| dev = "/dev/block/platform/soc/f723d000.dwmmc0/by-name/system"; |
| type = "ext4"; |
| mnt_flags = "ro" ; |
| fsmgr_flags = "wait"; |
| status = "disabled"; |
| }; |
| vendor { |
| compatible = "android,vendor"; |
| dev = "/dev/block/platform/soc/f723d000.dwmmc0/by-name/vendor"; |
| type = "ext4"; |
| mnt_flags = "ro" ; |
| fsmgr_flags = "wait,verify"; |
| status = "disabled"; |
| }; |
| }; |
| }; |
| }; |
| }; |
| |
| &ade { |
| status = "ok"; |
| }; |
| |
| &dsi { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| mux-gpio = <&gpio0 1 0>; |
| status = "ok"; |
| |
| ports { |
| /* 1 for output port */ |
| port@1 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| reg = <1>; |
| |
| dsi_out0: endpoint@0 { |
| reg = <0>; |
| remote-endpoint = <&adv7533_in>; |
| }; |
| |
| dsi_out1: endpoint@1 { |
| reg = <1>; |
| remote-endpoint = <&panel0_in>; |
| }; |
| }; |
| }; |
| }; |
| |
| &spi_0 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| status = "ok"; |
| |
| /* the two spidev below cannot be both enabled at the same time */ |
| spidev@0 { |
| compatible = "rohm,dh2228fv"; |
| spi-max-frequency = <500000>; |
| reg = <0>; |
| status = "disabled"; |
| }; |
| |
| /* |
| * To enable the DMA on a slave of spi0, add the lines |
| * pl022,com-mode = <2>; |
| * pl022,rx-level-trig = <1>; |
| * in the DT node of the slave, |
| */ |
| spidev_dma@0 { |
| compatible = "rohm,dh2228fv"; |
| spi-max-frequency = <500000>; |
| reg = <0>; |
| pl022,com-mode = <2>; |
| pl022,rx-level-trig = <1>; |
| status = "disabled"; |
| }; |
| |
| sensorhub@0 { |
| compatible = "nanohub"; |
| reg = <0>; |
| spi-max-frequency = <500000>; |
| spi-cpol; |
| spi-cpha; |
| |
| sensorhub,nreset-gpio = <&gpio0 6 0>; |
| sensorhub,boot0-gpio = <&gpio2 2 0>; /* Fake */ |
| sensorhub,wakeup-gpio = <&gpio2 0 0>; /* Gpio2_0 -> PB9 */ |
| sensorhub,irq1-gpio = <&gpio2 1 0>; /* Gpio2_1 -> PB5 */ |
| sensorhub,spi-cs-gpio = <&gpio6 2 0>; |
| sensorhub,bl-addr = <0x08000000>; |
| sensorhub,kernel-addr = <0x0800C000>; |
| sensorhub,num-flash-banks = <4>; |
| sensorhub,flash-banks = <0 0x08000000 0x04000>, |
| <3 0x0800C000 0x04000>, |
| <4 0x08010000 0x10000>, |
| <5 0x08020000 0x20000>; |
| sensorhub,shared-addr = <0x08040000>; |
| sensorhub,num-shared-flash-banks = <2>; |
| sensorhub,shared-flash-banks = <6 0x08040000 0x20000>, |
| <7 0x08060000 0x20000>; |
| status = "disabled"; |
| }; |
| |
| argonkey@0 { |
| compatible = "nanohub"; |
| reg = <0>; |
| pl022,com-mode = <2>; |
| pl022,rx-level-trig = <1>; |
| spi-max-frequency = <7500000>; |
| |
| interrupt-parent = <&gpio2>; |
| interrupts = <0 0x2>; |
| sensorhub,irq1-gpio = <&gpio2 0 0>; |
| sensorhub,irq2-gpio = <&gpio10 2 0>; |
| sensorhub,wakeup-gpio = <&gpio9 1 0>; |
| sensorhub,spi-cs-gpio = <&gpio6 7 0>; |
| sensorhub,nreset-gpio = <&gpio2 3 0>; |
| sensorhub,boot0-gpio = <&gpio2 7 0>; |
| sensorhub,bl-addr = <0x08000000>; |
| sensorhub,kernel-addr = <0x0800C000>; |
| sensorhub,num-flash-banks = <4>; |
| sensorhub,flash-banks = |
| <0 0x08000000 0x04000>, |
| <3 0x0800C000 0x04000>, |
| <4 0x08010000 0x10000>, |
| <5 0x08020000 0x20000>; |
| sensorhub,shared-addr = <0x08040000>; |
| sensorhub,num-shared-flash-banks = <6>; |
| sensorhub,shared-flash-banks = |
| <6 0x08040000 0x20000>, |
| <7 0x08060000 0x20000>, |
| <8 0x08080000 0x20000>, |
| <9 0x080A0000 0x20000>, |
| <10 0x080C0000 0x20000>, |
| <11 0x080E0000 0x20000>; |
| |
| status = "disabled"; |
| }; |
| }; |