xref: /OK3568_Linux_fs/kernel/scripts/dtc/include-prefixes/arm64/hisilicon/hi3798cv200.dtsi (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun// SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun/*
3*4882a593Smuzhiyun * DTS File for HiSilicon Hi3798cv200 SoC.
4*4882a593Smuzhiyun *
5*4882a593Smuzhiyun * Copyright (c) 2016-2017 HiSilicon Technologies Co., Ltd.
6*4882a593Smuzhiyun */
7*4882a593Smuzhiyun
8*4882a593Smuzhiyun#include <dt-bindings/clock/histb-clock.h>
9*4882a593Smuzhiyun#include <dt-bindings/gpio/gpio.h>
10*4882a593Smuzhiyun#include <dt-bindings/interrupt-controller/arm-gic.h>
11*4882a593Smuzhiyun#include <dt-bindings/phy/phy.h>
12*4882a593Smuzhiyun#include <dt-bindings/reset/ti-syscon.h>
13*4882a593Smuzhiyun
14*4882a593Smuzhiyun/ {
15*4882a593Smuzhiyun	compatible = "hisilicon,hi3798cv200";
16*4882a593Smuzhiyun	interrupt-parent = <&gic>;
17*4882a593Smuzhiyun	#address-cells = <2>;
18*4882a593Smuzhiyun	#size-cells = <2>;
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun	psci {
21*4882a593Smuzhiyun		compatible = "arm,psci-0.2";
22*4882a593Smuzhiyun		method = "smc";
23*4882a593Smuzhiyun	};
24*4882a593Smuzhiyun
25*4882a593Smuzhiyun	cpus {
26*4882a593Smuzhiyun		#address-cells = <2>;
27*4882a593Smuzhiyun		#size-cells = <0>;
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun		cpu@0 {
30*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
31*4882a593Smuzhiyun			device_type = "cpu";
32*4882a593Smuzhiyun			reg = <0x0 0x0>;
33*4882a593Smuzhiyun			enable-method = "psci";
34*4882a593Smuzhiyun		};
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun		cpu@1 {
37*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
38*4882a593Smuzhiyun			device_type = "cpu";
39*4882a593Smuzhiyun			reg = <0x0 0x1>;
40*4882a593Smuzhiyun			enable-method = "psci";
41*4882a593Smuzhiyun		};
42*4882a593Smuzhiyun
43*4882a593Smuzhiyun		cpu@2 {
44*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
45*4882a593Smuzhiyun			device_type = "cpu";
46*4882a593Smuzhiyun			reg = <0x0 0x2>;
47*4882a593Smuzhiyun			enable-method = "psci";
48*4882a593Smuzhiyun		};
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun		cpu@3 {
51*4882a593Smuzhiyun			compatible = "arm,cortex-a53";
52*4882a593Smuzhiyun			device_type = "cpu";
53*4882a593Smuzhiyun			reg = <0x0 0x3>;
54*4882a593Smuzhiyun			enable-method = "psci";
55*4882a593Smuzhiyun		};
56*4882a593Smuzhiyun	};
57*4882a593Smuzhiyun
58*4882a593Smuzhiyun	gic: interrupt-controller@f1001000 {
59*4882a593Smuzhiyun		compatible = "arm,gic-400";
60*4882a593Smuzhiyun		reg = <0x0 0xf1001000 0x0 0x1000>,  /* GICD */
61*4882a593Smuzhiyun		      <0x0 0xf1002000 0x0 0x100>;   /* GICC */
62*4882a593Smuzhiyun		#address-cells = <0>;
63*4882a593Smuzhiyun		#interrupt-cells = <3>;
64*4882a593Smuzhiyun		interrupt-controller;
65*4882a593Smuzhiyun	};
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun	timer {
68*4882a593Smuzhiyun		compatible = "arm,armv8-timer";
69*4882a593Smuzhiyun		interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) |
70*4882a593Smuzhiyun			      IRQ_TYPE_LEVEL_LOW)>,
71*4882a593Smuzhiyun			     <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) |
72*4882a593Smuzhiyun			      IRQ_TYPE_LEVEL_LOW)>,
73*4882a593Smuzhiyun			     <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) |
74*4882a593Smuzhiyun			      IRQ_TYPE_LEVEL_LOW)>,
75*4882a593Smuzhiyun			     <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) |
76*4882a593Smuzhiyun			      IRQ_TYPE_LEVEL_LOW)>;
77*4882a593Smuzhiyun	};
78*4882a593Smuzhiyun
79*4882a593Smuzhiyun	soc: soc@f0000000 {
80*4882a593Smuzhiyun		compatible = "simple-bus";
81*4882a593Smuzhiyun		#address-cells = <1>;
82*4882a593Smuzhiyun		#size-cells = <1>;
83*4882a593Smuzhiyun		ranges = <0x0 0x0 0xf0000000 0x10000000>;
84*4882a593Smuzhiyun
85*4882a593Smuzhiyun		crg: clock-reset-controller@8a22000 {
86*4882a593Smuzhiyun			compatible = "hisilicon,hi3798cv200-crg", "syscon", "simple-mfd";
87*4882a593Smuzhiyun			reg = <0x8a22000 0x1000>;
88*4882a593Smuzhiyun			#clock-cells = <1>;
89*4882a593Smuzhiyun			#reset-cells = <2>;
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun			gmacphyrst: reset-controller {
92*4882a593Smuzhiyun				compatible = "ti,syscon-reset";
93*4882a593Smuzhiyun				#reset-cells = <1>;
94*4882a593Smuzhiyun				ti,reset-bits =
95*4882a593Smuzhiyun					<0xcc 12 0xcc 12 0 0 (ASSERT_CLEAR |
96*4882a593Smuzhiyun					 DEASSERT_SET|STATUS_NONE)>,
97*4882a593Smuzhiyun					<0xcc 13 0xcc 13 0 0 (ASSERT_CLEAR |
98*4882a593Smuzhiyun					 DEASSERT_SET|STATUS_NONE)>;
99*4882a593Smuzhiyun			};
100*4882a593Smuzhiyun		};
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun		sysctrl: system-controller@8000000 {
103*4882a593Smuzhiyun			compatible = "hisilicon,hi3798cv200-sysctrl", "syscon";
104*4882a593Smuzhiyun			reg = <0x8000000 0x1000>;
105*4882a593Smuzhiyun			#clock-cells = <1>;
106*4882a593Smuzhiyun			#reset-cells = <2>;
107*4882a593Smuzhiyun		};
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun		perictrl: peripheral-controller@8a20000 {
110*4882a593Smuzhiyun			compatible = "hisilicon,hi3798cv200-perictrl", "syscon",
111*4882a593Smuzhiyun				     "simple-mfd";
112*4882a593Smuzhiyun			reg = <0x8a20000 0x1000>;
113*4882a593Smuzhiyun			#address-cells = <1>;
114*4882a593Smuzhiyun			#size-cells = <1>;
115*4882a593Smuzhiyun			ranges = <0x0 0x8a20000 0x1000>;
116*4882a593Smuzhiyun
117*4882a593Smuzhiyun			usb2_phy1: usb2-phy@120 {
118*4882a593Smuzhiyun				compatible = "hisilicon,hi3798cv200-usb2-phy";
119*4882a593Smuzhiyun				reg = <0x120 0x4>;
120*4882a593Smuzhiyun				clocks = <&crg HISTB_USB2_PHY1_REF_CLK>;
121*4882a593Smuzhiyun				resets = <&crg 0xbc 4>;
122*4882a593Smuzhiyun				#address-cells = <1>;
123*4882a593Smuzhiyun				#size-cells = <0>;
124*4882a593Smuzhiyun
125*4882a593Smuzhiyun				usb2_phy1_port0: phy@0 {
126*4882a593Smuzhiyun					reg = <0>;
127*4882a593Smuzhiyun					#phy-cells = <0>;
128*4882a593Smuzhiyun					resets = <&crg 0xbc 8>;
129*4882a593Smuzhiyun				};
130*4882a593Smuzhiyun
131*4882a593Smuzhiyun				usb2_phy1_port1: phy@1 {
132*4882a593Smuzhiyun					reg = <1>;
133*4882a593Smuzhiyun					#phy-cells = <0>;
134*4882a593Smuzhiyun					resets = <&crg 0xbc 9>;
135*4882a593Smuzhiyun				};
136*4882a593Smuzhiyun			};
137*4882a593Smuzhiyun
138*4882a593Smuzhiyun			usb2_phy2: usb2-phy@124 {
139*4882a593Smuzhiyun				compatible = "hisilicon,hi3798cv200-usb2-phy";
140*4882a593Smuzhiyun				reg = <0x124 0x4>;
141*4882a593Smuzhiyun				clocks = <&crg HISTB_USB2_PHY2_REF_CLK>;
142*4882a593Smuzhiyun				resets = <&crg 0xbc 6>;
143*4882a593Smuzhiyun				#address-cells = <1>;
144*4882a593Smuzhiyun				#size-cells = <0>;
145*4882a593Smuzhiyun
146*4882a593Smuzhiyun				usb2_phy2_port0: phy@0 {
147*4882a593Smuzhiyun					reg = <0>;
148*4882a593Smuzhiyun					#phy-cells = <0>;
149*4882a593Smuzhiyun					resets = <&crg 0xbc 10>;
150*4882a593Smuzhiyun				};
151*4882a593Smuzhiyun			};
152*4882a593Smuzhiyun
153*4882a593Smuzhiyun			combphy0: phy@850 {
154*4882a593Smuzhiyun				compatible = "hisilicon,hi3798cv200-combphy";
155*4882a593Smuzhiyun				reg = <0x850 0x8>;
156*4882a593Smuzhiyun				#phy-cells = <1>;
157*4882a593Smuzhiyun				clocks = <&crg HISTB_COMBPHY0_CLK>;
158*4882a593Smuzhiyun				resets = <&crg 0x188 4>;
159*4882a593Smuzhiyun				assigned-clocks = <&crg HISTB_COMBPHY0_CLK>;
160*4882a593Smuzhiyun				assigned-clock-rates = <100000000>;
161*4882a593Smuzhiyun				hisilicon,fixed-mode = <PHY_TYPE_USB3>;
162*4882a593Smuzhiyun			};
163*4882a593Smuzhiyun
164*4882a593Smuzhiyun			combphy1: phy@858 {
165*4882a593Smuzhiyun				compatible = "hisilicon,hi3798cv200-combphy";
166*4882a593Smuzhiyun				reg = <0x858 0x8>;
167*4882a593Smuzhiyun				#phy-cells = <1>;
168*4882a593Smuzhiyun				clocks = <&crg HISTB_COMBPHY1_CLK>;
169*4882a593Smuzhiyun				resets = <&crg 0x188 12>;
170*4882a593Smuzhiyun				assigned-clocks = <&crg HISTB_COMBPHY1_CLK>;
171*4882a593Smuzhiyun				assigned-clock-rates = <100000000>;
172*4882a593Smuzhiyun				hisilicon,mode-select-bits = <0x0008 11 (0x3 << 11)>;
173*4882a593Smuzhiyun			};
174*4882a593Smuzhiyun		};
175*4882a593Smuzhiyun
176*4882a593Smuzhiyun		pmx0: pinconf@8a21000 {
177*4882a593Smuzhiyun			compatible = "pinconf-single";
178*4882a593Smuzhiyun			reg = <0x8a21000 0x180>;
179*4882a593Smuzhiyun			pinctrl-single,register-width = <32>;
180*4882a593Smuzhiyun			pinctrl-single,function-mask = <7>;
181*4882a593Smuzhiyun			pinctrl-single,gpio-range = <
182*4882a593Smuzhiyun				&range 0  8 2  /* GPIO 0 */
183*4882a593Smuzhiyun				&range 8  1 0  /* GPIO 1 */
184*4882a593Smuzhiyun				&range 9  4 2
185*4882a593Smuzhiyun				&range 13 1 0
186*4882a593Smuzhiyun				&range 14 1 1
187*4882a593Smuzhiyun				&range 15 1 0
188*4882a593Smuzhiyun				&range 16 5 0  /* GPIO 2 */
189*4882a593Smuzhiyun				&range 21 3 1
190*4882a593Smuzhiyun				&range 24 4 1  /* GPIO 3 */
191*4882a593Smuzhiyun				&range 28 2 2
192*4882a593Smuzhiyun				&range 86 1 1
193*4882a593Smuzhiyun				&range 87 1 0
194*4882a593Smuzhiyun				&range 30 4 2  /* GPIO 4 */
195*4882a593Smuzhiyun				&range 34 3 0
196*4882a593Smuzhiyun				&range 37 1 2
197*4882a593Smuzhiyun				&range 38 3 2  /* GPIO 6 */
198*4882a593Smuzhiyun				&range 41 5 0
199*4882a593Smuzhiyun				&range 46 8 1  /* GPIO 7 */
200*4882a593Smuzhiyun				&range 54 8 1  /* GPIO 8 */
201*4882a593Smuzhiyun				&range 64 7 1  /* GPIO 9 */
202*4882a593Smuzhiyun				&range 71 1 0
203*4882a593Smuzhiyun				&range 72 6 1  /* GPIO 10 */
204*4882a593Smuzhiyun				&range 78 1 0
205*4882a593Smuzhiyun				&range 79 1 1
206*4882a593Smuzhiyun				&range 80 6 1  /* GPIO 11 */
207*4882a593Smuzhiyun				&range 70 2 1
208*4882a593Smuzhiyun				&range 88 8 0  /* GPIO 12 */
209*4882a593Smuzhiyun			>;
210*4882a593Smuzhiyun
211*4882a593Smuzhiyun			range: gpio-range {
212*4882a593Smuzhiyun				#pinctrl-single,gpio-range-cells = <3>;
213*4882a593Smuzhiyun			};
214*4882a593Smuzhiyun		};
215*4882a593Smuzhiyun
216*4882a593Smuzhiyun		uart0: serial@8b00000 {
217*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
218*4882a593Smuzhiyun			reg = <0x8b00000 0x1000>;
219*4882a593Smuzhiyun			interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
220*4882a593Smuzhiyun			clocks = <&sysctrl HISTB_UART0_CLK>;
221*4882a593Smuzhiyun			clock-names = "apb_pclk";
222*4882a593Smuzhiyun			status = "disabled";
223*4882a593Smuzhiyun		};
224*4882a593Smuzhiyun
225*4882a593Smuzhiyun		uart2: serial@8b02000 {
226*4882a593Smuzhiyun			compatible = "arm,pl011", "arm,primecell";
227*4882a593Smuzhiyun			reg = <0x8b02000 0x1000>;
228*4882a593Smuzhiyun			interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
229*4882a593Smuzhiyun			clocks = <&crg HISTB_UART2_CLK>;
230*4882a593Smuzhiyun			clock-names = "apb_pclk";
231*4882a593Smuzhiyun			status = "disabled";
232*4882a593Smuzhiyun		};
233*4882a593Smuzhiyun
234*4882a593Smuzhiyun		i2c0: i2c@8b10000 {
235*4882a593Smuzhiyun			compatible = "hisilicon,hix5hd2-i2c";
236*4882a593Smuzhiyun			reg = <0x8b10000 0x1000>;
237*4882a593Smuzhiyun			#address-cells = <1>;
238*4882a593Smuzhiyun			#size-cells = <0>;
239*4882a593Smuzhiyun			interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
240*4882a593Smuzhiyun			clock-frequency = <400000>;
241*4882a593Smuzhiyun			clocks = <&crg HISTB_I2C0_CLK>;
242*4882a593Smuzhiyun			status = "disabled";
243*4882a593Smuzhiyun		};
244*4882a593Smuzhiyun
245*4882a593Smuzhiyun		i2c1: i2c@8b11000 {
246*4882a593Smuzhiyun			compatible = "hisilicon,hix5hd2-i2c";
247*4882a593Smuzhiyun			reg = <0x8b11000 0x1000>;
248*4882a593Smuzhiyun			#address-cells = <1>;
249*4882a593Smuzhiyun			#size-cells = <0>;
250*4882a593Smuzhiyun			interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_HIGH>;
251*4882a593Smuzhiyun			clock-frequency = <400000>;
252*4882a593Smuzhiyun			clocks = <&crg HISTB_I2C1_CLK>;
253*4882a593Smuzhiyun			status = "disabled";
254*4882a593Smuzhiyun		};
255*4882a593Smuzhiyun
256*4882a593Smuzhiyun		i2c2: i2c@8b12000 {
257*4882a593Smuzhiyun			compatible = "hisilicon,hix5hd2-i2c";
258*4882a593Smuzhiyun			reg = <0x8b12000 0x1000>;
259*4882a593Smuzhiyun			#address-cells = <1>;
260*4882a593Smuzhiyun			#size-cells = <0>;
261*4882a593Smuzhiyun			interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_HIGH>;
262*4882a593Smuzhiyun			clock-frequency = <400000>;
263*4882a593Smuzhiyun			clocks = <&crg HISTB_I2C2_CLK>;
264*4882a593Smuzhiyun			status = "disabled";
265*4882a593Smuzhiyun		};
266*4882a593Smuzhiyun
267*4882a593Smuzhiyun		i2c3: i2c@8b13000 {
268*4882a593Smuzhiyun			compatible = "hisilicon,hix5hd2-i2c";
269*4882a593Smuzhiyun			reg = <0x8b13000 0x1000>;
270*4882a593Smuzhiyun			#address-cells = <1>;
271*4882a593Smuzhiyun			#size-cells = <0>;
272*4882a593Smuzhiyun			interrupts = <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>;
273*4882a593Smuzhiyun			clock-frequency = <400000>;
274*4882a593Smuzhiyun			clocks = <&crg HISTB_I2C3_CLK>;
275*4882a593Smuzhiyun			status = "disabled";
276*4882a593Smuzhiyun		};
277*4882a593Smuzhiyun
278*4882a593Smuzhiyun		i2c4: i2c@8b14000 {
279*4882a593Smuzhiyun			compatible = "hisilicon,hix5hd2-i2c";
280*4882a593Smuzhiyun			reg = <0x8b14000 0x1000>;
281*4882a593Smuzhiyun			#address-cells = <1>;
282*4882a593Smuzhiyun			#size-cells = <0>;
283*4882a593Smuzhiyun			interrupts = <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>;
284*4882a593Smuzhiyun			clock-frequency = <400000>;
285*4882a593Smuzhiyun			clocks = <&crg HISTB_I2C4_CLK>;
286*4882a593Smuzhiyun			status = "disabled";
287*4882a593Smuzhiyun		};
288*4882a593Smuzhiyun
289*4882a593Smuzhiyun		spi0: spi@8b1a000 {
290*4882a593Smuzhiyun			compatible = "arm,pl022", "arm,primecell";
291*4882a593Smuzhiyun			reg = <0x8b1a000 0x1000>;
292*4882a593Smuzhiyun			interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
293*4882a593Smuzhiyun			num-cs = <1>;
294*4882a593Smuzhiyun			cs-gpios = <&gpio7 1 0>;
295*4882a593Smuzhiyun			clocks = <&crg HISTB_SPI0_CLK>;
296*4882a593Smuzhiyun			clock-names = "apb_pclk";
297*4882a593Smuzhiyun			#address-cells = <1>;
298*4882a593Smuzhiyun			#size-cells = <0>;
299*4882a593Smuzhiyun			status = "disabled";
300*4882a593Smuzhiyun		};
301*4882a593Smuzhiyun
302*4882a593Smuzhiyun		sd0: mmc@9820000 {
303*4882a593Smuzhiyun			compatible = "snps,dw-mshc";
304*4882a593Smuzhiyun			reg = <0x9820000 0x10000>;
305*4882a593Smuzhiyun			interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
306*4882a593Smuzhiyun			clocks = <&crg HISTB_SDIO0_CIU_CLK>,
307*4882a593Smuzhiyun				 <&crg HISTB_SDIO0_BIU_CLK>;
308*4882a593Smuzhiyun			clock-names = "ciu", "biu";
309*4882a593Smuzhiyun			resets = <&crg 0x9c 4>;
310*4882a593Smuzhiyun			reset-names = "reset";
311*4882a593Smuzhiyun			status = "disabled";
312*4882a593Smuzhiyun		};
313*4882a593Smuzhiyun
314*4882a593Smuzhiyun		emmc: mmc@9830000 {
315*4882a593Smuzhiyun			compatible = "hisilicon,hi3798cv200-dw-mshc";
316*4882a593Smuzhiyun			reg = <0x9830000 0x10000>;
317*4882a593Smuzhiyun			interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
318*4882a593Smuzhiyun			clocks = <&crg HISTB_MMC_CIU_CLK>,
319*4882a593Smuzhiyun				 <&crg HISTB_MMC_BIU_CLK>,
320*4882a593Smuzhiyun				 <&crg HISTB_MMC_SAMPLE_CLK>,
321*4882a593Smuzhiyun				 <&crg HISTB_MMC_DRV_CLK>;
322*4882a593Smuzhiyun			clock-names = "ciu", "biu", "ciu-sample", "ciu-drive";
323*4882a593Smuzhiyun			resets = <&crg 0xa0 4>;
324*4882a593Smuzhiyun			reset-names = "reset";
325*4882a593Smuzhiyun			status = "disabled";
326*4882a593Smuzhiyun		};
327*4882a593Smuzhiyun
328*4882a593Smuzhiyun		gpio0: gpio@8b20000 {
329*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
330*4882a593Smuzhiyun			reg = <0x8b20000 0x1000>;
331*4882a593Smuzhiyun			interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
332*4882a593Smuzhiyun			gpio-controller;
333*4882a593Smuzhiyun			#gpio-cells = <2>;
334*4882a593Smuzhiyun			interrupt-controller;
335*4882a593Smuzhiyun			#interrupt-cells = <2>;
336*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 0 8>;
337*4882a593Smuzhiyun			clocks = <&crg HISTB_APB_CLK>;
338*4882a593Smuzhiyun			clock-names = "apb_pclk";
339*4882a593Smuzhiyun			status = "disabled";
340*4882a593Smuzhiyun		};
341*4882a593Smuzhiyun
342*4882a593Smuzhiyun		gpio1: gpio@8b21000 {
343*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
344*4882a593Smuzhiyun			reg = <0x8b21000 0x1000>;
345*4882a593Smuzhiyun			interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
346*4882a593Smuzhiyun			gpio-controller;
347*4882a593Smuzhiyun			#gpio-cells = <2>;
348*4882a593Smuzhiyun			interrupt-controller;
349*4882a593Smuzhiyun			#interrupt-cells = <2>;
350*4882a593Smuzhiyun			gpio-ranges = <
351*4882a593Smuzhiyun				&pmx0 0 8 1
352*4882a593Smuzhiyun				&pmx0 1 9 4
353*4882a593Smuzhiyun				&pmx0 5 13 1
354*4882a593Smuzhiyun				&pmx0 6 14 1
355*4882a593Smuzhiyun				&pmx0 7 15 1
356*4882a593Smuzhiyun			>;
357*4882a593Smuzhiyun			clocks = <&crg HISTB_APB_CLK>;
358*4882a593Smuzhiyun			clock-names = "apb_pclk";
359*4882a593Smuzhiyun			status = "disabled";
360*4882a593Smuzhiyun		};
361*4882a593Smuzhiyun
362*4882a593Smuzhiyun		gpio2: gpio@8b22000 {
363*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
364*4882a593Smuzhiyun			reg = <0x8b22000 0x1000>;
365*4882a593Smuzhiyun			interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
366*4882a593Smuzhiyun			gpio-controller;
367*4882a593Smuzhiyun			#gpio-cells = <2>;
368*4882a593Smuzhiyun			interrupt-controller;
369*4882a593Smuzhiyun			#interrupt-cells = <2>;
370*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 16 5 &pmx0 5 21 3>;
371*4882a593Smuzhiyun			clocks = <&crg HISTB_APB_CLK>;
372*4882a593Smuzhiyun			clock-names = "apb_pclk";
373*4882a593Smuzhiyun			status = "disabled";
374*4882a593Smuzhiyun		};
375*4882a593Smuzhiyun
376*4882a593Smuzhiyun		gpio3: gpio@8b23000 {
377*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
378*4882a593Smuzhiyun			reg = <0x8b23000 0x1000>;
379*4882a593Smuzhiyun			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
380*4882a593Smuzhiyun			gpio-controller;
381*4882a593Smuzhiyun			#gpio-cells = <2>;
382*4882a593Smuzhiyun			interrupt-controller;
383*4882a593Smuzhiyun			#interrupt-cells = <2>;
384*4882a593Smuzhiyun			gpio-ranges = <
385*4882a593Smuzhiyun				&pmx0 0 24 4
386*4882a593Smuzhiyun				&pmx0 4 28 2
387*4882a593Smuzhiyun				&pmx0 6 86 1
388*4882a593Smuzhiyun				&pmx0 7 87 1
389*4882a593Smuzhiyun			>;
390*4882a593Smuzhiyun			clocks = <&crg HISTB_APB_CLK>;
391*4882a593Smuzhiyun			clock-names = "apb_pclk";
392*4882a593Smuzhiyun			status = "disabled";
393*4882a593Smuzhiyun		};
394*4882a593Smuzhiyun
395*4882a593Smuzhiyun		gpio4: gpio@8b24000 {
396*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
397*4882a593Smuzhiyun			reg = <0x8b24000 0x1000>;
398*4882a593Smuzhiyun			interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
399*4882a593Smuzhiyun			gpio-controller;
400*4882a593Smuzhiyun			#gpio-cells = <2>;
401*4882a593Smuzhiyun			interrupt-controller;
402*4882a593Smuzhiyun			#interrupt-cells = <2>;
403*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 30 4 &pmx0 4 34 3 &pmx0 7 37 1>;
404*4882a593Smuzhiyun			clocks = <&crg HISTB_APB_CLK>;
405*4882a593Smuzhiyun			clock-names = "apb_pclk";
406*4882a593Smuzhiyun			status = "disabled";
407*4882a593Smuzhiyun		};
408*4882a593Smuzhiyun
409*4882a593Smuzhiyun		gpio5: gpio@8004000 {
410*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
411*4882a593Smuzhiyun			reg = <0x8004000 0x1000>;
412*4882a593Smuzhiyun			interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
413*4882a593Smuzhiyun			gpio-controller;
414*4882a593Smuzhiyun			#gpio-cells = <2>;
415*4882a593Smuzhiyun			interrupt-controller;
416*4882a593Smuzhiyun			#interrupt-cells = <2>;
417*4882a593Smuzhiyun			clocks = <&crg HISTB_APB_CLK>;
418*4882a593Smuzhiyun			clock-names = "apb_pclk";
419*4882a593Smuzhiyun			status = "disabled";
420*4882a593Smuzhiyun		};
421*4882a593Smuzhiyun
422*4882a593Smuzhiyun		gpio6: gpio@8b26000 {
423*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
424*4882a593Smuzhiyun			reg = <0x8b26000 0x1000>;
425*4882a593Smuzhiyun			interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
426*4882a593Smuzhiyun			gpio-controller;
427*4882a593Smuzhiyun			#gpio-cells = <2>;
428*4882a593Smuzhiyun			interrupt-controller;
429*4882a593Smuzhiyun			#interrupt-cells = <2>;
430*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 38 3 &pmx0 0 41 5>;
431*4882a593Smuzhiyun			clocks = <&crg HISTB_APB_CLK>;
432*4882a593Smuzhiyun			clock-names = "apb_pclk";
433*4882a593Smuzhiyun			status = "disabled";
434*4882a593Smuzhiyun		};
435*4882a593Smuzhiyun
436*4882a593Smuzhiyun		gpio7: gpio@8b27000 {
437*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
438*4882a593Smuzhiyun			reg = <0x8b27000 0x1000>;
439*4882a593Smuzhiyun			interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
440*4882a593Smuzhiyun			gpio-controller;
441*4882a593Smuzhiyun			#gpio-cells = <2>;
442*4882a593Smuzhiyun			interrupt-controller;
443*4882a593Smuzhiyun			#interrupt-cells = <2>;
444*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 46 8>;
445*4882a593Smuzhiyun			clocks = <&crg HISTB_APB_CLK>;
446*4882a593Smuzhiyun			clock-names = "apb_pclk";
447*4882a593Smuzhiyun			status = "disabled";
448*4882a593Smuzhiyun		};
449*4882a593Smuzhiyun
450*4882a593Smuzhiyun		gpio8: gpio@8b28000 {
451*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
452*4882a593Smuzhiyun			reg = <0x8b28000 0x1000>;
453*4882a593Smuzhiyun			interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
454*4882a593Smuzhiyun			gpio-controller;
455*4882a593Smuzhiyun			#gpio-cells = <2>;
456*4882a593Smuzhiyun			interrupt-controller;
457*4882a593Smuzhiyun			#interrupt-cells = <2>;
458*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 54 8>;
459*4882a593Smuzhiyun			clocks = <&crg HISTB_APB_CLK>;
460*4882a593Smuzhiyun			clock-names = "apb_pclk";
461*4882a593Smuzhiyun			status = "disabled";
462*4882a593Smuzhiyun		};
463*4882a593Smuzhiyun
464*4882a593Smuzhiyun		gpio9: gpio@8b29000 {
465*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
466*4882a593Smuzhiyun			reg = <0x8b29000 0x1000>;
467*4882a593Smuzhiyun			interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
468*4882a593Smuzhiyun			gpio-controller;
469*4882a593Smuzhiyun			#gpio-cells = <2>;
470*4882a593Smuzhiyun			interrupt-controller;
471*4882a593Smuzhiyun			#interrupt-cells = <2>;
472*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 64 7 &pmx0 71 1>;
473*4882a593Smuzhiyun			clocks = <&crg HISTB_APB_CLK>;
474*4882a593Smuzhiyun			clock-names = "apb_pclk";
475*4882a593Smuzhiyun			status = "disabled";
476*4882a593Smuzhiyun		};
477*4882a593Smuzhiyun
478*4882a593Smuzhiyun		gpio10: gpio@8b2a000 {
479*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
480*4882a593Smuzhiyun			reg = <0x8b2a000 0x1000>;
481*4882a593Smuzhiyun			interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
482*4882a593Smuzhiyun			gpio-controller;
483*4882a593Smuzhiyun			#gpio-cells = <2>;
484*4882a593Smuzhiyun			interrupt-controller;
485*4882a593Smuzhiyun			#interrupt-cells = <2>;
486*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 72 6 &pmx0 6 78 1 &pmx0 7 79 1>;
487*4882a593Smuzhiyun			clocks = <&crg HISTB_APB_CLK>;
488*4882a593Smuzhiyun			clock-names = "apb_pclk";
489*4882a593Smuzhiyun			status = "disabled";
490*4882a593Smuzhiyun		};
491*4882a593Smuzhiyun
492*4882a593Smuzhiyun		gpio11: gpio@8b2b000 {
493*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
494*4882a593Smuzhiyun			reg = <0x8b2b000 0x1000>;
495*4882a593Smuzhiyun			interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
496*4882a593Smuzhiyun			gpio-controller;
497*4882a593Smuzhiyun			#gpio-cells = <2>;
498*4882a593Smuzhiyun			interrupt-controller;
499*4882a593Smuzhiyun			#interrupt-cells = <2>;
500*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 80 6 &pmx0 6 70 2>;
501*4882a593Smuzhiyun			clocks = <&crg HISTB_APB_CLK>;
502*4882a593Smuzhiyun			clock-names = "apb_pclk";
503*4882a593Smuzhiyun			status = "disabled";
504*4882a593Smuzhiyun		};
505*4882a593Smuzhiyun
506*4882a593Smuzhiyun		gpio12: gpio@8b2c000 {
507*4882a593Smuzhiyun			compatible = "arm,pl061", "arm,primecell";
508*4882a593Smuzhiyun			reg = <0x8b2c000 0x1000>;
509*4882a593Smuzhiyun			interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
510*4882a593Smuzhiyun			gpio-controller;
511*4882a593Smuzhiyun			#gpio-cells = <2>;
512*4882a593Smuzhiyun			interrupt-controller;
513*4882a593Smuzhiyun			#interrupt-cells = <2>;
514*4882a593Smuzhiyun			gpio-ranges = <&pmx0 0 88 8>;
515*4882a593Smuzhiyun			clocks = <&crg HISTB_APB_CLK>;
516*4882a593Smuzhiyun			clock-names = "apb_pclk";
517*4882a593Smuzhiyun			status = "disabled";
518*4882a593Smuzhiyun		};
519*4882a593Smuzhiyun
520*4882a593Smuzhiyun		gmac0: ethernet@9840000 {
521*4882a593Smuzhiyun			compatible = "hisilicon,hi3798cv200-gmac", "hisilicon,hisi-gmac-v2";
522*4882a593Smuzhiyun			reg = <0x9840000 0x1000>,
523*4882a593Smuzhiyun			      <0x984300c 0x4>;
524*4882a593Smuzhiyun			interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
525*4882a593Smuzhiyun			clocks = <&crg HISTB_ETH0_MAC_CLK>,
526*4882a593Smuzhiyun				 <&crg HISTB_ETH0_MACIF_CLK>;
527*4882a593Smuzhiyun			clock-names = "mac_core", "mac_ifc";
528*4882a593Smuzhiyun			resets = <&crg 0xcc 8>,
529*4882a593Smuzhiyun				 <&crg 0xcc 10>,
530*4882a593Smuzhiyun				 <&gmacphyrst 0>;
531*4882a593Smuzhiyun			reset-names = "mac_core", "mac_ifc", "phy";
532*4882a593Smuzhiyun			status = "disabled";
533*4882a593Smuzhiyun		};
534*4882a593Smuzhiyun
535*4882a593Smuzhiyun		gmac1: ethernet@9841000 {
536*4882a593Smuzhiyun			compatible = "hisilicon,hi3798cv200-gmac", "hisilicon,hisi-gmac-v2";
537*4882a593Smuzhiyun			reg = <0x9841000 0x1000>,
538*4882a593Smuzhiyun			      <0x9843010 0x4>;
539*4882a593Smuzhiyun			interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
540*4882a593Smuzhiyun			clocks = <&crg HISTB_ETH1_MAC_CLK>,
541*4882a593Smuzhiyun				 <&crg HISTB_ETH1_MACIF_CLK>;
542*4882a593Smuzhiyun			clock-names = "mac_core", "mac_ifc";
543*4882a593Smuzhiyun			resets = <&crg 0xcc 9>,
544*4882a593Smuzhiyun				 <&crg 0xcc 11>,
545*4882a593Smuzhiyun				 <&gmacphyrst 1>;
546*4882a593Smuzhiyun			reset-names = "mac_core", "mac_ifc", "phy";
547*4882a593Smuzhiyun			status = "disabled";
548*4882a593Smuzhiyun		};
549*4882a593Smuzhiyun
550*4882a593Smuzhiyun		ir: ir@8001000 {
551*4882a593Smuzhiyun			compatible = "hisilicon,hix5hd2-ir";
552*4882a593Smuzhiyun			reg = <0x8001000 0x1000>;
553*4882a593Smuzhiyun			interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>;
554*4882a593Smuzhiyun			clocks = <&sysctrl HISTB_IR_CLK>;
555*4882a593Smuzhiyun			status = "disabled";
556*4882a593Smuzhiyun		};
557*4882a593Smuzhiyun
558*4882a593Smuzhiyun		pcie: pcie@9860000 {
559*4882a593Smuzhiyun			compatible = "hisilicon,hi3798cv200-pcie";
560*4882a593Smuzhiyun			reg = <0x9860000 0x1000>,
561*4882a593Smuzhiyun			      <0x0 0x2000>,
562*4882a593Smuzhiyun			      <0x2000000 0x01000000>;
563*4882a593Smuzhiyun			reg-names = "control", "rc-dbi", "config";
564*4882a593Smuzhiyun			#address-cells = <3>;
565*4882a593Smuzhiyun			#size-cells = <2>;
566*4882a593Smuzhiyun			device_type = "pci";
567*4882a593Smuzhiyun			bus-range = <0x00 0xff>;
568*4882a593Smuzhiyun			num-lanes = <1>;
569*4882a593Smuzhiyun			ranges = <0x81000000 0x0 0x00000000 0x4f00000 0x0 0x100000
570*4882a593Smuzhiyun				  0x82000000 0x0 0x3000000 0x3000000 0x0 0x01f00000>;
571*4882a593Smuzhiyun			interrupts = <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>;
572*4882a593Smuzhiyun			interrupt-names = "msi";
573*4882a593Smuzhiyun			#interrupt-cells = <1>;
574*4882a593Smuzhiyun			interrupt-map-mask = <0 0 0 0>;
575*4882a593Smuzhiyun			interrupt-map = <0 0 0 0 &gic 0 131 IRQ_TYPE_LEVEL_HIGH>;
576*4882a593Smuzhiyun			clocks = <&crg HISTB_PCIE_AUX_CLK>,
577*4882a593Smuzhiyun				 <&crg HISTB_PCIE_PIPE_CLK>,
578*4882a593Smuzhiyun				 <&crg HISTB_PCIE_SYS_CLK>,
579*4882a593Smuzhiyun				 <&crg HISTB_PCIE_BUS_CLK>;
580*4882a593Smuzhiyun			clock-names = "aux", "pipe", "sys", "bus";
581*4882a593Smuzhiyun			resets = <&crg 0x18c 6>, <&crg 0x18c 5>, <&crg 0x18c 4>;
582*4882a593Smuzhiyun			reset-names = "soft", "sys", "bus";
583*4882a593Smuzhiyun			phys = <&combphy1 PHY_TYPE_PCIE>;
584*4882a593Smuzhiyun			phy-names = "phy";
585*4882a593Smuzhiyun			status = "disabled";
586*4882a593Smuzhiyun		};
587*4882a593Smuzhiyun
588*4882a593Smuzhiyun		ohci: ohci@9880000 {
589*4882a593Smuzhiyun			compatible = "generic-ohci";
590*4882a593Smuzhiyun			reg = <0x9880000 0x10000>;
591*4882a593Smuzhiyun			interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
592*4882a593Smuzhiyun			clocks = <&crg HISTB_USB2_BUS_CLK>,
593*4882a593Smuzhiyun				 <&crg HISTB_USB2_12M_CLK>,
594*4882a593Smuzhiyun				 <&crg HISTB_USB2_48M_CLK>;
595*4882a593Smuzhiyun			clock-names = "bus", "clk12", "clk48";
596*4882a593Smuzhiyun			resets = <&crg 0xb8 12>;
597*4882a593Smuzhiyun			reset-names = "bus";
598*4882a593Smuzhiyun			phys = <&usb2_phy1_port0>;
599*4882a593Smuzhiyun			phy-names = "usb";
600*4882a593Smuzhiyun			status = "disabled";
601*4882a593Smuzhiyun		};
602*4882a593Smuzhiyun
603*4882a593Smuzhiyun		ehci: ehci@9890000 {
604*4882a593Smuzhiyun			compatible = "generic-ehci";
605*4882a593Smuzhiyun			reg = <0x9890000 0x10000>;
606*4882a593Smuzhiyun			interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
607*4882a593Smuzhiyun			clocks = <&crg HISTB_USB2_BUS_CLK>,
608*4882a593Smuzhiyun				 <&crg HISTB_USB2_PHY_CLK>,
609*4882a593Smuzhiyun				 <&crg HISTB_USB2_UTMI_CLK>;
610*4882a593Smuzhiyun			clock-names = "bus", "phy", "utmi";
611*4882a593Smuzhiyun			resets = <&crg 0xb8 12>,
612*4882a593Smuzhiyun				 <&crg 0xb8 16>,
613*4882a593Smuzhiyun				 <&crg 0xb8 13>;
614*4882a593Smuzhiyun			reset-names = "bus", "phy", "utmi";
615*4882a593Smuzhiyun			phys = <&usb2_phy1_port0>;
616*4882a593Smuzhiyun			phy-names = "usb";
617*4882a593Smuzhiyun			status = "disabled";
618*4882a593Smuzhiyun		};
619*4882a593Smuzhiyun	};
620*4882a593Smuzhiyun};
621