xref: /freebsd/sys/contrib/device-tree/src/arm64/freescale/imx8mp-kontron-dl.dtso (revision 5f62a964e9f8abc6a05d8338273fadd154f0a206)
1*5f62a964SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0+ OR MIT
2*5f62a964SEmmanuel Vadot/*
3*5f62a964SEmmanuel Vadot * Copyright (C) 2023 Kontron Electronics GmbH
4*5f62a964SEmmanuel Vadot */
5*5f62a964SEmmanuel Vadot
6*5f62a964SEmmanuel Vadot/dts-v1/;
7*5f62a964SEmmanuel Vadot/plugin/;
8*5f62a964SEmmanuel Vadot
9*5f62a964SEmmanuel Vadot#include <dt-bindings/gpio/gpio.h>
10*5f62a964SEmmanuel Vadot#include "imx8mp-pinfunc.h"
11*5f62a964SEmmanuel Vadot
12*5f62a964SEmmanuel Vadot&{/} {
13*5f62a964SEmmanuel Vadot	model = "Kontron DL i.MX8MP OSM-S";
14*5f62a964SEmmanuel Vadot	compatible = "kontron,imx8mp-bl-osm-s", "kontron,imx8mp-osm-s", "fsl,imx8mp";
15*5f62a964SEmmanuel Vadot
16*5f62a964SEmmanuel Vadot	backlight: backlight {
17*5f62a964SEmmanuel Vadot		compatible = "pwm-backlight";
18*5f62a964SEmmanuel Vadot		pwms = <&pwm1 0 50000 0>;
19*5f62a964SEmmanuel Vadot		brightness-levels = <0 100>;
20*5f62a964SEmmanuel Vadot		num-interpolated-steps = <100>;
21*5f62a964SEmmanuel Vadot		default-brightness-level = <100>;
22*5f62a964SEmmanuel Vadot	};
23*5f62a964SEmmanuel Vadot
24*5f62a964SEmmanuel Vadot	panel {
25*5f62a964SEmmanuel Vadot		compatible = "jenson,bl-jt60050-01a", "panel-lvds";
26*5f62a964SEmmanuel Vadot		backlight = <&backlight>;
27*5f62a964SEmmanuel Vadot		data-mapping = "vesa-24";
28*5f62a964SEmmanuel Vadot		enable-gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
29*5f62a964SEmmanuel Vadot		power-supply = <&reg_vcc_panel>;
30*5f62a964SEmmanuel Vadot		height-mm = <86>;
31*5f62a964SEmmanuel Vadot		width-mm = <154>;
32*5f62a964SEmmanuel Vadot
33*5f62a964SEmmanuel Vadot		panel-timing {
34*5f62a964SEmmanuel Vadot			clock-frequency = <50000000>;
35*5f62a964SEmmanuel Vadot			hactive = <1024>;
36*5f62a964SEmmanuel Vadot			hback-porch = <160>;
37*5f62a964SEmmanuel Vadot			hfront-porch = <160>;
38*5f62a964SEmmanuel Vadot			hsync-len = <1>;
39*5f62a964SEmmanuel Vadot			vactive = <600>;
40*5f62a964SEmmanuel Vadot			vback-porch = <23>;
41*5f62a964SEmmanuel Vadot			vfront-porch = <12>;
42*5f62a964SEmmanuel Vadot			vsync-len = <1>;
43*5f62a964SEmmanuel Vadot		};
44*5f62a964SEmmanuel Vadot
45*5f62a964SEmmanuel Vadot		port {
46*5f62a964SEmmanuel Vadot			panel_in_lvds0: endpoint {
47*5f62a964SEmmanuel Vadot				remote-endpoint = <&ldb_lvds_ch0>;
48*5f62a964SEmmanuel Vadot			};
49*5f62a964SEmmanuel Vadot		};
50*5f62a964SEmmanuel Vadot	};
51*5f62a964SEmmanuel Vadot};
52*5f62a964SEmmanuel Vadot
53*5f62a964SEmmanuel Vadot&gpio4 {
54*5f62a964SEmmanuel Vadot	pinctrl-names = "default";
55*5f62a964SEmmanuel Vadot	pinctrl-0 = <&pinctrl_gpio4>, <&pinctrl_panel_stby>;
56*5f62a964SEmmanuel Vadot
57*5f62a964SEmmanuel Vadot	panel-rst-hog {
58*5f62a964SEmmanuel Vadot		gpio-hog;
59*5f62a964SEmmanuel Vadot		gpios = <21 GPIO_ACTIVE_HIGH>;
60*5f62a964SEmmanuel Vadot		output-high;
61*5f62a964SEmmanuel Vadot		line-name = "panel-reset";
62*5f62a964SEmmanuel Vadot	};
63*5f62a964SEmmanuel Vadot
64*5f62a964SEmmanuel Vadot	panel-stby-hog {
65*5f62a964SEmmanuel Vadot		gpio-hog;
66*5f62a964SEmmanuel Vadot		gpios = <28 GPIO_ACTIVE_HIGH>;
67*5f62a964SEmmanuel Vadot		output-high;
68*5f62a964SEmmanuel Vadot		line-name = "panel-standby";
69*5f62a964SEmmanuel Vadot	};
70*5f62a964SEmmanuel Vadot};
71*5f62a964SEmmanuel Vadot
72*5f62a964SEmmanuel Vadot&i2c1 {
73*5f62a964SEmmanuel Vadot	#address-cells = <1>;
74*5f62a964SEmmanuel Vadot	#size-cells = <0>;
75*5f62a964SEmmanuel Vadot	status = "okay";
76*5f62a964SEmmanuel Vadot
77*5f62a964SEmmanuel Vadot	touchscreen@5d {
78*5f62a964SEmmanuel Vadot		compatible = "goodix,gt928";
79*5f62a964SEmmanuel Vadot		reg = <0x5d>;
80*5f62a964SEmmanuel Vadot		interrupt-parent = <&gpio1>;
81*5f62a964SEmmanuel Vadot		interrupts = <6 8>;
82*5f62a964SEmmanuel Vadot		irq-gpios = <&gpio1 6 0>;
83*5f62a964SEmmanuel Vadot		AVDD28-supply = <&reg_vcc_panel>;
84*5f62a964SEmmanuel Vadot		VDDIO-supply = <&reg_vcc_panel>;
85*5f62a964SEmmanuel Vadot		reset-gpios = <&gpio1 7 0>;
86*5f62a964SEmmanuel Vadot	};
87*5f62a964SEmmanuel Vadot};
88*5f62a964SEmmanuel Vadot
89*5f62a964SEmmanuel Vadot&lcdif2 {
90*5f62a964SEmmanuel Vadot	status = "okay";
91*5f62a964SEmmanuel Vadot};
92*5f62a964SEmmanuel Vadot
93*5f62a964SEmmanuel Vadot&ldb_lvds_ch0 {
94*5f62a964SEmmanuel Vadot	remote-endpoint = <&panel_in_lvds0>;
95*5f62a964SEmmanuel Vadot};
96*5f62a964SEmmanuel Vadot
97*5f62a964SEmmanuel Vadot&lvds_bridge {
98*5f62a964SEmmanuel Vadot	status = "okay";
99*5f62a964SEmmanuel Vadot};
100*5f62a964SEmmanuel Vadot
101*5f62a964SEmmanuel Vadot&pwm1 {
102*5f62a964SEmmanuel Vadot	status = "okay";
103*5f62a964SEmmanuel Vadot};
104*5f62a964SEmmanuel Vadot
105*5f62a964SEmmanuel Vadot&iomuxc {
106*5f62a964SEmmanuel Vadot	pinctrl_panel_stby: panelstbygrp {
107*5f62a964SEmmanuel Vadot		fsl,pins = <
108*5f62a964SEmmanuel Vadot			MX8MP_IOMUXC_SAI3_RXFS__GPIO4_IO28		0x19
109*5f62a964SEmmanuel Vadot		>;
110*5f62a964SEmmanuel Vadot	};
111*5f62a964SEmmanuel Vadot};
112