1/* 2 * Copyright (c) 2017 Linaro Limited 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 */ 6 7#include <st/l4/stm32l4.dtsi> 8 9/ { 10 soc { 11 compatible = "st,stm32l471", "st,stm32l4", "simple-bus"; 12 13 pinctrl: pin-controller@48000000 { 14 15 gpiod: gpio@48000c00 { 16 compatible = "st,stm32-gpio"; 17 gpio-controller; 18 #gpio-cells = <2>; 19 reg = <0x48000c00 0x400>; 20 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00000008>; 21 }; 22 23 gpioe: gpio@48001000 { 24 compatible = "st,stm32-gpio"; 25 gpio-controller; 26 #gpio-cells = <2>; 27 reg = <0x48001000 0x400>; 28 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00000010>; 29 }; 30 31 gpiof: gpio@48001400 { 32 compatible = "st,stm32-gpio"; 33 gpio-controller; 34 #gpio-cells = <2>; 35 reg = <0x48001400 0x400>; 36 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00000020>; 37 }; 38 39 gpiog: gpio@48001800 { 40 compatible = "st,stm32-gpio"; 41 gpio-controller; 42 #gpio-cells = <2>; 43 reg = <0x48001800 0x400>; 44 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00000040>; 45 }; 46 }; 47 48 usart3: serial@40004800 { 49 compatible = "st,stm32-usart", "st,stm32-uart"; 50 reg = <0x40004800 0x400>; 51 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00040000>; 52 resets = <&rctl STM32_RESET(APB1L, 18U)>; 53 interrupts = <39 0>; 54 status = "disabled"; 55 }; 56 57 uart4: serial@40004c00 { 58 compatible = "st,stm32-uart"; 59 reg = <0x40004c00 0x400>; 60 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00080000>; 61 resets = <&rctl STM32_RESET(APB1L, 19U)>; 62 interrupts = <52 0>; 63 status = "disabled"; 64 }; 65 66 uart5: serial@40005000 { 67 compatible = "st,stm32-uart"; 68 reg = <0x40005000 0x400>; 69 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00100000>; 70 resets = <&rctl STM32_RESET(APB1L, 20U)>; 71 interrupts = <53 0>; 72 status = "disabled"; 73 }; 74 75 i2c2: i2c@40005800 { 76 compatible = "st,stm32-i2c-v2"; 77 clock-frequency = <I2C_BITRATE_STANDARD>; 78 #address-cells = <1>; 79 #size-cells = <0>; 80 reg = <0x40005800 0x400>; 81 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00400000>; 82 interrupts = <33 0>, <34 0>; 83 interrupt-names = "event", "error"; 84 status = "disabled"; 85 }; 86 87 spi2: spi@40003800 { 88 compatible = "st,stm32-spi-fifo", "st,stm32-spi"; 89 #address-cells = <1>; 90 #size-cells = <0>; 91 reg = <0x40003800 0x400>; 92 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00004000>; 93 interrupts = <36 5>; 94 status = "disabled"; 95 }; 96 97 spi3: spi@40003c00 { 98 compatible = "st,stm32-spi-fifo", "st,stm32-spi"; 99 #address-cells = <1>; 100 #size-cells = <0>; 101 reg = <0x40003c00 0x400>; 102 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00008000>; 103 interrupts = <51 5>; 104 status = "disabled"; 105 }; 106 107 timers3: timers@40000400 { 108 compatible = "st,stm32-timers"; 109 reg = <0x40000400 0x400>; 110 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000002>; 111 resets = <&rctl STM32_RESET(APB1L, 1U)>; 112 interrupts = <29 0>; 113 interrupt-names = "global"; 114 st,prescaler = <0>; 115 status = "disabled"; 116 117 pwm { 118 compatible = "st,stm32-pwm"; 119 status = "disabled"; 120 #pwm-cells = <3>; 121 }; 122 123 counter { 124 compatible = "st,stm32-counter"; 125 status = "disabled"; 126 }; 127 }; 128 129 timers4: timers@40000800 { 130 compatible = "st,stm32-timers"; 131 reg = <0x40000800 0x400>; 132 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000004>; 133 resets = <&rctl STM32_RESET(APB1L, 2U)>; 134 interrupts = <30 0>; 135 interrupt-names = "global"; 136 st,prescaler = <0>; 137 status = "disabled"; 138 139 pwm { 140 compatible = "st,stm32-pwm"; 141 status = "disabled"; 142 #pwm-cells = <3>; 143 }; 144 145 counter { 146 compatible = "st,stm32-counter"; 147 status = "disabled"; 148 }; 149 }; 150 151 timers5: timers@40000c00 { 152 compatible = "st,stm32-timers"; 153 reg = <0x40000c00 0x400>; 154 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000008>; 155 resets = <&rctl STM32_RESET(APB1L, 3U)>; 156 interrupts = <50 0>; 157 interrupt-names = "global"; 158 st,prescaler = <0>; 159 status = "disabled"; 160 161 pwm { 162 compatible = "st,stm32-pwm"; 163 status = "disabled"; 164 #pwm-cells = <3>; 165 }; 166 167 counter { 168 compatible = "st,stm32-counter"; 169 status = "disabled"; 170 }; 171 }; 172 173 timers7: timers@40001400 { 174 compatible = "st,stm32-timers"; 175 reg = <0x40001400 0x400>; 176 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x00000020>; 177 resets = <&rctl STM32_RESET(APB1L, 5U)>; 178 interrupts = <55 0>; 179 interrupt-names = "global"; 180 st,prescaler = <0>; 181 status = "disabled"; 182 183 counter { 184 compatible = "st,stm32-counter"; 185 status = "disabled"; 186 }; 187 }; 188 189 timers8: timers@40013400 { 190 compatible = "st,stm32-timers"; 191 reg = <0x40013400 0x400>; 192 clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00002000>; 193 resets = <&rctl STM32_RESET(APB2, 13U)>; 194 interrupts = <43 0>, <44 0>, <45 0>, <46 0>; 195 interrupt-names = "brk", "up", "trgcom", "cc"; 196 st,prescaler = <0>; 197 status = "disabled"; 198 199 pwm { 200 compatible = "st,stm32-pwm"; 201 status = "disabled"; 202 #pwm-cells = <3>; 203 }; 204 }; 205 206 timers17: timers@40014800 { 207 compatible = "st,stm32-timers"; 208 reg = <0x40014800 0x400>; 209 clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00040000>; 210 resets = <&rctl STM32_RESET(APB2, 18U)>; 211 interrupts = <26 0>; 212 interrupt-names = "global"; 213 st,prescaler = <0>; 214 status = "disabled"; 215 216 pwm { 217 compatible = "st,stm32-pwm"; 218 status = "disabled"; 219 #pwm-cells = <3>; 220 }; 221 222 counter { 223 compatible = "st,stm32-counter"; 224 status = "disabled"; 225 }; 226 }; 227 228 can1: can@40006400 { 229 compatible = "st,stm32-bxcan"; 230 reg = <0x40006400 0x400>; 231 interrupts = <19 0>, <20 0>, <21 0>, <22 0>; 232 interrupt-names = "TX", "RX0", "RX1", "SCE"; 233 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x02000000>; //RCC_APB1ENR1_CAN1EN 234 status = "disabled"; 235 sample-point = <875>; 236 }; 237 238 sdmmc1: sdmmc@40012800 { 239 compatible = "st,stm32-sdmmc"; 240 reg = <0x40012800 0x400>; 241 clocks = <&rcc STM32_CLOCK_BUS_APB2 0x00000400>, 242 <&rcc STM32_SRC_MSI CLK48_SEL(3)>; 243 resets = <&rctl STM32_RESET(APB2, 10U)>; 244 interrupts = <49 0>; 245 status = "disabled"; 246 }; 247 248 dac1: dac@40007400 { 249 compatible = "st,stm32-dac"; 250 reg = <0x40007400 0x400>; 251 clocks = <&rcc STM32_CLOCK_BUS_APB1 0x20000000>; 252 status = "disabled"; 253 #io-channel-cells = <1>; 254 }; 255 256 adc3: adc@50040200 { 257 compatible = "st,stm32-adc"; 258 reg = <0x50040200 0x100>; 259 clocks = <&rcc STM32_CLOCK_BUS_AHB2 0x00002000>; 260 interrupts = <47 0>; 261 status = "disabled"; 262 #io-channel-cells = <1>; 263 }; 264 265 rtc@40002800 { 266 bbram: backup_regs { 267 compatible = "st,stm32-bbram"; 268 st,backup-regs = <32>; 269 status = "disabled"; 270 }; 271 }; 272 }; 273 274 die_temp: dietemp { 275 ts-cal2-temp = <110>; 276 }; 277}; 278