Skip to content

Commit 7081ba4

Browse files
author
AngeloGioacchino Del Regno
committed
arm64: dts: mediatek: mt8390-genio-common: Add Display on DSI0
Configure the DSI0 display pipeline and add regulator, pinctrl and display node to enable the Startek KD070FHFID078 panel found on the MediaTek Genio 510 and Genio 700 EVKs. Link: https://lore.kernel.org/r/[email protected] Signed-off-by: AngeloGioacchino Del Regno <[email protected]>
1 parent 21ce589 commit 7081ba4

File tree

1 file changed

+137
-8
lines changed

1 file changed

+137
-8
lines changed

arch/arm64/boot/dts/mediatek/mt8390-genio-common.dtsi

Lines changed: 137 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121

2222
/ {
2323
aliases {
24+
dsi0 = &disp_dsi0;
2425
ethernet0 = &eth;
2526
i2c0 = &i2c0;
2627
i2c1 = &i2c1;
@@ -34,6 +35,15 @@
3435
serial0 = &uart0;
3536
};
3637

38+
backlight_lcm1: backlight-lcm1 {
39+
compatible = "pwm-backlight";
40+
brightness-levels = <0 1023>;
41+
default-brightness-level = <576>;
42+
num-interpolated-steps = <1023>;
43+
power-supply = <&reg_vsys>;
44+
pwms = <&disp_pwm1 0 500000>;
45+
};
46+
3747
chosen {
3848
stdout-path = "serial0:921600n8";
3949
};
@@ -227,6 +237,28 @@
227237
regulator-max-microvolt = <5000000>;
228238
enable-active-high;
229239
};
240+
241+
lcm1_iovcc: regulator-vio18-lcm1 {
242+
compatible = "regulator-fixed";
243+
regulator-name = "vio18_lcm1";
244+
regulator-min-microvolt = <1800000>;
245+
regulator-max-microvolt = <1800000>;
246+
enable-active-high;
247+
gpio = <&pio 111 GPIO_ACTIVE_HIGH>;
248+
pinctrl-names = "default";
249+
pinctrl-0 = <&dsi0_vreg_en_pins>;
250+
vin-supply = <&reg_vsys>;
251+
};
252+
253+
lcm1_vddp: regulator-vsys-lcm1 {
254+
compatible = "regulator-fixed";
255+
regulator-name = "vsys_lcm1";
256+
regulator-min-microvolt = <4200000>;
257+
regulator-max-microvolt = <4200000>;
258+
regulator-always-on;
259+
regulator-boot-on;
260+
vin-supply = <&reg_vsys>;
261+
};
230262
};
231263

232264
&adsp {
@@ -239,6 +271,67 @@
239271
status = "okay";
240272
};
241273

274+
&disp_dsi0 {
275+
#address-cells = <1>;
276+
#size-cells = <0>;
277+
status = "okay";
278+
279+
panel@0 {
280+
compatible = "startek,kd070fhfid078", "himax,hx8279";
281+
reg = <0>;
282+
backlight = <&backlight_lcm1>;
283+
enable-gpios = <&pio 45 GPIO_ACTIVE_HIGH>;
284+
reset-gpios = <&pio 25 GPIO_ACTIVE_HIGH>;
285+
iovcc-supply = <&lcm1_iovcc>;
286+
vdd-supply = <&lcm1_vddp>;
287+
pinctrl-names = "default";
288+
pinctrl-0 = <&panel_default_pins>;
289+
290+
port {
291+
dsi_panel_in: endpoint {
292+
remote-endpoint = <&dsi0_out>;
293+
};
294+
};
295+
};
296+
297+
ports {
298+
#address-cells = <1>;
299+
#size-cells = <0>;
300+
301+
port@0 {
302+
reg = <0>;
303+
dsi0_in: endpoint {
304+
remote-endpoint = <&dither0_out>;
305+
};
306+
};
307+
308+
port@1 {
309+
reg = <1>;
310+
dsi0_out: endpoint {
311+
remote-endpoint = <&dsi_panel_in>;
312+
};
313+
};
314+
};
315+
};
316+
317+
&disp_pwm1 {
318+
pinctrl-names = "default";
319+
pinctrl-0 = <&disp_pwm1_pins>;
320+
status = "okay";
321+
};
322+
323+
&dither0_in {
324+
remote-endpoint = <&postmask0_out>;
325+
};
326+
327+
&dither0_out {
328+
remote-endpoint = <&dsi0_in>;
329+
};
330+
331+
&gamma0_out {
332+
remote-endpoint = <&postmask0_in>;
333+
};
334+
242335
&gpu {
243336
mali-supply = <&mt6359_vproc2_buck_reg>;
244337
status = "okay";
@@ -390,6 +483,10 @@
390483
domain-supply = <&mt6359_vsram_others_ldo_reg>;
391484
};
392485

486+
&mipi_tx_config0 {
487+
status = "okay";
488+
};
489+
393490
&mmc0 {
394491
status = "okay";
395492
pinctrl-names = "default", "state_uhs";
@@ -499,6 +596,10 @@
499596
mediatek,mic-type-1 = <3>; /* DCC */
500597
};
501598

599+
&ovl0_in {
600+
remote-endpoint = <&vdosys0_ep_main>;
601+
};
602+
502603
&pcie {
503604
pinctrl-names = "default";
504605
pinctrl-0 = <&pcie_default_pins>;
@@ -537,6 +638,12 @@
537638
};
538639
};
539640

641+
disp_pwm1_pins: disp-pwm1-pins {
642+
pins-pwm {
643+
pinmux = <PINMUX_GPIO30__FUNC_O_DISP_PWM1>;
644+
};
645+
};
646+
540647
dptx_pins: dptx-pins {
541648
pins-cmd-dat {
542649
pinmux = <PINMUX_GPIO46__FUNC_I0_DP_TX_HPD>;
@@ -857,20 +964,22 @@
857964
};
858965
};
859966

860-
panel_default_pins: panel-default-pins {
861-
pins-dcdc {
862-
pinmux = <PINMUX_GPIO45__FUNC_B_GPIO45>;
863-
output-low;
864-
};
865-
866-
pins-en {
967+
dsi0_vreg_en_pins: dsi0-vreg-en-pins {
968+
pins-pwr-en {
867969
pinmux = <PINMUX_GPIO111__FUNC_B_GPIO111>;
868970
output-low;
869971
};
972+
};
870973

974+
panel_default_pins: panel-default-pins {
871975
pins-rst {
872976
pinmux = <PINMUX_GPIO25__FUNC_B_GPIO25>;
873-
output-high;
977+
output-low;
978+
};
979+
980+
pins-en {
981+
pinmux = <PINMUX_GPIO45__FUNC_B_GPIO45>;
982+
output-low;
874983
};
875984
};
876985

@@ -1055,6 +1164,14 @@
10551164
};
10561165
};
10571166

1167+
&postmask0_in {
1168+
remote-endpoint = <&gamma0_out>;
1169+
};
1170+
1171+
&postmask0_out {
1172+
remote-endpoint = <&dither0_in>;
1173+
};
1174+
10581175
&scp_cluster {
10591176
status = "okay";
10601177
};
@@ -1124,6 +1241,18 @@
11241241
status = "okay";
11251242
};
11261243

1244+
&vdosys0 {
1245+
port {
1246+
#address-cells = <1>;
1247+
#size-cells = <0>;
1248+
1249+
vdosys0_ep_main: endpoint@0 {
1250+
reg = <0>;
1251+
remote-endpoint = <&ovl0_in>;
1252+
};
1253+
};
1254+
};
1255+
11271256
&u3phy0 {
11281257
status = "okay";
11291258
};

0 commit comments

Comments
 (0)