1/* 2 * Copyright (c) 2019 Interay Solutions B.V. 3 * Copyright (c) 2019 Oane Kingma 4 * 5 * SPDX-License-Identifier: Apache-2.0 6 */ 7 8#include <arm/armv7-m.dtsi> 9#include <dt-bindings/gpio/gpio.h> 10#include <dt-bindings/i2c/i2c.h> 11#include "gpio_gecko.h" 12 13/ { 14 chosen { 15 zephyr,entropy = &trng0; 16 zephyr,flash-controller = &msc; 17 }; 18 19 cpus { 20 #address-cells = <1>; 21 #size-cells = <0>; 22 23 cpu0: cpu@0 { 24 compatible = "arm,cortex-m4f"; 25 reg = <0>; 26 }; 27 }; 28 29 sram0: memory@20000000 { 30 compatible = "mmio-sram"; 31 }; 32 33 soc { 34 msc: flash-controller@40000000 { 35 compatible = "silabs,gecko-flash-controller"; 36 label = "FLASH_CTRL"; 37 reg = <0x40000000 0x110>; 38 interrupts = <33 0>; 39 40 #address-cells = <1>; 41 #size-cells = <1>; 42 43 flash0: flash@0 { 44 compatible = "soc-nv-flash"; 45 label = "FLASH_0"; 46 write-block-size = <4>; 47 erase-block-size = <4096>; 48 }; 49 }; 50 51 rtcc0: rtcc@40062000 { /* RTCC0 */ 52 compatible = "silabs,gecko-rtcc"; 53 reg = <0x40062000 0x184>; 54 interrupts = <31 0>; 55 clock-frequency = <32768>; 56 prescaler = <1>; 57 status = "disabled"; 58 label = "RTCC_0"; 59 }; 60 61 uart0: uart@40014000 { /* UART0 */ 62 compatible = "silabs,gecko-uart"; 63 reg = <0x40014000 0x400>; 64 interrupts = <21 0 22 0>; 65 interrupt-names = "rx", "tx"; 66 peripheral-id = <0>; 67 status = "disabled"; 68 label = "UART_0"; 69 }; 70 71 uart1: uart@40014400 { /* UART1 */ 72 compatible = "silabs,gecko-uart"; 73 reg = <0x40014400 0x400>; 74 interrupts = <23 0 24 0>; 75 interrupt-names = "rx", "tx"; 76 peripheral-id = <1>; 77 status = "disabled"; 78 label = "UART_1"; 79 }; 80 81 usart0: usart@40010000 { /* USART0 */ 82 compatible = "silabs,gecko-usart"; 83 reg = <0x40010000 0x400>; 84 interrupts = <6 0 7 0>; 85 interrupt-names = "rx", "tx"; 86 peripheral-id = <0>; 87 status = "disabled"; 88 label = "USART_0"; 89 }; 90 91 usart1: usart@40010400 { /* USART1 */ 92 compatible = "silabs,gecko-usart"; 93 reg = <0x40010400 0x400>; 94 interrupts = <17 0 18 0>; 95 interrupt-names = "rx", "tx"; 96 peripheral-id = <1>; 97 status = "disabled"; 98 label = "USART_1"; 99 }; 100 101 usart2: usart@40010800 { /* USART2 */ 102 compatible = "silabs,gecko-usart"; 103 reg = <0x40010800 0x400>; 104 interrupts = <19 0 20 0>; 105 interrupt-names = "rx", "tx"; 106 peripheral-id = <2>; 107 status = "disabled"; 108 label = "USART_2"; 109 }; 110 111 usart3: usart@40010c00 { /* USART3 */ 112 compatible = "silabs,gecko-usart"; 113 reg = <0x40010c00 0x400>; 114 interrupts = <37 0 38 0>; 115 interrupt-names = "rx", "tx"; 116 peripheral-id = <3>; 117 status = "disabled"; 118 label = "USART_3"; 119 }; 120 121 usart4: usart@40011000 { /* USART4 */ 122 compatible = "silabs,gecko-usart"; 123 reg = <0x40011000 0x400>; 124 interrupts = <39 0 40 0>; 125 interrupt-names = "rx", "tx"; 126 peripheral-id = <4>; 127 status = "disabled"; 128 label = "USART_4"; 129 }; 130 131 usart5: usart@40011400 { /* USART5 */ 132 compatible = "silabs,gecko-usart"; 133 reg = <0x40011400 0x400>; 134 interrupts = <50 0 51 0>; 135 interrupt-names = "rx", "tx"; 136 peripheral-id = <5>; 137 status = "disabled"; 138 label = "USART_5"; 139 }; 140 141 leuart0: leuart@4006a000 { /* LEUART0 */ 142 compatible = "silabs,gecko-leuart"; 143 reg = <0x4006a000 0x400>; 144 interrupts = <25 0>; 145 peripheral-id = <0>; 146 status = "disabled"; 147 label = "LEUART_0"; 148 }; 149 150 leuart1: leuart@4006a400 { /* LEUART1 */ 151 compatible = "silabs,gecko-leuart"; 152 reg = <0x4006a400 0x400>; 153 interrupts = <26 0>; 154 peripheral-id = <1>; 155 status = "disabled"; 156 label = "LEUART_1"; 157 }; 158 159 i2c0: i2c@40089000 { 160 compatible = "silabs,gecko-i2c"; 161 clock-frequency = <I2C_BITRATE_STANDARD>; 162 #address-cells = <1>; 163 #size-cells = <0>; 164 reg = <0x40089000 0x400>; 165 interrupts = <11 0>; 166 label = "I2C_0"; 167 status = "disabled"; 168 }; 169 170 i2c1: i2c@40089400 { 171 compatible = "silabs,gecko-i2c"; 172 clock-frequency = <I2C_BITRATE_STANDARD>; 173 #address-cells = <1>; 174 #size-cells = <0>; 175 reg = <0x40089400 0x400>; 176 interrupts = <12 0>; 177 label = "I2C_1"; 178 status = "disabled"; 179 }; 180 181 i2c2: i2c@40089800 { 182 compatible = "silabs,gecko-i2c"; 183 clock-frequency = <I2C_BITRATE_STANDARD>; 184 #address-cells = <1>; 185 #size-cells = <0>; 186 reg = <0x40089800 0x400>; 187 interrupts = <45 0>; 188 label = "I2C_2"; 189 status = "disabled"; 190 }; 191 192 gpio: gpio@40088400 { 193 compatible = "silabs,gecko-gpio"; 194 reg = <0x40088400 0xc00>; 195 interrupts = <3 2 13 2>; 196 interrupt-names = "GPIO_EVEN", "GPIO_ODD"; 197 label = "GPIO"; 198 199 ranges; 200 #address-cells = <1>; 201 #size-cells = <1>; 202 203 gpioa: gpio@40088000 { 204 compatible = "silabs,gecko-gpio-port"; 205 reg = <0x40088000 0x30>; 206 peripheral-id = <0>; 207 label = "GPIO_A"; 208 gpio-controller; 209 #gpio-cells = <2>; 210 status = "disabled"; 211 }; 212 213 gpiob: gpio@40088030 { 214 compatible = "silabs,gecko-gpio-port"; 215 reg = <0x40088030 0x30>; 216 peripheral-id = <1>; 217 label = "GPIO_B"; 218 gpio-controller; 219 #gpio-cells = <2>; 220 status = "disabled"; 221 }; 222 223 gpioc: gpio@40088060 { 224 compatible = "silabs,gecko-gpio-port"; 225 reg = <0x40088060 0x30>; 226 peripheral-id = <2>; 227 label = "GPIO_C"; 228 gpio-controller; 229 #gpio-cells = <2>; 230 status = "disabled"; 231 }; 232 233 gpiod: gpio@40088090 { 234 compatible = "silabs,gecko-gpio-port"; 235 reg = <0x40088090 0x30>; 236 peripheral-id = <3>; 237 label = "GPIO_D"; 238 gpio-controller; 239 #gpio-cells = <2>; 240 status = "disabled"; 241 }; 242 243 gpioe: gpio@400880c0 { 244 compatible = "silabs,gecko-gpio-port"; 245 reg = <0x400880c0 0x30>; 246 peripheral-id = <4>; 247 label = "GPIO_E"; 248 gpio-controller; 249 #gpio-cells = <2>; 250 status = "disabled"; 251 }; 252 253 gpiof: gpio@400880f0 { 254 compatible = "silabs,gecko-gpio-port"; 255 reg = <0x400880f0 0x30>; 256 peripheral-id = <5>; 257 label = "GPIO_F"; 258 gpio-controller; 259 #gpio-cells = <2>; 260 status = "disabled"; 261 }; 262 263 gpiog: gpio@40088120 { 264 compatible = "silabs,gecko-gpio-port"; 265 reg = <0x40088120 0x30>; 266 peripheral-id = <6>; 267 label = "GPIO_G"; 268 gpio-controller; 269 #gpio-cells = <2>; 270 status = "disabled"; 271 }; 272 273 gpioh: gpio@40088150 { 274 compatible = "silabs,gecko-gpio-port"; 275 reg = <0x40088150 0x30>; 276 peripheral-id = <7>; 277 label = "GPIO_H"; 278 gpio-controller; 279 #gpio-cells = <2>; 280 status = "disabled"; 281 }; 282 283 gpioi: gpio@40088180 { 284 compatible = "silabs,gecko-gpio-port"; 285 reg = <0x40088180 0x30>; 286 peripheral-id = <8>; 287 label = "GPIO_I"; 288 gpio-controller; 289 #gpio-cells = <2>; 290 status = "disabled"; 291 }; 292 }; 293 294 trng0: trng@4001d000 { 295 compatible = "silabs,gecko-trng"; 296 reg = <0x4001d000 0x400>; 297 interrupts = <66 0>; 298 label = "TRNG0"; 299 status = "disabled"; 300 }; 301 302 wdog0: wdog@40052000 { 303 compatible = "silabs,gecko-wdog"; 304 reg = <0x40052000 0x2C>; 305 peripheral-id = <0>; 306 label = "WDOG0"; 307 interrupts = <1 0>; 308 status = "disabled"; 309 }; 310 311 wdog1: wdog@40052400 { 312 compatible = "silabs,gecko-wdog"; 313 reg = <0x40052400 0x2C>; 314 peripheral-id = <1>; 315 label = "WDOG1"; 316 interrupts = <64 0>; 317 status = "disabled"; 318 }; 319 }; 320}; 321 322&nvic { 323 arm,num-irq-priority-bits = <3>; 324}; 325