diff options
author | Arnd Bergmann <arnd@arndb.de> | 2018-03-27 08:24:01 -0400 |
---|---|---|
committer | Arnd Bergmann <arnd@arndb.de> | 2018-03-27 08:24:01 -0400 |
commit | 8408e650bb0f99b60045a569804f8bd07a3cca78 (patch) | |
tree | 0e65c4f8d02f0fb63d19d8aae5881cdea3757a36 | |
parent | c073f31a969accd4d07345fe72e7a9e7b582f93b (diff) | |
parent | e65857a64f69077ca95c79028a2e7f3b580fe19e (diff) |
Merge tag 'armsoc-versatile-drm-dts' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator into next/dt
Pull "DTS changes for RealView+Versatile" from Linus Walleij:
This augments the RealView and Versatile device trees to properly
define the VGA and panel connectors in preparation for DRM.
* tag 'armsoc-versatile-drm-dts' of ssh://gitolite.kernel.org/pub/scm/linux/kernel/git/linusw/linux-integrator:
ARM: dts: Augment panel setting for Versatile
ARM: dts: Add Versatile IB2 device tree
ARM: dts: Augment VGA connector bridge on Realview PBX
ARM: dts: Augment VGA connector bridge on Realview EB
ARM: dts: Augment VGA connector bridge on PB1176
ARM: dts: Augment VGA connector bridge on PB11MPcore
-rw-r--r-- | arch/arm/boot/dts/Makefile | 1 | ||||
-rw-r--r-- | arch/arm/boot/dts/arm-realview-eb.dtsi | 64 | ||||
-rw-r--r-- | arch/arm/boot/dts/arm-realview-pb1176.dts | 66 | ||||
-rw-r--r-- | arch/arm/boot/dts/arm-realview-pb11mp.dts | 78 | ||||
-rw-r--r-- | arch/arm/boot/dts/arm-realview-pbx.dtsi | 82 | ||||
-rw-r--r-- | arch/arm/boot/dts/versatile-ab-ib2.dts | 26 | ||||
-rw-r--r-- | arch/arm/boot/dts/versatile-ab.dts | 83 |
7 files changed, 296 insertions, 104 deletions
diff --git a/arch/arm/boot/dts/Makefile b/arch/arm/boot/dts/Makefile index 9be131bc22af..d8f49c3b9948 100644 --- a/arch/arm/boot/dts/Makefile +++ b/arch/arm/boot/dts/Makefile | |||
@@ -1064,6 +1064,7 @@ dtb-$(CONFIG_ARCH_UNIPHIER) += \ | |||
1064 | uniphier-sld8-ref.dtb | 1064 | uniphier-sld8-ref.dtb |
1065 | dtb-$(CONFIG_ARCH_VERSATILE) += \ | 1065 | dtb-$(CONFIG_ARCH_VERSATILE) += \ |
1066 | versatile-ab.dtb \ | 1066 | versatile-ab.dtb \ |
1067 | versatile-ab-ib2.dtb \ | ||
1067 | versatile-pb.dtb | 1068 | versatile-pb.dtb |
1068 | dtb-$(CONFIG_ARCH_VEXPRESS) += \ | 1069 | dtb-$(CONFIG_ARCH_VEXPRESS) += \ |
1069 | vexpress-v2p-ca5s.dtb \ | 1070 | vexpress-v2p-ca5s.dtb \ |
diff --git a/arch/arm/boot/dts/arm-realview-eb.dtsi b/arch/arm/boot/dts/arm-realview-eb.dtsi index e2e9599596e2..a917cf8825ca 100644 --- a/arch/arm/boot/dts/arm-realview-eb.dtsi +++ b/arch/arm/boot/dts/arm-realview-eb.dtsi | |||
@@ -143,6 +143,43 @@ | |||
143 | port1-otg; | 143 | port1-otg; |
144 | }; | 144 | }; |
145 | 145 | ||
146 | bridge { | ||
147 | compatible = "ti,ths8134a", "ti,ths8134"; | ||
148 | #address-cells = <1>; | ||
149 | #size-cells = <0>; | ||
150 | |||
151 | ports { | ||
152 | #address-cells = <1>; | ||
153 | #size-cells = <0>; | ||
154 | |||
155 | port@0 { | ||
156 | reg = <0>; | ||
157 | |||
158 | vga_bridge_in: endpoint { | ||
159 | remote-endpoint = <&clcd_pads>; | ||
160 | }; | ||
161 | }; | ||
162 | |||
163 | port@1 { | ||
164 | reg = <1>; | ||
165 | |||
166 | vga_bridge_out: endpoint { | ||
167 | remote-endpoint = <&vga_con_in>; | ||
168 | }; | ||
169 | }; | ||
170 | }; | ||
171 | }; | ||
172 | |||
173 | vga { | ||
174 | compatible = "vga-connector"; | ||
175 | |||
176 | port { | ||
177 | vga_con_in: endpoint { | ||
178 | remote-endpoint = <&vga_bridge_out>; | ||
179 | }; | ||
180 | }; | ||
181 | }; | ||
182 | |||
146 | /* These peripherals are inside the FPGA */ | 183 | /* These peripherals are inside the FPGA */ |
147 | fpga { | 184 | fpga { |
148 | #address-cells = <1>; | 185 | #address-cells = <1>; |
@@ -409,36 +446,15 @@ | |||
409 | interrupt-names = "combined"; | 446 | interrupt-names = "combined"; |
410 | clocks = <&oscclk0>, <&pclk>; | 447 | clocks = <&oscclk0>, <&pclk>; |
411 | clock-names = "clcdclk", "apb_pclk"; | 448 | clock-names = "clcdclk", "apb_pclk"; |
449 | /* 1024x768 16bpp @65MHz works fine */ | ||
450 | max-memory-bandwidth = <95000000>; | ||
412 | 451 | ||
413 | port { | 452 | port { |
414 | clcd_pads: endpoint { | 453 | clcd_pads: endpoint { |
415 | remote-endpoint = <&clcd_panel>; | 454 | remote-endpoint = <&vga_bridge_in>; |
416 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; | 455 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; |
417 | }; | 456 | }; |
418 | }; | 457 | }; |
419 | |||
420 | panel { | ||
421 | compatible = "panel-dpi"; | ||
422 | |||
423 | port { | ||
424 | clcd_panel: endpoint { | ||
425 | remote-endpoint = <&clcd_pads>; | ||
426 | }; | ||
427 | }; | ||
428 | |||
429 | /* Standard 640x480 VGA timings */ | ||
430 | panel-timing { | ||
431 | clock-frequency = <25175000>; | ||
432 | hactive = <640>; | ||
433 | hback-porch = <48>; | ||
434 | hfront-porch = <16>; | ||
435 | hsync-len = <96>; | ||
436 | vactive = <480>; | ||
437 | vback-porch = <33>; | ||
438 | vfront-porch = <10>; | ||
439 | vsync-len = <2>; | ||
440 | }; | ||
441 | }; | ||
442 | }; | 458 | }; |
443 | }; | 459 | }; |
444 | }; | 460 | }; |
diff --git a/arch/arm/boot/dts/arm-realview-pb1176.dts b/arch/arm/boot/dts/arm-realview-pb1176.dts index c789564f2803..f935b72d3d96 100644 --- a/arch/arm/boot/dts/arm-realview-pb1176.dts +++ b/arch/arm/boot/dts/arm-realview-pb1176.dts | |||
@@ -161,6 +161,43 @@ | |||
161 | port1-otg; | 161 | port1-otg; |
162 | }; | 162 | }; |
163 | 163 | ||
164 | bridge { | ||
165 | compatible = "ti,ths8134a", "ti,ths8134"; | ||
166 | #address-cells = <1>; | ||
167 | #size-cells = <0>; | ||
168 | |||
169 | ports { | ||
170 | #address-cells = <1>; | ||
171 | #size-cells = <0>; | ||
172 | |||
173 | port@0 { | ||
174 | reg = <0>; | ||
175 | |||
176 | vga_bridge_in: endpoint { | ||
177 | remote-endpoint = <&clcd_pads>; | ||
178 | }; | ||
179 | }; | ||
180 | |||
181 | port@1 { | ||
182 | reg = <1>; | ||
183 | |||
184 | vga_bridge_out: endpoint { | ||
185 | remote-endpoint = <&vga_con_in>; | ||
186 | }; | ||
187 | }; | ||
188 | }; | ||
189 | }; | ||
190 | |||
191 | vga { | ||
192 | compatible = "vga-connector"; | ||
193 | |||
194 | port { | ||
195 | vga_con_in: endpoint { | ||
196 | remote-endpoint = <&vga_bridge_out>; | ||
197 | }; | ||
198 | }; | ||
199 | }; | ||
200 | |||
164 | soc { | 201 | soc { |
165 | #address-cells = <1>; | 202 | #address-cells = <1>; |
166 | #size-cells = <1>; | 203 | #size-cells = <1>; |
@@ -403,36 +440,15 @@ | |||
403 | interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>; | 440 | interrupts = <0 47 IRQ_TYPE_LEVEL_HIGH>; |
404 | clocks = <&oscclk0>, <&pclk>; | 441 | clocks = <&oscclk0>, <&pclk>; |
405 | clock-names = "clcdclk", "apb_pclk"; | 442 | clock-names = "clcdclk", "apb_pclk"; |
443 | /* 1024x768 16bpp @65MHz works fine */ | ||
444 | max-memory-bandwidth = <95000000>; | ||
406 | 445 | ||
407 | port { | 446 | port { |
408 | clcd_pads: endpoint { | 447 | clcd_pads: endpoint { |
409 | remote-endpoint = <&clcd_panel>; | 448 | remote-endpoint = <&vga_bridge_in>; |
410 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; | 449 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; |
411 | }; | 450 | }; |
412 | }; | 451 | }; |
413 | |||
414 | panel { | ||
415 | compatible = "panel-dpi"; | ||
416 | |||
417 | port { | ||
418 | clcd_panel: endpoint { | ||
419 | remote-endpoint = <&clcd_pads>; | ||
420 | }; | ||
421 | }; | ||
422 | |||
423 | /* Standard 640x480 VGA timings */ | ||
424 | panel-timing { | ||
425 | clock-frequency = <25175000>; | ||
426 | hactive = <640>; | ||
427 | hback-porch = <48>; | ||
428 | hfront-porch = <16>; | ||
429 | hsync-len = <96>; | ||
430 | vactive = <480>; | ||
431 | vback-porch = <33>; | ||
432 | vfront-porch = <10>; | ||
433 | vsync-len = <2>; | ||
434 | }; | ||
435 | }; | ||
436 | }; | 452 | }; |
437 | }; | 453 | }; |
438 | 454 | ||
@@ -564,7 +580,5 @@ | |||
564 | clocks = <&pclk>; | 580 | clocks = <&pclk>; |
565 | clock-names = "apb_pclk"; | 581 | clock-names = "apb_pclk"; |
566 | }; | 582 | }; |
567 | |||
568 | |||
569 | }; | 583 | }; |
570 | }; | 584 | }; |
diff --git a/arch/arm/boot/dts/arm-realview-pb11mp.dts b/arch/arm/boot/dts/arm-realview-pb11mp.dts index 3944765ac4b0..36203288de42 100644 --- a/arch/arm/boot/dts/arm-realview-pb11mp.dts +++ b/arch/arm/boot/dts/arm-realview-pb11mp.dts | |||
@@ -242,6 +242,49 @@ | |||
242 | bank-width = <4>; | 242 | bank-width = <4>; |
243 | }; | 243 | }; |
244 | 244 | ||
245 | bridge { | ||
246 | compatible = "ti,ths8134a", "ti,ths8134"; | ||
247 | #address-cells = <1>; | ||
248 | #size-cells = <0>; | ||
249 | |||
250 | ports { | ||
251 | #address-cells = <1>; | ||
252 | #size-cells = <0>; | ||
253 | |||
254 | port@0 { | ||
255 | reg = <0>; | ||
256 | |||
257 | vga_bridge_in: endpoint { | ||
258 | remote-endpoint = <&clcd_pads>; | ||
259 | }; | ||
260 | }; | ||
261 | |||
262 | port@1 { | ||
263 | reg = <1>; | ||
264 | |||
265 | vga_bridge_out: endpoint { | ||
266 | remote-endpoint = <&vga_con_in>; | ||
267 | }; | ||
268 | }; | ||
269 | }; | ||
270 | }; | ||
271 | |||
272 | vga { | ||
273 | /* | ||
274 | * This DDC I2C is connected directly to the DVI portions | ||
275 | * of the connector, so it's not really working when the | ||
276 | * monitor is connected to the VGA connector. | ||
277 | */ | ||
278 | compatible = "vga-connector"; | ||
279 | ddc-i2c-bus = <&i2c1>; | ||
280 | |||
281 | port { | ||
282 | vga_con_in: endpoint { | ||
283 | remote-endpoint = <&vga_bridge_out>; | ||
284 | }; | ||
285 | }; | ||
286 | }; | ||
287 | |||
245 | soc { | 288 | soc { |
246 | #address-cells = <1>; | 289 | #address-cells = <1>; |
247 | #size-cells = <1>; | 290 | #size-cells = <1>; |
@@ -575,6 +618,13 @@ | |||
575 | clock-names = "apb_pclk"; | 618 | clock-names = "apb_pclk"; |
576 | }; | 619 | }; |
577 | 620 | ||
621 | i2c1: i2c@10016000 { | ||
622 | #address-cells = <1>; | ||
623 | #size-cells = <0>; | ||
624 | compatible = "arm,versatile-i2c"; | ||
625 | reg = <0x10016000 0x1000>; | ||
626 | }; | ||
627 | |||
578 | rtc: rtc@10017000 { | 628 | rtc: rtc@10017000 { |
579 | compatible = "arm,pl031", "arm,primecell"; | 629 | compatible = "arm,pl031", "arm,primecell"; |
580 | reg = <0x10017000 0x1000>; | 630 | reg = <0x10017000 0x1000>; |
@@ -609,37 +659,15 @@ | |||
609 | interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>; | 659 | interrupts = <0 23 IRQ_TYPE_LEVEL_HIGH>; |
610 | clocks = <&oscclk4>, <&pclk>; | 660 | clocks = <&oscclk4>, <&pclk>; |
611 | clock-names = "clcdclk", "apb_pclk"; | 661 | clock-names = "clcdclk", "apb_pclk"; |
612 | max-memory-bandwidth = <130000000>; /* 16bpp @ 63.5MHz */ | 662 | /* 1024x768 16bpp @65MHz works fine */ |
663 | max-memory-bandwidth = <95000000>; | ||
613 | 664 | ||
614 | port { | 665 | port { |
615 | clcd_pads: endpoint { | 666 | clcd_pads: endpoint { |
616 | remote-endpoint = <&clcd_panel>; | 667 | remote-endpoint = <&vga_bridge_in>; |
617 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; | 668 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; |
618 | }; | 669 | }; |
619 | }; | 670 | }; |
620 | |||
621 | panel { | ||
622 | compatible = "panel-dpi"; | ||
623 | |||
624 | port { | ||
625 | clcd_panel: endpoint { | ||
626 | remote-endpoint = <&clcd_pads>; | ||
627 | }; | ||
628 | }; | ||
629 | |||
630 | /* Standard 640x480 VGA timings */ | ||
631 | panel-timing { | ||
632 | clock-frequency = <25175000>; | ||
633 | hactive = <640>; | ||
634 | hback-porch = <48>; | ||
635 | hfront-porch = <16>; | ||
636 | hsync-len = <96>; | ||
637 | vactive = <480>; | ||
638 | vback-porch = <33>; | ||
639 | vfront-porch = <10>; | ||
640 | vsync-len = <2>; | ||
641 | }; | ||
642 | }; | ||
643 | }; | 671 | }; |
644 | 672 | ||
645 | /* | 673 | /* |
diff --git a/arch/arm/boot/dts/arm-realview-pbx.dtsi b/arch/arm/boot/dts/arm-realview-pbx.dtsi index aeb49c4bd773..10868ba3277f 100644 --- a/arch/arm/boot/dts/arm-realview-pbx.dtsi +++ b/arch/arm/boot/dts/arm-realview-pbx.dtsi | |||
@@ -34,7 +34,8 @@ | |||
34 | serial1 = &serial1; | 34 | serial1 = &serial1; |
35 | serial2 = &serial2; | 35 | serial2 = &serial2; |
36 | serial3 = &serial3; | 36 | serial3 = &serial3; |
37 | i2c0 = &i2c; | 37 | i2c0 = &i2c0; |
38 | i2c1 = &i2c1; | ||
38 | }; | 39 | }; |
39 | 40 | ||
40 | memory { | 41 | memory { |
@@ -158,6 +159,49 @@ | |||
158 | port1-otg; | 159 | port1-otg; |
159 | }; | 160 | }; |
160 | 161 | ||
162 | bridge { | ||
163 | compatible = "ti,ths8134a", "ti,ths8134"; | ||
164 | #address-cells = <1>; | ||
165 | #size-cells = <0>; | ||
166 | |||
167 | ports { | ||
168 | #address-cells = <1>; | ||
169 | #size-cells = <0>; | ||
170 | |||
171 | port@0 { | ||
172 | reg = <0>; | ||
173 | |||
174 | vga_bridge_in: endpoint { | ||
175 | remote-endpoint = <&clcd_pads>; | ||
176 | }; | ||
177 | }; | ||
178 | |||
179 | port@1 { | ||
180 | reg = <1>; | ||
181 | |||
182 | vga_bridge_out: endpoint { | ||
183 | remote-endpoint = <&vga_con_in>; | ||
184 | }; | ||
185 | }; | ||
186 | }; | ||
187 | }; | ||
188 | |||
189 | vga { | ||
190 | /* | ||
191 | * This DDC I2C is connected directly to the DVI portions | ||
192 | * of the connector, so it's not really working when the | ||
193 | * monitor is connected to the VGA connector. | ||
194 | */ | ||
195 | compatible = "vga-connector"; | ||
196 | ddc-i2c-bus = <&i2c1>; | ||
197 | |||
198 | port { | ||
199 | vga_con_in: endpoint { | ||
200 | remote-endpoint = <&vga_bridge_out>; | ||
201 | }; | ||
202 | }; | ||
203 | }; | ||
204 | |||
161 | soc: soc@0 { | 205 | soc: soc@0 { |
162 | compatible = "arm,realview-pbx-soc", "simple-bus"; | 206 | compatible = "arm,realview-pbx-soc", "simple-bus"; |
163 | #address-cells = <1>; | 207 | #address-cells = <1>; |
@@ -285,7 +329,7 @@ | |||
285 | <&timclk>; | 329 | <&timclk>; |
286 | }; | 330 | }; |
287 | 331 | ||
288 | i2c: i2c@10002000 { | 332 | i2c0: i2c@10002000 { |
289 | #address-cells = <1>; | 333 | #address-cells = <1>; |
290 | #size-cells = <0>; | 334 | #size-cells = <0>; |
291 | compatible = "arm,versatile-i2c"; | 335 | compatible = "arm,versatile-i2c"; |
@@ -396,7 +440,12 @@ | |||
396 | clock-names = "apb_pclk"; | 440 | clock-names = "apb_pclk"; |
397 | }; | 441 | }; |
398 | 442 | ||
399 | /* DVI serial bus control is at 10016000 */ | 443 | i2c1: i2c@10016000 { |
444 | #address-cells = <1>; | ||
445 | #size-cells = <0>; | ||
446 | compatible = "arm,versatile-i2c"; | ||
447 | reg = <0x10016000 0x1000>; | ||
448 | }; | ||
400 | 449 | ||
401 | rtc: rtc@10017000 { | 450 | rtc: rtc@10017000 { |
402 | compatible = "arm,pl031", "arm,primecell"; | 451 | compatible = "arm,pl031", "arm,primecell"; |
@@ -506,36 +555,15 @@ | |||
506 | interrupt-names = "combined"; | 555 | interrupt-names = "combined"; |
507 | clocks = <&oscclk4>, <&pclk>; | 556 | clocks = <&oscclk4>, <&pclk>; |
508 | clock-names = "clcdclk", "apb_pclk"; | 557 | clock-names = "clcdclk", "apb_pclk"; |
558 | /* 1024x768 16bpp @65MHz works fine */ | ||
559 | max-memory-bandwidth = <95000000>; | ||
509 | 560 | ||
510 | port { | 561 | port { |
511 | clcd_pads: endpoint { | 562 | clcd_pads: endpoint { |
512 | remote-endpoint = <&clcd_panel>; | 563 | remote-endpoint = <&vga_bridge_in>; |
513 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; | 564 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; |
514 | }; | 565 | }; |
515 | }; | 566 | }; |
516 | |||
517 | panel { | ||
518 | compatible = "panel-dpi"; | ||
519 | |||
520 | port { | ||
521 | clcd_panel: endpoint { | ||
522 | remote-endpoint = <&clcd_pads>; | ||
523 | }; | ||
524 | }; | ||
525 | |||
526 | /* Standard 640x480 VGA timings */ | ||
527 | panel-timing { | ||
528 | clock-frequency = <25175000>; | ||
529 | hactive = <640>; | ||
530 | hback-porch = <48>; | ||
531 | hfront-porch = <16>; | ||
532 | hsync-len = <96>; | ||
533 | vactive = <480>; | ||
534 | vback-porch = <33>; | ||
535 | vfront-porch = <10>; | ||
536 | vsync-len = <2>; | ||
537 | }; | ||
538 | }; | ||
539 | }; | 567 | }; |
540 | }; | 568 | }; |
541 | }; | 569 | }; |
diff --git a/arch/arm/boot/dts/versatile-ab-ib2.dts b/arch/arm/boot/dts/versatile-ab-ib2.dts new file mode 100644 index 000000000000..5890cb974f78 --- /dev/null +++ b/arch/arm/boot/dts/versatile-ab-ib2.dts | |||
@@ -0,0 +1,26 @@ | |||
1 | // SPDX-License-Identifier: GPL-2.0 | ||
2 | /* | ||
3 | * The Versatile AB with the IB2 expansion board mounted. | ||
4 | * This works as a superset of the Versatile AB. | ||
5 | */ | ||
6 | |||
7 | #include "versatile-ab.dts" | ||
8 | |||
9 | / { | ||
10 | model = "ARM Versatile AB + IB2 board"; | ||
11 | |||
12 | /* Special IB2 control register */ | ||
13 | ib2_syscon@27000000 { | ||
14 | compatible = "arm,versatile-ib2-syscon", "syscon", "simple-mfd"; | ||
15 | reg = <0x27000000 0x4>; | ||
16 | |||
17 | led@00.4 { | ||
18 | compatible = "register-bit-led"; | ||
19 | offset = <0x00>; | ||
20 | mask = <0x10>; | ||
21 | label = "versatile-ib2:0"; | ||
22 | linux,default-trigger = "heartbeat"; | ||
23 | default-state = "on"; | ||
24 | }; | ||
25 | }; | ||
26 | }; | ||
diff --git a/arch/arm/boot/dts/versatile-ab.dts b/arch/arm/boot/dts/versatile-ab.dts index 4a51612996bc..5f61d3609027 100644 --- a/arch/arm/boot/dts/versatile-ab.dts +++ b/arch/arm/boot/dts/versatile-ab.dts | |||
@@ -30,6 +30,43 @@ | |||
30 | clock-frequency = <24000000>; | 30 | clock-frequency = <24000000>; |
31 | }; | 31 | }; |
32 | 32 | ||
33 | bridge { | ||
34 | compatible = "ti,ths8134b", "ti,ths8134"; | ||
35 | #address-cells = <1>; | ||
36 | #size-cells = <0>; | ||
37 | |||
38 | ports { | ||
39 | #address-cells = <1>; | ||
40 | #size-cells = <0>; | ||
41 | |||
42 | port@0 { | ||
43 | reg = <0>; | ||
44 | |||
45 | vga_bridge_in: endpoint { | ||
46 | remote-endpoint = <&clcd_pads_vga_dac>; | ||
47 | }; | ||
48 | }; | ||
49 | |||
50 | port@1 { | ||
51 | reg = <1>; | ||
52 | |||
53 | vga_bridge_out: endpoint { | ||
54 | remote-endpoint = <&vga_con_in>; | ||
55 | }; | ||
56 | }; | ||
57 | }; | ||
58 | }; | ||
59 | |||
60 | vga { | ||
61 | compatible = "vga-connector"; | ||
62 | |||
63 | port { | ||
64 | vga_con_in: endpoint { | ||
65 | remote-endpoint = <&vga_bridge_out>; | ||
66 | }; | ||
67 | }; | ||
68 | }; | ||
69 | |||
33 | core-module@10000000 { | 70 | core-module@10000000 { |
34 | compatible = "arm,core-module-versatile", "syscon", "simple-mfd"; | 71 | compatible = "arm,core-module-versatile", "syscon", "simple-mfd"; |
35 | reg = <0x10000000 0x200>; | 72 | reg = <0x10000000 0x200>; |
@@ -230,7 +267,39 @@ | |||
230 | reg = <0x10120000 0x1000>; | 267 | reg = <0x10120000 0x1000>; |
231 | interrupts = <16>; | 268 | interrupts = <16>; |
232 | clocks = <&osc1>, <&pclk>; | 269 | clocks = <&osc1>, <&pclk>; |
233 | clock-names = "clcd", "apb_pclk"; | 270 | clock-names = "clcdclk", "apb_pclk"; |
271 | /* 800x600 16bpp @ 36MHz works fine */ | ||
272 | max-memory-bandwidth = <54000000>; | ||
273 | |||
274 | /* | ||
275 | * This port is routed through a PLD (Programmable | ||
276 | * Logic Device) that routes the output from the CLCD | ||
277 | * (after transformations) to the VGA DAC and also an | ||
278 | * external panel connector. The PLD is essential for | ||
279 | * supporting RGB565/BGR565. | ||
280 | * | ||
281 | * The signals from the port thus reaches two endpoints. | ||
282 | * The PLD is managed through a few special bits in the | ||
283 | * FPGA "sysreg". | ||
284 | * | ||
285 | * This arrangement can be clearly seen in | ||
286 | * ARM DUI 0225D, page 3-41, figure 3-19. | ||
287 | */ | ||
288 | port@0 { | ||
289 | #address-cells = <1>; | ||
290 | #size-cells = <0>; | ||
291 | |||
292 | clcd_pads_panel: endpoint@0 { | ||
293 | reg = <0>; | ||
294 | remote-endpoint = <&panel_in>; | ||
295 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; | ||
296 | }; | ||
297 | clcd_pads_vga_dac: endpoint@1 { | ||
298 | reg = <1>; | ||
299 | remote-endpoint = <&vga_bridge_in>; | ||
300 | arm,pl11x,tft-r0g0b0-pads = <0 8 16>; | ||
301 | }; | ||
302 | }; | ||
234 | }; | 303 | }; |
235 | 304 | ||
236 | sctl@101e0000 { | 305 | sctl@101e0000 { |
@@ -319,8 +388,18 @@ | |||
319 | ranges = <0 0x10000000 0x10000>; | 388 | ranges = <0 0x10000000 0x10000>; |
320 | 389 | ||
321 | sysreg@0 { | 390 | sysreg@0 { |
322 | compatible = "arm,versatile-sysreg", "syscon"; | 391 | compatible = "arm,versatile-sysreg", "syscon", "simple-mfd"; |
323 | reg = <0x00000 0x1000>; | 392 | reg = <0x00000 0x1000>; |
393 | |||
394 | panel: display@0 { | ||
395 | compatible = "arm,versatile-tft-panel"; | ||
396 | |||
397 | port { | ||
398 | panel_in: endpoint { | ||
399 | remote-endpoint = <&clcd_pads_panel>; | ||
400 | }; | ||
401 | }; | ||
402 | }; | ||
324 | }; | 403 | }; |
325 | 404 | ||
326 | aaci@4000 { | 405 | aaci@4000 { |