blob: 05a88f344b70aa98954fcf880e797962842d8c54 [file] [log] [blame]
/*
* dts file for Hisilicon HiKey960 Development Board
*
* Copyright (C) 2016, Hisilicon Ltd.
*
*/
/*
*
* Modifications made by Cadence Design Systems, Inc. 06/21/2017
* Copyright (C) 2017 Cadence Design Systems, Inc.All rights reserved worldwide.
*
*/
/dts-v1/;
#include "hi3660.dtsi"
#include "hikey960-pinctrl.dtsi"
#include "hi3660-gpu.dtsi"
#include "hisi_3660_ipc.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>
#include "hi3660-drm.dtsi"
#include "hi3660-ion.dtsi"
#include "hi3660-coresight.dtsi"
/ {
model = "HiKey960";
compatible = "hisilicon,hi3660-hikey960", "hisilicon,hi3660";
aliases {
mshc1 = &dwmmc1;
mshc2 = &dwmmc2;
serial0 = &uart0;
serial1 = &uart1;
serial2 = &uart2;
serial3 = &uart3;
serial4 = &uart4;
serial5 = &uart5;
serial6 = &uart6;
};
chosen {
stdout-path = "serial6:115200n8";
};
overlay_mgr {
compatible = "linux,overlay_manager";
hardware_cfg_spidev0 {
overlay_0 {
fragment@0 {
target-path="/soc/spi@ffd68000/spidev@0";
__overlay__ {
status = "ok";
};
};
};
};
hardware_cfg_neonkey {
overlay_0 {
fragment@0 {
target-path="/soc/spi@ffd68000/sensorhub@0";
__overlay__ {
status = "ok";
};
};
};
};
hardware_cfg_argonkey {
overlay_0 {
fragment@0 {
target-path="/soc/spi@ffd68000/argonkey@0";
__overlay__ {
status = "ok";
};
};
};
};
hardware_cfg_disable_bt {
overlay_0 {
fragment@0 {
target-path="/soc/serial@fdf01000/bluetooth";
__overlay__ {
status = "disabled";
};
};
};
};
hardware_cfg_disable_wlan {
overlay_0 {
fragment@0 {
target-path="/soc/dwmmc2@ff3ff000";
__overlay__ {
status = "disabled";
};
};
};
};
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";
};
};
};
};
};
memory@0 {
device_type = "memory";
reg = <0x0 0x00400000 0x0 0xBFE00000>;
};
reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
fastboot_cma: fastboot-cma-mem {
reg = <0x0 0x16c00000 0x0 0x4000000>;
compatible = "shared-dma-pool";
hisi,cma-sec;
reusable;
};
uefi-reboot-mode {
reg = <0x0 0x32100000 0x0 0x00001000>;
no-map;
};
bl31 {
reg = <0x0 0x20200000 0x0 0x200000>;
no-map;
};
ramoops: ramoops@20A00000 {
compatible = "ramoops";
reg = <0x0 0x20A00000 0x0 0x00100000>; /* pstore/ramoops buffer */
record-size = <0x00020000>;
console-size = <0x00020000>;
ftrace-size = <0x00020000>;
};
hifi-base {
reg = <0x0 0x89200000 0x0 0x980000>;
no-map;
};
lpmx-core {
reg = <0x0 0x89b80000 0x0 0x100000>;
no-map;
};
lpmcu {
reg = <0x0 0x89c80000 0x0 0x40000>;
no-map;
};
hifi-data {
reg = <0x0 0x8B300000 0x0 0x380000>;
no-map;
};
};
reboot-mode-syscon@32100000 {
compatible = "syscon", "simple-mfd";
reg = <0x0 0x32100000 0x0 0x00001000>;
reboot-mode {
compatible = "syscon-reboot-mode";
offset = <0x0>;
mode-normal = <0x77665501>;
mode-bootloader = <0x77665500>;
mode-recovery = <0x77665502>;
};
};
pclk: apb_pclk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <20000000>;
clock-output-names = "apb_pclk";
};
hifidsp {
compatible = "hisilicon,k3hifidsp";
};
keys {
compatible = "gpio-keys";
pinctrl-names = "default";
pinctrl-0 = <&pwr_key_pmx_func &pwr_key_cfg_func>;
power {
wakeup-source;
gpios = <&gpio4 2 GPIO_ACTIVE_LOW>;
label = "GPIO Power";
linux,code = <KEY_POWER>;
};
};
leds {
compatible = "gpio-leds";
user_led1 {
label = "user_led1";
/* gpio_150_user_led1 */
gpios = <&gpio18 6 0>;
linux,default-trigger = "heartbeat";
};
user_led2 {
label = "user_led2";
/* gpio_151_user_led2 */
gpios = <&gpio18 7 0>;
linux,default-trigger = "mmc0";
};
user_led3 {
label = "user_led3";
/* gpio_189_user_led3 */
gpios = <&gpio23 5 0>;
default-state = "off";
};
user_led4 {
label = "user_led4";
/* gpio_190_user_led4 */
gpios = <&gpio23 6 0>;
linux,default-trigger = "cpu0";
};
wlan_active_led {
label = "wifi_active";
/* gpio_205_wifi_active */
gpios = <&gpio25 5 0>;
linux,default-trigger = "phy0tx";
default-state = "off";
};
bt_active_led {
label = "bt_active";
gpios = <&gpio25 7 0>;
/* gpio_207_user_led1 */
linux,default-trigger = "hci0rx";
default-state = "off";
};
};
pmic: pmic@fff34000 {
compatible = "hisilicon,hi6421v530-pmic";
reg = <0x0 0xfff34000 0x0 0x1000>;
interrupt-controller;
#interrupt-cells = <2>;
regulators {
ldo3: LDO3 { /* HDMI */
regulator-name = "VOUT3_1V85";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <2200000>;
regulator-always-on;
regulator-enable-ramp-delay = <120>;
};
ldo9: LDO9 { /* SDCARD I/O */
regulator-name = "VOUT9_1V8_2V95";
regulator-min-microvolt = <1750000>;
regulator-max-microvolt = <3300000>;
regulator-enable-ramp-delay = <240>;
};
ldo11: LDO11 { /* Low Speed Connector */
regulator-name = "VOUT11_1V8_2V95";
regulator-min-microvolt = <1750000>;
regulator-max-microvolt = <3300000>;
regulator-always-on;
regulator-enable-ramp-delay = <240>;
};
ldo15: LDO15 { /* UFS VCC */
regulator-name = "VOUT15_3V0";
regulator-min-microvolt = <1750000>;
regulator-max-microvolt = <3000000>;
regulator-boot-on;
regulator-always-on;
regulator-enable-ramp-delay = <120>;
};
ldo16: LDO16 { /* SD VDD */
regulator-name = "VOUT16_2V95";
regulator-min-microvolt = <1750000>;
regulator-max-microvolt = <3000000>;
regulator-enable-ramp-delay = <360>;
};
};
};
wlan_en: wlan-en-1-8v {
compatible = "regulator-fixed";
regulator-name = "wlan-en-regulator";
regulator-min-microvolt = <1800000>;
regulator-max-microvolt = <1800000>;
/* GPIO_051_WIFI_EN */
gpio = <&gpio6 3 0>;
/* WLAN card specific delay */
startup-delay-us = <70000>;
enable-active-high;
};
smmu {
compatible = "hisi,hisi-smmu";
phy_pgd_base = <0x0 0x34A78000>;
};
smmu_lpae {
compatible = "hisi,hisi-smmu-lpae";
status = "ok";
};
/* bluetooth - TI WL1837 */
kim {
compatible = "kim";
/*
* 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: GPIO_126_BT_EN */
nshutdown_gpio = <390>;
dev_name = "/dev/ttyAMA4";
flow_cntrl = <1>;
/* baud_rate = <3000000>; */
/* baud_rate = <230400>; ok */
baud_rate = <921600>;
/* baud_rate = <1500000>; nok */
};
btwilink {
compatible = "btwilink";
};
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/ff3b0000.ufs/by-name/system" ;
type = "ext4";
mnt_flags = "ro" ;
fsmgr_flags = "wait";
status = "disabled";
};
vendor {
compatible = "android,vendor";
dev = "/dev/block/platform/soc/ff3b0000.ufs/by-name/vendor" ;
type = "ext4";
mnt_flags = "ro" ;
fsmgr_flags = "wait,verify";
status = "disabled";
};
};
};
};
};
&i2c0 {
/* On Low speed expansion */
label = "LS-I2C0";
status = "okay";
};
&i2c1 {
status = "okay";
adv7533: adv7533@39 {
status = "ok";
compatible = "adi,adv7533";
reg = <0x39>;
};
};
&i2c7 {
/* On Low speed expansion */
label = "LS-I2C1";
status = "okay";
};
&uart3 {
/* On Low speed expansion */
label = "LS-UART0";
status = "okay";
};
&uart4 {
status = "okay";
bluetooth {
compatible = "ti,wl1837-st";
enable-gpios = <&gpio15 6 GPIO_ACTIVE_HIGH>;
max-speed = <921600>;
};
};
&uart6 {
/* On Low speed expansion */
label = "LS-UART1";
status = "okay";
};
&spi2 {
/* On Low speed expansion */
label = "LS-SPI0";
status = "okay";
spidev@0 {
compatible = "rohm,dh2228fv";
spi-max-frequency = <500000>;
reg = <0>;
status = "disabled";
};
sensorhub@0 {
compatible = "nanohub";
reg = <0>;
spi-max-frequency = <500000>;
spi-cpol;
spi-cpha;
sensorhub,nreset-gpio = <&gpio26 3 0>; /* Fake */
sensorhub,boot0-gpio = <&gpio26 2 0>; /* Fake */
sensorhub,wakeup-gpio = <&gpio26 0 0>; /* Gpio_208 -> PB9 */
sensorhub,irq1-gpio = <&gpio26 1 0>; /* Gpio_209 -> PB5 */
sensorhub,spi-cs-gpio = <&gpio27 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>;
spi-max-frequency = <500000>;
sensorhub,irq1-gpio = <&gpio26 0 0>; /* Gpio_208 -> PA1 */
sensorhub,irq2-gpio = <&gpio6 4 0>; /* Gpio_052 -> PA3 */
sensorhub,wakeup-gpio = <&gpio2 3 0>; /* Gpio_019 -> PA0 */
sensorhub,spi-cs-gpio = <&gpio27 2 0>; /* Gpio_218 */
sensorhub,nreset-gpio = <&gpio26 3 0>; /* Gpio_211 -> Nreset */
sensorhub,boot0-gpio = <&gpio5 0 0>; /* Gpio_040 -> Boot0 */
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";
};
};
&spi3 {
/* On High speed expansion */
label = "HS-SPI1";
status = "okay";
};
&dwmmc1 {
vmmc-supply = <&ldo16>;
vqmmc-supply = <&ldo9>;
status = "okay";
};
&dwmmc2 { /* WIFI */
broken-cd;
/* WL_EN */
vmmc-supply = <&wlan_en>;
ti,non-removable;
non-removable;
#address-cells = <0x1>;
#size-cells = <0x0>;
status = "ok";
wlcore: wlcore@2 {
compatible = "ti,wl1837";
reg = <2>; /* sdio func num */
/* WL_IRQ, GPIO_179_WL_WAKEUP_AP */
interrupt-parent = <&gpio22>;
interrupts = <3 IRQ_TYPE_EDGE_RISING>;
};
};
&ufs {
ufs-hi3660-use-rate-B;
ufs-hi3660-broken-fastauto;
ufs-hi3660-use-HS-GEAR3;
ufs-hi3660-broken-clk-gate-bypass;
reset-gpio = <&gpio18 1 0>;
status = "okay";
};