blob: fedf87ac67999f3ecd14bf7c4a2edbc298f35437 [file] [log] [blame]
Yang Xiwen33f19032023-04-01 19:17:36 +08001// SPDX-License-Identifier: GPL-2.0
2/*
3 * DTS File for HiSilicon Hi3798mv200 SoC.
4 *
5 * Released under the GPLv2 only.
6 */
7
8#include <dt-bindings/clock/histb-clock.h>
9#include <dt-bindings/interrupt-controller/arm-gic.h>
10#include <dt-bindings/phy/phy.h>
11#include <dt-bindings/reset/ti-syscon.h>
12
13/ {
14 compatible = "hisilicon,hi3798mv200";
15 interrupt-parent = <&gic>;
16 #address-cells = <2>;
17 #size-cells = <2>;
18
19 psci {
20 compatible = "arm,psci-0.2";
21 method = "smc";
22 };
23
24 cpus {
25 #address-cells = <2>;
26 #size-cells = <0>;
27
28 cpu@0 {
29 compatible = "arm,cortex-a53";
30 device_type = "cpu";
31 reg = <0x0 0x0>;
32 enable-method = "psci";
33 };
34
35 cpu@1 {
36 compatible = "arm,cortex-a53";
37 device_type = "cpu";
38 reg = <0x0 0x1>;
39 enable-method = "psci";
40 };
41
42 cpu@2 {
43 compatible = "arm,cortex-a53";
44 device_type = "cpu";
45 reg = <0x0 0x2>;
46 enable-method = "psci";
47 };
48
49 cpu@3 {
50 compatible = "arm,cortex-a53";
51 device_type = "cpu";
52 reg = <0x0 0x3>;
53 enable-method = "psci";
54 };
55 };
56
57 gic: interrupt-controller@f1001000 {
58 compatible = "arm,gic-400";
59 reg = <0x0 0xf1001000 0x0 0x1000>, /* GICD */
60 <0x0 0xf1002000 0x0 0x100>; /* GICC */
61 #address-cells = <0>;
62 #interrupt-cells = <3>;
63 interrupt-controller;
64 };
65
66 timer {
67 compatible = "arm,armv8-timer";
68 interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) |
69 IRQ_TYPE_LEVEL_LOW)>,
70 <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) |
71 IRQ_TYPE_LEVEL_LOW)>,
72 <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) |
73 IRQ_TYPE_LEVEL_LOW)>,
74 <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) |
75 IRQ_TYPE_LEVEL_LOW)>;
76 };
77
78 /* Initialization is done in boot loader */
79 usb2_phy1: hsusb1_phy {
80 compatible = "usb-nop-xceiv";
81 clocks = <&crg HISTB_USB2_PHY1_REF_CLK>;
82 clock-names = "main";
83 #phy-cells = <0>;
84 };
85
86 soc: soc@f0000000 {
87 compatible = "simple-bus";
88 #address-cells = <1>;
89 #size-cells = <1>;
90 ranges = <0x0 0x0 0xf0000000 0x10000000>;
91
92 crg: clock-reset-controller@8a22000 {
93 compatible = "hisilicon,hi3798mv200-crg", "syscon", "simple-mfd";
94 reg = <0x8a22000 0x1000>;
95 #clock-cells = <1>;
96 #reset-cells = <2>;
97 };
98
99 sysctrl: system-controller@8000000 {
100 compatible = "hisilicon,hi3798mv200-sysctrl", "syscon";
101 reg = <0x8000000 0x1000>;
102 #clock-cells = <1>;
103 #reset-cells = <2>;
104 };
105
106 perictrl: peripheral-controller@8a20000 {
107 compatible = "hisilicon,hi3798mv200-perictrl", "syscon",
108 "simple-mfd";
109 reg = <0x8a20000 0x1000>;
110 #address-cells = <1>;
111 #size-cells = <1>;
112 ranges = <0x0 0x8a20000 0x1000>;
113
114 combphy0: phy@850 {
115 compatible = "hisilicon,hi3798mv200-combphy";
116 reg = <0x850 0x8>;
117 #phy-cells = <1>;
118 clocks = <&crg HISTB_COMBPHY0_CLK>;
119 resets = <&crg 0x188 4>;
120 assigned-clocks = <&crg HISTB_COMBPHY0_CLK>;
121 assigned-clock-rates = <100000000>;
122 hisilicon,fixed-mode = <PHY_TYPE_USB3>;
123 };
124 };
125
126 pmx0: pinconf@8a21000 {
127 compatible = "pinconf-single";
128 reg = <0x8a21000 0x180>;
129 pinctrl-single,register-width = <32>;
130 pinctrl-single,function-mask = <7>;
131 };
132
133 uart0: serial@8b00000 {
134 compatible = "arm,pl011", "arm,primecell";
135 reg = <0x8b00000 0x1000>;
136 interrupts = <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
137 clocks = <&sysctrl HISTB_UART0_CLK>;
138 clock-names = "apb_pclk";
139 status = "disabled";
140 };
141
142 sd0: mmc@9820000 {
143 compatible = "snps,dw-mshc";
144 reg = <0x9820000 0x10000>;
145 interrupts = <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>;
146 clocks = <&crg HISTB_SDIO0_CIU_CLK>,
147 <&crg HISTB_SDIO0_BIU_CLK>;
148 clock-names = "ciu", "biu";
149 resets = <&crg 0x9c 4>;
150 reset-names = "reset";
151 status = "disabled";
152 };
153
154 emmc: mmc@9830000 {
155 compatible = "hisilicon,hi3798mv200-dw-mshc";
156 reg = <0x9830000 0x10000>;
157 interrupts = <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>;
158 clocks = <&crg HISTB_MMC_CIU_CLK>,
159 <&crg HISTB_MMC_BIU_CLK>,
160 <&crg HISTB_MMC_SAMPLE_CLK>,
161 <&crg HISTB_MMC_DRV_CLK>;
162 clock-names = "ciu", "biu", "ciu-sample", "ciu-drive";
163 resets = <&crg 0xa0 4>;
164 reset-names = "reset";
165 status = "disabled";
166 };
167
168 gmac: ethernet@9840000 {
169 compatible = "hisilicon,hi3798mv200-gmac", "hisilicon,hisi-gmac-v2";
170 reg = <0x9840000 0x1000>,
171 <0x984300c 0x4>;
172 interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
173 clocks = <&crg HISTB_ETH0_MAC_CLK>,
174 <&crg HISTB_ETH0_MACIF_CLK>;
175 clock-names = "mac_core", "mac_ifc";
176 resets = <&crg 0xcc 0>,
177 <&crg 0xcc 2>,
178 <&crg 0xcc 5>;
179 reset-names = "mac_core", "mac_ifc", "phy";
180 status = "disabled";
181 };
182
183 ohci: ohci@9880000 {
184 compatible = "generic-ohci";
185 reg = <0x9880000 0x10000>;
186 interrupts = <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>;
187 clocks = <&crg HISTB_USB2_BUS_CLK>,
188 <&crg HISTB_USB2_12M_CLK>,
189 <&crg HISTB_USB2_48M_CLK>;
190 clock-names = "bus", "clk12", "clk48";
191 resets = <&crg 0xb8 12>;
192 reset-names = "bus";
193 status = "disabled";
194 };
195
196 ehci: ehci@9890000 {
197 compatible = "generic-ehci";
198 reg = <0x9890000 0x10000>;
199 interrupts = <GIC_SPI 66 IRQ_TYPE_LEVEL_HIGH>;
200 clocks = <&crg HISTB_USB2_BUS_CLK>,
201 <&crg HISTB_USB2_PHY_CLK>,
202 <&crg HISTB_USB2_UTMI_CLK>;
203 clock-names = "bus", "phy", "utmi";
204 resets = <&crg 0xb8 12>,
205 <&crg 0xb8 16>,
206 <&crg 0xb8 13>;
207 reset-names = "bus", "phy", "utmi";
208 phys = <&usb2_phy1>;
209 phy-names = "usb";
210 status = "disabled";
211 };
212
213 sd1: mmc@9c40000 {
214 compatible = "snps,dw-mshc";
215 reg = <0x9c40000 0x10000>;
216 interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
217 clocks = <&crg HISTB_SDIO1_CIU_CLK>,
218 <&crg HISTB_SDIO1_BIU_CLK>;
219 clock-names = "ciu", "biu";
220 resets = <&crg 0x28c 4>;
221 reset-names = "reset";
222 status = "disabled";
223 };
224 };
225};