1/* 2 * Copyright (c) 2017 Florian Vaussard, HEIG-VD 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7#include <st/f4/stm32f410.dtsi> 8 9/delete-node/ &dac1; 10/delete-node/ &rng; 11 12/ { 13 clocks { 14 plli2s: plli2s { 15 #clock-cells = <0>; 16 compatible = "st,stm32f411-plli2s-clock"; 17 status = "disabled"; 18 }; 19 20 clk48: clk48 { 21 #clock-cells = <0>; 22 compatible = "st,stm32-clock-mux"; 23 clocks = <&rcc STM32_SRC_PLL_Q CK48M_SEL(0)>; 24 status = "disabled"; 25 }; 26 }; 27 28 soc { 29 compatible = "st,stm32f412", "st,stm32f4", "simple-bus"; 30 31 pinctrl: pin-controller@40020000 { 32 reg = <0x40020000 0x1c00>; 33 34 gpiof: gpio@40021400 { 35 compatible = "st,stm32-gpio"; 36 gpio-controller; 37 #gpio-cells = <2>; 38 reg = <0x40021400 0x400>; 39 clocks = <&rcc STM32_CLOCK(AHB1, 5U)>; 40 }; 41 42 gpiog: gpio@40021800 { 43 compatible = "st,stm32-gpio"; 44 gpio-controller; 45 #gpio-cells = <2>; 46 reg = <0x40021800 0x400>; 47 clocks = <&rcc STM32_CLOCK(AHB1, 6U)>; 48 }; 49 }; 50 51 usart3: serial@40004800 { 52 compatible = "st,stm32-usart", "st,stm32-uart"; 53 reg = <0x40004800 0x400>; 54 clocks = <&rcc STM32_CLOCK(APB1, 18U)>; 55 resets = <&rctl STM32_RESET(APB1, 18U)>; 56 interrupts = <39 0>; 57 status = "disabled"; 58 }; 59 60 spi3: spi@40003c00 { 61 compatible = "st,stm32-spi"; 62 #address-cells = <1>; 63 #size-cells = <0>; 64 reg = <0x40003c00 0x400>; 65 clocks = <&rcc STM32_CLOCK(APB1, 15U)>; 66 interrupts = <51 5>; 67 status = "disabled"; 68 }; 69 70 spi4: spi@40013400 { 71 compatible = "st,stm32-spi"; 72 #address-cells = <1>; 73 #size-cells = <0>; 74 reg = <0x40013400 0x400>; 75 clocks = <&rcc STM32_CLOCK(APB2, 13U)>; 76 interrupts = <84 5>; 77 status = "disabled"; 78 }; 79 80 i2s4: i2s@40013400 { 81 compatible = "st,stm32-i2s"; 82 #address-cells = <1>; 83 #size-cells = <0>; 84 reg = <0x40013400 0x400>; 85 clocks = <&rcc STM32_CLOCK(APB2, 13U)>; 86 interrupts = <84 5>; 87 dmas = <&dma2 1 4 0x400 0x3 88 &dma2 0 4 0x400 0x3>; 89 dma-names = "tx", "rx"; 90 status = "disabled"; 91 }; 92 93 timers7: timers@40001400 { 94 compatible = "st,stm32-timers"; 95 reg = <0x40001400 0x400>; 96 clocks = <&rcc STM32_CLOCK(APB1, 5U)>; 97 resets = <&rctl STM32_RESET(APB1, 5U)>; 98 interrupts = <55 0>; 99 interrupt-names = "global"; 100 st,prescaler = <0>; 101 status = "disabled"; 102 103 counter { 104 compatible = "st,stm32-counter"; 105 status = "disabled"; 106 }; 107 }; 108 109 timers8: timers@40010400 { 110 compatible = "st,stm32-timers"; 111 reg = <0x40010400 0x400>; 112 clocks = <&rcc STM32_CLOCK(APB2, 1U)>; 113 resets = <&rctl STM32_RESET(APB2, 1U)>; 114 interrupts = <43 0>, <44 0>, <45 0>, <46 0>; 115 interrupt-names = "brk", "up", "trgcom", "cc"; 116 st,prescaler = <0>; 117 status = "disabled"; 118 119 pwm { 120 compatible = "st,stm32-pwm"; 121 status = "disabled"; 122 #pwm-cells = <3>; 123 }; 124 125 qdec { 126 compatible = "st,stm32-qdec"; 127 status = "disabled"; 128 st,input-filter-level = <NO_FILTER>; 129 }; 130 }; 131 132 timers12: timers@40001800 { 133 compatible = "st,stm32-timers"; 134 reg = <0x40001800 0x400>; 135 clocks = <&rcc STM32_CLOCK(APB1, 6U)>; 136 resets = <&rctl STM32_RESET(APB1, 6U)>; 137 interrupts = <43 0>; 138 interrupt-names = "global"; 139 st,prescaler = <0>; 140 status = "disabled"; 141 142 pwm { 143 compatible = "st,stm32-pwm"; 144 status = "disabled"; 145 #pwm-cells = <3>; 146 }; 147 148 counter { 149 compatible = "st,stm32-counter"; 150 status = "disabled"; 151 }; 152 }; 153 154 timers13: timers@40001c00 { 155 compatible = "st,stm32-timers"; 156 reg = <0x40001c00 0x400>; 157 clocks = <&rcc STM32_CLOCK(APB1, 7U)>; 158 resets = <&rctl STM32_RESET(APB1, 7U)>; 159 interrupts = <44 0>; 160 interrupt-names = "global"; 161 st,prescaler = <0>; 162 status = "disabled"; 163 164 pwm { 165 compatible = "st,stm32-pwm"; 166 status = "disabled"; 167 #pwm-cells = <3>; 168 }; 169 170 counter { 171 compatible = "st,stm32-counter"; 172 status = "disabled"; 173 }; 174 }; 175 176 timers14: timers@40002000 { 177 compatible = "st,stm32-timers"; 178 reg = <0x40002000 0x400>; 179 clocks = <&rcc STM32_CLOCK(APB1, 8U)>; 180 resets = <&rctl STM32_RESET(APB1, 8U)>; 181 interrupts = <45 0>; 182 interrupt-names = "global"; 183 st,prescaler = <0>; 184 status = "disabled"; 185 186 pwm { 187 compatible = "st,stm32-pwm"; 188 status = "disabled"; 189 #pwm-cells = <3>; 190 }; 191 192 counter { 193 compatible = "st,stm32-counter"; 194 status = "disabled"; 195 }; 196 }; 197 198 rng: rng@50060800 { 199 compatible = "st,stm32-rng"; 200 reg = <0x50060800 0x400>; 201 interrupts = <80 0>; 202 clocks = <&rcc STM32_CLOCK(AHB2, 6U)>; 203 status = "disabled"; 204 }; 205 206 usbotg_fs: usb@50000000 { 207 num-bidir-endpoints = <6>; 208 }; 209 210 sdmmc1: sdmmc@40012c00 { 211 clocks = <&rcc STM32_CLOCK(APB2, 11U)>, 212 <&rcc STM32_SRC_CK48 SDIO_SEL(0)>; 213 }; 214 215 quadspi: quadspi@a0001000 { 216 compatible = "st,stm32-qspi"; 217 #address-cells = <0x1>; 218 #size-cells = <0x0>; 219 reg = <0xa0001000 0x400>; 220 interrupts = <92 0>; 221 clocks = <&rcc STM32_CLOCK(AHB3, 1U)>; 222 status = "disabled"; 223 }; 224 225 can1: can@40006400 { 226 compatible = "st,stm32-bxcan"; 227 reg = <0x40006400 0x400>; 228 interrupts = <19 0>, <20 0>, <21 0>, <22 0>; 229 interrupt-names = "TX", "RX0", "RX1", "SCE"; 230 clocks = <&rcc STM32_CLOCK(APB1, 25U)>; 231 status = "disabled"; 232 }; 233 234 can2: can@40006800 { 235 compatible = "st,stm32-bxcan"; 236 reg = <0x40006800 0x400>; 237 interrupts = <63 0>, <64 0>, <65 0>, <66 0>; 238 interrupt-names = "TX", "RX0", "RX1", "SCE"; 239 /* also enabling clock for can1 (master instance) */ 240 clocks = <&rcc STM32_CLOCK(APB1, 26U)>; 241 master-can-reg = <0x40006400>; 242 status = "disabled"; 243 }; 244 }; 245 246 die_temp: dietemp { 247 io-channels = <&adc1 18>; 248 }; 249}; 250