diff mbox series

[v3,7/8] arm64: dts: freescale: Add the BOE av101hdt-a10 variant of the Moduline Display

Message ID 20250327-initial_display-v3-7-4e89ea1676ab@gocontroll.com (mailing list archive)
State New
Headers show
Series arm64: dts: freescale: Add support for the GOcontroll Moduline Display | expand

Commit Message

Maud Spierings | GOcontroll March 27, 2025, 3:52 p.m. UTC
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>

---
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.
---
 ...tx8p-ml81-moduline-display-106-av101hdt-a10.dts | 100 +++++++++++++++++++++
 1 file changed, 100 insertions(+)

Comments

Frank Li March 27, 2025, 4:31 p.m. UTC | #1
On Thu, Mar 27, 2025 at 04:52:42PM +0100, 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>
>
> ---
> 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.
> ---
>  ...tx8p-ml81-moduline-display-106-av101hdt-a10.dts | 100 +++++++++++++++++++++
>  1 file changed, 100 insertions(+)
>
> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dts b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dts
> new file mode 100644
> index 0000000000000000000000000000000000000000..1917e22001a1815a6540f00cf039ff352801cda8
> --- /dev/null
> +++ b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dts

why not use dt overlay to handle difference dsplay module.

Frank

> @@ -0,0 +1,100 @@
> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> +/*
> + * Copyright 2025 GOcontroll B.V.
> + * Author: Maud Spierings <maudspierings@gocontroll.com>
> + */
> +
> +/dts-v1/;
> +
> +#include "imx8mp-tx8p-ml81-moduline-display-106.dtsi"
> +
> +/ {
> +	model = "GOcontroll Moduline Display with BOE av101hdt-a10 display";
> +
> +	panel {
> +		compatible = "boe,av101hdt-a10";
> +		pinctrl-names = "default";
> +		pinctrl-0 = <&pinctrl_panel>;
> +		enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
> +		reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
> +		power-supply = <&reg_3v3_per>;
> +
> +		port {
> +			panel_lvds_in: endpoint {
> +				remote-endpoint = <&ldb_lvds_ch0>;
> +			};
> +		};
> +	};
> +
> +	reg_vbus: regulator-vbus {
> +		compatible = "regulator-fixed";
> +		regulator-name = "usb-c-vbus";
> +		regulator-min-microvolt = <5000000>;
> +		regulator-max-microvolt = <5000000>;
> +		power-supply = <&reg_6v4>;
> +		regulator-always-on;
> +	};
> +};
> +
> +&lcdif2 {
> +	status = "okay";
> +};
> +
> +&usb3_1 {
> +	status = "okay";
> +};
> +
> +&usb3_phy1 {
> +	status = "okay";
> +};
> +
> +&usb_dwc3_1 {
> +	dr_mode = "host";
> +
> +	port {
> +		usb1_hs_ep: endpoint {
> +			remote-endpoint = <&high_speed_ep>;
> +		};
> +	};
> +
> +	connector {
> +		compatible = "usb-c-connector";
> +		pd-disable;
> +		data-role = "host";
> +		vbus-supply = <&reg_vbus>;
> +
> +		port {
> +			high_speed_ep: endpoint {
> +				remote-endpoint = <&usb1_hs_ep>;
> +			};
> +		};
> +	};
> +};
> +
> +&lvds_bridge {
> +	assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>,
> +	<&clk IMX8MP_VIDEO_PLL1>;

fix indentation.

> +	assigned-clock-parents = <&clk IMX8MP_VIDEO_PLL1_OUT>;
> +	/* 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>;
> +			};
> +		};
> +	};
> +};
> +
> +&iomuxc {
> +	pinctrl_panel: panelgrp {
> +		fsl,pins = <
> +			MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07 /* COM pin 157 */
> +			MX8MP_DSE_X1
> +			MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 /* COM pin 159 */
> +			MX8MP_DSE_X1
> +		>;
> +	};
> +};
>
> --
> 2.49.0
>
>
Maud Spierings | GOcontroll March 28, 2025, 7:37 a.m. UTC | #2
Sent: Thursday, March 27, 2025 5:31 PM
To: Maud Spierings | GOcontroll <maudspierings@gocontroll.com>
 
> On Thu, Mar 27, 2025 at 04:52:42PM +0100, 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>
>>
>> ---
>> 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.
>> ---
>>  ...tx8p-ml81-moduline-display-106-av101hdt-a10.dts | 100 +++++++++++++++++++++
>>  1 file changed, 100 insertions(+)
>>
>> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dts b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dts
>> new file mode 100644
>> index 0000000000000000000000000000000000000000..1917e22001a1815a6540f00cf039ff352801cda8
>> --- /dev/null
>> +++ b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dts
> 
> why not use dt overlay to handle difference dsplay module.
> 
> Frank

This may just be me not being very familiar with overlays, how they work
and when to use them. I guess the advantage is saving some spaces in not
having the base board dtsi copied in two dtbs on the target right?

I am still quite new to all of this, so any info on when to use what is
greatly appreciated.

>> @@ -0,0 +1,100 @@
>> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
>> +/*
>> + * Copyright 2025 GOcontroll B.V.
>> + * Author: Maud Spierings <maudspierings@gocontroll.com>
>> + */
>> +
>> +/dts-v1/;
>> +
>> +#include "imx8mp-tx8p-ml81-moduline-display-106.dtsi"
>> +
>> +/ {
>> +     model = "GOcontroll Moduline Display with BOE av101hdt-a10 display";
>> +
>> +     panel {
>> +             compatible = "boe,av101hdt-a10";
>> +             pinctrl-names = "default";
>> +             pinctrl-0 = <&pinctrl_panel>;
>> +             enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
>> +             reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
>> +             power-supply = <&reg_3v3_per>;
>> +
>> +             port {
>> +                     panel_lvds_in: endpoint {
>> +                             remote-endpoint = <&ldb_lvds_ch0>;
>> +                     };
>> +             };
>> +     };
>> +
>> +     reg_vbus: regulator-vbus {
>> +             compatible = "regulator-fixed";
>> +             regulator-name = "usb-c-vbus";
>> +             regulator-min-microvolt = <5000000>;
>> +             regulator-max-microvolt = <5000000>;
>> +             power-supply = <&reg_6v4>;
>> +             regulator-always-on;
>> +     };
>> +};
>> +
>> +&lcdif2 {
>> +     status = "okay";
>> +};
>> +
>> +&usb3_1 {
>> +     status = "okay";
>> +};
>> +
>> +&usb3_phy1 {
>> +     status = "okay";
>> +};
>> +
>> +&usb_dwc3_1 {
>> +     dr_mode = "host";
>> +
>> +     port {
>> +             usb1_hs_ep: endpoint {
>> +                     remote-endpoint = <&high_speed_ep>;
>> +             };
>> +     };
>> +
>> +     connector {
>> +             compatible = "usb-c-connector";
>> +             pd-disable;
>> +             data-role = "host";
>> +             vbus-supply = <&reg_vbus>;
>> +
>> +             port {
>> +                     high_speed_ep: endpoint {
>> +                             remote-endpoint = <&usb1_hs_ep>;
>> +                     };
>> +             };
>> +     };
>> +};
>> +
>> +&lvds_bridge {
>> +     assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>,
>> +     <&clk IMX8MP_VIDEO_PLL1>;
> 
> fix indentation.

Just put it on one line as it fits within the 80 columns

>> +     assigned-clock-parents = <&clk IMX8MP_VIDEO_PLL1_OUT>;
>> +     /* 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>;
>> +                     };
>> +             };
>> +     };
>> +};
>> +
>> +&iomuxc {
>> +     pinctrl_panel: panelgrp {
>> +             fsl,pins = <
>> +                     MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07 /* COM pin 157 */
>> +                     MX8MP_DSE_X1
>> +                     MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 /* COM pin 159 */
>> +                     MX8MP_DSE_X1
>> +             >;
>> +     };
>> +};
>>
>> --
>> 2.49.0
>>
>>

Kind Regards,
Maud
Frank Li March 28, 2025, 3:34 p.m. UTC | #3
On Fri, Mar 28, 2025 at 07:37:34AM +0000, Maud Spierings | GOcontroll wrote:
> Sent: Thursday, March 27, 2025 5:31 PM
> To: Maud Spierings | GOcontroll <maudspierings@gocontroll.com>
>  
> > On Thu, Mar 27, 2025 at 04:52:42PM +0100, 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>
> >>
> >> ---
> >> 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.
> >> ---
> >>  ...tx8p-ml81-moduline-display-106-av101hdt-a10.dts | 100 +++++++++++++++++++++
> >>  1 file changed, 100 insertions(+)
> >>
> >> diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dts b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dts
> >> new file mode 100644
> >> index 0000000000000000000000000000000000000000..1917e22001a1815a6540f00cf039ff352801cda8
> >> --- /dev/null
> >> +++ b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dts
> >
> > why not use dt overlay to handle difference dsplay module.
> >
> > Frank
>
> This may just be me not being very familiar with overlays, how they work
> and when to use them. I guess the advantage is saving some spaces in not
> having the base board dtsi copied in two dtbs on the target right?
>
> I am still quite new to all of this, so any info on when to use what is
> greatly appreciated.

Overlay help change NxM problem to N + M.

for example, if you have one "compatible = "boe,av101hdt-a10";" overlay file
BOE.dtso

there are N' type boards, such as iMX8MP-tx8p, iMX8MP-tx9p, ...

You only apply overlay BOE.dtso to iMX8MP-tx8p.dtb.
		       BOE.dtso to iMX8MP-tx9p
		       ....

So needn't create NxM dtb files.

There are many dtso file under freescale, which you can ref

Frank

>
> >> @@ -0,0 +1,100 @@
> >> +// SPDX-License-Identifier: (GPL-2.0 OR MIT)
> >> +/*
> >> + * Copyright 2025 GOcontroll B.V.
> >> + * Author: Maud Spierings <maudspierings@gocontroll.com>
> >> + */
> >> +
> >> +/dts-v1/;
> >> +
> >> +#include "imx8mp-tx8p-ml81-moduline-display-106.dtsi"
> >> +
> >> +/ {
> >> +     model = "GOcontroll Moduline Display with BOE av101hdt-a10 display";
> >> +
> >> +     panel {
> >> +             compatible = "boe,av101hdt-a10";
> >> +             pinctrl-names = "default";
> >> +             pinctrl-0 = <&pinctrl_panel>;
> >> +             enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
> >> +             reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
> >> +             power-supply = <&reg_3v3_per>;
> >> +
> >> +             port {
> >> +                     panel_lvds_in: endpoint {
> >> +                             remote-endpoint = <&ldb_lvds_ch0>;
> >> +                     };
> >> +             };
> >> +     };
> >> +
> >> +     reg_vbus: regulator-vbus {
> >> +             compatible = "regulator-fixed";
> >> +             regulator-name = "usb-c-vbus";
> >> +             regulator-min-microvolt = <5000000>;
> >> +             regulator-max-microvolt = <5000000>;
> >> +             power-supply = <&reg_6v4>;
> >> +             regulator-always-on;
> >> +     };
> >> +};
> >> +
> >> +&lcdif2 {
> >> +     status = "okay";
> >> +};
> >> +
> >> +&usb3_1 {
> >> +     status = "okay";
> >> +};
> >> +
> >> +&usb3_phy1 {
> >> +     status = "okay";
> >> +};
> >> +
> >> +&usb_dwc3_1 {
> >> +     dr_mode = "host";
> >> +
> >> +     port {
> >> +             usb1_hs_ep: endpoint {
> >> +                     remote-endpoint = <&high_speed_ep>;
> >> +             };
> >> +     };
> >> +
> >> +     connector {
> >> +             compatible = "usb-c-connector";
> >> +             pd-disable;
> >> +             data-role = "host";
> >> +             vbus-supply = <&reg_vbus>;
> >> +
> >> +             port {
> >> +                     high_speed_ep: endpoint {
> >> +                             remote-endpoint = <&usb1_hs_ep>;
> >> +                     };
> >> +             };
> >> +     };
> >> +};
> >> +
> >> +&lvds_bridge {
> >> +     assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>,
> >> +     <&clk IMX8MP_VIDEO_PLL1>;
> >
> > fix indentation.
>
> Just put it on one line as it fits within the 80 columns
>
> >> +     assigned-clock-parents = <&clk IMX8MP_VIDEO_PLL1_OUT>;
> >> +     /* 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>;
> >> +                     };
> >> +             };
> >> +     };
> >> +};
> >> +
> >> +&iomuxc {
> >> +     pinctrl_panel: panelgrp {
> >> +             fsl,pins = <
> >> +                     MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07 /* COM pin 157 */
> >> +                     MX8MP_DSE_X1
> >> +                     MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 /* COM pin 159 */
> >> +                     MX8MP_DSE_X1
> >> +             >;
> >> +     };
> >> +};
> >>
> >> --
> >> 2.49.0
> >>
> >>
>
> Kind Regards,
> Maud
diff mbox series

Patch

diff --git a/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dts b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dts
new file mode 100644
index 0000000000000000000000000000000000000000..1917e22001a1815a6540f00cf039ff352801cda8
--- /dev/null
+++ b/arch/arm64/boot/dts/freescale/imx8mp-tx8p-ml81-moduline-display-106-av101hdt-a10.dts
@@ -0,0 +1,100 @@ 
+// SPDX-License-Identifier: (GPL-2.0 OR MIT)
+/*
+ * Copyright 2025 GOcontroll B.V.
+ * Author: Maud Spierings <maudspierings@gocontroll.com>
+ */
+
+/dts-v1/;
+
+#include "imx8mp-tx8p-ml81-moduline-display-106.dtsi"
+
+/ {
+	model = "GOcontroll Moduline Display with BOE av101hdt-a10 display";
+
+	panel {
+		compatible = "boe,av101hdt-a10";
+		pinctrl-names = "default";
+		pinctrl-0 = <&pinctrl_panel>;
+		enable-gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
+		reset-gpios = <&gpio1 9 GPIO_ACTIVE_LOW>;
+		power-supply = <&reg_3v3_per>;
+
+		port {
+			panel_lvds_in: endpoint {
+				remote-endpoint = <&ldb_lvds_ch0>;
+			};
+		};
+	};
+
+	reg_vbus: regulator-vbus {
+		compatible = "regulator-fixed";
+		regulator-name = "usb-c-vbus";
+		regulator-min-microvolt = <5000000>;
+		regulator-max-microvolt = <5000000>;
+		power-supply = <&reg_6v4>;
+		regulator-always-on;
+	};
+};
+
+&lcdif2 {
+	status = "okay";
+};
+
+&usb3_1 {
+	status = "okay";
+};
+
+&usb3_phy1 {
+	status = "okay";
+};
+
+&usb_dwc3_1 {
+	dr_mode = "host";
+
+	port {
+		usb1_hs_ep: endpoint {
+			remote-endpoint = <&high_speed_ep>;
+		};
+	};
+
+	connector {
+		compatible = "usb-c-connector";
+		pd-disable;
+		data-role = "host";
+		vbus-supply = <&reg_vbus>;
+
+		port {
+			high_speed_ep: endpoint {
+				remote-endpoint = <&usb1_hs_ep>;
+			};
+		};
+	};
+};
+
+&lvds_bridge {
+	assigned-clocks = <&clk IMX8MP_CLK_MEDIA_LDB>,
+	<&clk IMX8MP_VIDEO_PLL1>;
+	assigned-clock-parents = <&clk IMX8MP_VIDEO_PLL1_OUT>;
+	/* 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>;
+			};
+		};
+	};
+};
+
+&iomuxc {
+	pinctrl_panel: panelgrp {
+		fsl,pins = <
+			MX8MP_IOMUXC_GPIO1_IO07__GPIO1_IO07 /* COM pin 157 */
+			MX8MP_DSE_X1
+			MX8MP_IOMUXC_GPIO1_IO09__GPIO1_IO09 /* COM pin 159 */
+			MX8MP_DSE_X1
+		>;
+	};
+};