Am 27.10.25 um 18:48 schrieb Josua Mayer:
> Add description for the SolidRun i.MX8MP HummingBoard IIoT.
> The board is a new design around the i.MX8MP System on Module, not
> sharing much with previous HummingBoards.
>
> It comes with some common features:
> - 3x USB-3.0 Type A connector
> - 2x 1Gbps RJ45 Ethernet
> - USB Type-C Console Port
> - microSD connector
> - RTC with backup battery
> - RGB Status LED
> - 1x M.2 M-Key connector with PCI-E Gen. 3 x1
> - 1x M.2 B-Key connector with USB-2.0/3.0 + SIM card holder
> - 1x LVDS Display Connector
> - 1x DSI Display Connector
> - GPIO header
> - 2x RS232/RS485 ports (configurable)
> - 2x CAN
>
> In addition there is a board-to-board expansion connector to support
> custom daughter boards with access to SPI, a range of GPIOs and -
> notably - CAN and UART. Both 2x CAN and 2x UART can be muxed either
> to this b2b connector, or a termianl block connector on the base board.
>
> The routing choice for UART and CAN is expressed through gpio
> mux-controllers in DT and can be changed by applying dtb addons.
>
> Four dtb addons are provided:
>
> - dsi panel Winstar WJ70N3TYJHMNG0
> - lvds panel Winstar WF70A8SYJHLNGA
> - RS485 on UART port "A" (default rs232)
> - RS485 on UART port "B" (default rs232)
>
> Signed-off-by: Josua Mayer <[email protected]>
> ---
> arch/arm64/boot/dts/freescale/Makefile | 6 +
> ...hummingboard-iiot-panel-dsi-WJ70N3TYJHMNG0.dtso | 70 ++
> ...ummingboard-iiot-panel-lvds-WF70A8SYJHLNGA.dtso | 105 +++
> .../imx8mp-hummingboard-iiot-rs485-a.dtso | 18 +
> .../imx8mp-hummingboard-iiot-rs485-b.dtso | 18 +
> .../dts/freescale/imx8mp-hummingboard-iiot.dts | 710
> +++++++++++++++++++++
> 6 files changed, 927 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/Makefile
> b/arch/arm64/boot/dts/freescale/Makefile
> index 8bda6fb0ff9c1..d414d0efe5e74 100644
> --- a/arch/arm64/boot/dts/freescale/Makefile
> +++ b/arch/arm64/boot/dts/freescale/Makefile
> @@ -207,6 +207,12 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-pdk3.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-dhcom-picoitx.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-edm-g-wb.dtb
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-evk.dtb
> +dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-iiot.dtb
> +DTC_FLAGS_imx8mp-hummingboard-iiot := -@
> +dtb-$(CONFIG_ARCH_MXC) +=
> imx8mp-hummingboard-iiot-panel-dsi-WJ70N3TYJHMNG0.dtbo
> +dtb-$(CONFIG_ARCH_MXC) +=
> imx8mp-hummingboard-iiot-panel-lvds-WF70A8SYJHLNGA.dtbo
> +dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-iiot-rs485-a.dtbo
> +dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-iiot-rs485-b.dtbo
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-mate.dtb
> DTC_FLAGS_imx8mp-hummingboard-mate := -@
> dtb-$(CONFIG_ARCH_MXC) += imx8mp-hummingboard-pro.dtb
> diff --git
> a/arch/arm64/boot/dts/freescale/imx8mp-hummingboard-iiot-panel-dsi-WJ70N3TYJHMNG0.dtso
>
> b/arch/arm64/boot/dts/freescale/imx8mp-hummingboard-iiot-panel-dsi-WJ70N3TYJHMNG0.dtso
> new file mode 100644
> index 0000000000000..b3cf66837c577
> --- /dev/null
> +++
> b/arch/arm64/boot/dts/freescale/imx8mp-hummingboard-iiot-panel-dsi-WJ70N3TYJHMNG0.dtso
> @@ -0,0 +1,70 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright 2025 Josua Mayer <[email protected]>
> + *
> + * 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>;
> + reset-gpios = <&tca6408_u48 6 GPIO_ACTIVE_LOW>;
> + interrupts-extended = <&tca6416_u21 13 IRQ_TYPE_LEVEL_LOW>;
> + };
> +};
> +
> +&lcdif1 {
> + status = "okay";
> +};
> +
> +&mipi_dsi {
> + samsung,esc-clock-frequency = <10000000>;
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "okay";
> +
> + panel@0 {
> + /* This is a Winstar panel, but the ronbo panel uses same
> controls. */
> + compatible = "ronbo,rb070d30";
> + reg = <0>;
> + vcc-lcd-supply = <®_dsi_panel>;
> + power-gpios = <&tca6408_u48 2 GPIO_ACTIVE_HIGH>;
> + /* reset is active-low but driver inverts it internally */
> + reset-gpios = <&tca6408_u48 1 GPIO_ACTIVE_HIGH>;
> + updn-gpios = <&tca6408_u48 5 GPIO_ACTIVE_HIGH>;
> + shlr-gpios = <&tca6408_u48 4 GPIO_ACTIVE_LOW>;
> + backlight = <&dsi_backlight>;
> +
> + port {
> + panel_from_dsim: endpoint {
> + data-lanes = <1 2 3 4>;
> + remote-endpoint = <&dsim_to_panel>;
> + };
> + };
> + };
> +
> + port@1 {
> + dsim_to_panel: endpoint {
> + remote-endpoint = <&panel_from_dsim>;
> + attach-bridge;
> + };
> + };
> +};
> diff --git
> a/arch/arm64/boot/dts/freescale/imx8mp-hummingboard-iiot-panel-lvds-WF70A8SYJHLNGA.dtso
>
> b/arch/arm64/boot/dts/freescale/imx8mp-hummingboard-iiot-panel-lvds-WF70A8SYJHLNGA.dtso
> new file mode 100644
> index 0000000000000..90674f9871020
> --- /dev/null
> +++
> b/arch/arm64/boot/dts/freescale/imx8mp-hummingboard-iiot-panel-lvds-WF70A8SYJHLNGA.dtso
> @@ -0,0 +1,105 @@
> +// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
> +/*
> + * Copyright 2025 Josua Mayer <[email protected]>
> + *
> + * 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 = "panel-lvds";
> + backlight = <&lvds_backlight>;
> + power-supply = <®_dsi_panel>;
> + enable-gpios = <&tca6408_u37 2 GPIO_ACTIVE_HIGH>;
> + reset-gpios = <&tca6408_u37 1 GPIO_ACTIVE_HIGH>;
> + data-mapping = "vesa-24";
> + width-mm = <154>;
> + height-mm = <86>;
> +
> + 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>;
> + hactive = <1024>;
> + vactive = <600>;
> + hfront-porch = <40>;
> + hback-porch = <144>;
> + hsync-len = <104>;
> + hsync-active = <0>;
> + vfront-porch = <3>;
> + vback-porch = <11>;
> + vsync-len = <10>;
> + vsync-active = <1>;
> + de-active = <1>;
> + };
> +
> + port {
> + panel_from_lvds: endpoint {
> + remote-endpoint = <&lvds_ch0_out>;
> + };
> + };
> + };
> +};
> +
> +&i2c_lvds {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + touchscreen@41 {
> + compatible = "ilitek,ili2130";
> + reg = <0x41>;
> + reset-gpios = <&tca6408_u37 6 GPIO_ACTIVE_LOW>;
> + interrupts-extended = <&tca6416_u21 13 IRQ_TYPE_LEVEL_LOW>;
> + };
> +};
> +
> +&lcdif2 {
> + status = "okay";
> +};
> +
> +&lvds_bridge {
> + status = "okay";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "okay";
> +
> + port@1 {
> + lvds_ch0_out: endpoint {
> + remote-endpoint = <&panel_from_lvds>;
> + };
> + };
> + };
> +};
> +
> +&tca6408_u37 {
> + lvds-lr-hog {
> + gpio-hog;
> + gpios = <4 GPIO_ACTIVE_HIGH>;
> + output-high;
> + line-name = "lvds-l/r";
> + };
> +
> + lvds-ud-hog {
> + gpio-hog;
> + gpios = <5 GPIO_ACTIVE_HIGH>;
> + output-high;
> + line-name = "lvds-u/d";
> + };
> +};
Because I have not added any Makefile targets applying the dbo's to dtb,
make dtbs_check is not checking them ...
There are some failing checks that I will resolve:
/opt/workspace/linux/arch/arm64/boot/dts/freescale/imx8mp-hummingboard-iiot-panel-dsi-WJ70N3TYJHMNG0.dtb:
panel@0: port:endpoint: Unevaluated properties are not allowed ('data-lanes'
was unexpected)
from schema $id:
http://devicetree.org/schemas/display/panel/ronbo,rb070d30.yaml#
/opt/workspace/linux/arch/arm64/boot/dts/freescale/imx8mp-hummingboard-iiot-panel-lvds-WF70A8SYJHLNGA.dtb:
panel-lvds: compatible:0: 'panel-lvds' is not one of ['admatec,9904379',
'ampire,amp19201200b5tzqw-t03', 'auo,b101ew05', 'auo,g084sn05',
'chunghwa,claa070wp03xg', 'edt,etml0700z8dha', 'edt,etml0700z9ndha',
'hannstar,hsd101pww2', 'hydis,hv070wx2-1e0', 'jenson,bl-jt60050-01a',
'tbs,a711-panel']
from schema $id:
http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
/opt/workspace/linux/arch/arm64/boot/dts/freescale/imx8mp-hummingboard-iiot-panel-lvds-WF70A8SYJHLNGA.dtb:
panel-lvds: compatible: ['panel-lvds'] is too short
from schema $id:
http://devicetree.org/schemas/display/panel/panel-lvds.yaml#
/opt/workspace/linux/arch/arm64/boot/dts/freescale/imx8mp-hummingboard-iiot-panel-lvds-WF70A8SYJHLNGA.dtb:
panel-lvds: Unevaluated properties are not allowed ('compatible' was
unexpected)
from schema $id:
http://devicetree.org/schemas/display/panel/panel-lvds.yaml#