Message ID | 20250415-initial_display-v5-7-f309f8d71499@gocontroll.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | arm64: dts: freescale: Add support for the GOcontroll Moduline Display | expand |
On Tue, Apr 15, 2025 at 08:54:30AM +0200, Maud Spierings via B4 Relay wrote: > From: Maud Spierings <maudspierings@gocontroll.com> > > Add the BOE av101hdt-a10 variant of the Moduline Display, this variant > comes with a 10.1 1280x720 display with a touchscreen (not working in > mainline). > > Signed-off-by: Maud Spierings <maudspierings@gocontroll.com> Reviewed-by: Frank Li <Frank.Li@nxp.com> > > --- > Currently the backlight driver is not available, this will be upstreamed > in a future patch series. It is a Maxim max25014atg. > > The touchscreen has a Cypress CYAT81658-64AS48 controller which as far as > I know is not supported upstream, the driver we currently use for this is > a mess and I doubt we will be able to get it in an upstreamable state. > --- > arch/arm64/boot/dts/freescale/Makefile | 5 ++ > ...x8p-ml81-moduline-display-106-av101hdt-a10.dtso | 94 ++++++++++++++++++++++ > 2 files changed, 99 insertions(+) > > diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile > index b6d3fe26d621234ab84353165d20af9d2536f839..ca3255aa9e18187b33d54c836992aca5dd5d0465 100644 > --- a/arch/arm64/boot/dts/freescale/Makefile > +++ b/arch/arm64/boot/dts/freescale/Makefile > @@ -214,6 +214,11 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-skov-revc-bd500.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-skov-revc-tian-g07017.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mp-ras314.dtb > + > +imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10-dtbs += imx8mp-tx8p-ml81-moduline-display-106.dtb \ > + imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtbo > +dtb-$(CONFIG_ARCH_MXC) += imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtb > + > dtb-$(CONFIG_ARCH_MXC) += imx8mp-var-som-symphony.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw71xx-2x.dtb > dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw72xx-2x.dtb > diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtso b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtso > new file mode 100644 > index 0000000000000000000000000000000000000000..b3bbbd69f671493c809bbf043807a22adda5024a > --- /dev/null > +++ b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtso > @@ -0,0 +1,94 @@ > +// SPDX-License-Identifier: (GPL-2.0 OR MIT) > +/* > + * Copyright 2025 GOcontroll B.V. > + * Author: Maud Spierings <maudspierings@gocontroll.com> > + */ > + > +#include <dt-bindings/clock/imx8mp-clock.h> > +#include <dt-bindings/gpio/gpio.h> > + > +#include "imx8mp-pinfunc.h" > + > +/dts-v1/; > +/plugin/; > + > +&{/} { > + model = "GOcontroll Moduline Display with BOE av101hdt-a10 display"; > + > + panel { > + compatible = "boe,av101hdt-a10"; > + enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; > + pinctrl-0 = <&pinctrl_panel>; > + pinctrl-names = "default"; > + power-supply = <®_3v3_per>; > + reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; > + > + port { > + panel_lvds_in: endpoint { > + remote-endpoint = <&ldb_lvds_ch0>; > + }; > + }; > + }; > + > + reg_vbus: regulator-vbus { > + compatible = "regulator-fixed"; > + power-supply = <®_6v4>; > + regulator-always-on; > + regulator-max-microvolt = <5000000>; > + regulator-min-microvolt = <5000000>; > + regulator-name = "usb-c-vbus"; > + }; > +}; > + > +&iomuxc { > + pinctrl_panel: panelgrp { > + fsl,pins = < > + MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07 > + MX8MP_DSE_X1 > + MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 > + MX8MP_DSE_X1 > + >; > + }; > +}; > + > +&lcdif2 { > + status = "okay"; > +}; > + > +&lvds_bridge { > + assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>, <&clk IMX8MP_VIDEO_PLL1>; > + /* IMX8MP_VIDEO_PLL1 = IMX8MP_CLK_MEDIA_DISP2_PIX * 2 * 7 */ > + assigned-clock-rates = <0>, <1054620000>; > + status = "okay"; > + > + ports { > + port@1 { > + ldb_lvds_ch0: endpoint { > + remote-endpoint = <&panel_lvds_in>; > + }; > + }; > + }; > +}; > + > +&usb_dwc3_1 { > + dr_mode = "host"; > + > + connector { > + compatible = "usb-c-connector"; > + data-role = "host"; > + pd-disable; > + vbus-supply = <®_vbus>; > + > + port { > + high_speed_ep: endpoint { > + remote-endpoint = <&usb1_hs_ep>; > + }; > + }; > + }; > + > + port { > + usb1_hs_ep: endpoint { > + remote-endpoint = <&high_speed_ep>; > + }; > + }; > +}; > > -- > 2.49.0 > >
diff --git a/arch/arm64/boot/dts/freescale/Makefile b/arch/arm64/boot/dts/freescale/Makefile index b6d3fe26d621234ab84353165d20af9d2536f839..ca3255aa9e18187b33d54c836992aca5dd5d0465 100644 --- a/arch/arm64/boot/dts/freescale/Makefile +++ b/arch/arm64/boot/dts/freescale/Makefile @@ -214,6 +214,11 @@ dtb-$(CONFIG_ARCH_MXC) += imx8mp-skov-revc-bd500.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-skov-revc-tian-g07017.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mpxl.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-tqma8mpql-mba8mp-ras314.dtb + +imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10-dtbs += imx8mp-tx8p-ml81-moduline-display-106.dtb \ + imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtbo +dtb-$(CONFIG_ARCH_MXC) += imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtb + dtb-$(CONFIG_ARCH_MXC) += imx8mp-var-som-symphony.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw71xx-2x.dtb dtb-$(CONFIG_ARCH_MXC) += imx8mp-venice-gw72xx-2x.dtb diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtso b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtso new file mode 100644 index 0000000000000000000000000000000000000000..b3bbbd69f671493c809bbf043807a22adda5024a --- /dev/null +++ b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dtso @@ -0,0 +1,94 @@ +// SPDX-License-Identifier: (GPL-2.0 OR MIT) +/* + * Copyright 2025 GOcontroll B.V. + * Author: Maud Spierings <maudspierings@gocontroll.com> + */ + +#include <dt-bindings/clock/imx8mp-clock.h> +#include <dt-bindings/gpio/gpio.h> + +#include "imx8mp-pinfunc.h" + +/dts-v1/; +/plugin/; + +&{/} { + model = "GOcontroll Moduline Display with BOE av101hdt-a10 display"; + + panel { + compatible = "boe,av101hdt-a10"; + enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>; + pinctrl-0 = <&pinctrl_panel>; + pinctrl-names = "default"; + power-supply = <®_3v3_per>; + reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>; + + port { + panel_lvds_in: endpoint { + remote-endpoint = <&ldb_lvds_ch0>; + }; + }; + }; + + reg_vbus: regulator-vbus { + compatible = "regulator-fixed"; + power-supply = <®_6v4>; + regulator-always-on; + regulator-max-microvolt = <5000000>; + regulator-min-microvolt = <5000000>; + regulator-name = "usb-c-vbus"; + }; +}; + +&iomuxc { + pinctrl_panel: panelgrp { + fsl,pins = < + MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07 + MX8MP_DSE_X1 + MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 + MX8MP_DSE_X1 + >; + }; +}; + +&lcdif2 { + status = "okay"; +}; + +&lvds_bridge { + assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>, <&clk IMX8MP_VIDEO_PLL1>; + /* IMX8MP_VIDEO_PLL1 = IMX8MP_CLK_MEDIA_DISP2_PIX * 2 * 7 */ + assigned-clock-rates = <0>, <1054620000>; + status = "okay"; + + ports { + port@1 { + ldb_lvds_ch0: endpoint { + remote-endpoint = <&panel_lvds_in>; + }; + }; + }; +}; + +&usb_dwc3_1 { + dr_mode = "host"; + + connector { + compatible = "usb-c-connector"; + data-role = "host"; + pd-disable; + vbus-supply = <®_vbus>; + + port { + high_speed_ep: endpoint { + remote-endpoint = <&usb1_hs_ep>; + }; + }; + }; + + port { + usb1_hs_ep: endpoint { + remote-endpoint = <&high_speed_ep>; + }; + }; +};