[v5,3/3] ARM: dts: stm32: support display on stm32f746-disco board

Message ID 20230629083726.84910-4-dario.binacchi@amarulasolutions.com
State New
Headers
Series Add display support on the stm32f746-disco board |

Commit Message

Dario Binacchi June 29, 2023, 8:37 a.m. UTC
  Add support to Rocktech RK043FN48H display on stm32f746-disco board.

Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>

---

Changes in v5:
I am confident that framebuffer sizing is a real requirement for STM32 boards,
but I need some time to understand if and how to introduce this functionality.
Therefore, I drop the following patches to allow the series to be fully merged:
 - [4/6] dt-bindings: display: stm32-ltdc: add optional st,fb-bpp property
 - [5/6] ARM: dts: stm32: set framebuffer bit depth on stm32f746-disco
 - [6/6] drm/stm: set framebuffer bit depth through DTS property

Changes in v4:
- Use DTS property instead of module parameter to set the framebuffer bit depth.

Changes in v3:
- drop [4/6] dt-bindings: display: simple: add Rocktech RK043FN48H
  Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next):
  https://cgit.freedesktop.org/drm/drm-misc/commit/?id=c42a37a27c777d63961dd634a30f7c887949491a
- drop [5/6] drm/panel: simple: add support for Rocktech RK043FN48H panel
  Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
  https://cgit.freedesktop.org/drm/drm-misc/commit/?id=13cdd12a9f934158f4ec817cf048fcb4384aa9dc

 arch/arm/boot/dts/stm32f746-disco.dts | 51 +++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)
  

Comments

Raphael Gallais-Pou June 29, 2023, 8:51 a.m. UTC | #1
Hi,

On 6/29/23 10:37, Dario Binacchi wrote:
> Add support to Rocktech RK043FN48H display on stm32f746-disco board.
>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
>
> ---
>
> Changes in v5:
> I am confident that framebuffer sizing is a real requirement for STM32 boards,
> but I need some time to understand if and how to introduce this functionality.
> Therefore, I drop the following patches to allow the series to be fully merged:
>  - [4/6] dt-bindings: display: stm32-ltdc: add optional st,fb-bpp property
>  - [5/6] ARM: dts: stm32: set framebuffer bit depth on stm32f746-disco
>  - [6/6] drm/stm: set framebuffer bit depth through DTS property
>
> Changes in v4:
> - Use DTS property instead of module parameter to set the framebuffer bit depth.
>
> Changes in v3:
> - drop [4/6] dt-bindings: display: simple: add Rocktech RK043FN48H
>   Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next):
>   https://cgit.freedesktop.org/drm/drm-misc/commit/?id=c42a37a27c777d63961dd634a30f7c887949491a
> - drop [5/6] drm/panel: simple: add support for Rocktech RK043FN48H panel
>   Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
>   https://cgit.freedesktop.org/drm/drm-misc/commit/?id=13cdd12a9f934158f4ec817cf048fcb4384aa9dc
>
>  arch/arm/boot/dts/stm32f746-disco.dts | 51 +++++++++++++++++++++++++++
>  1 file changed, 51 insertions(+)


Reviewed-by: Raphaël Gallais-Pou <raphael.gallais-pou@foss.st.com>

Thanks,
Raphaël G.-P.
  
Alexandre TORGUE July 11, 2023, 12:13 p.m. UTC | #2
Hi Dario

On 6/29/23 10:37, Dario Binacchi wrote:
> Add support to Rocktech RK043FN48H display on stm32f746-disco board.
> 
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> 
> ---
> 
> Changes in v5:
> I am confident that framebuffer sizing is a real requirement for STM32 boards,
> but I need some time to understand if and how to introduce this functionality.
> Therefore, I drop the following patches to allow the series to be fully merged:
>   - [4/6] dt-bindings: display: stm32-ltdc: add optional st,fb-bpp property
>   - [5/6] ARM: dts: stm32: set framebuffer bit depth on stm32f746-disco
>   - [6/6] drm/stm: set framebuffer bit depth through DTS property
> 
> Changes in v4:
> - Use DTS property instead of module parameter to set the framebuffer bit depth.
> 
> Changes in v3:
> - drop [4/6] dt-bindings: display: simple: add Rocktech RK043FN48H
>    Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next):
>    https://cgit.freedesktop.org/drm/drm-misc/commit/?id=c42a37a27c777d63961dd634a30f7c887949491a
> - drop [5/6] drm/panel: simple: add support for Rocktech RK043FN48H panel
>    Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
>    https://cgit.freedesktop.org/drm/drm-misc/commit/?id=13cdd12a9f934158f4ec817cf048fcb4384aa9dc
> 
>   arch/arm/boot/dts/stm32f746-disco.dts | 51 +++++++++++++++++++++++++++
>   1 file changed, 51 insertions(+)
> 
> diff --git a/arch/arm/boot/dts/stm32f746-disco.dts b/arch/arm/boot/dts/stm32f746-disco.dts
> index c11616ed5fc6..cda423b6a874 100644
> --- a/arch/arm/boot/dts/stm32f746-disco.dts
> +++ b/arch/arm/boot/dts/stm32f746-disco.dts
> @@ -60,10 +60,41 @@ memory@c0000000 {
>   		reg = <0xC0000000 0x800000>;
>   	};
>   
> +	reserved-memory {
> +		#address-cells = <1>;
> +		#size-cells = <1>;
> +		ranges;
> +
> +		linux,cma {
> +			compatible = "shared-dma-pool";
> +			no-map;
> +			size = <0x80000>;
> +			linux,dma-default;
> +		};
> +	};
> +
>   	aliases {
>   		serial0 = &usart1;
>   	};
>   
> +	backlight: backlight {
> +		compatible = "gpio-backlight";
> +		gpios = <&gpiok 3 GPIO_ACTIVE_HIGH>;
> +		status = "okay";
> +	};
> +
> +	panel_rgb: panel-rgb {
> +		compatible = "rocktech,rk043fn48h";
> +		backlight = <&backlight>;
> +		enable-gpios = <&gpioi 12 GPIO_ACTIVE_HIGH>;
> +		status = "okay";
> +		port {
> +			panel_in_rgb: endpoint {
> +				remote-endpoint = <&ltdc_out_rgb>;
> +			};
> +		};
> +	};
> +
>   	usbotg_hs_phy: usb-phy {
>   		#phy-cells = <0>;
>   		compatible = "usb-nop-xceiv";
> @@ -99,6 +130,26 @@ &i2c1 {
>   	status = "okay";
>   };
>   
> +&dma1 {
> +	status = "okay";
> +};
> +
> +&dma2 {
> +	status = "okay";
> 
Why do you enable DMAs ? It seems not used by LTDC.

> +&ltdc {
> +	pinctrl-0 = <&ltdc_pins_a>;
> +	pinctrl-names = "default";
> +	status = "okay";
> +
> +	port {
> +		ltdc_out_rgb: endpoint {
> +			remote-endpoint = <&panel_in_rgb>;
> +		};
> +	};
> +};
> +
>   &sdio1 {
>   	status = "okay";
>   	vmmc-supply = <&mmc_vcard>;
  
Dario Binacchi July 12, 2023, 6:18 a.m. UTC | #3
Hi Alexandre,

On Tue, Jul 11, 2023 at 2:13 PM Alexandre TORGUE
<alexandre.torgue@foss.st.com> wrote:
>
> Hi Dario
>
> On 6/29/23 10:37, Dario Binacchi wrote:
> > Add support to Rocktech RK043FN48H display on stm32f746-disco board.
> >
> > Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> >
> > ---
> >
> > Changes in v5:
> > I am confident that framebuffer sizing is a real requirement for STM32 boards,
> > but I need some time to understand if and how to introduce this functionality.
> > Therefore, I drop the following patches to allow the series to be fully merged:
> >   - [4/6] dt-bindings: display: stm32-ltdc: add optional st,fb-bpp property
> >   - [5/6] ARM: dts: stm32: set framebuffer bit depth on stm32f746-disco
> >   - [6/6] drm/stm: set framebuffer bit depth through DTS property
> >
> > Changes in v4:
> > - Use DTS property instead of module parameter to set the framebuffer bit depth.
> >
> > Changes in v3:
> > - drop [4/6] dt-bindings: display: simple: add Rocktech RK043FN48H
> >    Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next):
> >    https://cgit.freedesktop.org/drm/drm-misc/commit/?id=c42a37a27c777d63961dd634a30f7c887949491a
> > - drop [5/6] drm/panel: simple: add support for Rocktech RK043FN48H panel
> >    Applied to https://anongit.freedesktop.org/git/drm/drm-misc.git (drm-misc-next)
> >    https://cgit.freedesktop.org/drm/drm-misc/commit/?id=13cdd12a9f934158f4ec817cf048fcb4384aa9dc
> >
> >   arch/arm/boot/dts/stm32f746-disco.dts | 51 +++++++++++++++++++++++++++
> >   1 file changed, 51 insertions(+)
> >
> > diff --git a/arch/arm/boot/dts/stm32f746-disco.dts b/arch/arm/boot/dts/stm32f746-disco.dts
> > index c11616ed5fc6..cda423b6a874 100644
> > --- a/arch/arm/boot/dts/stm32f746-disco.dts
> > +++ b/arch/arm/boot/dts/stm32f746-disco.dts
> > @@ -60,10 +60,41 @@ memory@c0000000 {
> >               reg = <0xC0000000 0x800000>;
> >       };
> >
> > +     reserved-memory {
> > +             #address-cells = <1>;
> > +             #size-cells = <1>;
> > +             ranges;
> > +
> > +             linux,cma {
> > +                     compatible = "shared-dma-pool";
> > +                     no-map;
> > +                     size = <0x80000>;
> > +                     linux,dma-default;
> > +             };
> > +     };
> > +
> >       aliases {
> >               serial0 = &usart1;
> >       };
> >
> > +     backlight: backlight {
> > +             compatible = "gpio-backlight";
> > +             gpios = <&gpiok 3 GPIO_ACTIVE_HIGH>;
> > +             status = "okay";
> > +     };
> > +
> > +     panel_rgb: panel-rgb {
> > +             compatible = "rocktech,rk043fn48h";
> > +             backlight = <&backlight>;
> > +             enable-gpios = <&gpioi 12 GPIO_ACTIVE_HIGH>;
> > +             status = "okay";
> > +             port {
> > +                     panel_in_rgb: endpoint {
> > +                             remote-endpoint = <&ltdc_out_rgb>;
> > +                     };
> > +             };
> > +     };
> > +
> >       usbotg_hs_phy: usb-phy {
> >               #phy-cells = <0>;
> >               compatible = "usb-nop-xceiv";
> > @@ -99,6 +130,26 @@ &i2c1 {
> >       status = "okay";
> >   };
> >
> > +&dma1 {
> > +     status = "okay";
> > +};
> > +
> > +&dma2 {
> > +     status = "okay";
> >
> Why do you enable DMAs ? It seems not used by LTDC.

You're right, I'll send version 6 shortly with the removal of DMA.

Thanks and regards,
Dario

>
> > +&ltdc {
> > +     pinctrl-0 = <&ltdc_pins_a>;
> > +     pinctrl-names = "default";
> > +     status = "okay";
> > +
> > +     port {
> > +             ltdc_out_rgb: endpoint {
> > +                     remote-endpoint = <&panel_in_rgb>;
> > +             };
> > +     };
> > +};
> > +
> >   &sdio1 {
> >       status = "okay";
> >       vmmc-supply = <&mmc_vcard>;
>
  

Patch

diff --git a/arch/arm/boot/dts/stm32f746-disco.dts b/arch/arm/boot/dts/stm32f746-disco.dts
index c11616ed5fc6..cda423b6a874 100644
--- a/arch/arm/boot/dts/stm32f746-disco.dts
+++ b/arch/arm/boot/dts/stm32f746-disco.dts
@@ -60,10 +60,41 @@  memory@c0000000 {
 		reg = <0xC0000000 0x800000>;
 	};
 
+	reserved-memory {
+		#address-cells = <1>;
+		#size-cells = <1>;
+		ranges;
+
+		linux,cma {
+			compatible = "shared-dma-pool";
+			no-map;
+			size = <0x80000>;
+			linux,dma-default;
+		};
+	};
+
 	aliases {
 		serial0 = &usart1;
 	};
 
+	backlight: backlight {
+		compatible = "gpio-backlight";
+		gpios = <&gpiok 3 GPIO_ACTIVE_HIGH>;
+		status = "okay";
+	};
+
+	panel_rgb: panel-rgb {
+		compatible = "rocktech,rk043fn48h";
+		backlight = <&backlight>;
+		enable-gpios = <&gpioi 12 GPIO_ACTIVE_HIGH>;
+		status = "okay";
+		port {
+			panel_in_rgb: endpoint {
+				remote-endpoint = <&ltdc_out_rgb>;
+			};
+		};
+	};
+
 	usbotg_hs_phy: usb-phy {
 		#phy-cells = <0>;
 		compatible = "usb-nop-xceiv";
@@ -99,6 +130,26 @@  &i2c1 {
 	status = "okay";
 };
 
+&dma1 {
+	status = "okay";
+};
+
+&dma2 {
+	status = "okay";
+};
+
+&ltdc {
+	pinctrl-0 = <&ltdc_pins_a>;
+	pinctrl-names = "default";
+	status = "okay";
+
+	port {
+		ltdc_out_rgb: endpoint {
+			remote-endpoint = <&panel_in_rgb>;
+		};
+	};
+};
+
 &sdio1 {
 	status = "okay";
 	vmmc-supply = <&mmc_vcard>;