1*724ba675SRob Herring// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Google Veyron (and derivatives) fragment for the edp displays
4*724ba675SRob Herring *
5*724ba675SRob Herring * Copyright 2019 Google LLC
6*724ba675SRob Herring */
7*724ba675SRob Herring
8*724ba675SRob Herring/ {
9*724ba675SRob Herring	backlight_regulator: backlight-regulator {
10*724ba675SRob Herring		compatible = "regulator-fixed";
11*724ba675SRob Herring		enable-active-high;
12*724ba675SRob Herring		gpio = <&gpio2 RK_PB4 GPIO_ACTIVE_HIGH>;
13*724ba675SRob Herring		pinctrl-names = "default";
14*724ba675SRob Herring		pinctrl-0 = <&bl_pwr_en>;
15*724ba675SRob Herring		regulator-name = "backlight_regulator";
16*724ba675SRob Herring		vin-supply = <&vcc33_sys>;
17*724ba675SRob Herring		startup-delay-us = <15000>;
18*724ba675SRob Herring	};
19*724ba675SRob Herring
20*724ba675SRob Herring	panel_regulator: panel-regulator {
21*724ba675SRob Herring		compatible = "regulator-fixed";
22*724ba675SRob Herring		enable-active-high;
23*724ba675SRob Herring		gpio = <&gpio7 RK_PB6 GPIO_ACTIVE_HIGH>;
24*724ba675SRob Herring		pinctrl-names = "default";
25*724ba675SRob Herring		pinctrl-0 = <&lcd_enable_h>;
26*724ba675SRob Herring		regulator-name = "panel_regulator";
27*724ba675SRob Herring		vin-supply = <&vcc33_sys>;
28*724ba675SRob Herring	};
29*724ba675SRob Herring
30*724ba675SRob Herring	vcc18_lcd: vcc18-lcd {
31*724ba675SRob Herring		compatible = "regulator-fixed";
32*724ba675SRob Herring		enable-active-high;
33*724ba675SRob Herring		gpio = <&gpio2 RK_PB5 GPIO_ACTIVE_HIGH>;
34*724ba675SRob Herring		pinctrl-names = "default";
35*724ba675SRob Herring		pinctrl-0 = <&avdd_1v8_disp_en>;
36*724ba675SRob Herring		regulator-name = "vcc18_lcd";
37*724ba675SRob Herring		regulator-always-on;
38*724ba675SRob Herring		regulator-boot-on;
39*724ba675SRob Herring		vin-supply = <&vcc18_wl>;
40*724ba675SRob Herring	};
41*724ba675SRob Herring
42*724ba675SRob Herring	backlight: backlight {
43*724ba675SRob Herring		compatible = "pwm-backlight";
44*724ba675SRob Herring		brightness-levels = <0 255>;
45*724ba675SRob Herring		num-interpolated-steps = <255>;
46*724ba675SRob Herring		default-brightness-level = <128>;
47*724ba675SRob Herring		enable-gpios = <&gpio7 RK_PA2 GPIO_ACTIVE_HIGH>;
48*724ba675SRob Herring		pinctrl-names = "default";
49*724ba675SRob Herring		pinctrl-0 = <&bl_en>;
50*724ba675SRob Herring		pwms = <&pwm0 0 1000000 0>;
51*724ba675SRob Herring		post-pwm-on-delay-ms = <10>;
52*724ba675SRob Herring		pwm-off-delay-ms = <10>;
53*724ba675SRob Herring		power-supply = <&backlight_regulator>;
54*724ba675SRob Herring	};
55*724ba675SRob Herring
56*724ba675SRob Herring	panel: panel {
57*724ba675SRob Herring		compatible = "innolux,n116bge";
58*724ba675SRob Herring		status = "okay";
59*724ba675SRob Herring		power-supply = <&panel_regulator>;
60*724ba675SRob Herring		backlight = <&backlight>;
61*724ba675SRob Herring
62*724ba675SRob Herring		panel-timing {
63*724ba675SRob Herring			clock-frequency = <74250000>;
64*724ba675SRob Herring			hactive = <1366>;
65*724ba675SRob Herring			hfront-porch = <136>;
66*724ba675SRob Herring			hback-porch = <60>;
67*724ba675SRob Herring			hsync-len = <30>;
68*724ba675SRob Herring			hsync-active = <0>;
69*724ba675SRob Herring			vactive = <768>;
70*724ba675SRob Herring			vfront-porch = <8>;
71*724ba675SRob Herring			vback-porch = <12>;
72*724ba675SRob Herring			vsync-len = <12>;
73*724ba675SRob Herring			vsync-active = <0>;
74*724ba675SRob Herring		};
75*724ba675SRob Herring
76*724ba675SRob Herring		ports {
77*724ba675SRob Herring			panel_in: port {
78*724ba675SRob Herring				panel_in_edp: endpoint {
79*724ba675SRob Herring					remote-endpoint = <&edp_out_panel>;
80*724ba675SRob Herring				};
81*724ba675SRob Herring			};
82*724ba675SRob Herring		};
83*724ba675SRob Herring	};
84*724ba675SRob Herring};
85*724ba675SRob Herring
86*724ba675SRob Herring&edp {
87*724ba675SRob Herring	status = "okay";
88*724ba675SRob Herring
89*724ba675SRob Herring	pinctrl-names = "default";
90*724ba675SRob Herring	pinctrl-0 = <&edp_hpd>;
91*724ba675SRob Herring
92*724ba675SRob Herring	ports {
93*724ba675SRob Herring		edp_out: port@1 {
94*724ba675SRob Herring			reg = <1>;
95*724ba675SRob Herring			#address-cells = <1>;
96*724ba675SRob Herring			#size-cells = <0>;
97*724ba675SRob Herring			edp_out_panel: endpoint@0 {
98*724ba675SRob Herring				reg = <0>;
99*724ba675SRob Herring				remote-endpoint = <&panel_in_edp>;
100*724ba675SRob Herring			};
101*724ba675SRob Herring		};
102*724ba675SRob Herring	};
103*724ba675SRob Herring};
104*724ba675SRob Herring
105*724ba675SRob Herring&edp_phy {
106*724ba675SRob Herring	status = "okay";
107*724ba675SRob Herring};
108*724ba675SRob Herring
109*724ba675SRob Herring&pwm0 {
110*724ba675SRob Herring	status = "okay";
111*724ba675SRob Herring};
112*724ba675SRob Herring
113*724ba675SRob Herring&vopl {
114*724ba675SRob Herring	status = "okay";
115*724ba675SRob Herring};
116*724ba675SRob Herring
117*724ba675SRob Herring&vopl_mmu {
118*724ba675SRob Herring	status = "okay";
119*724ba675SRob Herring};
120*724ba675SRob Herring
121*724ba675SRob Herring&pinctrl {
122*724ba675SRob Herring	backlight {
123*724ba675SRob Herring		bl_pwr_en: bl_pwr_en {
124*724ba675SRob Herring			rockchip,pins = <2 RK_PB4 RK_FUNC_GPIO &pcfg_pull_none>;
125*724ba675SRob Herring		};
126*724ba675SRob Herring
127*724ba675SRob Herring		bl_en: bl-en {
128*724ba675SRob Herring			rockchip,pins = <7 RK_PA2 RK_FUNC_GPIO &pcfg_pull_none>;
129*724ba675SRob Herring		};
130*724ba675SRob Herring	};
131*724ba675SRob Herring
132*724ba675SRob Herring	lcd {
133*724ba675SRob Herring		lcd_enable_h: lcd-en {
134*724ba675SRob Herring			rockchip,pins = <7 RK_PB6 RK_FUNC_GPIO &pcfg_pull_none>;
135*724ba675SRob Herring		};
136*724ba675SRob Herring
137*724ba675SRob Herring		avdd_1v8_disp_en: avdd-1v8-disp-en {
138*724ba675SRob Herring			rockchip,pins = <2 RK_PB5 RK_FUNC_GPIO &pcfg_pull_none>;
139*724ba675SRob Herring		};
140*724ba675SRob Herring	};
141*724ba675SRob Herring};
142