xref: /freebsd/sys/contrib/device-tree/src/arm64/freescale/imx8mp-aristainetos3-helios-lvds.dtso (revision 2846c90520eb4cc74e24d586a0ea0f4a0006bc73)
1*2846c905SEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2*2846c905SEmmanuel Vadot/*
3*2846c905SEmmanuel Vadot * Copyright (C) 2024 Heiko Schocher <hs@denx.de>
4*2846c905SEmmanuel Vadot */
5*2846c905SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
6*2846c905SEmmanuel Vadot#include <dt-bindings/input/input.h>
7*2846c905SEmmanuel Vadot#include <dt-bindings/interrupt-controller/arm-gic.h>
8*2846c905SEmmanuel Vadot#include <dt-bindings/pwm/pwm.h>
9*2846c905SEmmanuel Vadot
10*2846c905SEmmanuel Vadot/dts-v1/;
11*2846c905SEmmanuel Vadot/plugin/;
12*2846c905SEmmanuel Vadot
13*2846c905SEmmanuel Vadot&{/} {
14*2846c905SEmmanuel Vadot	model = "Aristainetos3 helios carrier with LVDS";
15*2846c905SEmmanuel Vadot	compatible = "abb,imx8mp-aristanetos3-helios",
16*2846c905SEmmanuel Vadot		     "abb,imx8mp-aristanetos3-som",
17*2846c905SEmmanuel Vadot		     "fsl,imx8mp";
18*2846c905SEmmanuel Vadot
19*2846c905SEmmanuel Vadot	panel_lvds: panel-lvds {
20*2846c905SEmmanuel Vadot		compatible = "lg,lb070wv8";
21*2846c905SEmmanuel Vadot		power-supply = <&reg_vcc_disp>;
22*2846c905SEmmanuel Vadot		backlight = <&lvds_backlight>;
23*2846c905SEmmanuel Vadot
24*2846c905SEmmanuel Vadot		port {
25*2846c905SEmmanuel Vadot			in_lvds0: endpoint {
26*2846c905SEmmanuel Vadot				remote-endpoint = <&ldb_lvds_ch0>;
27*2846c905SEmmanuel Vadot			};
28*2846c905SEmmanuel Vadot		};
29*2846c905SEmmanuel Vadot	};
30*2846c905SEmmanuel Vadot
31*2846c905SEmmanuel Vadot	reg_vcc_disp: regulator-disp {
32*2846c905SEmmanuel Vadot		pinctrl-names = "default";
33*2846c905SEmmanuel Vadot		pinctrl-0 = <&pinctrl_lcd0_vcc_en>;
34*2846c905SEmmanuel Vadot		compatible = "regulator-fixed";
35*2846c905SEmmanuel Vadot		regulator-name = "disp_power_en_2v8";
36*2846c905SEmmanuel Vadot		regulator-min-microvolt = <2800000>;
37*2846c905SEmmanuel Vadot		regulator-max-microvolt = <2800000>;
38*2846c905SEmmanuel Vadot		gpio = <&gpio1 13 GPIO_ACTIVE_HIGH>;
39*2846c905SEmmanuel Vadot		enable-active-high;
40*2846c905SEmmanuel Vadot		regulator-boot-on;
41*2846c905SEmmanuel Vadot		regulator-always-on;
42*2846c905SEmmanuel Vadot	};
43*2846c905SEmmanuel Vadot};
44*2846c905SEmmanuel Vadot
45*2846c905SEmmanuel Vadot&gpio3 {
46*2846c905SEmmanuel Vadot	pinctrl-names = "default";
47*2846c905SEmmanuel Vadot	pinctrl-0 = <&pinctrl_gpio3_hog>;
48*2846c905SEmmanuel Vadot
49*2846c905SEmmanuel Vadot	lvdssel-hog {
50*2846c905SEmmanuel Vadot		gpio-hog;
51*2846c905SEmmanuel Vadot		gpios = <23 GPIO_ACTIVE_HIGH>;
52*2846c905SEmmanuel Vadot		output-low;
53*2846c905SEmmanuel Vadot		line-name = "LVDSSEL";
54*2846c905SEmmanuel Vadot	};
55*2846c905SEmmanuel Vadot};
56*2846c905SEmmanuel Vadot
57*2846c905SEmmanuel Vadot&hdmi_blk_ctrl {
58*2846c905SEmmanuel Vadot	status = "disabled";
59*2846c905SEmmanuel Vadot};
60*2846c905SEmmanuel Vadot
61*2846c905SEmmanuel Vadot&hdmi_pvi {
62*2846c905SEmmanuel Vadot	status = "disabled";
63*2846c905SEmmanuel Vadot};
64*2846c905SEmmanuel Vadot
65*2846c905SEmmanuel Vadot&hdmi_tx {
66*2846c905SEmmanuel Vadot	status = "disabled";
67*2846c905SEmmanuel Vadot};
68*2846c905SEmmanuel Vadot
69*2846c905SEmmanuel Vadot&hdmi_tx_phy {
70*2846c905SEmmanuel Vadot	status = "disabled";
71*2846c905SEmmanuel Vadot};
72*2846c905SEmmanuel Vadot
73*2846c905SEmmanuel Vadot&irqsteer_hdmi {
74*2846c905SEmmanuel Vadot	status = "disabled";
75*2846c905SEmmanuel Vadot};
76*2846c905SEmmanuel Vadot
77*2846c905SEmmanuel Vadot&ldb_lvds_ch0 {
78*2846c905SEmmanuel Vadot	remote-endpoint = <&in_lvds0>;
79*2846c905SEmmanuel Vadot};
80*2846c905SEmmanuel Vadot
81*2846c905SEmmanuel Vadot&lcdif1 {
82*2846c905SEmmanuel Vadot	status = "disabled";
83*2846c905SEmmanuel Vadot};
84*2846c905SEmmanuel Vadot
85*2846c905SEmmanuel Vadot&lcdif2 {
86*2846c905SEmmanuel Vadot	status = "okay";
87*2846c905SEmmanuel Vadot};
88*2846c905SEmmanuel Vadot
89*2846c905SEmmanuel Vadot&lcdif3 {
90*2846c905SEmmanuel Vadot	status = "disabled";
91*2846c905SEmmanuel Vadot};
92*2846c905SEmmanuel Vadot
93*2846c905SEmmanuel Vadot&lvds_backlight {
94*2846c905SEmmanuel Vadot	status = "okay";
95*2846c905SEmmanuel Vadot};
96*2846c905SEmmanuel Vadot
97*2846c905SEmmanuel Vadot&lvds_bridge {
98*2846c905SEmmanuel Vadot	/* IMX8MP_CLK_MEDIA_LDB = IMX8MP_CLK_MEDIA_DISP2_PIX * 7 */
99*2846c905SEmmanuel Vadot	assigned-clock-rates = <232820000>;
100*2846c905SEmmanuel Vadot	status = "okay";
101*2846c905SEmmanuel Vadot};
102*2846c905SEmmanuel Vadot
103*2846c905SEmmanuel Vadot&media_blk_ctrl {
104*2846c905SEmmanuel Vadot	/*
105*2846c905SEmmanuel Vadot	 * currently it is not possible to let display clocks configure
106*2846c905SEmmanuel Vadot	 * automatically, so we need to set them manually
107*2846c905SEmmanuel Vadot	 */
108*2846c905SEmmanuel Vadot	assigned-clock-rates = <500000000>, <200000000>, <0>,
109*2846c905SEmmanuel Vadot		/* IMX8MP_CLK_MEDIA_DISP2_PIX = pixelclk of lvds panel */
110*2846c905SEmmanuel Vadot		<33260000>, <0>,
111*2846c905SEmmanuel Vadot		/* IMX8MP_VIDEO_PLL1 = IMX8MP_CLK_MEDIA_LDB * 2 */
112*2846c905SEmmanuel Vadot		<465640000>;
113*2846c905SEmmanuel Vadot};
114