xref: /freebsd/sys/contrib/device-tree/src/arm/hisilicon/hi3519.dtsi (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
1f126890aSEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0-or-later
2f126890aSEmmanuel Vadot/*
3f126890aSEmmanuel Vadot * Copyright (c) 2015 HiSilicon Technologies Co., Ltd.
4f126890aSEmmanuel Vadot */
5f126890aSEmmanuel Vadot
6f126890aSEmmanuel Vadot#include <dt-bindings/clock/hi3519-clock.h>
7f126890aSEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
8f126890aSEmmanuel Vadot/ {
9f126890aSEmmanuel Vadot	#address-cells = <1>;
10f126890aSEmmanuel Vadot	#size-cells = <1>;
11f126890aSEmmanuel Vadot	chosen { };
12f126890aSEmmanuel Vadot
13f126890aSEmmanuel Vadot	cpus {
14f126890aSEmmanuel Vadot		#address-cells = <1>;
15f126890aSEmmanuel Vadot		#size-cells = <0>;
16f126890aSEmmanuel Vadot
17f126890aSEmmanuel Vadot		cpu@0 {
18f126890aSEmmanuel Vadot			device_type = "cpu";
19f126890aSEmmanuel Vadot			compatible = "arm,cortex-a7";
20f126890aSEmmanuel Vadot			reg = <0>;
21f126890aSEmmanuel Vadot		};
22f126890aSEmmanuel Vadot	};
23f126890aSEmmanuel Vadot
24f126890aSEmmanuel Vadot	gic: interrupt-controller@10300000 {
25f126890aSEmmanuel Vadot		compatible = "arm,cortex-a7-gic";
26f126890aSEmmanuel Vadot		#interrupt-cells = <3>;
27f126890aSEmmanuel Vadot		interrupt-controller;
28f126890aSEmmanuel Vadot		reg = <0x10301000 0x1000>, <0x10302000 0x1000>;
29f126890aSEmmanuel Vadot	};
30f126890aSEmmanuel Vadot
31f126890aSEmmanuel Vadot	clk_3m: clk_3m {
32f126890aSEmmanuel Vadot		compatible = "fixed-clock";
33f126890aSEmmanuel Vadot		#clock-cells = <0>;
34f126890aSEmmanuel Vadot		clock-frequency = <3000000>;
35f126890aSEmmanuel Vadot	};
36f126890aSEmmanuel Vadot
37f126890aSEmmanuel Vadot	crg: clock-reset-controller@12010000 {
38f126890aSEmmanuel Vadot		compatible = "hisilicon,hi3519-crg";
39f126890aSEmmanuel Vadot		#clock-cells = <1>;
40f126890aSEmmanuel Vadot		#reset-cells = <2>;
41f126890aSEmmanuel Vadot		reg = <0x12010000 0x10000>;
42f126890aSEmmanuel Vadot	};
43f126890aSEmmanuel Vadot
44f126890aSEmmanuel Vadot	soc {
45f126890aSEmmanuel Vadot		#address-cells = <1>;
46f126890aSEmmanuel Vadot		#size-cells = <1>;
47f126890aSEmmanuel Vadot		compatible = "simple-bus";
48f126890aSEmmanuel Vadot		interrupt-parent = <&gic>;
49f126890aSEmmanuel Vadot		ranges;
50f126890aSEmmanuel Vadot
51f126890aSEmmanuel Vadot		uart0: serial@12100000 {
52f126890aSEmmanuel Vadot			compatible = "arm,pl011", "arm,primecell";
53f126890aSEmmanuel Vadot			reg = <0x12100000 0x1000>;
54f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>;
55f126890aSEmmanuel Vadot			clocks = <&crg HI3519_UART0_CLK>, <&crg HI3519_UART0_CLK>;
56f126890aSEmmanuel Vadot			clock-names = "uartclk", "apb_pclk";
57*aa1a8ff2SEmmanuel Vadot			status = "disabled";
58f126890aSEmmanuel Vadot		};
59f126890aSEmmanuel Vadot
60f126890aSEmmanuel Vadot		uart1: serial@12101000 {
61f126890aSEmmanuel Vadot			compatible = "arm,pl011", "arm,primecell";
62f126890aSEmmanuel Vadot			reg = <0x12101000 0x1000>;
63f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
64f126890aSEmmanuel Vadot			clocks = <&crg HI3519_UART1_CLK>, <&crg HI3519_UART1_CLK>;
65f126890aSEmmanuel Vadot			clock-names = "uartclk", "apb_pclk";
66*aa1a8ff2SEmmanuel Vadot			status = "disabled";
67f126890aSEmmanuel Vadot		};
68f126890aSEmmanuel Vadot
69f126890aSEmmanuel Vadot		uart2: serial@12102000 {
70f126890aSEmmanuel Vadot			compatible = "arm,pl011", "arm,primecell";
71f126890aSEmmanuel Vadot			reg = <0x12102000 0x1000>;
72f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>;
73f126890aSEmmanuel Vadot			clocks = <&crg HI3519_UART2_CLK>, <&crg HI3519_UART2_CLK>;
74f126890aSEmmanuel Vadot			clock-names = "uartclk", "apb_pclk";
75*aa1a8ff2SEmmanuel Vadot			status = "disabled";
76f126890aSEmmanuel Vadot		};
77f126890aSEmmanuel Vadot
78f126890aSEmmanuel Vadot		uart3: serial@12103000 {
79f126890aSEmmanuel Vadot			compatible = "arm,pl011", "arm,primecell";
80f126890aSEmmanuel Vadot			reg = <0x12103000 0x1000>;
81f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
82f126890aSEmmanuel Vadot			clocks = <&crg HI3519_UART3_CLK>, <&crg HI3519_UART3_CLK>;
83f126890aSEmmanuel Vadot			clock-names = "uartclk", "apb_pclk";
84*aa1a8ff2SEmmanuel Vadot			status = "disabled";
85f126890aSEmmanuel Vadot		};
86f126890aSEmmanuel Vadot
87f126890aSEmmanuel Vadot		uart4: serial@12104000 {
88f126890aSEmmanuel Vadot			compatible = "arm,pl011", "arm,primecell";
89f126890aSEmmanuel Vadot			reg = <0x12104000 0x1000>;
90f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
91f126890aSEmmanuel Vadot			clocks = <&crg HI3519_UART4_CLK>, <&crg HI3519_UART4_CLK>;
92f126890aSEmmanuel Vadot			clock-names = "uartclk", "apb_pclk";
93*aa1a8ff2SEmmanuel Vadot			status = "disabled";
94f126890aSEmmanuel Vadot		};
95f126890aSEmmanuel Vadot
96f126890aSEmmanuel Vadot		dual_timer0: timer@12000000 {
97f126890aSEmmanuel Vadot			compatible = "arm,sp804", "arm,primecell";
98f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>,
99f126890aSEmmanuel Vadot				     <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
100f126890aSEmmanuel Vadot			reg = <0x12000000 0x1000>;
101f126890aSEmmanuel Vadot			clocks = <&clk_3m>;
102f126890aSEmmanuel Vadot			clock-names = "apb_pclk";
103*aa1a8ff2SEmmanuel Vadot			status = "disabled";
104f126890aSEmmanuel Vadot		};
105f126890aSEmmanuel Vadot
106f126890aSEmmanuel Vadot		dual_timer1: timer@12001000 {
107f126890aSEmmanuel Vadot			compatible = "arm,sp804", "arm,primecell";
108f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>,
109f126890aSEmmanuel Vadot				     <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
110f126890aSEmmanuel Vadot			reg = <0x12001000 0x1000>;
111f126890aSEmmanuel Vadot			clocks = <&clk_3m>;
112f126890aSEmmanuel Vadot			clock-names = "apb_pclk";
113*aa1a8ff2SEmmanuel Vadot			status = "disabled";
114f126890aSEmmanuel Vadot		};
115f126890aSEmmanuel Vadot
116f126890aSEmmanuel Vadot		dual_timer2: timer@12002000 {
117f126890aSEmmanuel Vadot			compatible = "arm,sp804", "arm,primecell";
118f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
119f126890aSEmmanuel Vadot				     <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
120f126890aSEmmanuel Vadot			reg = <0x12002000 0x1000>;
121f126890aSEmmanuel Vadot			clocks = <&clk_3m>;
122f126890aSEmmanuel Vadot			clock-names = "apb_pclk";
123*aa1a8ff2SEmmanuel Vadot			status = "disabled";
124f126890aSEmmanuel Vadot		};
125f126890aSEmmanuel Vadot
126f126890aSEmmanuel Vadot		spi_bus0: spi@12120000 {
127f126890aSEmmanuel Vadot			compatible = "arm,pl022", "arm,primecell";
128f126890aSEmmanuel Vadot			reg = <0x12120000 0x1000>;
129f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
130f126890aSEmmanuel Vadot			clocks = <&crg HI3519_SPI0_CLK>, <&crg HI3519_SPI0_CLK>;
131f126890aSEmmanuel Vadot			clock-names = "sspclk", "apb_pclk";
132f126890aSEmmanuel Vadot			num-cs = <1>;
133f126890aSEmmanuel Vadot			#address-cells = <1>;
134f126890aSEmmanuel Vadot			#size-cells = <0>;
135*aa1a8ff2SEmmanuel Vadot			status = "disabled";
136f126890aSEmmanuel Vadot		};
137f126890aSEmmanuel Vadot
138f126890aSEmmanuel Vadot		spi_bus1: spi@12121000 {
139f126890aSEmmanuel Vadot			compatible = "arm,pl022", "arm,primecell";
140f126890aSEmmanuel Vadot			reg = <0x12121000 0x1000>;
141f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>;
142f126890aSEmmanuel Vadot			clocks = <&crg HI3519_SPI1_CLK>, <&crg HI3519_SPI1_CLK>;
143f126890aSEmmanuel Vadot			clock-names = "sspclk", "apb_pclk";
144f126890aSEmmanuel Vadot			num-cs = <1>;
145f126890aSEmmanuel Vadot			#address-cells = <1>;
146f126890aSEmmanuel Vadot			#size-cells = <0>;
147*aa1a8ff2SEmmanuel Vadot			status = "disabled";
148f126890aSEmmanuel Vadot		};
149f126890aSEmmanuel Vadot
150f126890aSEmmanuel Vadot		spi_bus2: spi@12122000 {
151f126890aSEmmanuel Vadot			compatible = "arm,pl022", "arm,primecell";
152f126890aSEmmanuel Vadot			reg = <0x12122000 0x1000>;
153f126890aSEmmanuel Vadot			interrupts = <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>;
154f126890aSEmmanuel Vadot			clocks = <&crg HI3519_SPI2_CLK>, <&crg HI3519_SPI2_CLK>;
155f126890aSEmmanuel Vadot			clock-names = "sspclk", "apb_pclk";
156f126890aSEmmanuel Vadot			num-cs = <1>;
157f126890aSEmmanuel Vadot			#address-cells = <1>;
158f126890aSEmmanuel Vadot			#size-cells = <0>;
159*aa1a8ff2SEmmanuel Vadot			status = "disabled";
160f126890aSEmmanuel Vadot		};
161f126890aSEmmanuel Vadot
162f126890aSEmmanuel Vadot		sysctrl: system-controller@12020000 {
163f126890aSEmmanuel Vadot			compatible = "hisilicon,hi3519-sysctrl", "syscon";
164f126890aSEmmanuel Vadot			reg = <0x12020000 0x1000>;
165f126890aSEmmanuel Vadot		};
166f126890aSEmmanuel Vadot
167f126890aSEmmanuel Vadot		reboot {
168f126890aSEmmanuel Vadot			compatible = "syscon-reboot";
169f126890aSEmmanuel Vadot			regmap = <&sysctrl>;
170f126890aSEmmanuel Vadot			offset = <0x4>;
171f126890aSEmmanuel Vadot			mask = <0xdeadbeef>;
172f126890aSEmmanuel Vadot		};
173f126890aSEmmanuel Vadot	};
174f126890aSEmmanuel Vadot};
175