1// SPDX-License-Identifier: GPL-2.0+ OR X11 2/* 3 * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com> 4 */ 5 6/dts-v1/; 7#include "stm32f429.dtsi" 8#include "stm32f429-pinctrl.dtsi" 9#include <dt-bindings/input/input.h> 10#include <dt-bindings/interrupt-controller/irq.h> 11#include <dt-bindings/gpio/gpio.h> 12 13/ { 14 model = "STMicroelectronics STM32F429i-DISCO board"; 15 compatible = "st,stm32f429i-disco", "st,stm32f429"; 16 17 chosen { 18 bootargs = "root=/dev/ram"; 19 stdout-path = "serial0:115200n8"; 20 }; 21 22 memory@90000000 { 23 device_type = "memory"; 24 reg = <0x90000000 0x800000>; 25 }; 26 27 aliases { 28 serial0 = &usart1; 29 }; 30 31 leds { 32 compatible = "gpio-leds"; 33 led-red { 34 gpios = <&gpiog 14 0>; 35 }; 36 led-green { 37 gpios = <&gpiog 13 0>; 38 linux,default-trigger = "heartbeat"; 39 }; 40 }; 41 42 gpio_keys { 43 compatible = "gpio-keys"; 44 #address-cells = <1>; 45 #size-cells = <0>; 46 autorepeat; 47 button@0 { 48 label = "User"; 49 linux,code = <KEY_HOME>; 50 gpios = <&gpioa 0 0>; 51 }; 52 }; 53 54 /* This turns on vbus for otg for host mode (dwc2) */ 55 vcc5v_otg: vcc5v-otg-regulator { 56 compatible = "regulator-fixed"; 57 gpio = <&gpioc 4 0>; 58 regulator-name = "vcc5_host1"; 59 regulator-always-on; 60 }; 61}; 62 63&clk_hse { 64 clock-frequency = <8000000>; 65}; 66 67&crc { 68 status = "okay"; 69}; 70 71&i2c3 { 72 pinctrl-names = "default"; 73 pinctrl-0 = <&i2c3_pins>; 74 clock-frequency = <100000>; 75 status = "okay"; 76 77 stmpe811@41 { 78 compatible = "st,stmpe811"; 79 reg = <0x41>; 80 interrupts = <15 IRQ_TYPE_EDGE_FALLING>; 81 interrupt-parent = <&gpioa>; 82 /* 3.25 MHz ADC clock speed */ 83 st,adc-freq = <1>; 84 /* 12-bit ADC */ 85 st,mod-12b = <1>; 86 /* internal ADC reference */ 87 st,ref-sel = <0>; 88 /* ADC converstion time: 80 clocks */ 89 st,sample-time = <4>; 90 91 stmpe_touchscreen { 92 compatible = "st,stmpe-ts"; 93 /* 8 sample average control */ 94 st,ave-ctrl = <3>; 95 /* 7 length fractional part in z */ 96 st,fraction-z = <7>; 97 /* 98 * 50 mA typical 80 mA max touchscreen drivers 99 * current limit value 100 */ 101 st,i-drive = <1>; 102 /* 1 ms panel driver settling time */ 103 st,settling = <3>; 104 /* 5 ms touch detect interrupt delay */ 105 st,touch-det-delay = <5>; 106 }; 107 108 stmpe_adc { 109 compatible = "st,stmpe-adc"; 110 /* forbid to use ADC channels 3-0 (touch) */ 111 st,norequest-mask = <0x0F>; 112 }; 113 }; 114}; 115 116<dc { 117 status = "okay"; 118 pinctrl-0 = <<dc_pins_b>; 119 pinctrl-names = "default"; 120 121 port { 122 ltdc_out_rgb: endpoint { 123 remote-endpoint = <&panel_in_rgb>; 124 }; 125 }; 126}; 127 128&rtc { 129 assigned-clocks = <&rcc 1 CLK_RTC>; 130 assigned-clock-parents = <&rcc 1 CLK_LSI>; 131 status = "okay"; 132}; 133 134&spi5 { 135 status = "okay"; 136 pinctrl-0 = <&spi5_pins>; 137 pinctrl-names = "default"; 138 #address-cells = <1>; 139 #size-cells = <0>; 140 cs-gpios = <&gpioc 1 GPIO_ACTIVE_LOW>, <&gpioc 2 GPIO_ACTIVE_LOW>; 141 142 l3gd20: l3gd20@0 { 143 compatible = "st,l3gd20-gyro"; 144 spi-max-frequency = <10000000>; 145 st,drdy-int-pin = <2>; 146 interrupt-parent = <&gpioa>; 147 interrupts = <1 IRQ_TYPE_EDGE_RISING>, 148 <2 IRQ_TYPE_EDGE_RISING>; 149 reg = <0>; 150 status = "okay"; 151 }; 152 153 display: display@1{ 154 /* Connect panel-ilitek-9341 to ltdc */ 155 compatible = "st,sf-tc240t-9370-t"; 156 reg = <1>; 157 spi-3wire; 158 spi-max-frequency = <10000000>; 159 dc-gpios = <&gpiod 13 0>; 160 port { 161 panel_in_rgb: endpoint { 162 remote-endpoint = <<dc_out_rgb>; 163 }; 164 }; 165 }; 166}; 167 168&usart1 { 169 pinctrl-0 = <&usart1_pins_a>; 170 pinctrl-names = "default"; 171 status = "okay"; 172}; 173 174&usbotg_hs { 175 compatible = "st,stm32f4x9-fsotg"; 176 dr_mode = "host"; 177 pinctrl-0 = <&usbotg_fs_pins_b>; 178 pinctrl-names = "default"; 179 status = "okay"; 180}; 181