[v7,4/5] ARM: dts: stm32: add display support on stm32f769-disco
Commit Message
The patch adds display support on the stm32f769-disco board.
Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
---
(no changes since v1)
arch/arm/boot/dts/st/stm32f769-disco.dts | 72 +++++++++++++++++++++++-
1 file changed, 71 insertions(+), 1 deletion(-)
Comments
On 1/11/24 12:31, Dario Binacchi wrote:
> The patch adds display support on the stm32f769-disco board.
>
> Signed-off-by: Dario Binacchi <dario.binacchi@amarulasolutions.com>
> ---
>
> (no changes since v1)
>
> arch/arm/boot/dts/st/stm32f769-disco.dts | 72 +++++++++++++++++++++++-
> 1 file changed, 71 insertions(+), 1 deletion(-)
>
> diff --git a/arch/arm/boot/dts/st/stm32f769-disco.dts b/arch/arm/boot/dts/st/stm32f769-disco.dts
> index 8632bd866272..d1eb5f9c78bf 100644
> --- a/arch/arm/boot/dts/st/stm32f769-disco.dts
> +++ b/arch/arm/boot/dts/st/stm32f769-disco.dts
> @@ -41,7 +41,7 @@
> */
>
> /dts-v1/;
> -#include "stm32f746.dtsi"
> +#include "stm32f769.dtsi"
> #include "stm32f769-pinctrl.dtsi"
> #include <dt-bindings/input/input.h>
> #include <dt-bindings/gpio/gpio.h>
> @@ -60,6 +60,19 @@ memory@c0000000 {
> reg = <0xC0000000 0x1000000>;
> };
>
> + reserved-memory {
> + #address-cells = <1>;
> + #size-cells = <1>;
> + ranges;
> +
> + linux,dma {
> + compatible = "shared-dma-pool";
> + linux,dma-default;
> + no-map;
> + size = <0x100000>;
> + };
> + };
> +
> aliases {
> serial0 = &usart1;
> };
> @@ -85,6 +98,13 @@ button-0 {
> };
> };
>
> + panel_backlight: panel-backlight {
> + compatible = "gpio-backlight";
> + gpios = <&gpioi 14 GPIO_ACTIVE_HIGH>;
> + default-on;
> + status = "okay";
> + };
> +
> usbotg_hs_phy: usb-phy {
> #phy-cells = <0>;
> compatible = "usb-nop-xceiv";
> @@ -114,6 +134,46 @@ &clk_hse {
> clock-frequency = <25000000>;
> };
>
> +&dsi {
> + #address-cells = <1>;
> + #size-cells = <0>;
> + status = "okay";
> +
> + ports {
> + #address-cells = <1>;
> + #size-cells = <0>;
> +
> + port@0 {
> + reg = <0>;
> + dsi_in: endpoint {
> + remote-endpoint = <<dc_out_dsi>;
> + };
> + };
> +
> + port@1 {
> + reg = <1>;
> + dsi_out: endpoint {
> + remote-endpoint = <&dsi_panel_in>;
> + };
> + };
> + };
> +
> + panel0: panel-dsi@0 {
> + compatible = "orisetech,otm8009a";
> + reg = <0>; /* dsi virtual channel (0..3) */
> + reset-gpios = <&gpioj 15 GPIO_ACTIVE_LOW>;
> + power-supply = <&vcc_3v3>;
> + backlight = <&panel_backlight>;
> + status = "okay";
> +
> + port {
> + dsi_panel_in: endpoint {
> + remote-endpoint = <&dsi_out>;
> + };
> + };
> + };
> +};
> +
> &i2c1 {
> pinctrl-0 = <&i2c1_pins_b>;
> pinctrl-names = "default";
> @@ -122,6 +182,16 @@ &i2c1 {
> status = "okay";
> };
>
> +<dc {
> + status = "okay";
> +
> + port {
> + ltdc_out_dsi: endpoint@0 {
Hi Dario,
There is no need for unit name on this endpoint since it is alone.
Otherwise it triggers this warning at build time :
../arch/arm/boot/dts/st/stm32f769-disco.dts:189.28-191.5: Warning
(unit_address_vs_reg): /soc/display-controller@40016800/port/endpoint@0: node
has a unit name, but no reg or ranges property
../arch/arm/boot/dts/st/stm32f769-disco.dts:189.28-191.5: Warning
(unit_address_vs_reg): /soc/display-controller@40016800/port/endpoint@0: node
has a unit name, but no reg or ranges property
Regards,
Raphaƫl
> + remote-endpoint = <&dsi_in>;
> + };
> + };
> +};
> +
> &rtc {
> status = "okay";
> };
@@ -41,7 +41,7 @@
*/
/dts-v1/;
-#include "stm32f746.dtsi"
+#include "stm32f769.dtsi"
#include "stm32f769-pinctrl.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
@@ -60,6 +60,19 @@ memory@c0000000 {
reg = <0xC0000000 0x1000000>;
};
+ reserved-memory {
+ #address-cells = <1>;
+ #size-cells = <1>;
+ ranges;
+
+ linux,dma {
+ compatible = "shared-dma-pool";
+ linux,dma-default;
+ no-map;
+ size = <0x100000>;
+ };
+ };
+
aliases {
serial0 = &usart1;
};
@@ -85,6 +98,13 @@ button-0 {
};
};
+ panel_backlight: panel-backlight {
+ compatible = "gpio-backlight";
+ gpios = <&gpioi 14 GPIO_ACTIVE_HIGH>;
+ default-on;
+ status = "okay";
+ };
+
usbotg_hs_phy: usb-phy {
#phy-cells = <0>;
compatible = "usb-nop-xceiv";
@@ -114,6 +134,46 @@ &clk_hse {
clock-frequency = <25000000>;
};
+&dsi {
+ #address-cells = <1>;
+ #size-cells = <0>;
+ status = "okay";
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ port@0 {
+ reg = <0>;
+ dsi_in: endpoint {
+ remote-endpoint = <<dc_out_dsi>;
+ };
+ };
+
+ port@1 {
+ reg = <1>;
+ dsi_out: endpoint {
+ remote-endpoint = <&dsi_panel_in>;
+ };
+ };
+ };
+
+ panel0: panel-dsi@0 {
+ compatible = "orisetech,otm8009a";
+ reg = <0>; /* dsi virtual channel (0..3) */
+ reset-gpios = <&gpioj 15 GPIO_ACTIVE_LOW>;
+ power-supply = <&vcc_3v3>;
+ backlight = <&panel_backlight>;
+ status = "okay";
+
+ port {
+ dsi_panel_in: endpoint {
+ remote-endpoint = <&dsi_out>;
+ };
+ };
+ };
+};
+
&i2c1 {
pinctrl-0 = <&i2c1_pins_b>;
pinctrl-names = "default";
@@ -122,6 +182,16 @@ &i2c1 {
status = "okay";
};
+<dc {
+ status = "okay";
+
+ port {
+ ltdc_out_dsi: endpoint@0 {
+ remote-endpoint = <&dsi_in>;
+ };
+ };
+};
+
&rtc {
status = "okay";
};