1// SPDX-License-Identifier: (GPL-2.0 OR MIT)
2/*
3 * Copyright 2025 GOcontroll B.V.
4 * Author: Maud Spierings <maudspierings@gocontroll.com>
5 */
6
7#include <dt-bindings/gpio/gpio.h>
8
9#include "imx8mp-pinfunc.h"
10
11/dts-v1/;
12/plugin/;
13
14&{/} {
15	model = "GOcontroll Moduline Display with BOE av123z7m-n17 display";
16
17	panel {
18		compatible = "boe,av123z7m-n17";
19		enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
20		pinctrl-0 = <&pinctrl_panel>;
21		pinctrl-names = "default";
22		power-supply = <&reg_3v3_per>;
23		reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
24
25		ports {
26			#address-cells = <1>;
27			#size-cells = <0>;
28
29			port@0 {
30				reg = <0>;
31				dual-lvds-odd-pixels;
32
33				panel_in0: endpoint {
34					remote-endpoint = <&lvds1_out>;
35				};
36			};
37
38			port@1 {
39				reg = <1>;
40				dual-lvds-even-pixels;
41
42				panel_in1: endpoint {
43					remote-endpoint = <&lvds0_out>;
44				};
45			};
46		};
47	};
48};
49
50&i2c4 {
51	#address-cells = <1>;
52	#size-cells = <0>;
53
54	/* sn65dsi85 */
55	bridge@2d {
56		compatible = "ti,sn65dsi84";
57		reg = <0x2d>;
58		enable-gpios = <&gpio4 14 GPIO_ACTIVE_HIGH>;
59		pinctrl-0 = <&pinctrl_lvds_bridge>;
60		pinctrl-names = "default";
61		vcc-supply = <&reg_1v8_per>;
62
63		ports {
64			#address-cells = <1>;
65			#size-cells = <0>;
66
67			port@0 {
68				reg = <0>;
69
70				dsi_lvds_bridge_in: endpoint {
71					data-lanes = <1 2 3 4>;
72					remote-endpoint = <&mipi_dsi_out>;
73				};
74			};
75
76			port@2 {
77				reg = <2>;
78
79				lvds0_out: endpoint {
80					remote-endpoint = <&panel_in1>;
81				};
82			};
83
84			port@3 {
85				reg = <3>;
86
87				lvds1_out: endpoint {
88					remote-endpoint = <&panel_in0>;
89				};
90			};
91		};
92	};
93
94	/* max25014 @ 0x6f */
95};
96
97&iomuxc {
98	pinctrl_lvds_bridge: lvdsbridgegrp {
99		fsl,pins = <
100			MX8MP_IOMUXC_SAI1_TXD2__GPIO4_IO14
101				MX8MP_DSE_X1
102		>;
103	};
104
105	pinctrl_panel: panelgrp {
106		fsl,pins = <
107			MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07
108				MX8MP_DSE_X1
109			MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09
110				MX8MP_DSE_X1
111		>;
112	};
113};
114
115&lcdif1 {
116	status = "okay";
117};
118
119&mipi_dsi {
120	/*
121	 * burst has to be at least 2x dsi clock that the sn65dsi85 expects
122	 * display pixelclock * bpp / lanes / 2 = dsi clock
123	 * 88.000.000 * 24 / 4 / 2 = 264.000.000
124	 * range gets rounded up to 265.000.000 - 270.000.000
125	 * 267.500.000 * 2 = 535.000.000
126	 */
127	samsung,burst-clock-frequency = <535000000>;
128	samsung,esc-clock-frequency = <12000000>;
129	status = "okay";
130
131	ports {
132		port@1 {
133			mipi_dsi_out: endpoint {
134				data-lanes = <1 2 3 4>;
135				remote-endpoint = < &dsi_lvds_bridge_in>;
136			};
137		};
138	};
139};
140