hc
2023-12-11 d2ccde1c8e90d38cee87a1b0309ad2827f3fd30d
kernel/arch/arm/boot/dts/vexpress-v2m.dtsi
....@@ -19,7 +19,7 @@
1919 */
2020
2121 / {
22
- smb@4000000 {
22
+ bus@40000000 {
2323 motherboard {
2424 model = "V2M-P1";
2525 arm,hbi = <0x190>;
....@@ -35,17 +35,15 @@
3535 reg = <0 0x00000000 0x04000000>,
3636 <1 0x00000000 0x04000000>;
3737 bank-width = <4>;
38
+ partitions {
39
+ compatible = "arm,arm-firmware-suite";
40
+ };
3841 };
3942
4043 psram@2,00000000 {
4144 compatible = "arm,vexpress-psram", "mtd-ram";
4245 reg = <2 0x00000000 0x02000000>;
4346 bank-width = <4>;
44
- };
45
-
46
- v2m_video_ram: vram@3,00000000 {
47
- compatible = "arm,vexpress-vram";
48
- reg = <3 0x00000000 0x00800000>;
4947 };
5048
5149 ethernet@3,02000000 {
....@@ -138,7 +136,7 @@
138136 mmci@5000 {
139137 compatible = "arm,pl180", "arm,primecell";
140138 reg = <0x05000 0x1000>;
141
- interrupts = <9 10>;
139
+ interrupts = <9>, <10>;
142140 cd-gpios = <&v2m_mmc_gpios 0 0>;
143141 wp-gpios = <&v2m_mmc_gpios 1 0>;
144142 max-frequency = <12000000>;
....@@ -200,7 +198,7 @@
200198 reg = <0x0f000 0x1000>;
201199 interrupts = <0>;
202200 clocks = <&v2m_refclk32khz>, <&smbclk>;
203
- clock-names = "wdogclk", "apb_pclk";
201
+ clock-names = "wdog_clk", "apb_pclk";
204202 };
205203
206204 v2m_timer01: timer@11000 {
....@@ -223,13 +221,37 @@
223221 v2m_i2c_dvi: i2c@16000 {
224222 compatible = "arm,versatile-i2c";
225223 reg = <0x16000 0x1000>;
226
-
227224 #address-cells = <1>;
228225 #size-cells = <0>;
229226
230227 dvi-transmitter@39 {
231228 compatible = "sil,sii9022-tpi", "sil,sii9022";
232229 reg = <0x39>;
230
+
231
+ ports {
232
+ #address-cells = <1>;
233
+ #size-cells = <0>;
234
+
235
+ /*
236
+ * Both the core tile and the motherboard routes their output
237
+ * pads to this transmitter. The motherboard system controller
238
+ * can select one of them as input using a mux register in
239
+ * "arm,vexpress-muxfpga". The Vexpress with the CA9 core tile is
240
+ * the only platform with this specific set-up.
241
+ */
242
+ port@0 {
243
+ reg = <0>;
244
+ dvi_bridge_in_ct: endpoint {
245
+ remote-endpoint = <&clcd_pads_ct>;
246
+ };
247
+ };
248
+ port@1 {
249
+ reg = <1>;
250
+ dvi_bridge_in_mb: endpoint {
251
+ remote-endpoint = <&clcd_pads_mb>;
252
+ };
253
+ };
254
+ };
233255 };
234256
235257 dvi-transmitter@60 {
....@@ -253,6 +275,7 @@
253275 reg-shift = <2>;
254276 };
255277
278
+
256279 clcd@1f000 {
257280 compatible = "arm,pl111", "arm,primecell";
258281 reg = <0x1f000 0x1000>;
....@@ -260,35 +283,14 @@
260283 interrupts = <14>;
261284 clocks = <&v2m_oscclk1>, <&smbclk>;
262285 clock-names = "clcdclk", "apb_pclk";
263
- memory-region = <&v2m_video_ram>;
264
- max-memory-bandwidth = <50350000>; /* 16bpp @ 25.175MHz */
286
+ /* 800x600 16bpp @36MHz works fine */
287
+ max-memory-bandwidth = <54000000>;
288
+ memory-region = <&vram>;
265289
266290 port {
267
- v2m_clcd_pads: endpoint {
268
- remote-endpoint = <&v2m_clcd_panel>;
291
+ clcd_pads_mb: endpoint {
292
+ remote-endpoint = <&dvi_bridge_in_mb>;
269293 arm,pl11x,tft-r0g0b0-pads = <0 8 16>;
270
- };
271
- };
272
-
273
- panel {
274
- compatible = "panel-dpi";
275
-
276
- port {
277
- v2m_clcd_panel: endpoint {
278
- remote-endpoint = <&v2m_clcd_pads>;
279
- };
280
- };
281
-
282
- panel-timing {
283
- clock-frequency = <25175000>;
284
- hactive = <640>;
285
- hback-porch = <40>;
286
- hfront-porch = <24>;
287
- hsync-len = <96>;
288
- vactive = <480>;
289
- vback-porch = <32>;
290
- vfront-porch = <11>;
291
- vsync-len = <2>;
292294 };
293295 };
294296 };
....@@ -449,4 +451,4 @@
449451 };
450452 };
451453 };
452
-};
454
+};