blob: 36d300f2aabd41514d5f4c92c0c3e377d24d586c [file] [log] [blame]
/*
* dts file for Hisilicon HiKey Development Board
*
* Copyright (C) 2014, Hisilicon Ltd.
*
*/
/dts-v1/;
/memreserve/ 0x00000000 0x07400000;
#include "hikey-pinctrl.dtsi"
#include "hikey-gpio.dtsi"
#include "hi6220.dtsi"
/ {
model = "HiKey Development Board";
compatible = "hisilicon,hikey", "hisilicon,hi6220";
hisi,boardid = <0 0 4 3>;
#address-cells = <2>;
#size-cells = <2>;
interrupt-parent = <&gic>;
aliases {
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
mshc0 = &dwmmc_0;
mshc1 = &dwmmc_1;
mshc2 = &dwmmc_2;
spi0 = &spi_0;
};
chosen {
linux,initrd-start = <0x0 0x0ae00000>;
linux,initrd-end = <0x0 0x0b600000>;
};
memory {
device_type = "memory";
reg = <0x0 0x00000000 0x0 0x40000000>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
mcu-buf@05e00000 {
no-map;
reg = <0x0 0x05e00000 0x0 0x00100000>, /* MCU firmware buffer */
<0x0 0x0740f000 0x0 0x00001000>; /* MCU firmware section */
};
reboot-reason@05f01000 {
no-map;
reg = <0x0 0x05f01000 0x0 0x00001000>;
};
mbox-buf@06dff000 {
no-map;
reg = <0x0 0x06dff000 0x0 0x00001000>; /* Mailbox message buf */
};
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>;
};
smb {
uart0: uart@f8015000 { /* console */
status = "ok";
};
uart1: uart@f7111000 {
pinctrl-names = "default";
pinctrl-0 = <&uart1_pmx_func
&uart1_cfg_func1 &uart1_cfg_func2>;
status = "ok";
};
uart2: uart@f7112000 {
pinctrl-names = "default";
pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>;
status = "ok";
};
uart3: uart@f7113000 {
pinctrl-names = "default";
pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>;
status = "ok";
};
uart4: uart@f7114000 {
pinctrl-names = "default";
pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>;
status = "ok";
};
};
dwmmc_0: dwmmc0@f723d000 {
bus-width = <0x8>;
vmmc-supply = <&ldo19>;
pinctrl-names = "default";
pinctrl-0 = <&emmc_pmx_func &emmc_clk_cfg_func
&emmc_cfg_func &emmc_rst_cfg_func>;
};
dwmmc_1: dwmmc1@f723e000 {
bus-width = <0x4>;
disable-wp;
cd-gpios = <&gpio1 0 1>;
pinctrl-names = "default", "idle";
pinctrl-0 = <&sd_pmx_func &sd_clk_cfg_func &sd_cfg_func>;
pinctrl-1 = <&sd_pmx_idle &sd_clk_cfg_idle &sd_cfg_idle>;
};
dwmmc_2: dwmmc2@f723f000 {
bus-width = <0x4>;
broken-cd;
non-removable;
/* WL_EN */
vmmc-supply = <&wlan_en_reg>;
pinctrl-names = "default", "idle";
pinctrl-0 = <&sdio_pmx_func &sdio_clk_cfg_func &sdio_cfg_func>;
pinctrl-1 = <&sdio_pmx_idle &sdio_clk_cfg_idle &sdio_cfg_idle>;
};
wlcore {
compatible = "wlcore";
/*
* 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.
*/
/* WL_IRQ, WL_HOST_WAKE_GPIO1_3 */
gpio = <499>;
/* Use edge irqs for suspend/resume */
platform-quirks = <1>;
/* WL12XX_REFCLOCK_38_XTAL */
board-ref-clock = <4>;
};
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";
};
leds {
compatible = "gpio-leds";
user_led1 {
label = "user_led1";
gpios = <&gpio4 0 0>; /* <&gpio_user_led_1>; */
linux,default-trigger = "heartbeat";
};
user_led2 {
label = "user_led2";
gpios = <&gpio4 1 0>; /* <&gpio_user_led_2>; */
linux,default-trigger = "mmc0";
};
user_led3 {
label = "user_led3";
gpios = <&gpio4 2 0>; /* <&gpio_user_led_3>; */
linux,default-trigger = "mmc1";
};
user_led4 {
label = "user_led4";
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";
};
};
/* power control mechanism for WLAN_EN */
wlan_en_reg: fixedregulator@1 {
compatible = "regulator-fixed";
regulator-name = "wlan-en-regulator";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
/* WLAN_EN GPIO for this board - GPIO_0_5 */
gpio = <&gpio0 5 0>;
/* WLAN card specific delay */
startup-delay-us = <70000>;
enable-active-high;
};
hisi-ion@0 {
compatible = "hisilicon,ion";
heap_sys_user@0 {
heap-name = "sys_user";
heap-range = <0x0 0x0>;
heap-type = "ion_system";
};
heap_sys_contig@0 {
heap-name = "sys_contig";
heap-range = <0x0 0x0>;
heap-type = "ion_system_contig";
};
heap_cma@0 {
heap-name = "cma";
heap-range = <0x0 0x0>;
heap-type = "ion_cma";
};
};
};