1ae56c940SFabrizio Castro// SPDX-License-Identifier: GPL-2.0
2ae56c940SFabrizio Castro/*
3ae56c940SFabrizio Castro * Device Tree Source for the Silicon Linux RZ/G2E evaluation kit (EK874),
4ae56c940SFabrizio Castro * connected to an Advantech IDK-2121WR 21.5" LVDS panel
5ae56c940SFabrizio Castro *
6ae56c940SFabrizio Castro * Copyright (C) 2019 Renesas Electronics Corp.
7ae56c940SFabrizio Castro */
8ae56c940SFabrizio Castro
9ae56c940SFabrizio Castro#include "r8a774c0-ek874.dts"
10ae56c940SFabrizio Castro
11ae56c940SFabrizio Castro/ {
12ae56c940SFabrizio Castro	backlight: backlight {
13ae56c940SFabrizio Castro		compatible = "pwm-backlight";
14ae56c940SFabrizio Castro		pwms = <&pwm5 0 50000>;
15ae56c940SFabrizio Castro
16ae56c940SFabrizio Castro		brightness-levels = <0 4 8 16 32 64 128 255>;
17ae56c940SFabrizio Castro		default-brightness-level = <6>;
18ae56c940SFabrizio Castro
19ae56c940SFabrizio Castro		power-supply = <&reg_12p0v>;
20ae56c940SFabrizio Castro		enable-gpios = <&gpio6 12 GPIO_ACTIVE_HIGH>;
21ae56c940SFabrizio Castro	};
22ae56c940SFabrizio Castro
23ae56c940SFabrizio Castro	panel-lvds {
24ae56c940SFabrizio Castro		compatible = "advantech,idk-2121wr", "panel-lvds";
25ae56c940SFabrizio Castro
26ae56c940SFabrizio Castro		width-mm = <476>;
27ae56c940SFabrizio Castro		height-mm = <268>;
28ae56c940SFabrizio Castro
29ae56c940SFabrizio Castro		data-mapping = "vesa-24";
30ae56c940SFabrizio Castro
31ae56c940SFabrizio Castro		panel-timing {
32ae56c940SFabrizio Castro			clock-frequency = <148500000>;
33ae56c940SFabrizio Castro			hactive = <1920>;
34ae56c940SFabrizio Castro			vactive = <1080>;
35ae56c940SFabrizio Castro			hsync-len = <44>;
36ae56c940SFabrizio Castro			hfront-porch = <88>;
37ae56c940SFabrizio Castro			hback-porch = <148>;
38ae56c940SFabrizio Castro			vfront-porch = <4>;
39ae56c940SFabrizio Castro			vback-porch = <36>;
40ae56c940SFabrizio Castro			vsync-len = <5>;
41ae56c940SFabrizio Castro		};
42ae56c940SFabrizio Castro
43ae56c940SFabrizio Castro		ports {
44ae56c940SFabrizio Castro			#address-cells = <1>;
45ae56c940SFabrizio Castro			#size-cells = <0>;
46ae56c940SFabrizio Castro
47ae56c940SFabrizio Castro			port@0 {
48ae56c940SFabrizio Castro				reg = <0>;
49ae56c940SFabrizio Castro				dual-lvds-odd-pixels;
50ae56c940SFabrizio Castro				panel_in0: endpoint {
51ae56c940SFabrizio Castro					remote-endpoint = <&lvds0_out>;
52ae56c940SFabrizio Castro				};
53ae56c940SFabrizio Castro			};
54ae56c940SFabrizio Castro
55ae56c940SFabrizio Castro			port@1 {
56ae56c940SFabrizio Castro				reg = <1>;
57ae56c940SFabrizio Castro				dual-lvds-even-pixels;
58ae56c940SFabrizio Castro				panel_in1: endpoint {
59ae56c940SFabrizio Castro					remote-endpoint = <&lvds1_out>;
60ae56c940SFabrizio Castro				};
61ae56c940SFabrizio Castro			};
62ae56c940SFabrizio Castro		};
63ae56c940SFabrizio Castro	};
64ae56c940SFabrizio Castro};
65ae56c940SFabrizio Castro
66ae56c940SFabrizio Castro&gpio0 {
67ae56c940SFabrizio Castro	/*
68ae56c940SFabrizio Castro	 * When GP0_17 is low LVDS[01] are connected to the LVDS connector
69ae56c940SFabrizio Castro	 * When GP0_17 is high LVDS[01] are connected to the LT8918L
70ae56c940SFabrizio Castro	 */
71*48d8ee5bSGeert Uytterhoeven	lvds-connector-en-hog {
72ae56c940SFabrizio Castro		gpio-hog;
73ae56c940SFabrizio Castro		gpios = <17 GPIO_ACTIVE_HIGH>;
74ae56c940SFabrizio Castro		output-low;
75ae56c940SFabrizio Castro		line-name = "lvds-connector-en-gpio";
76ae56c940SFabrizio Castro	};
77ae56c940SFabrizio Castro};
78ae56c940SFabrizio Castro
79ae56c940SFabrizio Castro&lvds0 {
80ae56c940SFabrizio Castro	ports {
81ae56c940SFabrizio Castro		port@1 {
82ae56c940SFabrizio Castro			lvds0_out: endpoint {
83ae56c940SFabrizio Castro				remote-endpoint = <&panel_in0>;
84ae56c940SFabrizio Castro			};
85ae56c940SFabrizio Castro		};
86ae56c940SFabrizio Castro	};
87ae56c940SFabrizio Castro};
88ae56c940SFabrizio Castro
89ae56c940SFabrizio Castro&lvds1 {
90ae56c940SFabrizio Castro	status = "okay";
91ae56c940SFabrizio Castro
92ae56c940SFabrizio Castro	clocks = <&cpg CPG_MOD 727>, <&x13_clk>, <&extal_clk>;
93ae56c940SFabrizio Castro	clock-names = "fck", "dclkin.0", "extal";
94ae56c940SFabrizio Castro
95ae56c940SFabrizio Castro	ports {
96ae56c940SFabrizio Castro		port@1 {
97ae56c940SFabrizio Castro			lvds1_out: endpoint {
98ae56c940SFabrizio Castro				remote-endpoint = <&panel_in1>;
99ae56c940SFabrizio Castro			};
100ae56c940SFabrizio Castro		};
101ae56c940SFabrizio Castro	};
102ae56c940SFabrizio Castro};
103ae56c940SFabrizio Castro
104ae56c940SFabrizio Castro&pfc {
105ae56c940SFabrizio Castro	pwm5_pins: pwm5 {
106ae56c940SFabrizio Castro		groups = "pwm5_a";
107ae56c940SFabrizio Castro		function = "pwm5";
108ae56c940SFabrizio Castro	};
109ae56c940SFabrizio Castro};
110ae56c940SFabrizio Castro
111ae56c940SFabrizio Castro&pwm5 {
112ae56c940SFabrizio Castro	pinctrl-0 = <&pwm5_pins>;
113ae56c940SFabrizio Castro	pinctrl-names = "default";
114ae56c940SFabrizio Castro
115ae56c940SFabrizio Castro	status = "okay";
116ae56c940SFabrizio Castro};
117