ARM: dts: stm32: Add STM32F429 Evaluation board support
authorPatrice Chotard <patrice.chotard@st.com>
Thu, 18 Jan 2018 12:39:33 +0000 (13:39 +0100)
committerTom Rini <trini@konsulko.com>
Sun, 28 Jan 2018 14:39:05 +0000 (09:39 -0500)
This DT file comes from kernel v4.15, this board offers :

   _ STM32F429NIH6 microcontroller
   _ 4.3” color TFT LCD with resistive touchscreen (480 x 272 pixels)
   _ Six 5 V power supply options:
        Power jack
        ST-LINK/V2 USB connector
        User USB HS connector
        User USB FS1 connector
        User USB FS2 connector
        Daughterboard
   _ SAI Audio DAC, stereo audio jack which supports headset with
     microphone
   _ Stereo digital microphone, audio terminal connector used to connect
     external speakers
   _ 2 GBytes (or more) SDIO interface MicroSD card
   _ RF EEPROM on I2 C compatible serial interface
   _ RS-232 communication
   _ IrDA transceiver
   _ JTAG/SWD and ETM trace debug support, ST-LINK/V2 embedded
   _ IEEE-802.3-2002 compliant Ethernet connector
   _ Camera module
   _ 8M x 32-bit SDRAM, 1M x 16-bit SRAM and 8M x 16-bit NOR Flash
   _ Joystick with 4-directional control and selector
   _ Reset, Wakeup and Tamper buttons
   _ 4 color user LEDs
   _ Extension connectors & memory connectors for daughterboard or
     wrapping board
   _ USB OTG HS and FS with Micro-AB connectors
   _ RTC with backup battery
   _ CAN2.0A/B compliant connection
   _ Potentiometer
   _ Motor control connector

Signed-off-by: Patrice Chotard <patrice.chotard@st.com>
arch/arm/dts/Makefile
arch/arm/dts/stm32429i-eval.dts [new file with mode: 0644]

index 9540ba43131b8853875628db5152f7a7eb71db96..16613aa258b281be8ae4255532baa83b88661ddd 100644 (file)
@@ -217,6 +217,7 @@ dtb-$(CONFIG_TARGET_DRAGONBOARD410C) += dragonboard410c.dtb
 dtb-$(CONFIG_TARGET_DRAGONBOARD820C) += dragonboard820c.dtb
 
 dtb-$(CONFIG_STM32F4) += stm32f429-disco.dtb \
+       stm32429i-eval.dtb \
        stm32f469-disco.dtb
 
 dtb-$(CONFIG_STM32F7) += stm32f746-disco.dtb \
diff --git a/arch/arm/dts/stm32429i-eval.dts b/arch/arm/dts/stm32429i-eval.dts
new file mode 100644 (file)
index 0000000..362ea42
--- /dev/null
@@ -0,0 +1,276 @@
+/*
+ * Copyright (C) 2015, STMicroelectronics - All Rights Reserved
+ * Author: Maxime Coquelin <mcoquelin.stm32@gmail.com> for STMicroelectronics.
+ *
+ * SPDX-License-Identifier:    GPL-2.0+
+ */
+
+/dts-v1/;
+#include "stm32f429.dtsi"
+#include "stm32f429-pinctrl.dtsi"
+#include <dt-bindings/input/input.h>
+#include <dt-bindings/gpio/gpio.h>
+
+/ {
+       model = "STMicroelectronics STM32429i-EVAL board";
+       compatible = "st,stm32429i-eval", "st,stm32f429";
+
+       chosen {
+               bootargs = "root=/dev/ram";
+               stdout-path = "serial0:115200n8";
+       };
+
+       memory {
+               reg = <0x00000000 0x2000000>;
+       };
+
+       aliases {
+               serial0 = &usart1;
+       };
+
+       clocks {
+               clk_ext_camera: clk-ext-camera {
+                       #clock-cells = <0>;
+                       compatible = "fixed-clock";
+                       clock-frequency = <24000000>;
+               };
+       };
+
+       soc {
+               dma-ranges = <0xc0000000 0x0 0x10000000>;
+       };
+
+       regulators {
+               compatible = "simple-bus";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               reg_vref: regulator@0 {
+                       compatible = "regulator-fixed";
+                       reg = <0>;
+                       regulator-name = "vref";
+                       regulator-min-microvolt = <3300000>;
+                       regulator-max-microvolt = <3300000>;
+               };
+       };
+
+       leds {
+               compatible = "gpio-leds";
+               green {
+                       gpios = <&gpiog 6 1>;
+                       linux,default-trigger = "heartbeat";
+               };
+               orange {
+                       gpios = <&gpiog 7 1>;
+               };
+               red {
+                       gpios = <&gpiog 10 1>;
+               };
+               blue {
+                       gpios = <&gpiog 12 1>;
+               };
+       };
+
+       gpio_keys {
+               compatible = "gpio-keys";
+               #address-cells = <1>;
+               #size-cells = <0>;
+               autorepeat;
+               button@0 {
+                       label = "Wake up";
+                       linux,code = <KEY_WAKEUP>;
+                       gpios = <&gpioa 0 0>;
+               };
+               button@1 {
+                       label = "Tamper";
+                       linux,code = <KEY_RESTART>;
+                       gpios = <&gpioc 13 0>;
+               };
+       };
+
+       usbotg_hs_phy: usbphy {
+               #phy-cells = <0>;
+               compatible = "usb-nop-xceiv";
+               clocks = <&rcc 0 STM32F4_AHB1_CLOCK(OTGHSULPI)>;
+               clock-names = "main_clk";
+       };
+
+       panel_rgb: panel-rgb {
+               compatible = "ampire,am-480272h3tmqw-t01h";
+               status = "okay";
+               port {
+                       panel_in_rgb: endpoint {
+                               remote-endpoint = <&ltdc_out_rgb>;
+                       };
+               };
+       };
+
+       mmc_vcard: mmc_vcard {
+               compatible = "regulator-fixed";
+               regulator-name = "mmc_vcard";
+               regulator-min-microvolt = <3300000>;
+               regulator-max-microvolt = <3300000>;
+       };
+};
+
+&adc {
+       pinctrl-names = "default";
+       pinctrl-0 = <&adc3_in8_pin>;
+       vref-supply = <&reg_vref>;
+       status = "okay";
+       adc3: adc@200 {
+               st,adc-channels = <8>;
+               status = "okay";
+       };
+};
+
+&clk_hse {
+       clock-frequency = <25000000>;
+};
+
+&crc {
+       status = "okay";
+};
+
+&dcmi {
+       status = "okay";
+
+       port {
+               dcmi_0: endpoint {
+                       remote-endpoint = <&ov2640_0>;
+                       bus-width = <8>;
+                       hsync-active = <0>;
+                       vsync-active = <0>;
+                       pclk-sample = <1>;
+               };
+       };
+};
+
+&i2c1 {
+       pinctrl-0 = <&i2c1_pins>;
+       pinctrl-names = "default";
+       status = "okay";
+
+       ov2640: camera@30 {
+               compatible = "ovti,ov2640";
+               reg = <0x30>;
+               resetb-gpios = <&stmpegpio 2 GPIO_ACTIVE_HIGH>;
+               pwdn-gpios = <&stmpegpio 0 GPIO_ACTIVE_LOW>;
+               clocks = <&clk_ext_camera>;
+               clock-names = "xvclk";
+               status = "okay";
+
+               port {
+                       ov2640_0: endpoint {
+                               remote-endpoint = <&dcmi_0>;
+                       };
+               };
+       };
+
+       stmpe1600: stmpe1600@42 {
+               compatible = "st,stmpe1600";
+               reg = <0x42>;
+               interrupts = <8 3>;
+               interrupt-parent = <&gpioi>;
+               interrupt-controller;
+               wakeup-source;
+
+               stmpegpio: stmpe_gpio {
+                       compatible = "st,stmpe-gpio";
+                       gpio-controller;
+                       #gpio-cells = <2>;
+               };
+       };
+};
+
+&iwdg {
+       status = "okay";
+       timeout-sec = <32>;
+};
+
+&ltdc {
+       status = "okay";
+       pinctrl-0 = <&ltdc_pins>;
+       pinctrl-names = "default";
+       dma-ranges;
+
+       port {
+               ltdc_out_rgb: endpoint {
+                       remote-endpoint = <&panel_in_rgb>;
+               };
+       };
+};
+
+&mac {
+       status = "okay";
+       pinctrl-0       = <&ethernet_mii>;
+       pinctrl-names   = "default";
+       phy-mode        = "mii";
+       phy-handle      = <&phy1>;
+       mdio0 {
+               #address-cells = <1>;
+               #size-cells = <0>;
+               compatible = "snps,dwmac-mdio";
+               phy1: ethernet-phy@1 {
+                       reg = <1>;
+               };
+       };
+};
+
+&rtc {
+       status = "okay";
+};
+
+&sdio {
+       status = "okay";
+       vmmc-supply = <&mmc_vcard>;
+       cd-gpios = <&stmpegpio 15 GPIO_ACTIVE_HIGH>;
+       cd-inverted;
+       pinctrl-names = "default", "opendrain";
+       pinctrl-0 = <&sdio_pins>;
+       pinctrl-1 = <&sdio_pins_od>;
+       bus-width = <4>;
+};
+
+&timers1 {
+       status = "okay";
+
+       pwm {
+               pinctrl-0 = <&pwm1_pins>;
+               pinctrl-names = "default";
+               status = "okay";
+       };
+
+       timer@0 {
+               status = "okay";
+       };
+};
+
+&timers3 {
+       status = "okay";
+
+       pwm {
+               pinctrl-0 = <&pwm3_pins>;
+               pinctrl-names = "default";
+               status = "okay";
+       };
+
+       timer@2 {
+               status = "okay";
+       };
+};
+
+&usart1 {
+       pinctrl-0 = <&usart1_pins_a>;
+       pinctrl-names = "default";
+       status = "okay";
+};
+
+&usbotg_hs {
+       dr_mode = "host";
+       phys = <&usbotg_hs_phy>;
+       phy-names = "usb2-phy";
+       pinctrl-0 = <&usbotg_hs_pins_a>;
+       pinctrl-names = "default";
+       status = "okay";
+};