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 |
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 = <®_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 = <®_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 = <®_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 > >
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 = <®_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 = <®_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 = <®_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
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 = <®_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 = <®_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 = <®_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 --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 = <®_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 = <®_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 = <®_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 + >; + }; +};