blob: 5b7e319fd6596919dd606e3560d8a5c4f56d10e0 [file] [log] [blame]
/*
* Hisilicon Ltd. HiP01 SoC
*
* Copyright (C) 2013-2014 Hisilicon Ltd.
* Copyright (C) 2013-2014 Linaro Ltd.
*
* Author: Haojian Zhuang <haojian.zhuang@linaro.org>
*
* 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 <dt-bindings/clock/hip04-clock.h>
/ {
/* memory bus is 64-bit */
#address-cells = <2>;
#size-cells = <1>;
aliases {
serial0 = &uart0;
};
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
device_type = "cpu";
compatible = "arm,cortex-a15";
reg = <0>;
};
};
soc {
/* It's a 32-bit SoC. */
#address-cells = <1>;
#size-cells = <1>;
compatible = "arm,amba-bus", "simple-bus";
device_type = "soc";
interrupt-parent = <&gic>;
ranges = <0 0 0xe0000000 0x10000000>;
gic: interrupt-controller@c01000 {
compatible = "arm,cortex-a15-gic";
#interrupt-cells = <3>;
#address-cells = <0>;
interrupt-controller;
/* gic dist base, gic cpu base */
reg = <0xc01000 0x1000>, <0xc02000 0x1000>;
};
mcpm: mcpm {
compatible = "hisilicon,hip04-mcpm";
reg = <0x100 0x1000>, <0x3e00000 0x00100000>,
<0x302a000 0x1000>;
};
clock: clock {
compatible = "hisilicon,hip04-clock";
/* FIXME: the base of clock controller */
reg = <0 0x1000>;
#clock-cells = <1>;
};
dual_timer0: dual_timer@3000000 {
compatible = "arm,sp804", "arm,primecell";
reg = <0x3000000 0x1000>;
interrupts = <0 224 4>;
clocks = <&clock HIP04_CLK_50M>;
clock-names = "apb_pclk";
status = "ok";
};
arm-pmu {
compatible = "arm,cortex-a15-pmu";
interrupts = <0 64 4>,
<0 65 4>,
<0 66 4>,
<0 67 4>,
<0 68 4>,
<0 69 4>,
<0 70 4>,
<0 71 4>,
<0 72 4>,
<0 73 4>,
<0 74 4>,
<0 75 4>,
<0 76 4>,
<0 77 4>,
<0 78 4>,
<0 79 4>;
};
timer {
compatible = "arm,armv7-timer";
interrupts = <1 13 0xf08>,
<1 14 0xf08>,
<1 11 0xf08>,
<1 10 0xf08>;
};
uart0: uart@4007000 {
compatible = "snps,dw-apb-uart";
reg = <0x4007000 0x1000>;
interrupts = <0 381 4>;
clocks = <&clock HIP04_CLK_168M>;
clock-names = "uartclk";
reg-shift = <2>;
status = "disabled";
};
sata@a000000 {
compatible = "hisilicon,hisi-ahci";
reg = <0xa000000 0x1000000>;
interrupts = <0 372 4>;
};
mdio {
compatible = "hisilicon,hip04-mdio";
reg = <0x28f1000 0x1000>;
#address-cells = <1>;
#size-cells = <0>;
phy0: ethernet-phy@0 {
reg = <0>;
marvell,reg-init = <18 0x14 0 0x8001>;
device_type = "ethernet-phy";
};
phy1: ethernet-phy@1 {
reg = <1>;
marvell,reg-init = <18 0x14 0 0x8001>;
device_type = "ethernet-phy";
};
};
ppebase: ppebase@28c0000 {
compatible = "hisilicon,hip04-ppebase";
reg = <0x28c0000 0x10000>;
};
fe: ethernet@28b0000 {
compatible = "hisilicon,hip04-mac";
reg = <0x28b0000 0x10000>;
interrupts = <0 413 4>;
port = <31>;
speed = <100>;
id = <0>;
};
ge0: ethernet@2800000 {
compatible = "hisilicon,hip04-mac";
reg = <0x2800000 0x10000>;
interrupts = <0 402 4>;
port = <0>;
speed = <1000>;
id = <1>;
phy-handle = <&phy0>;
};
ge8: ethernet@2880000 {
compatible = "hisilicon,hip04-mac";
reg = <0x2880000 0x10000>;
interrupts = <0 410 4>;
port = <8>;
speed = <1000>;
id = <2>;
phy-handle = <&phy1>;
};
};
};