1/* SPDX-License-Identifier: Apache-2.0 */ 2 3#include <arm/armv7-m.dtsi> 4#include <dt-bindings/gpio/gpio.h> 5#include <dt-bindings/i2c/i2c.h> 6#include "gpio_gecko.h" 7#include <dt-bindings/pwm/pwm.h> 8 9/ { 10 chosen { 11 zephyr,entropy = &trng0; 12 zephyr,flash-controller = &msc; 13 }; 14 15 cpus { 16 #address-cells = <1>; 17 #size-cells = <0>; 18 19 cpu0: cpu@0 { 20 compatible = "arm,cortex-m4f"; 21 reg = <0>; 22 }; 23 }; 24 25 sram0: memory@20000000 { 26 compatible = "mmio-sram"; 27 }; 28 29 soc { 30 msc: flash-controller@400e0000 { 31 compatible = "silabs,gecko-flash-controller"; 32 label = "FLASH_CTRL"; 33 reg = <0x400e0000 0x104>; 34 interrupts = <25 0>; 35 36 #address-cells = <1>; 37 #size-cells = <1>; 38 39 flash0: flash@0 { 40 compatible = "soc-nv-flash"; 41 label = "FLASH_0"; 42 write-block-size = <4>; 43 erase-block-size = <2048>; 44 }; 45 }; 46 47 usart0: usart@40010000 { /* USART0 */ 48 compatible = "silabs,gecko-usart"; 49 reg = <0x40010000 0x400>; 50 interrupts = <12 0>, <13 0>; 51 interrupt-names = "rx", "tx"; 52 peripheral-id = <0>; 53 status = "disabled"; 54 label = "USART_0"; 55 }; 56 57 usart1: usart@40010400 { /* USART1 */ 58 compatible = "silabs,gecko-usart"; 59 reg = <0x40010400 0x400>; 60 interrupts = <20 0>, <21 0>; 61 interrupt-names = "rx", "tx"; 62 peripheral-id = <1>; 63 status = "disabled"; 64 label = "USART_1"; 65 }; 66 67 usart2: usart@40010800 { /* USART2 */ 68 compatible = "silabs,gecko-usart"; 69 reg = <0x40010800 0x400>; 70 interrupts = <40 0>, <41 0>; 71 interrupt-names = "rx", "tx"; 72 peripheral-id = <2>; 73 status = "disabled"; 74 label = "USART_2"; 75 }; 76 77 usart3: usart@40010c00 { /* USART3 */ 78 compatible = "silabs,gecko-usart"; 79 reg = <0x40010c00 0x400>; 80 interrupts = <43 0>, <44 0>; 81 interrupt-names = "rx", "tx"; 82 peripheral-id = <3>; 83 status = "disabled"; 84 label = "USART_3"; 85 }; 86 87 leuart0: leuart@4004a000 { /* LEUART0 */ 88 compatible = "silabs,gecko-leuart"; 89 reg = <0x4004a000 0x400>; 90 interrupts = <22 0>; 91 peripheral-id = <0>; 92 status = "disabled"; 93 label = "LEUART_0"; 94 }; 95 96 i2c0: i2c@4000c000 { 97 compatible = "silabs,gecko-i2c"; 98 clock-frequency = <I2C_BITRATE_STANDARD>; 99 #address-cells = <1>; 100 #size-cells = <0>; 101 reg = <0x4000c000 0x400>; 102 interrupts = <17 0>; 103 label = "I2C_0"; 104 status = "disabled"; 105 }; 106 107 i2c1: i2c@4000c400 { 108 compatible = "silabs,gecko-i2c"; 109 clock-frequency = <I2C_BITRATE_STANDARD>; 110 #address-cells = <1>; 111 #size-cells = <0>; 112 reg = <0x4000c400 0x400>; 113 interrupts = <42 0>; 114 label = "I2C_1"; 115 status = "disabled"; 116 }; 117 118 rtcc0: rtcc@40042000 { 119 compatible = "silabs,gecko-rtcc"; 120 reg = <0x40042000 0x184>; 121 interrupts = <30 0>; 122 clock-frequency = <32768>; 123 prescaler = <1>; 124 status = "disabled"; 125 label = "RTCC_0"; 126 }; 127 128 gpio: gpio@4000a400 { 129 compatible = "silabs,gecko-gpio"; 130 reg = <0x4000a400 0xc00>; 131 interrupts = <10 2 18 2>; 132 interrupt-names = "GPIO_EVEN", "GPIO_ODD"; 133 label = "GPIO"; 134 135 ranges; 136 #address-cells = <1>; 137 #size-cells = <1>; 138 139 gpioa: gpio@4000a000 { 140 compatible = "silabs,gecko-gpio-port"; 141 reg = <0x4000a000 0x30>; 142 peripheral-id = <0>; 143 label = "GPIO_A"; 144 gpio-controller; 145 #gpio-cells = <2>; 146 status = "disabled"; 147 }; 148 149 gpiob: gpio@4000a030 { 150 compatible = "silabs,gecko-gpio-port"; 151 reg = <0x4000a030 0x30>; 152 peripheral-id = <1>; 153 label = "GPIO_B"; 154 gpio-controller; 155 #gpio-cells = <2>; 156 status = "disabled"; 157 }; 158 159 gpioc: gpio@4000a060 { 160 compatible = "silabs,gecko-gpio-port"; 161 reg = <0x4000a060 0x30>; 162 peripheral-id = <2>; 163 label = "GPIO_C"; 164 gpio-controller; 165 #gpio-cells = <2>; 166 status = "disabled"; 167 }; 168 169 gpiod: gpio@4000a090 { 170 compatible = "silabs,gecko-gpio-port"; 171 reg = <0x4000a090 0x30>; 172 peripheral-id = <3>; 173 label = "GPIO_D"; 174 gpio-controller; 175 #gpio-cells = <2>; 176 status = "disabled"; 177 }; 178 179 gpiof: gpio@4000a0f0 { 180 compatible = "silabs,gecko-gpio-port"; 181 reg = <0x4000a0f0 0x30>; 182 peripheral-id = <5>; 183 label = "GPIO_F"; 184 gpio-controller; 185 #gpio-cells = <2>; 186 status = "disabled"; 187 }; 188 189 gpioi: gpio@4000a180 { 190 compatible = "silabs,gecko-gpio-port"; 191 reg = <0x4000a180 0x30>; 192 peripheral-id = <8>; 193 label = "GPIO_I"; 194 gpio-controller; 195 #gpio-cells = <2>; 196 status = "disabled"; 197 }; 198 199 gpioj: gpio@4000a1b0 { 200 compatible = "silabs,gecko-gpio-port"; 201 reg = <0x4000a1b0 0x30>; 202 peripheral-id = <9>; 203 label = "GPIO_J"; 204 gpio-controller; 205 #gpio-cells = <2>; 206 status = "disabled"; 207 }; 208 209 gpiok: gpio@4000a1e0 { 210 compatible = "silabs,gecko-gpio-port"; 211 reg = <0x4000a1e0 0x30>; 212 peripheral-id = <10>; 213 label = "GPIO_K"; 214 gpio-controller; 215 #gpio-cells = <2>; 216 status = "disabled"; 217 }; 218 }; 219 220 wdog0: wdog@40052000 { 221 compatible = "silabs,gecko-wdog"; 222 reg = <0x40052000 0x2C>; 223 peripheral-id = <0>; 224 label = "WDOG0"; 225 interrupts = <2 0>; 226 status = "disabled"; 227 }; 228 229 wdog1: wdog@40052400 { 230 compatible = "silabs,gecko-wdog"; 231 reg = <0x40052400 0x2C>; 232 peripheral-id = <1>; 233 label = "WDOG1"; 234 interrupts = <3 0>; 235 status = "disabled"; 236 }; 237 238 timer0: timer@40018000 { 239 compatible = "silabs,gecko-timers"; 240 reg = <0x40018000 0x400>; 241 status = "disabled"; 242 label = "TIMER_0"; 243 244 pwm { 245 compatible = "silabs,gecko-pwm"; 246 status = "disabled"; 247 label = "PWM_0"; 248 #pwm-cells = <2>; 249 }; 250 }; 251 252 trng0: trng@4001d000 { 253 compatible = "silabs,gecko-trng"; 254 reg = <0x4001d000 0x400>; 255 interrupts = <49 0>; 256 label = "TRNG0"; 257 status = "disabled"; 258 }; 259 }; 260}; 261 262&nvic { 263 arm,num-irq-priority-bits = <3>; 264}; 265