18c2ecf20Sopenharmony_ci/* 28c2ecf20Sopenharmony_ci * Copyright 2015 - Maxime Coquelin <mcoquelin.stm32@gmail.com> 38c2ecf20Sopenharmony_ci * 48c2ecf20Sopenharmony_ci * This file is dual-licensed: you can use it either under the terms 58c2ecf20Sopenharmony_ci * of the GPL or the X11 license, at your option. Note that this dual 68c2ecf20Sopenharmony_ci * licensing only applies to this file, and not this project as a 78c2ecf20Sopenharmony_ci * whole. 88c2ecf20Sopenharmony_ci * 98c2ecf20Sopenharmony_ci * a) This file is free software; you can redistribute it and/or 108c2ecf20Sopenharmony_ci * modify it under the terms of the GNU General Public License as 118c2ecf20Sopenharmony_ci * published by the Free Software Foundation; either version 2 of the 128c2ecf20Sopenharmony_ci * License, or (at your option) any later version. 138c2ecf20Sopenharmony_ci * 148c2ecf20Sopenharmony_ci * This file is distributed in the hope that it will be useful, 158c2ecf20Sopenharmony_ci * but WITHOUT ANY WARRANTY; without even the implied warranty of 168c2ecf20Sopenharmony_ci * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 178c2ecf20Sopenharmony_ci * GNU General Public License for more details. 188c2ecf20Sopenharmony_ci * 198c2ecf20Sopenharmony_ci * You should have received a copy of the GNU General Public 208c2ecf20Sopenharmony_ci * License along with this file; if not, write to the Free 218c2ecf20Sopenharmony_ci * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, 228c2ecf20Sopenharmony_ci * MA 02110-1301 USA 238c2ecf20Sopenharmony_ci * 248c2ecf20Sopenharmony_ci * Or, alternatively, 258c2ecf20Sopenharmony_ci * 268c2ecf20Sopenharmony_ci * b) Permission is hereby granted, free of charge, to any person 278c2ecf20Sopenharmony_ci * obtaining a copy of this software and associated documentation 288c2ecf20Sopenharmony_ci * files (the "Software"), to deal in the Software without 298c2ecf20Sopenharmony_ci * restriction, including without limitation the rights to use, 308c2ecf20Sopenharmony_ci * copy, modify, merge, publish, distribute, sublicense, and/or 318c2ecf20Sopenharmony_ci * sell copies of the Software, and to permit persons to whom the 328c2ecf20Sopenharmony_ci * Software is furnished to do so, subject to the following 338c2ecf20Sopenharmony_ci * conditions: 348c2ecf20Sopenharmony_ci * 358c2ecf20Sopenharmony_ci * The above copyright notice and this permission notice shall be 368c2ecf20Sopenharmony_ci * included in all copies or substantial portions of the Software. 378c2ecf20Sopenharmony_ci * 388c2ecf20Sopenharmony_ci * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 398c2ecf20Sopenharmony_ci * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 408c2ecf20Sopenharmony_ci * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 418c2ecf20Sopenharmony_ci * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 428c2ecf20Sopenharmony_ci * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 438c2ecf20Sopenharmony_ci * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 448c2ecf20Sopenharmony_ci * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 458c2ecf20Sopenharmony_ci * OTHER DEALINGS IN THE SOFTWARE. 468c2ecf20Sopenharmony_ci */ 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci/dts-v1/; 498c2ecf20Sopenharmony_ci#include "stm32f429.dtsi" 508c2ecf20Sopenharmony_ci#include "stm32f429-pinctrl.dtsi" 518c2ecf20Sopenharmony_ci#include <dt-bindings/input/input.h> 528c2ecf20Sopenharmony_ci#include <dt-bindings/interrupt-controller/irq.h> 538c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h> 548c2ecf20Sopenharmony_ci 558c2ecf20Sopenharmony_ci/ { 568c2ecf20Sopenharmony_ci model = "STMicroelectronics STM32F429i-DISCO board"; 578c2ecf20Sopenharmony_ci compatible = "st,stm32f429i-disco", "st,stm32f429"; 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci chosen { 608c2ecf20Sopenharmony_ci bootargs = "root=/dev/ram"; 618c2ecf20Sopenharmony_ci stdout-path = "serial0:115200n8"; 628c2ecf20Sopenharmony_ci }; 638c2ecf20Sopenharmony_ci 648c2ecf20Sopenharmony_ci memory@90000000 { 658c2ecf20Sopenharmony_ci device_type = "memory"; 668c2ecf20Sopenharmony_ci reg = <0x90000000 0x800000>; 678c2ecf20Sopenharmony_ci }; 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci aliases { 708c2ecf20Sopenharmony_ci serial0 = &usart1; 718c2ecf20Sopenharmony_ci }; 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci leds { 748c2ecf20Sopenharmony_ci compatible = "gpio-leds"; 758c2ecf20Sopenharmony_ci led-red { 768c2ecf20Sopenharmony_ci gpios = <&gpiog 14 0>; 778c2ecf20Sopenharmony_ci }; 788c2ecf20Sopenharmony_ci led-green { 798c2ecf20Sopenharmony_ci gpios = <&gpiog 13 0>; 808c2ecf20Sopenharmony_ci linux,default-trigger = "heartbeat"; 818c2ecf20Sopenharmony_ci }; 828c2ecf20Sopenharmony_ci }; 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci gpio-keys { 858c2ecf20Sopenharmony_ci compatible = "gpio-keys"; 868c2ecf20Sopenharmony_ci autorepeat; 878c2ecf20Sopenharmony_ci button-0 { 888c2ecf20Sopenharmony_ci label = "User"; 898c2ecf20Sopenharmony_ci linux,code = <KEY_HOME>; 908c2ecf20Sopenharmony_ci gpios = <&gpioa 0 0>; 918c2ecf20Sopenharmony_ci }; 928c2ecf20Sopenharmony_ci }; 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci /* This turns on vbus for otg for host mode (dwc2) */ 958c2ecf20Sopenharmony_ci vcc5v_otg: vcc5v-otg-regulator { 968c2ecf20Sopenharmony_ci compatible = "regulator-fixed"; 978c2ecf20Sopenharmony_ci gpio = <&gpioc 4 0>; 988c2ecf20Sopenharmony_ci regulator-name = "vcc5_host1"; 998c2ecf20Sopenharmony_ci regulator-always-on; 1008c2ecf20Sopenharmony_ci }; 1018c2ecf20Sopenharmony_ci}; 1028c2ecf20Sopenharmony_ci 1038c2ecf20Sopenharmony_ci&clk_hse { 1048c2ecf20Sopenharmony_ci clock-frequency = <8000000>; 1058c2ecf20Sopenharmony_ci}; 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_ci&crc { 1088c2ecf20Sopenharmony_ci status = "okay"; 1098c2ecf20Sopenharmony_ci}; 1108c2ecf20Sopenharmony_ci 1118c2ecf20Sopenharmony_ci&i2c3 { 1128c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1138c2ecf20Sopenharmony_ci pinctrl-0 = <&i2c3_pins>; 1148c2ecf20Sopenharmony_ci clock-frequency = <100000>; 1158c2ecf20Sopenharmony_ci status = "okay"; 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ci stmpe811@41 { 1188c2ecf20Sopenharmony_ci compatible = "st,stmpe811"; 1198c2ecf20Sopenharmony_ci reg = <0x41>; 1208c2ecf20Sopenharmony_ci interrupts = <15 IRQ_TYPE_EDGE_FALLING>; 1218c2ecf20Sopenharmony_ci interrupt-parent = <&gpioa>; 1228c2ecf20Sopenharmony_ci /* 3.25 MHz ADC clock speed */ 1238c2ecf20Sopenharmony_ci st,adc-freq = <1>; 1248c2ecf20Sopenharmony_ci /* 12-bit ADC */ 1258c2ecf20Sopenharmony_ci st,mod-12b = <1>; 1268c2ecf20Sopenharmony_ci /* internal ADC reference */ 1278c2ecf20Sopenharmony_ci st,ref-sel = <0>; 1288c2ecf20Sopenharmony_ci /* ADC converstion time: 80 clocks */ 1298c2ecf20Sopenharmony_ci st,sample-time = <4>; 1308c2ecf20Sopenharmony_ci 1318c2ecf20Sopenharmony_ci stmpe_touchscreen { 1328c2ecf20Sopenharmony_ci compatible = "st,stmpe-ts"; 1338c2ecf20Sopenharmony_ci /* 8 sample average control */ 1348c2ecf20Sopenharmony_ci st,ave-ctrl = <3>; 1358c2ecf20Sopenharmony_ci /* 7 length fractional part in z */ 1368c2ecf20Sopenharmony_ci st,fraction-z = <7>; 1378c2ecf20Sopenharmony_ci /* 1388c2ecf20Sopenharmony_ci * 50 mA typical 80 mA max touchscreen drivers 1398c2ecf20Sopenharmony_ci * current limit value 1408c2ecf20Sopenharmony_ci */ 1418c2ecf20Sopenharmony_ci st,i-drive = <1>; 1428c2ecf20Sopenharmony_ci /* 1 ms panel driver settling time */ 1438c2ecf20Sopenharmony_ci st,settling = <3>; 1448c2ecf20Sopenharmony_ci /* 5 ms touch detect interrupt delay */ 1458c2ecf20Sopenharmony_ci st,touch-det-delay = <5>; 1468c2ecf20Sopenharmony_ci }; 1478c2ecf20Sopenharmony_ci 1488c2ecf20Sopenharmony_ci stmpe_adc { 1498c2ecf20Sopenharmony_ci compatible = "st,stmpe-adc"; 1508c2ecf20Sopenharmony_ci /* forbid to use ADC channels 3-0 (touch) */ 1518c2ecf20Sopenharmony_ci st,norequest-mask = <0x0F>; 1528c2ecf20Sopenharmony_ci }; 1538c2ecf20Sopenharmony_ci }; 1548c2ecf20Sopenharmony_ci}; 1558c2ecf20Sopenharmony_ci 1568c2ecf20Sopenharmony_ci<dc { 1578c2ecf20Sopenharmony_ci status = "okay"; 1588c2ecf20Sopenharmony_ci pinctrl-0 = <<dc_pins_b>; 1598c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci port { 1628c2ecf20Sopenharmony_ci ltdc_out_rgb: endpoint { 1638c2ecf20Sopenharmony_ci remote-endpoint = <&panel_in_rgb>; 1648c2ecf20Sopenharmony_ci }; 1658c2ecf20Sopenharmony_ci }; 1668c2ecf20Sopenharmony_ci}; 1678c2ecf20Sopenharmony_ci 1688c2ecf20Sopenharmony_ci&rtc { 1698c2ecf20Sopenharmony_ci assigned-clocks = <&rcc 1 CLK_RTC>; 1708c2ecf20Sopenharmony_ci assigned-clock-parents = <&rcc 1 CLK_LSI>; 1718c2ecf20Sopenharmony_ci status = "okay"; 1728c2ecf20Sopenharmony_ci}; 1738c2ecf20Sopenharmony_ci 1748c2ecf20Sopenharmony_ci&spi5 { 1758c2ecf20Sopenharmony_ci status = "okay"; 1768c2ecf20Sopenharmony_ci pinctrl-0 = <&spi5_pins>; 1778c2ecf20Sopenharmony_ci pinctrl-names = "default"; 1788c2ecf20Sopenharmony_ci #address-cells = <1>; 1798c2ecf20Sopenharmony_ci #size-cells = <0>; 1808c2ecf20Sopenharmony_ci cs-gpios = <&gpioc 1 GPIO_ACTIVE_LOW>, <&gpioc 2 GPIO_ACTIVE_LOW>; 1818c2ecf20Sopenharmony_ci 1828c2ecf20Sopenharmony_ci l3gd20: l3gd20@0 { 1838c2ecf20Sopenharmony_ci compatible = "st,l3gd20-gyro"; 1848c2ecf20Sopenharmony_ci spi-max-frequency = <10000000>; 1858c2ecf20Sopenharmony_ci st,drdy-int-pin = <2>; 1868c2ecf20Sopenharmony_ci interrupt-parent = <&gpioa>; 1878c2ecf20Sopenharmony_ci interrupts = <1 IRQ_TYPE_EDGE_RISING>, 1888c2ecf20Sopenharmony_ci <2 IRQ_TYPE_EDGE_RISING>; 1898c2ecf20Sopenharmony_ci reg = <0>; 1908c2ecf20Sopenharmony_ci status = "okay"; 1918c2ecf20Sopenharmony_ci }; 1928c2ecf20Sopenharmony_ci 1938c2ecf20Sopenharmony_ci display: display@1{ 1948c2ecf20Sopenharmony_ci /* Connect panel-ilitek-9341 to ltdc */ 1958c2ecf20Sopenharmony_ci compatible = "st,sf-tc240t-9370-t", "ilitek,ili9341"; 1968c2ecf20Sopenharmony_ci reg = <1>; 1978c2ecf20Sopenharmony_ci spi-3wire; 1988c2ecf20Sopenharmony_ci spi-max-frequency = <10000000>; 1998c2ecf20Sopenharmony_ci dc-gpios = <&gpiod 13 0>; 2008c2ecf20Sopenharmony_ci port { 2018c2ecf20Sopenharmony_ci panel_in_rgb: endpoint { 2028c2ecf20Sopenharmony_ci remote-endpoint = <<dc_out_rgb>; 2038c2ecf20Sopenharmony_ci }; 2048c2ecf20Sopenharmony_ci }; 2058c2ecf20Sopenharmony_ci }; 2068c2ecf20Sopenharmony_ci}; 2078c2ecf20Sopenharmony_ci 2088c2ecf20Sopenharmony_ci&usart1 { 2098c2ecf20Sopenharmony_ci pinctrl-0 = <&usart1_pins_a>; 2108c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2118c2ecf20Sopenharmony_ci status = "okay"; 2128c2ecf20Sopenharmony_ci}; 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_ci&usbotg_hs { 2158c2ecf20Sopenharmony_ci compatible = "st,stm32f4x9-fsotg"; 2168c2ecf20Sopenharmony_ci dr_mode = "host"; 2178c2ecf20Sopenharmony_ci pinctrl-0 = <&usbotg_fs_pins_b>; 2188c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2198c2ecf20Sopenharmony_ci status = "okay"; 2208c2ecf20Sopenharmony_ci}; 221