2023-06-29 08:43:10

by Dario Binacchi

[permalink] [raw]
Subject: [PATCH v5 0/3] Add display support on the stm32f746-disco board

The series adds support for the display on the stm32f746-disco board.

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:
- rename ltdc-pins-a-0 to ltdc-0.
- 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

Dario Binacchi (3):
ARM: dts: stm32: add ltdc support on stm32f746 MCU
ARM: dts: stm32: add pin map for LTDC on stm32f7
ARM: dts: stm32: support display on stm32f746-disco board

arch/arm/boot/dts/stm32f7-pinctrl.dtsi | 35 ++++++++++++++++++
arch/arm/boot/dts/stm32f746-disco.dts | 51 ++++++++++++++++++++++++++
arch/arm/boot/dts/stm32f746.dtsi | 10 +++++
3 files changed, 96 insertions(+)

--
2.32.0



2023-06-29 08:52:55

by Dario Binacchi

[permalink] [raw]
Subject: [PATCH v5 1/3] ARM: dts: stm32: add ltdc support on stm32f746 MCU

Add LTDC (Lcd-tft Display Controller) support.

Signed-off-by: Dario Binacchi <[email protected]>
---

(no changes since v1)

arch/arm/boot/dts/stm32f746.dtsi | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/arch/arm/boot/dts/stm32f746.dtsi b/arch/arm/boot/dts/stm32f746.dtsi
index dc868e6da40e..9c4ba0b7f239 100644
--- a/arch/arm/boot/dts/stm32f746.dtsi
+++ b/arch/arm/boot/dts/stm32f746.dtsi
@@ -507,6 +507,16 @@ pwm {
};
};

+ ltdc: display-controller@40016800 {
+ compatible = "st,stm32-ltdc";
+ reg = <0x40016800 0x200>;
+ interrupts = <88>, <89>;
+ resets = <&rcc STM32F7_APB2_RESET(LTDC)>;
+ clocks = <&rcc 1 CLK_LCD>;
+ clock-names = "lcd";
+ status = "disabled";
+ };
+
pwrcfg: power-config@40007000 {
compatible = "st,stm32-power-config", "syscon";
reg = <0x40007000 0x400>;
--
2.32.0


2023-06-29 09:13:30

by Dario Binacchi

[permalink] [raw]
Subject: [PATCH v5 3/3] ARM: dts: stm32: support display on stm32f746-disco board

Add support to Rocktech RK043FN48H display on stm32f746-disco board.

Signed-off-by: Dario Binacchi <[email protected]>

---

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";
+};
+
+&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>;
--
2.32.0


2023-06-29 09:21:25

by Dario Binacchi

[permalink] [raw]
Subject: [PATCH v5 2/3] ARM: dts: stm32: add pin map for LTDC on stm32f7

Add pin configurations for using LTDC (LCD-tft Display Controller) on
stm32f746-disco board.

Signed-off-by: Dario Binacchi <[email protected]>

---

(no changes since v3)

Changes in v3:
- rename ltdc-pins-a-0 to ltdc-0.

arch/arm/boot/dts/stm32f7-pinctrl.dtsi | 35 ++++++++++++++++++++++++++
1 file changed, 35 insertions(+)

diff --git a/arch/arm/boot/dts/stm32f7-pinctrl.dtsi b/arch/arm/boot/dts/stm32f7-pinctrl.dtsi
index 9f65403295ca..36dad40dd0c7 100644
--- a/arch/arm/boot/dts/stm32f7-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32f7-pinctrl.dtsi
@@ -365,6 +365,41 @@ pins2 {
bias-pull-up;
};
};
+
+
+ ltdc_pins_a: ltdc-0 {
+ pins {
+ pinmux = <STM32_PINMUX('E', 4, AF14)>, /* LCD_B0 */
+ <STM32_PINMUX('G',12, AF9)>, /* LCD_B4 */
+ <STM32_PINMUX('I', 9, AF14)>, /* LCD_VSYNC */
+ <STM32_PINMUX('I',10, AF14)>, /* LCD_HSYNC */
+ <STM32_PINMUX('I',14, AF14)>, /* LCD_CLK */
+ <STM32_PINMUX('I',15, AF14)>, /* LCD_R0 */
+ <STM32_PINMUX('J', 0, AF14)>, /* LCD_R1 */
+ <STM32_PINMUX('J', 1, AF14)>, /* LCD_R2 */
+ <STM32_PINMUX('J', 2, AF14)>, /* LCD_R3 */
+ <STM32_PINMUX('J', 3, AF14)>, /* LCD_R4 */
+ <STM32_PINMUX('J', 4, AF14)>, /* LCD_R5 */
+ <STM32_PINMUX('J', 5, AF14)>, /* LCD_R6 */
+ <STM32_PINMUX('J', 6, AF14)>, /* LCD_R7 */
+ <STM32_PINMUX('J', 7, AF14)>, /* LCD_G0 */
+ <STM32_PINMUX('J', 8, AF14)>, /* LCD_G1 */
+ <STM32_PINMUX('J', 9, AF14)>, /* LCD_G2 */
+ <STM32_PINMUX('J',10, AF14)>, /* LCD_G3 */
+ <STM32_PINMUX('J',11, AF14)>, /* LCD_G4 */
+ <STM32_PINMUX('J',13, AF14)>, /* LCD_B1 */
+ <STM32_PINMUX('J',14, AF14)>, /* LCD_B2 */
+ <STM32_PINMUX('J',15, AF14)>, /* LCD_B3 */
+ <STM32_PINMUX('K', 0, AF14)>, /* LCD_G5 */
+ <STM32_PINMUX('K', 1, AF14)>, /* LCD_G6 */
+ <STM32_PINMUX('K', 2, AF14)>, /* LCD_G7 */
+ <STM32_PINMUX('K', 4, AF14)>, /* LCD_B5 */
+ <STM32_PINMUX('K', 5, AF14)>, /* LCD_B6 */
+ <STM32_PINMUX('K', 6, AF14)>, /* LCD_B7 */
+ <STM32_PINMUX('K', 7, AF14)>; /* LCD_DE */
+ slew-rate = <2>;
+ };
+ };
};
};
};
--
2.32.0


2023-06-29 09:22:39

by Raphael Gallais-Pou

[permalink] [raw]
Subject: Re: [PATCH v5 1/3] ARM: dts: stm32: add ltdc support on stm32f746 MCU

Hi,


On 6/29/23 10:37, Dario Binacchi wrote:
> Add LTDC (Lcd-tft Display Controller) support.
>
> Signed-off-by: Dario Binacchi <[email protected]>
> ---
>
> (no changes since v1)
>
> arch/arm/boot/dts/stm32f746.dtsi | 10 ++++++++++
> 1 file changed, 10 insertions(+)

Reviewed-by: Raphaël Gallais-Pou <[email protected]>


2023-06-29 10:05:19

by Raphael Gallais-Pou

[permalink] [raw]
Subject: Re: [PATCH v5 3/3] ARM: dts: stm32: support display on stm32f746-disco board

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 <[email protected]>
>
> ---
>
> 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 <[email protected]>

Thanks,
Raphaël G.-P.


2023-07-11 12:19:43

by Alexandre TORGUE

[permalink] [raw]
Subject: Re: [PATCH v5 3/3] ARM: dts: stm32: support display on stm32f746-disco board

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 <[email protected]>
>
> ---
>
> 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>;


2023-07-12 06:30:03

by Dario Binacchi

[permalink] [raw]
Subject: Re: [PATCH v5 3/3] ARM: dts: stm32: support display on stm32f746-disco board

Hi Alexandre,

On Tue, Jul 11, 2023 at 2:13 PM Alexandre TORGUE
<[email protected]> 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 <[email protected]>
> >
> > ---
> >
> > 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>;
>


--

Dario Binacchi

Senior Embedded Linux Developer

[email protected]

__________________________________


Amarula Solutions SRL

Via Le Canevare 30, 31100 Treviso, Veneto, IT

T. +39 042 243 5310
[email protected]

http://www.amarulasolutions.com