1/* 2 * Copyright (c) 2017 Powersoft 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7/dts-v1/; 8#include <st/f4/stm32f412Xg.dtsi> 9#include <st/f4/stm32f412z(e-g)tx-pinctrl.dtsi> 10#include "arduino_r3_connector.dtsi" 11#include <zephyr/dt-bindings/input/input-event-codes.h> 12 13/ { 14 model = "STMicroelectronics STM32F412G-DISCO board"; 15 compatible = "st,stm32f412g-disco"; 16 17 chosen { 18 zephyr,console = &usart2; 19 zephyr,shell-uart = &usart2; 20 zephyr,sram = &sram0; 21 zephyr,flash = &flash0; 22 }; 23 24 leds { 25 compatible = "gpio-leds"; 26 27 green_led_1: led_1 { 28 gpios = <&gpioe 0 GPIO_ACTIVE_HIGH>; 29 label = "User LD1"; 30 }; 31 32 orange_led_2: led_2 { 33 gpios = <&gpioe 1 GPIO_ACTIVE_HIGH>; 34 label = "User LD2"; 35 }; 36 37 red_led_3: led_3 { 38 gpios = <&gpioe 2 GPIO_ACTIVE_HIGH>; 39 label = "User LD3"; 40 }; 41 42 blue_led_4: led_4 { 43 gpios = <&gpioe 3 GPIO_ACTIVE_HIGH>; 44 label = "User LD4"; 45 }; 46 }; 47 48 gpio_keys { 49 compatible = "gpio-keys"; 50 51 joy_sel: joystick_selection { 52 label = "joystick selection"; 53 gpios = <&gpioa 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; 54 zephyr,code = <INPUT_KEY_ENTER>; 55 }; 56 57 joy_down: joystick_down { 58 label = "joystick down"; 59 gpios = <&gpiog 1 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; 60 zephyr,code = <INPUT_KEY_DOWN>; 61 }; 62 63 joy_up: joystick_up { 64 label = "joystick up"; 65 gpios = <&gpiog 0 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; 66 zephyr,code = <INPUT_KEY_UP>; 67 }; 68 69 joy_left: joystick_left { 70 label = "joystick left"; 71 gpios = <&gpiof 15 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; 72 zephyr,code = <INPUT_KEY_LEFT>; 73 }; 74 75 joy_right: joystick_right { 76 label = "joystick right"; 77 gpios = <&gpiof 14 (GPIO_ACTIVE_HIGH | GPIO_PULL_DOWN)>; 78 zephyr,code = <INPUT_KEY_RIGHT>; 79 }; 80 }; 81 82 aliases { 83 led0 = &green_led_1; 84 led1 = &orange_led_2; 85 led2 = &red_led_3; 86 led3 = &blue_led_4; 87 sw0 = &joy_sel; 88 }; 89}; 90 91&clk_lsi { 92 status = "okay"; 93}; 94 95&clk_hse { 96 hse-bypass; 97 clock-frequency = <DT_FREQ_M(8)>; /* STLink 8MHz clock */ 98 status = "okay"; 99}; 100 101&pll { 102 div-m = <4>; 103 mul-n = <100>; 104 div-p = <2>; 105 div-q = <8>; 106 clocks = <&clk_hse>; 107 status = "okay"; 108}; 109 110&rcc { 111 clocks = <&pll>; 112 clock-frequency = <DT_FREQ_M(100)>; 113 ahb-prescaler = <1>; 114 apb1-prescaler = <2>; 115 apb2-prescaler = <1>; 116}; 117 118&usart2 { 119 pinctrl-0 = <&usart2_tx_pa2 &usart2_rx_pa3>; 120 pinctrl-names = "default"; 121 current-speed = <115200>; 122 status = "okay"; 123}; 124 125&usart6 { 126 pinctrl-0 = <&usart6_tx_pg14 &usart6_rx_pg9>; 127 pinctrl-names = "default"; 128 current-speed = <115200>; 129 status = "okay"; 130}; 131 132&i2c2 { 133 pinctrl-0 = <&i2c2_scl_pb10 &i2c2_sda_pb9>; 134 pinctrl-names = "default"; 135 clock-frequency = <I2C_BITRATE_FAST>; 136 status = "okay"; 137}; 138 139&spi1 { 140 pinctrl-0 = <&spi1_nss_pa15 &spi1_sck_pa5 141 &spi1_miso_pa6 &spi1_mosi_pa7>; 142 pinctrl-names = "default"; 143 status = "okay"; 144}; 145 146&rtc { 147 clocks = <&rcc STM32_CLOCK(APB1, 28)>, 148 <&rcc STM32_SRC_LSI RTC_SEL(2)>; 149 status = "okay"; 150}; 151 152&quadspi { 153 pinctrl-0 = <&quadspi_clk_pb2 &quadspi_bk1_ncs_pg6 154 &quadspi_bk1_io0_pf8 &quadspi_bk1_io1_pf9 155 &quadspi_bk1_io2_pf7 &quadspi_bk1_io3_pf6>; 156 pinctrl-names = "default"; 157 status = "okay"; 158 159 n25q128a1: qspi-nor-flash@0 { 160 compatible = "st,stm32-qspi-nor"; 161 reg = <0>; 162 size = <DT_SIZE_M(128)>; /* 128 Mbits */ 163 qspi-max-frequency = <72000000>; 164 cs-high-time = <4>; /* >= 50 ns */ 165 status = "okay"; 166 }; 167}; 168