mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-27 04:54:41 +08:00
92cfcb26fc
Reuse syscon-reboot, drivers/power/reset/syscon-reboot.c Signed-off-by: Zhangfei Gao <zhangfei.gao@linaro.org> Signed-off-by: Wei Xu <xuwei5@hisilicon.com>
557 lines
13 KiB
Plaintext
557 lines
13 KiB
Plaintext
/*
|
|
* Copyright (c) 2013-2014 Linaro Ltd.
|
|
* Copyright (c) 2013-2014 Hisilicon Limited.
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License version 2 as
|
|
* publishhed by the Free Software Foundation.
|
|
*/
|
|
|
|
#include "skeleton.dtsi"
|
|
#include <dt-bindings/clock/hix5hd2-clock.h>
|
|
|
|
/ {
|
|
aliases {
|
|
serial0 = &uart0;
|
|
};
|
|
|
|
gic: interrupt-controller@f8a01000 {
|
|
compatible = "arm,cortex-a9-gic";
|
|
#interrupt-cells = <3>;
|
|
#address-cells = <0>;
|
|
interrupt-controller;
|
|
/* gic dist base, gic cpu base */
|
|
reg = <0xf8a01000 0x1000>, <0xf8a00100 0x100>;
|
|
};
|
|
|
|
soc {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "simple-bus";
|
|
interrupt-parent = <&gic>;
|
|
ranges = <0 0xf8000000 0x8000000>;
|
|
|
|
amba {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "arm,amba-bus";
|
|
ranges;
|
|
|
|
timer0: timer@00002000 {
|
|
compatible = "arm,sp804", "arm,primecell";
|
|
reg = <0x00002000 0x1000>;
|
|
/* timer00 & timer01 */
|
|
interrupts = <0 24 4>;
|
|
clocks = <&clock HIX5HD2_FIXED_24M>;
|
|
status = "disabled";
|
|
};
|
|
|
|
timer1: timer@00a29000 {
|
|
/*
|
|
* Only used in NORMAL state, not available ins
|
|
* SLOW or DOZE state.
|
|
* The rate is fixed in 24MHz.
|
|
*/
|
|
compatible = "arm,sp804", "arm,primecell";
|
|
reg = <0x00a29000 0x1000>;
|
|
/* timer10 & timer11 */
|
|
interrupts = <0 25 4>;
|
|
clocks = <&clock HIX5HD2_FIXED_24M>;
|
|
status = "disabled";
|
|
};
|
|
|
|
timer2: timer@00a2a000 {
|
|
compatible = "arm,sp804", "arm,primecell";
|
|
reg = <0x00a2a000 0x1000>;
|
|
/* timer20 & timer21 */
|
|
interrupts = <0 26 4>;
|
|
clocks = <&clock HIX5HD2_FIXED_24M>;
|
|
status = "disabled";
|
|
};
|
|
|
|
timer3: timer@00a2b000 {
|
|
compatible = "arm,sp804", "arm,primecell";
|
|
reg = <0x00a2b000 0x1000>;
|
|
/* timer30 & timer31 */
|
|
interrupts = <0 27 4>;
|
|
clocks = <&clock HIX5HD2_FIXED_24M>;
|
|
status = "disabled";
|
|
};
|
|
|
|
timer4: timer@00a81000 {
|
|
compatible = "arm,sp804", "arm,primecell";
|
|
reg = <0x00a81000 0x1000>;
|
|
/* timer30 & timer31 */
|
|
interrupts = <0 28 4>;
|
|
clocks = <&clock HIX5HD2_FIXED_24M>;
|
|
status = "disabled";
|
|
};
|
|
|
|
uart0: uart@00b00000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x00b00000 0x1000>;
|
|
interrupts = <0 49 4>;
|
|
clocks = <&clock HIX5HD2_FIXED_83M>;
|
|
clock-names = "apb_pclk";
|
|
status = "disabled";
|
|
};
|
|
|
|
uart1: uart@00006000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x00006000 0x1000>;
|
|
interrupts = <0 50 4>;
|
|
clocks = <&clock HIX5HD2_FIXED_83M>;
|
|
clock-names = "apb_pclk";
|
|
status = "disabled";
|
|
};
|
|
|
|
uart2: uart@00b02000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x00b02000 0x1000>;
|
|
interrupts = <0 51 4>;
|
|
clocks = <&clock HIX5HD2_FIXED_83M>;
|
|
clock-names = "apb_pclk";
|
|
status = "disabled";
|
|
};
|
|
|
|
uart3: uart@00b03000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0x00b03000 0x1000>;
|
|
interrupts = <0 52 4>;
|
|
clocks = <&clock HIX5HD2_FIXED_83M>;
|
|
clock-names = "apb_pclk";
|
|
status = "disabled";
|
|
};
|
|
|
|
uart4: uart@00b04000 {
|
|
compatible = "arm,pl011", "arm,primecell";
|
|
reg = <0xb04000 0x1000>;
|
|
interrupts = <0 53 4>;
|
|
clocks = <&clock HIX5HD2_FIXED_83M>;
|
|
clock-names = "apb_pclk";
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio0: gpio@b20000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb20000 0x1000>;
|
|
interrupts = <0 108 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio1: gpio@b21000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb21000 0x1000>;
|
|
interrupts = <0 109 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio2: gpio@b22000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb22000 0x1000>;
|
|
interrupts = <0 110 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio3: gpio@b23000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb23000 0x1000>;
|
|
interrupts = <0 111 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio4: gpio@b24000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb24000 0x1000>;
|
|
interrupts = <0 112 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio5: gpio@004000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0x004000 0x1000>;
|
|
interrupts = <0 113 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio6: gpio@b26000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb26000 0x1000>;
|
|
interrupts = <0 114 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio7: gpio@b27000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb27000 0x1000>;
|
|
interrupts = <0 115 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio8: gpio@b28000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb28000 0x1000>;
|
|
interrupts = <0 116 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio9: gpio@b29000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb29000 0x1000>;
|
|
interrupts = <0 117 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio10: gpio@b2a000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb2a000 0x1000>;
|
|
interrupts = <0 118 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio11: gpio@b2b000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb2b000 0x1000>;
|
|
interrupts = <0 119 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio12: gpio@b2c000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb2c000 0x1000>;
|
|
interrupts = <0 120 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio13: gpio@b2d000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb2d000 0x1000>;
|
|
interrupts = <0 121 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio14: gpio@b2e000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb2e000 0x1000>;
|
|
interrupts = <0 122 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio15: gpio@b2f000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb2f000 0x1000>;
|
|
interrupts = <0 123 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio16: gpio@b30000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb30000 0x1000>;
|
|
interrupts = <0 124 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gpio17: gpio@b31000 {
|
|
compatible = "arm,pl061", "arm,primecell";
|
|
reg = <0xb31000 0x1000>;
|
|
interrupts = <0 125 0x4>;
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
clocks = <&clock HIX5HD2_FIXED_100M>;
|
|
clock-names = "apb_pclk";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
status = "disabled";
|
|
};
|
|
|
|
wdt0: watchdog@a2c000 {
|
|
compatible = "arm,sp805", "arm,primecell";
|
|
arm,primecell-periphid = <0x00141805>;
|
|
reg = <0xa2c000 0x1000>;
|
|
interrupts = <0 29 4>;
|
|
clocks = <&clock HIX5HD2_WDG0_RST>;
|
|
clock-names = "apb_pclk";
|
|
};
|
|
};
|
|
|
|
local_timer@00a00600 {
|
|
compatible = "arm,cortex-a9-twd-timer";
|
|
reg = <0x00a00600 0x20>;
|
|
interrupts = <1 13 0xf01>;
|
|
};
|
|
|
|
l2: l2-cache {
|
|
compatible = "arm,pl310-cache";
|
|
reg = <0x00a10000 0x100000>;
|
|
interrupts = <0 15 4>;
|
|
cache-unified;
|
|
cache-level = <2>;
|
|
};
|
|
|
|
sysctrl: system-controller@00000000 {
|
|
compatible = "hisilicon,sysctrl", "syscon";
|
|
reg = <0x00000000 0x1000>;
|
|
};
|
|
|
|
reboot {
|
|
compatible = "syscon-reboot";
|
|
regmap = <&sysctrl>;
|
|
offset = <0x4>;
|
|
mask = <0xdeadbeef>;
|
|
};
|
|
|
|
cpuctrl@00a22000 {
|
|
compatible = "hisilicon,cpuctrl";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
reg = <0x00a22000 0x2000>;
|
|
ranges = <0 0x00a22000 0x2000>;
|
|
|
|
clock: clock@0 {
|
|
compatible = "hisilicon,hix5hd2-clock";
|
|
reg = <0 0x2000>;
|
|
#clock-cells = <1>;
|
|
};
|
|
};
|
|
|
|
/* unremovable emmc as mmcblk0 */
|
|
mmc: mmc@1830000 {
|
|
compatible = "snps,dw-mshc";
|
|
reg = <0x1830000 0x1000>;
|
|
interrupts = <0 35 4>;
|
|
clocks = <&clock HIX5HD2_MMC_CIU_RST>,
|
|
<&clock HIX5HD2_MMC_BIU_CLK>;
|
|
clock-names = "ciu", "biu";
|
|
};
|
|
|
|
sd: mmc@1820000 {
|
|
compatible = "snps,dw-mshc";
|
|
reg = <0x1820000 0x1000>;
|
|
interrupts = <0 34 4>;
|
|
clocks = <&clock HIX5HD2_SD_CIU_RST>,
|
|
<&clock HIX5HD2_SD_BIU_CLK>;
|
|
clock-names = "ciu","biu";
|
|
};
|
|
|
|
gmac0: ethernet@1840000 {
|
|
compatible = "hisilicon,hix5hd2-gmac";
|
|
reg = <0x1840000 0x1000>,<0x184300c 0x4>;
|
|
interrupts = <0 71 4>;
|
|
clocks = <&clock HIX5HD2_MAC0_CLK>;
|
|
status = "disabled";
|
|
};
|
|
|
|
gmac1: ethernet@1841000 {
|
|
compatible = "hisilicon,hix5hd2-gmac";
|
|
reg = <0x1841000 0x1000>,<0x1843010 0x4>;
|
|
interrupts = <0 72 4>;
|
|
clocks = <&clock HIX5HD2_MAC1_CLK>;
|
|
status = "disabled";
|
|
};
|
|
|
|
usb0: ehci@1890000 {
|
|
compatible = "generic-ehci";
|
|
reg = <0x1890000 0x1000>;
|
|
interrupts = <0 66 4>;
|
|
clocks = <&clock HIX5HD2_USB_CLK>;
|
|
};
|
|
|
|
usb1: ohci@1880000 {
|
|
compatible = "generic-ohci";
|
|
reg = <0x1880000 0x1000>;
|
|
interrupts = <0 67 4>;
|
|
clocks = <&clock HIX5HD2_USB_CLK>;
|
|
};
|
|
|
|
peripheral_ctrl: syscon@a20000 {
|
|
compatible = "syscon";
|
|
reg = <0xa20000 0x1000>;
|
|
};
|
|
|
|
sata_phy: phy@1900000 {
|
|
compatible = "hisilicon,hix5hd2-sata-phy";
|
|
reg = <0x1900000 0x10000>;
|
|
#phy-cells = <0>;
|
|
hisilicon,peripheral-syscon = <&peripheral_ctrl>;
|
|
hisilicon,power-reg = <0x8 10>;
|
|
};
|
|
|
|
ahci: sata@1900000 {
|
|
compatible = "hisilicon,hisi-ahci";
|
|
reg = <0x1900000 0x10000>;
|
|
interrupts = <0 70 4>;
|
|
clocks = <&clock HIX5HD2_SATA_CLK>;
|
|
};
|
|
|
|
ir: ir@001000 {
|
|
compatible = "hisilicon,hix5hd2-ir";
|
|
reg = <0x001000 0x1000>;
|
|
interrupts = <0 47 4>;
|
|
clocks = <&clock HIX5HD2_FIXED_24M>;
|
|
hisilicon,power-syscon = <&sysctrl>;
|
|
};
|
|
|
|
i2c0: i2c@b10000 {
|
|
compatible = "hisilicon,hix5hd2-i2c";
|
|
reg = <0xb10000 0x1000>;
|
|
interrupts = <0 38 4>;
|
|
clocks = <&clock HIX5HD2_I2C0_RST>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c1: i2c@b11000 {
|
|
compatible = "hisilicon,hix5hd2-i2c";
|
|
reg = <0xb11000 0x1000>;
|
|
interrupts = <0 39 4>;
|
|
clocks = <&clock HIX5HD2_I2C1_RST>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c2: i2c@b12000 {
|
|
compatible = "hisilicon,hix5hd2-i2c";
|
|
reg = <0xb12000 0x1000>;
|
|
interrupts = <0 40 4>;
|
|
clocks = <&clock HIX5HD2_I2C2_RST>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c3: i2c@b13000 {
|
|
compatible = "hisilicon,hix5hd2-i2c";
|
|
reg = <0xb13000 0x1000>;
|
|
interrupts = <0 41 4>;
|
|
clocks = <&clock HIX5HD2_I2C3_RST>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c4: i2c@b16000 {
|
|
compatible = "hisilicon,hix5hd2-i2c";
|
|
reg = <0xb16000 0x1000>;
|
|
interrupts = <0 43 4>;
|
|
clocks = <&clock HIX5HD2_I2C4_RST>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c5: i2c@b17000 {
|
|
compatible = "hisilicon,hix5hd2-i2c";
|
|
reg = <0xb17000 0x1000>;
|
|
interrupts = <0 44 4>;
|
|
clocks = <&clock HIX5HD2_I2C5_RST>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
};
|
|
};
|