blob: 1ebf72f952b4a2ea021624aa096fa8016c05711e [file] [log] [blame]
/*
* 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";
};
};