mirror of
https://github.com/torvalds/linux.git
synced 2026-07-31 03:27:03 +02:00
arm64: dts: imx8mp-hummingboard-iiot: add dt overlays for muxable ports
The SolidRun i.MX8MP HummingBoard IIoT has a variety of connectors, and configurable ports: - 2x RS232 - 2x RS485 - DSI Panel Connector - LVDS Panel Connector RS232 and RS485 each share a single UART from the SoC via a mux, which are configured from the base dts for RS232 by default. Provide addons for: 1. Reconfigure UART A from RS232 to RS485. 2. Reconfigure UART B from RS232 to RS485. 3. Configure DSI Connector for Winstar WJ70N3TYJHMNG0 Panel. 4. Configure LVDS Connector for Winstar WF70A8SYJHLNGA Panel. A variation of the base dtb is generated for each addon to ensure that make dtbs_check covers the resulting dtb, and applying overlay is tested during build. It is however expected that bootloader should apply any combination of addons based on runtime configuration. Signed-off-by: Josua Mayer <josua@solid-run.com> Signed-off-by: Frank Li <Frank.Li@nxp.com>
This commit is contained in:
parent
8da7bfdcda
commit
514a34d75b
|
|
@ -241,6 +241,18 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
|
|||
dtb-$(CONFIG_ARCH_MXC) += imx8mp-frdm.dtb
|
||||
DTC_FLAGS_imx8mp-hummingboard-iiot := -@
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-iiot.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-iiot-panel-dsi-WJ70N3TYJHMNG0.dtbo
|
||||
imx8mp-hummingboard-iiot-panel-dsi-WJ70N3TYJHMNG0-dtbs += imx8mp-hummingboard-iiot.dtb imx8mp-hummingboard-iiot-panel-dsi-WJ70N3TYJHMNG0.dtbo
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-iiot-panel-dsi-WJ70N3TYJHMNG0.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-iiot-panel-lvds-WF70A8SYJHLNGA.dtbo
|
||||
imx8mp-hummingboard-iiot-panel-lvds-WF70A8SYJHLNGA-dtbs += imx8mp-hummingboard-iiot.dtb imx8mp-hummingboard-iiot-panel-lvds-WF70A8SYJHLNGA.dtbo
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-iiot-panel-lvds-WF70A8SYJHLNGA.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-iiot-rs485-a.dtbo
|
||||
imx8mp-hummingboard-iiot-rs485-a-dtbs += imx8mp-hummingboard-iiot.dtb imx8mp-hummingboard-iiot-rs485-a.dtbo
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-iiot-rs485-a.dtb
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-iiot-rs485-b.dtbo
|
||||
imx8mp-hummingboard-iiot-rs485-b-dtbs += imx8mp-hummingboard-iiot.dtb imx8mp-hummingboard-iiot-rs485-b.dtbo
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-iiot-rs485-b.dtb
|
||||
DTC_FLAGS_imx8mp-hummingboard-mate := -@
|
||||
dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-mate.dtb
|
||||
DTC_FLAGS_imx8mp-hummingboard-pro := -@
|
||||
|
|
|
|||
|
|
@ -0,0 +1,67 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright 2025 Josua Mayer <josua@solid-run.com>
|
||||
*
|
||||
* Overlay for enabling HummingBoard IIoT MIPI-DSI connector
|
||||
* with Winstar WJ70N3TYJHMNG0 panel.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
&{/} {
|
||||
dsi_backlight: dsi-backlight {
|
||||
compatible = "gpio-backlight";
|
||||
gpios = <&tca6408_u48 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&i2c_dsi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
touchscreen@41 {
|
||||
compatible = "ilitek,ili2130";
|
||||
reg = <0x41>;
|
||||
interrupts-extended = <&tca6416_u21 13 IRQ_TYPE_LEVEL_LOW>;
|
||||
reset-gpios = <&tca6408_u48 6 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&lcdif1 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&mipi_dsi {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
samsung,esc-clock-frequency = <10000000>;
|
||||
status = "okay";
|
||||
|
||||
panel@0 {
|
||||
/* This is a Winstar panel, but the ronbo panel uses same controls. */
|
||||
compatible = "ronbo,rb070d30";
|
||||
reg = <0>;
|
||||
/* reset is active-low but driver inverts it internally */
|
||||
reset-gpios = <&tca6408_u48 1 GPIO_ACTIVE_HIGH>;
|
||||
backlight = <&dsi_backlight>;
|
||||
power-gpios = <&tca6408_u48 2 GPIO_ACTIVE_HIGH>;
|
||||
shlr-gpios = <&tca6408_u48 4 GPIO_ACTIVE_LOW>;
|
||||
updn-gpios = <&tca6408_u48 5 GPIO_ACTIVE_HIGH>;
|
||||
vcc-lcd-supply = <®_dsi_panel>;
|
||||
|
||||
port {
|
||||
panel_from_dsim: endpoint {
|
||||
remote-endpoint = <&mipi_dsi_out>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&mipi_dsi_out {
|
||||
data-lanes = <1 2 3 4>;
|
||||
remote-endpoint = <&panel_from_dsim>;
|
||||
};
|
||||
|
|
@ -0,0 +1,97 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright 2025 Josua Mayer <josua@solid-run.com>
|
||||
*
|
||||
* Overlay for enabling HummingBoard IIoT LVDS connector
|
||||
* with Winstar WF70A8SYJHLNGA panel.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
#include <dt-bindings/gpio/gpio.h>
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
&{/} {
|
||||
lvds_backlight: lvds-backlight {
|
||||
compatible = "gpio-backlight";
|
||||
gpios = <&tca6408_u37 3 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
|
||||
panel-lvds {
|
||||
compatible = "winstar,wf70a8syjhlnga", "panel-lvds";
|
||||
backlight = <&lvds_backlight>;
|
||||
data-mapping = "vesa-24";
|
||||
enable-gpios = <&tca6408_u37 2 GPIO_ACTIVE_HIGH>;
|
||||
height-mm = <86>;
|
||||
power-supply = <®_dsi_panel>;
|
||||
reset-gpios = <&tca6408_u37 1 GPIO_ACTIVE_HIGH>;
|
||||
width-mm = <154>;
|
||||
|
||||
panel-timing {
|
||||
/*
|
||||
* Note: NXP BSP hard-codes 74MHz clock in ldb driver:
|
||||
* drivers/gpu/drm/imx/imx8mp-ldb.c
|
||||
* SolidRun BSP carries patch.
|
||||
*/
|
||||
clock-frequency = <49500000>;
|
||||
de-active = <1>;
|
||||
hactive = <1024>;
|
||||
hback-porch = <144>;
|
||||
hfront-porch = <40>;
|
||||
hsync-active = <0>;
|
||||
hsync-len = <104>;
|
||||
vactive = <600>;
|
||||
vback-porch = <11>;
|
||||
vfront-porch = <3>;
|
||||
vsync-active = <1>;
|
||||
vsync-len = <10>;
|
||||
};
|
||||
|
||||
port {
|
||||
panel_from_lvds: endpoint {
|
||||
remote-endpoint = <&ldb_lvds_ch0>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
&i2c_lvds {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
touchscreen@41 {
|
||||
compatible = "ilitek,ili2130";
|
||||
reg = <0x41>;
|
||||
interrupts-extended = <&tca6416_u21 13 IRQ_TYPE_LEVEL_LOW>;
|
||||
reset-gpios = <&tca6408_u37 6 GPIO_ACTIVE_LOW>;
|
||||
};
|
||||
};
|
||||
|
||||
&lcdif2 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&ldb_lvds_ch0 {
|
||||
remote-endpoint = <&panel_from_lvds>;
|
||||
};
|
||||
|
||||
&lvds_bridge {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
&tca6408_u37 {
|
||||
lvds-lr-hog {
|
||||
gpios = <4 GPIO_ACTIVE_HIGH>;
|
||||
gpio-hog;
|
||||
line-name = "lvds-l/r";
|
||||
output-high;
|
||||
};
|
||||
|
||||
lvds-ud-hog {
|
||||
gpios = <5 GPIO_ACTIVE_HIGH>;
|
||||
gpio-hog;
|
||||
line-name = "lvds-u/d";
|
||||
output-high;
|
||||
};
|
||||
};
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright 2025 Josua Mayer <josua@solid-run.com>
|
||||
*
|
||||
* Overlay for enabling HummingBoard IIoT on-board RS485 Port A on connector J5004.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
&uart3 {
|
||||
linux,rs485-enabled-at-boot-time;
|
||||
};
|
||||
|
||||
&uart3_rs_232_485_mux {
|
||||
/* select rs485 */
|
||||
idle-state = <1>;
|
||||
};
|
||||
|
|
@ -0,0 +1,18 @@
|
|||
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
|
||||
/*
|
||||
* Copyright 2025 Josua Mayer <josua@solid-run.com>
|
||||
*
|
||||
* Overlay for enabling HummingBoard IIoT on-board RS485 Port B on connector J5004.
|
||||
*/
|
||||
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
|
||||
&uart4 {
|
||||
linux,rs485-enabled-at-boot-time;
|
||||
};
|
||||
|
||||
&uart4_rs_232_485_mux {
|
||||
/* select rs485 */
|
||||
idle-state = <1>;
|
||||
};
|
||||
Loading…
Reference in New Issue
Block a user