aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Walleij <linus.walleij@linaro.org>2018-01-24 10:09:24 -0500
committerLinus Walleij <linus.walleij@linaro.org>2018-03-19 21:04:39 -0400
commite65857a64f69077ca95c79028a2e7f3b580fe19e (patch)
treeadac44b183344a1b2d1e1a7fdaa5505d3a87df5f
parent7fbe5f7ff26704591bda411a3d44b73e37e4f201 (diff)
ARM: dts: Augment panel setting for Versatile
This adds the actual VGA DAC bridge that is used in the Versatile AB, and sets the mode to 640x480 VGA. The "clcd" clock was incorrectly named, the proper name (from bindings) is "clcdclk". So far drivers survived by just getting the first clock, but future drivers will use named clocks. We add the panel connector to the "arm,versatile-tft-panel" as well, the signals actually fork on the board, reaching both the VGA DAC and the display connector. Cc: Mali DP Maintainers <malidp@foss.arm.com> Reviewed-by: Liviu Dudau <liviu.dudau@arm.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r--arch/arm/boot/dts/versatile-ab.dts83
1 files changed, 81 insertions, 2 deletions
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 {