From: dillon min <dillon.min...@gmail.com>

1, add stm32f429-disco ltdc pins mux config
2, add ltdc nodes pinned with ili9341
3, add spi5 node

Signed-off-by: dillon min <dillon.min...@gmail.com>
---
 arch/arm/boot/dts/stm32f4-pinctrl.dtsi | 67 ++++++++++++++++++++++++++++++++++
 arch/arm/boot/dts/stm32f429-disco.dts  | 40 ++++++++++++++++++++
 2 files changed, 107 insertions(+)

diff --git a/arch/arm/boot/dts/stm32f4-pinctrl.dtsi 
b/arch/arm/boot/dts/stm32f4-pinctrl.dtsi
index 392fa14..0eb107f 100644
--- a/arch/arm/boot/dts/stm32f4-pinctrl.dtsi
+++ b/arch/arm/boot/dts/stm32f4-pinctrl.dtsi
@@ -316,6 +316,73 @@
                                };
                        };
 
+                       ltdc_pins_f429_disco: ltdc-1 {
+                               pins {
+                                       pinmux = <STM32_PINMUX('C', 6,  AF14)>,
+                                               /* LCD_HSYNC */
+                                                <STM32_PINMUX('A', 4,  AF14)>,
+                                                /* LCD_VSYNC */
+                                                <STM32_PINMUX('G', 7,  AF14)>,
+                                                /* LCD_CLK */
+                                                <STM32_PINMUX('C', 10, AF14)>,
+                                                /* LCD_R2 */
+                                                <STM32_PINMUX('B', 0,  AF9)>,
+                                                /* LCD_R3 */
+                                                <STM32_PINMUX('A', 11, AF14)>,
+                                                /* LCD_R4 */
+                                                <STM32_PINMUX('A', 12, AF14)>,
+                                                /* LCD_R5 */
+                                                <STM32_PINMUX('B', 1,  AF9)>,
+                                                /* LCD_R6*/
+                                                <STM32_PINMUX('G', 6,  AF14)>,
+                                                /* LCD_R7 */
+                                                <STM32_PINMUX('A', 6,  AF14)>,
+                                                /* LCD_G2 */
+                                                <STM32_PINMUX('G', 10, AF9)>,
+                                                /* LCD_G3 */
+                                                <STM32_PINMUX('B', 10, AF14)>,
+                                                /* LCD_G4 */
+                                                <STM32_PINMUX('D', 6,  AF14)>,
+                                                /* LCD_B2 */
+                                                <STM32_PINMUX('G', 11, AF14)>,
+                                                /* LCD_B3*/
+                                                <STM32_PINMUX('B', 11, AF14)>,
+                                                /* LCD_G5 */
+                                                <STM32_PINMUX('C', 7,  AF14)>,
+                                                /* LCD_G6 */
+                                                <STM32_PINMUX('D', 3,  AF14)>,
+                                                /* LCD_G7 */
+                                                <STM32_PINMUX('G', 12, AF9)>,
+                                                /* LCD_B4 */
+                                                <STM32_PINMUX('A', 3,  AF14)>,
+                                                /* LCD_B5 */
+                                                <STM32_PINMUX('B', 8,  AF14)>,
+                                                /* LCD_B6 */
+                                                <STM32_PINMUX('B', 9,  AF14)>,
+                                                /* LCD_B7 */
+                                                <STM32_PINMUX('F', 10, AF14)>;
+                                                /* LCD_DE */
+                                       slew-rate = <2>;
+                               };
+                       };
+
+                       spi5_pins: spi5-0 {
+                               pins1 {
+                                       pinmux = <STM32_PINMUX('F', 7, AF5)>,
+                                               /* SPI5_CLK */
+                                                <STM32_PINMUX('F', 9, AF5)>;
+                                               /* SPI5_MOSI */
+                                       bias-disable;
+                                       drive-push-pull;
+                                       slew-rate = <0>;
+                               };
+                               pins2 {
+                                       pinmux = <STM32_PINMUX('F', 8, AF5)>;
+                                               /* SPI5_MISO */
+                                       bias-disable;
+                               };
+                       };
+
                        dcmi_pins: dcmi-0 {
                                pins {
                                        pinmux = <STM32_PINMUX('A', 4, AF13)>, 
/* DCMI_HSYNC */
diff --git a/arch/arm/boot/dts/stm32f429-disco.dts 
b/arch/arm/boot/dts/stm32f429-disco.dts
index 30c0f67..3aadddb 100644
--- a/arch/arm/boot/dts/stm32f429-disco.dts
+++ b/arch/arm/boot/dts/stm32f429-disco.dts
@@ -49,6 +49,8 @@
 #include "stm32f429.dtsi"
 #include "stm32f429-pinctrl.dtsi"
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/gpio/gpio.h>
 
 / {
        model = "STMicroelectronics STM32F429i-DISCO board";
@@ -127,3 +129,41 @@
        pinctrl-names = "default";
        status = "okay";
 };
+
+&ltdc {
+       status = "okay";
+       pinctrl-0 = <&ltdc_pins_f429_disco>;
+       pinctrl-names = "default";
+
+       port {
+               ltdc_out_rgb: endpoint {
+                       remote-endpoint = <&panel_in_rgb>;
+               };
+       };
+};
+
+&spi5 {
+       status = "okay";
+       pinctrl-0 = <&spi5_pins>;
+       pinctrl-names = "default";
+       #address-cells = <1>;
+       #size-cells = <0>;
+       cs-gpios = <&gpioc 2 GPIO_ACTIVE_LOW>;
+       dmas = <&dma2 3 2 0x400 0x0>,
+              <&dma2 4 2 0x400 0x0>;
+       dma-names = "rx", "tx";
+       display: display@0{
+               /* Connect panel-ilitek-9341 to ltdc */
+               compatible = "stm32f429-disco,ltdc-panel", "ilitek,ili9341";
+               reg = <0>;
+               spi-3wire;
+               spi-max-frequency = <10000000>;
+               dc-gpios = <&gpiod 13 0>;
+               port {
+                       panel_in_rgb: endpoint {
+                       remote-endpoint = <&ltdc_out_rgb>;
+                       };
+               };
+       };
+};
+
-- 
2.7.4

Reply via email to