186e8f528SBintian Wang/*
286e8f528SBintian Wang * dts file for Hisilicon Hi6220 SoC
386e8f528SBintian Wang *
486e8f528SBintian Wang * Copyright (C) 2015, Hisilicon Ltd.
586e8f528SBintian Wang */
686e8f528SBintian Wang
786e8f528SBintian Wang#include <dt-bindings/interrupt-controller/arm-gic.h>
8a362ec8fSTyler Baker#include <dt-bindings/clock/hi6220-clock.h>
986e8f528SBintian Wang
1086e8f528SBintian Wang/ {
1186e8f528SBintian Wang	compatible = "hisilicon,hi6220";
1286e8f528SBintian Wang	interrupt-parent = <&gic>;
1386e8f528SBintian Wang	#address-cells = <2>;
1486e8f528SBintian Wang	#size-cells = <2>;
1586e8f528SBintian Wang
1686e8f528SBintian Wang	psci {
1786e8f528SBintian Wang		compatible = "arm,psci-0.2";
1886e8f528SBintian Wang		method = "smc";
1986e8f528SBintian Wang	};
2086e8f528SBintian Wang
2186e8f528SBintian Wang	cpus {
2286e8f528SBintian Wang		#address-cells = <2>;
2386e8f528SBintian Wang		#size-cells = <0>;
2486e8f528SBintian Wang
2586e8f528SBintian Wang		cpu-map {
2686e8f528SBintian Wang			cluster0 {
2786e8f528SBintian Wang				core0 {
2886e8f528SBintian Wang					cpu = <&cpu0>;
2986e8f528SBintian Wang				};
3086e8f528SBintian Wang				core1 {
3186e8f528SBintian Wang					cpu = <&cpu1>;
3286e8f528SBintian Wang				};
3386e8f528SBintian Wang				core2 {
3486e8f528SBintian Wang					cpu = <&cpu2>;
3586e8f528SBintian Wang				};
3686e8f528SBintian Wang				core3 {
3786e8f528SBintian Wang					cpu = <&cpu3>;
3886e8f528SBintian Wang				};
3986e8f528SBintian Wang			};
4086e8f528SBintian Wang			cluster1 {
4186e8f528SBintian Wang				core0 {
4286e8f528SBintian Wang					cpu = <&cpu4>;
4386e8f528SBintian Wang				};
4486e8f528SBintian Wang				core1 {
4586e8f528SBintian Wang					cpu = <&cpu5>;
4686e8f528SBintian Wang				};
4786e8f528SBintian Wang				core2 {
4886e8f528SBintian Wang					cpu = <&cpu6>;
4986e8f528SBintian Wang				};
5086e8f528SBintian Wang				core3 {
5186e8f528SBintian Wang					cpu = <&cpu7>;
5286e8f528SBintian Wang				};
5386e8f528SBintian Wang			};
5486e8f528SBintian Wang		};
5586e8f528SBintian Wang
5686e8f528SBintian Wang		cpu0: cpu@0 {
5786e8f528SBintian Wang			compatible = "arm,cortex-a53", "arm,armv8";
5886e8f528SBintian Wang			device_type = "cpu";
5986e8f528SBintian Wang			reg = <0x0 0x0>;
6086e8f528SBintian Wang			enable-method = "psci";
6186e8f528SBintian Wang		};
6286e8f528SBintian Wang
6386e8f528SBintian Wang		cpu1: cpu@1 {
6486e8f528SBintian Wang			compatible = "arm,cortex-a53", "arm,armv8";
6586e8f528SBintian Wang			device_type = "cpu";
6686e8f528SBintian Wang			reg = <0x0 0x1>;
6786e8f528SBintian Wang			enable-method = "psci";
6886e8f528SBintian Wang		};
6986e8f528SBintian Wang
7086e8f528SBintian Wang		cpu2: cpu@2 {
7186e8f528SBintian Wang			compatible = "arm,cortex-a53", "arm,armv8";
7286e8f528SBintian Wang			device_type = "cpu";
7386e8f528SBintian Wang			reg = <0x0 0x2>;
7486e8f528SBintian Wang			enable-method = "psci";
7586e8f528SBintian Wang		};
7686e8f528SBintian Wang
7786e8f528SBintian Wang		cpu3: cpu@3 {
7886e8f528SBintian Wang			compatible = "arm,cortex-a53", "arm,armv8";
7986e8f528SBintian Wang			device_type = "cpu";
8086e8f528SBintian Wang			reg = <0x0 0x3>;
8186e8f528SBintian Wang			enable-method = "psci";
8286e8f528SBintian Wang		};
8386e8f528SBintian Wang
8486e8f528SBintian Wang		cpu4: cpu@100 {
8586e8f528SBintian Wang			compatible = "arm,cortex-a53", "arm,armv8";
8686e8f528SBintian Wang			device_type = "cpu";
8786e8f528SBintian Wang			reg = <0x0 0x100>;
8886e8f528SBintian Wang			enable-method = "psci";
8986e8f528SBintian Wang		};
9086e8f528SBintian Wang
9186e8f528SBintian Wang		cpu5: cpu@101 {
9286e8f528SBintian Wang			compatible = "arm,cortex-a53", "arm,armv8";
9386e8f528SBintian Wang			device_type = "cpu";
9486e8f528SBintian Wang			reg = <0x0 0x101>;
9586e8f528SBintian Wang			enable-method = "psci";
9686e8f528SBintian Wang		};
9786e8f528SBintian Wang
9886e8f528SBintian Wang		cpu6: cpu@102 {
9986e8f528SBintian Wang			compatible = "arm,cortex-a53", "arm,armv8";
10086e8f528SBintian Wang			device_type = "cpu";
10186e8f528SBintian Wang			reg = <0x0 0x102>;
10286e8f528SBintian Wang			enable-method = "psci";
10386e8f528SBintian Wang		};
10486e8f528SBintian Wang
10586e8f528SBintian Wang		cpu7: cpu@103 {
10686e8f528SBintian Wang			compatible = "arm,cortex-a53", "arm,armv8";
10786e8f528SBintian Wang			device_type = "cpu";
10886e8f528SBintian Wang			reg = <0x0 0x103>;
10986e8f528SBintian Wang			enable-method = "psci";
11086e8f528SBintian Wang		};
11186e8f528SBintian Wang	};
11286e8f528SBintian Wang
11386e8f528SBintian Wang	gic: interrupt-controller@f6801000 {
11486e8f528SBintian Wang		compatible = "arm,gic-400";
11586e8f528SBintian Wang		reg = <0x0 0xf6801000 0 0x1000>, /* GICD */
11686e8f528SBintian Wang		      <0x0 0xf6802000 0 0x2000>, /* GICC */
11786e8f528SBintian Wang		      <0x0 0xf6804000 0 0x2000>, /* GICH */
11886e8f528SBintian Wang		      <0x0 0xf6806000 0 0x2000>; /* GICV */
11986e8f528SBintian Wang		#address-cells = <0>;
12086e8f528SBintian Wang		#interrupt-cells = <3>;
12186e8f528SBintian Wang		interrupt-controller;
12286e8f528SBintian Wang		interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
12386e8f528SBintian Wang	};
12486e8f528SBintian Wang
12586e8f528SBintian Wang	timer {
12686e8f528SBintian Wang		compatible = "arm,armv8-timer";
12786e8f528SBintian Wang		interrupt-parent = <&gic>;
12886e8f528SBintian Wang		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
12986e8f528SBintian Wang			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
13086e8f528SBintian Wang			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>,
13186e8f528SBintian Wang			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_LOW)>;
13286e8f528SBintian Wang	};
13386e8f528SBintian Wang
13486e8f528SBintian Wang	soc {
13586e8f528SBintian Wang		compatible = "simple-bus";
13686e8f528SBintian Wang		#address-cells = <2>;
13786e8f528SBintian Wang		#size-cells = <2>;
13886e8f528SBintian Wang		ranges;
13986e8f528SBintian Wang
14086e8f528SBintian Wang		ao_ctrl: ao_ctrl@f7800000 {
14186e8f528SBintian Wang			compatible = "hisilicon,hi6220-aoctrl", "syscon";
14286e8f528SBintian Wang			reg = <0x0 0xf7800000 0x0 0x2000>;
14386e8f528SBintian Wang			#clock-cells = <1>;
14486e8f528SBintian Wang		};
14586e8f528SBintian Wang
14686e8f528SBintian Wang		sys_ctrl: sys_ctrl@f7030000 {
14786e8f528SBintian Wang			compatible = "hisilicon,hi6220-sysctrl", "syscon";
14886e8f528SBintian Wang			reg = <0x0 0xf7030000 0x0 0x2000>;
14986e8f528SBintian Wang			#clock-cells = <1>;
1503e14cd4cSChen Feng			#reset-cells = <1>;
15186e8f528SBintian Wang		};
15286e8f528SBintian Wang
15386e8f528SBintian Wang		media_ctrl: media_ctrl@f4410000 {
15486e8f528SBintian Wang			compatible = "hisilicon,hi6220-mediactrl", "syscon";
15586e8f528SBintian Wang			reg = <0x0 0xf4410000 0x0 0x1000>;
15686e8f528SBintian Wang			#clock-cells = <1>;
15786e8f528SBintian Wang		};
15886e8f528SBintian Wang
15986e8f528SBintian Wang		pm_ctrl: pm_ctrl@f7032000 {
16086e8f528SBintian Wang			compatible = "hisilicon,hi6220-pmctrl", "syscon";
16186e8f528SBintian Wang			reg = <0x0 0xf7032000 0x0 0x1000>;
16286e8f528SBintian Wang			#clock-cells = <1>;
16386e8f528SBintian Wang		};
16486e8f528SBintian Wang
16586e8f528SBintian Wang		uart0: uart@f8015000 {	/* console */
16686e8f528SBintian Wang			compatible = "arm,pl011", "arm,primecell";
16786e8f528SBintian Wang			reg = <0x0 0xf8015000 0x0 0x1000>;
16886e8f528SBintian Wang			interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
169a362ec8fSTyler Baker			clocks = <&ao_ctrl HI6220_UART0_PCLK>,
170a362ec8fSTyler Baker				 <&ao_ctrl HI6220_UART0_PCLK>;
17186e8f528SBintian Wang			clock-names = "uartclk", "apb_pclk";
17286e8f528SBintian Wang		};
173a362ec8fSTyler Baker
174a362ec8fSTyler Baker		uart1: uart@f7111000 {
175a362ec8fSTyler Baker			compatible = "arm,pl011", "arm,primecell";
176a362ec8fSTyler Baker			reg = <0x0 0xf7111000 0x0 0x1000>;
177a362ec8fSTyler Baker			interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
178a362ec8fSTyler Baker			clocks = <&sys_ctrl HI6220_UART1_PCLK>,
179a362ec8fSTyler Baker				 <&sys_ctrl HI6220_UART1_PCLK>;
180a362ec8fSTyler Baker			clock-names = "uartclk", "apb_pclk";
181a362ec8fSTyler Baker			status = "disabled";
182a362ec8fSTyler Baker		};
183a362ec8fSTyler Baker
184a362ec8fSTyler Baker		uart2: uart@f7112000 {
185a362ec8fSTyler Baker			compatible = "arm,pl011", "arm,primecell";
186a362ec8fSTyler Baker			reg = <0x0 0xf7112000 0x0 0x1000>;
187a362ec8fSTyler Baker			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
188a362ec8fSTyler Baker			clocks = <&sys_ctrl HI6220_UART2_PCLK>,
189a362ec8fSTyler Baker				 <&sys_ctrl HI6220_UART2_PCLK>;
190a362ec8fSTyler Baker			clock-names = "uartclk", "apb_pclk";
191a362ec8fSTyler Baker			status = "disabled";
192a362ec8fSTyler Baker		};
193a362ec8fSTyler Baker
194a362ec8fSTyler Baker		uart3: uart@f7113000 {
195a362ec8fSTyler Baker			compatible = "arm,pl011", "arm,primecell";
196a362ec8fSTyler Baker			reg = <0x0 0xf7113000 0x0 0x1000>;
197a362ec8fSTyler Baker			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
198a362ec8fSTyler Baker			clocks = <&sys_ctrl HI6220_UART3_PCLK>,
199a362ec8fSTyler Baker				 <&sys_ctrl HI6220_UART3_PCLK>;
200a362ec8fSTyler Baker			clock-names = "uartclk", "apb_pclk";
201a362ec8fSTyler Baker		};
202a362ec8fSTyler Baker
203a362ec8fSTyler Baker		uart4: uart@f7114000 {
204a362ec8fSTyler Baker			compatible = "arm,pl011", "arm,primecell";
205a362ec8fSTyler Baker			reg = <0x0 0xf7114000 0x0 0x1000>;
206a362ec8fSTyler Baker			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
207a362ec8fSTyler Baker			clocks = <&sys_ctrl HI6220_UART4_PCLK>,
208a362ec8fSTyler Baker				 <&sys_ctrl HI6220_UART4_PCLK>;
209a362ec8fSTyler Baker			clock-names = "uartclk", "apb_pclk";
210a362ec8fSTyler Baker			status = "disabled";
211a362ec8fSTyler Baker		};
21286e8f528SBintian Wang	};
21386e8f528SBintian Wang};
214