1*5f62a964SEmmanuel Vadot// SPDX-License-Identifier: GPL-2.0 2*5f62a964SEmmanuel Vadot/* 3*5f62a964SEmmanuel Vadot * Copyright (C) 2024 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 "imx8mm-pinfunc.h" 11*5f62a964SEmmanuel Vadot 12*5f62a964SEmmanuel Vadot&{/} { 13*5f62a964SEmmanuel Vadot compatible = "kontron,imx8mm-bl", "kontron,imx8mm-sl", "fsl,imx8mm"; 14*5f62a964SEmmanuel Vadot 15*5f62a964SEmmanuel Vadot backlight: backlight { 16*5f62a964SEmmanuel Vadot compatible = "pwm-backlight"; 17*5f62a964SEmmanuel Vadot pwms = <&pwm1 0 50000 0>; 18*5f62a964SEmmanuel Vadot brightness-levels = <0 100>; 19*5f62a964SEmmanuel Vadot num-interpolated-steps = <100>; 20*5f62a964SEmmanuel Vadot default-brightness-level = <100>; 21*5f62a964SEmmanuel Vadot }; 22*5f62a964SEmmanuel Vadot 23*5f62a964SEmmanuel Vadot panel { 24*5f62a964SEmmanuel Vadot compatible = "jenson,bl-jt60050-01a", "panel-lvds"; 25*5f62a964SEmmanuel Vadot pinctrl-names = "default"; 26*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_panel>; 27*5f62a964SEmmanuel Vadot backlight = <&backlight>; 28*5f62a964SEmmanuel Vadot data-mapping = "vesa-24"; 29*5f62a964SEmmanuel Vadot enable-gpios = <&gpio3 19 GPIO_ACTIVE_HIGH>; 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 = <51200000>; 35*5f62a964SEmmanuel Vadot hactive = <1024>; 36*5f62a964SEmmanuel Vadot vactive = <600>; 37*5f62a964SEmmanuel Vadot hsync-len = <1>; 38*5f62a964SEmmanuel Vadot hfront-porch = <160>; 39*5f62a964SEmmanuel Vadot hback-porch = <160>; 40*5f62a964SEmmanuel Vadot vsync-len = <1>; 41*5f62a964SEmmanuel Vadot vfront-porch = <12>; 42*5f62a964SEmmanuel Vadot vback-porch = <23>; 43*5f62a964SEmmanuel Vadot }; 44*5f62a964SEmmanuel Vadot 45*5f62a964SEmmanuel Vadot port { 46*5f62a964SEmmanuel Vadot panel_out_bridge: endpoint { 47*5f62a964SEmmanuel Vadot remote-endpoint = <&bridge_out_panel>; 48*5f62a964SEmmanuel Vadot }; 49*5f62a964SEmmanuel Vadot }; 50*5f62a964SEmmanuel Vadot }; 51*5f62a964SEmmanuel Vadot}; 52*5f62a964SEmmanuel Vadot 53*5f62a964SEmmanuel Vadot&dsi_mux_sel_hdmi { 54*5f62a964SEmmanuel Vadot status = "disabled"; 55*5f62a964SEmmanuel Vadot}; 56*5f62a964SEmmanuel Vadot 57*5f62a964SEmmanuel Vadot&dsi_mux_sel_lvds { 58*5f62a964SEmmanuel Vadot status = "okay"; 59*5f62a964SEmmanuel Vadot}; 60*5f62a964SEmmanuel Vadot 61*5f62a964SEmmanuel Vadot&mipi_dsi_out { 62*5f62a964SEmmanuel Vadot remote-endpoint = <&bridge_in_dsi_lvds>; 63*5f62a964SEmmanuel Vadot}; 64*5f62a964SEmmanuel Vadot 65*5f62a964SEmmanuel Vadot&gpio3 { 66*5f62a964SEmmanuel Vadot pinctrl-names = "default"; 67*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_gpio3>; 68*5f62a964SEmmanuel Vadot 69*5f62a964SEmmanuel Vadot panel-rst-hog { 70*5f62a964SEmmanuel Vadot gpio-hog; 71*5f62a964SEmmanuel Vadot gpios = <20 GPIO_ACTIVE_HIGH>; 72*5f62a964SEmmanuel Vadot output-high; 73*5f62a964SEmmanuel Vadot line-name = "panel-reset"; 74*5f62a964SEmmanuel Vadot }; 75*5f62a964SEmmanuel Vadot 76*5f62a964SEmmanuel Vadot panel-stby-hog { 77*5f62a964SEmmanuel Vadot gpio-hog; 78*5f62a964SEmmanuel Vadot gpios = <21 GPIO_ACTIVE_HIGH>; 79*5f62a964SEmmanuel Vadot output-high; 80*5f62a964SEmmanuel Vadot line-name = "panel-standby"; 81*5f62a964SEmmanuel Vadot }; 82*5f62a964SEmmanuel Vadot 83*5f62a964SEmmanuel Vadot panel-hinv-hog { 84*5f62a964SEmmanuel Vadot gpio-hog; 85*5f62a964SEmmanuel Vadot gpios = <24 GPIO_ACTIVE_HIGH>; 86*5f62a964SEmmanuel Vadot output-high; 87*5f62a964SEmmanuel Vadot line-name = "panel-horizontal-invert"; 88*5f62a964SEmmanuel Vadot }; 89*5f62a964SEmmanuel Vadot 90*5f62a964SEmmanuel Vadot panel-vinv-hog { 91*5f62a964SEmmanuel Vadot gpio-hog; 92*5f62a964SEmmanuel Vadot gpios = <25 GPIO_ACTIVE_HIGH>; 93*5f62a964SEmmanuel Vadot output-low; 94*5f62a964SEmmanuel Vadot line-name = "panel-vertical-invert"; 95*5f62a964SEmmanuel Vadot }; 96*5f62a964SEmmanuel Vadot}; 97*5f62a964SEmmanuel Vadot 98*5f62a964SEmmanuel Vadot&hdmi { 99*5f62a964SEmmanuel Vadot status = "disabled"; 100*5f62a964SEmmanuel Vadot}; 101*5f62a964SEmmanuel Vadot 102*5f62a964SEmmanuel Vadot&i2c2 { 103*5f62a964SEmmanuel Vadot clock-frequency = <400000>; 104*5f62a964SEmmanuel Vadot pinctrl-names = "default"; 105*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_i2c2>; 106*5f62a964SEmmanuel Vadot #address-cells = <1>; 107*5f62a964SEmmanuel Vadot #size-cells = <0>; 108*5f62a964SEmmanuel Vadot status = "okay"; 109*5f62a964SEmmanuel Vadot 110*5f62a964SEmmanuel Vadot touchscreen@5d { 111*5f62a964SEmmanuel Vadot compatible = "goodix,gt928"; 112*5f62a964SEmmanuel Vadot reg = <0x5d>; 113*5f62a964SEmmanuel Vadot pinctrl-names = "default"; 114*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_touch>; 115*5f62a964SEmmanuel Vadot interrupt-parent = <&gpio3>; 116*5f62a964SEmmanuel Vadot interrupts = <22 8>; 117*5f62a964SEmmanuel Vadot reset-gpios = <&gpio3 23 0>; 118*5f62a964SEmmanuel Vadot irq-gpios = <&gpio3 22 0>; 119*5f62a964SEmmanuel Vadot }; 120*5f62a964SEmmanuel Vadot}; 121*5f62a964SEmmanuel Vadot 122*5f62a964SEmmanuel Vadot&lvds { 123*5f62a964SEmmanuel Vadot status = "okay"; 124*5f62a964SEmmanuel Vadot 125*5f62a964SEmmanuel Vadot ports { 126*5f62a964SEmmanuel Vadot #address-cells = <1>; 127*5f62a964SEmmanuel Vadot #size-cells = <0>; 128*5f62a964SEmmanuel Vadot 129*5f62a964SEmmanuel Vadot port@0 { 130*5f62a964SEmmanuel Vadot reg = <0>; 131*5f62a964SEmmanuel Vadot 132*5f62a964SEmmanuel Vadot bridge_in_dsi_lvds: endpoint { 133*5f62a964SEmmanuel Vadot remote-endpoint = <&mipi_dsi_out>; 134*5f62a964SEmmanuel Vadot data-lanes = <1 2>; 135*5f62a964SEmmanuel Vadot }; 136*5f62a964SEmmanuel Vadot }; 137*5f62a964SEmmanuel Vadot 138*5f62a964SEmmanuel Vadot port@2 { 139*5f62a964SEmmanuel Vadot reg = <2>; 140*5f62a964SEmmanuel Vadot 141*5f62a964SEmmanuel Vadot bridge_out_panel: endpoint { 142*5f62a964SEmmanuel Vadot remote-endpoint = <&panel_out_bridge>; 143*5f62a964SEmmanuel Vadot }; 144*5f62a964SEmmanuel Vadot }; 145*5f62a964SEmmanuel Vadot }; 146*5f62a964SEmmanuel Vadot}; 147*5f62a964SEmmanuel Vadot 148*5f62a964SEmmanuel Vadot&pwm1 { 149*5f62a964SEmmanuel Vadot pinctrl-names = "default"; 150*5f62a964SEmmanuel Vadot pinctrl-0 = <&pinctrl_pwm1>; 151*5f62a964SEmmanuel Vadot status = "okay"; 152*5f62a964SEmmanuel Vadot}; 153*5f62a964SEmmanuel Vadot 154*5f62a964SEmmanuel Vadot&iomuxc { 155*5f62a964SEmmanuel Vadot pinctrl_gpio3: gpio3grp { 156*5f62a964SEmmanuel Vadot fsl,pins = < 157*5f62a964SEmmanuel Vadot MX8MM_IOMUXC_SAI5_RXD3_GPIO3_IO24 0x19 158*5f62a964SEmmanuel Vadot MX8MM_IOMUXC_SAI5_RXC_GPIO3_IO20 0x19 159*5f62a964SEmmanuel Vadot MX8MM_IOMUXC_SAI5_RXD0_GPIO3_IO21 0x19 160*5f62a964SEmmanuel Vadot MX8MM_IOMUXC_SAI5_MCLK_GPIO3_IO25 0x19 161*5f62a964SEmmanuel Vadot >; 162*5f62a964SEmmanuel Vadot }; 163*5f62a964SEmmanuel Vadot 164*5f62a964SEmmanuel Vadot pinctrl_i2c2: i2c2grp { 165*5f62a964SEmmanuel Vadot fsl,pins = < 166*5f62a964SEmmanuel Vadot MX8MM_IOMUXC_I2C2_SCL_I2C2_SCL 0x40000083 167*5f62a964SEmmanuel Vadot MX8MM_IOMUXC_I2C2_SDA_I2C2_SDA 0x40000083 168*5f62a964SEmmanuel Vadot >; 169*5f62a964SEmmanuel Vadot }; 170*5f62a964SEmmanuel Vadot 171*5f62a964SEmmanuel Vadot pinctrl_panel: panelgrp { 172*5f62a964SEmmanuel Vadot fsl,pins = < 173*5f62a964SEmmanuel Vadot MX8MM_IOMUXC_SAI5_RXFS_GPIO3_IO19 0x19 174*5f62a964SEmmanuel Vadot >; 175*5f62a964SEmmanuel Vadot }; 176*5f62a964SEmmanuel Vadot 177*5f62a964SEmmanuel Vadot pinctrl_pwm1: pwm1grp { 178*5f62a964SEmmanuel Vadot fsl,pins = < 179*5f62a964SEmmanuel Vadot MX8MM_IOMUXC_SPDIF_EXT_CLK_PWM1_OUT 0x6 180*5f62a964SEmmanuel Vadot >; 181*5f62a964SEmmanuel Vadot }; 182*5f62a964SEmmanuel Vadot 183*5f62a964SEmmanuel Vadot pinctrl_touch: touchgrp { 184*5f62a964SEmmanuel Vadot fsl,pins = < 185*5f62a964SEmmanuel Vadot MX8MM_IOMUXC_SAI5_RXD1_GPIO3_IO22 0x19 186*5f62a964SEmmanuel Vadot MX8MM_IOMUXC_SAI5_RXD2_GPIO3_IO23 0x19 187*5f62a964SEmmanuel Vadot >; 188*5f62a964SEmmanuel Vadot }; 189*5f62a964SEmmanuel Vadot}; 190