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 = <&reg_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 = <&reg_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#

Reply via email to