]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/blob - sys/gnu/dts/arm64/arm/rtsm_ve-motherboard.dtsi
Import DTS files for arm, arm64, riscv from Linux 5.8
[FreeBSD/FreeBSD.git] / sys / gnu / dts / arm64 / arm / rtsm_ve-motherboard.dtsi
1 // SPDX-License-Identifier: GPL-2.0
2 /*
3  * ARM Ltd. Fast Models
4  *
5  * Versatile Express (VE) system model
6  * Motherboard component
7  *
8  * VEMotherBoard.lisa
9  */
10 / {
11         v2m_clk24mhz: clk24mhz {
12                 compatible = "fixed-clock";
13                 #clock-cells = <0>;
14                 clock-frequency = <24000000>;
15                 clock-output-names = "v2m:clk24mhz";
16         };
17
18         v2m_refclk1mhz: refclk1mhz {
19                 compatible = "fixed-clock";
20                 #clock-cells = <0>;
21                 clock-frequency = <1000000>;
22                 clock-output-names = "v2m:refclk1mhz";
23         };
24
25         v2m_refclk32khz: refclk32khz {
26                 compatible = "fixed-clock";
27                 #clock-cells = <0>;
28                 clock-frequency = <32768>;
29                 clock-output-names = "v2m:refclk32khz";
30         };
31
32         v2m_fixed_3v3: v2m-3v3 {
33                 compatible = "regulator-fixed";
34                 regulator-name = "3V3";
35                 regulator-min-microvolt = <3300000>;
36                 regulator-max-microvolt = <3300000>;
37                 regulator-always-on;
38         };
39
40         mcc {
41                 compatible = "arm,vexpress,config-bus";
42                 arm,vexpress,config-bridge = <&v2m_sysreg>;
43
44                 v2m_oscclk1: oscclk1 {
45                         /* CLCD clock */
46                         compatible = "arm,vexpress-osc";
47                         arm,vexpress-sysreg,func = <1 1>;
48                         freq-range = <23750000 63500000>;
49                         #clock-cells = <0>;
50                         clock-output-names = "v2m:oscclk1";
51                 };
52
53                 reset {
54                         compatible = "arm,vexpress-reset";
55                         arm,vexpress-sysreg,func = <5 0>;
56                 };
57
58                 muxfpga {
59                         compatible = "arm,vexpress-muxfpga";
60                         arm,vexpress-sysreg,func = <7 0>;
61                 };
62
63                 shutdown {
64                         compatible = "arm,vexpress-shutdown";
65                         arm,vexpress-sysreg,func = <8 0>;
66                 };
67
68                 reboot {
69                         compatible = "arm,vexpress-reboot";
70                         arm,vexpress-sysreg,func = <9 0>;
71                 };
72
73                 dvimode {
74                         compatible = "arm,vexpress-dvimode";
75                         arm,vexpress-sysreg,func = <11 0>;
76                 };
77         };
78
79         bus@8000000 {
80                 motherboard-bus {
81                         arm,v2m-memory-map = "rs1";
82                         compatible = "arm,vexpress,v2m-p1", "simple-bus";
83                         #address-cells = <2>; /* SMB chipselect number and offset */
84                         #size-cells = <1>;
85                         #interrupt-cells = <1>;
86                         ranges;
87
88                         flash@0 {
89                                 compatible = "arm,vexpress-flash", "cfi-flash";
90                                 reg = <0 0x00000000 0x04000000>,
91                                       <4 0x00000000 0x04000000>;
92                                 bank-width = <4>;
93                         };
94
95                         ethernet@202000000 {
96                                 compatible = "smsc,lan91c111";
97                                 reg = <2 0x02000000 0x10000>;
98                                 interrupts = <15>;
99                         };
100
101                         iofpga-bus@300000000 {
102                                 compatible = "simple-bus";
103                                 #address-cells = <1>;
104                                 #size-cells = <1>;
105                                 ranges = <0 3 0 0x200000>;
106
107                                 v2m_sysreg: sysreg@10000 {
108                                         compatible = "arm,vexpress-sysreg";
109                                         reg = <0x010000 0x1000>;
110                                         gpio-controller;
111                                         #gpio-cells = <2>;
112                                 };
113
114                                 v2m_sysctl: sysctl@20000 {
115                                         compatible = "arm,sp810", "arm,primecell";
116                                         reg = <0x020000 0x1000>;
117                                         clocks = <&v2m_refclk32khz>, <&v2m_refclk1mhz>, <&v2m_clk24mhz>;
118                                         clock-names = "refclk", "timclk", "apb_pclk";
119                                         #clock-cells = <1>;
120                                         clock-output-names = "timerclken0", "timerclken1", "timerclken2", "timerclken3";
121                                         assigned-clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_sysctl 3>, <&v2m_sysctl 3>;
122                                         assigned-clock-parents = <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>, <&v2m_refclk1mhz>;
123                                 };
124
125                                 aaci@40000 {
126                                         compatible = "arm,pl041", "arm,primecell";
127                                         reg = <0x040000 0x1000>;
128                                         interrupts = <11>;
129                                         clocks = <&v2m_clk24mhz>;
130                                         clock-names = "apb_pclk";
131                                 };
132
133                                 mmci@50000 {
134                                         compatible = "arm,pl180", "arm,primecell";
135                                         reg = <0x050000 0x1000>;
136                                         interrupts = <9>, <10>;
137                                         cd-gpios = <&v2m_sysreg 0 0>;
138                                         wp-gpios = <&v2m_sysreg 1 0>;
139                                         max-frequency = <12000000>;
140                                         vmmc-supply = <&v2m_fixed_3v3>;
141                                         clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
142                                         clock-names = "mclk", "apb_pclk";
143                                 };
144
145                                 kmi@60000 {
146                                         compatible = "arm,pl050", "arm,primecell";
147                                         reg = <0x060000 0x1000>;
148                                         interrupts = <12>;
149                                         clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
150                                         clock-names = "KMIREFCLK", "apb_pclk";
151                                 };
152
153                                 kmi@70000 {
154                                         compatible = "arm,pl050", "arm,primecell";
155                                         reg = <0x070000 0x1000>;
156                                         interrupts = <13>;
157                                         clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
158                                         clock-names = "KMIREFCLK", "apb_pclk";
159                                 };
160
161                                 v2m_serial0: serial@90000 {
162                                         compatible = "arm,pl011", "arm,primecell";
163                                         reg = <0x090000 0x1000>;
164                                         interrupts = <5>;
165                                         clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
166                                         clock-names = "uartclk", "apb_pclk";
167                                 };
168
169                                 v2m_serial1: serial@a0000 {
170                                         compatible = "arm,pl011", "arm,primecell";
171                                         reg = <0x0a0000 0x1000>;
172                                         interrupts = <6>;
173                                         clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
174                                         clock-names = "uartclk", "apb_pclk";
175                                 };
176
177                                 v2m_serial2: serial@b0000 {
178                                         compatible = "arm,pl011", "arm,primecell";
179                                         reg = <0x0b0000 0x1000>;
180                                         interrupts = <7>;
181                                         clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
182                                         clock-names = "uartclk", "apb_pclk";
183                                 };
184
185                                 v2m_serial3: serial@c0000 {
186                                         compatible = "arm,pl011", "arm,primecell";
187                                         reg = <0x0c0000 0x1000>;
188                                         interrupts = <8>;
189                                         clocks = <&v2m_clk24mhz>, <&v2m_clk24mhz>;
190                                         clock-names = "uartclk", "apb_pclk";
191                                 };
192
193                                 wdt@f0000 {
194                                         compatible = "arm,sp805", "arm,primecell";
195                                         reg = <0x0f0000 0x1000>;
196                                         interrupts = <0>;
197                                         clocks = <&v2m_refclk32khz>, <&v2m_clk24mhz>;
198                                         clock-names = "wdogclk", "apb_pclk";
199                                 };
200
201                                 v2m_timer01: timer@110000 {
202                                         compatible = "arm,sp804", "arm,primecell";
203                                         reg = <0x110000 0x1000>;
204                                         interrupts = <2>;
205                                         clocks = <&v2m_sysctl 0>, <&v2m_sysctl 1>, <&v2m_clk24mhz>;
206                                         clock-names = "timclken1", "timclken2", "apb_pclk";
207                                 };
208
209                                 v2m_timer23: timer@120000 {
210                                         compatible = "arm,sp804", "arm,primecell";
211                                         reg = <0x120000 0x1000>;
212                                         interrupts = <3>;
213                                         clocks = <&v2m_sysctl 2>, <&v2m_sysctl 3>, <&v2m_clk24mhz>;
214                                         clock-names = "timclken1", "timclken2", "apb_pclk";
215                                 };
216
217                                 virtio-block@130000 {
218                                         compatible = "virtio,mmio";
219                                         reg = <0x130000 0x200>;
220                                         interrupts = <42>;
221                                 };
222
223                                 rtc@170000 {
224                                         compatible = "arm,pl031", "arm,primecell";
225                                         reg = <0x170000 0x1000>;
226                                         interrupts = <4>;
227                                         clocks = <&v2m_clk24mhz>;
228                                         clock-names = "apb_pclk";
229                                 };
230
231                                 clcd@1f0000 {
232                                         compatible = "arm,pl111", "arm,primecell";
233                                         reg = <0x1f0000 0x1000>;
234                                         interrupt-names = "combined";
235                                         interrupts = <14>;
236                                         clocks = <&v2m_oscclk1>, <&v2m_clk24mhz>;
237                                         clock-names = "clcdclk", "apb_pclk";
238                                         memory-region = <&vram>;
239
240                                         port {
241                                                 clcd_pads: endpoint {
242                                                         remote-endpoint = <&panel_in>;
243                                                         arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
244                                                 };
245                                         };
246                                 };
247                         };
248                 };
249         };
250 };