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 8/ { 9 chosen { 10 zephyr,flash-controller = &msc; 11 }; 12 13 cpus { 14 #address-cells = <1>; 15 #size-cells = <0>; 16 17 cpu0: cpu@0 { 18 compatible = "arm,cortex-m4f"; 19 reg = <0>; 20 }; 21 }; 22 23 sram0: memory@20000000 { 24 compatible = "mmio-sram"; 25 }; 26 27 soc { 28 msc: flash-controller@400c0000 { 29 compatible = "silabs,gecko-flash-controller"; 30 label = "FLASH_CTRL"; 31 reg = <0x400c0000 0x78>; 32 interrupts = <35 0>; 33 34 #address-cells = <1>; 35 #size-cells = <1>; 36 37 flash0: flash@0 { 38 compatible = "soc-nv-flash"; 39 label = "FLASH_0"; 40 write-block-size = <4>; 41 erase-block-size = <2048>; 42 }; 43 }; 44 45 usart0: usart@4000c000 { /* USART0 */ 46 compatible = "silabs,gecko-usart"; 47 reg = <0x4000c000 0x400>; 48 interrupts = <3 0>, <4 0>; 49 interrupt-names = "rx", "tx"; 50 peripheral-id = <0>; 51 status = "disabled"; 52 label = "UART_0"; 53 }; 54 55 usart1: usart@4000c400 { /* USART1 */ 56 compatible = "silabs,gecko-usart"; 57 reg = <0x4000c400 0x400>; 58 interrupts = <15 0>, <16 0>; 59 interrupt-names = "rx", "tx"; 60 peripheral-id = <1>; 61 status = "disabled"; 62 label = "UART_1"; 63 }; 64 65 usart2: usart@4000c800 { /* USART2 */ 66 compatible = "silabs,gecko-usart"; 67 reg = <0x4000c800 0x400>; 68 interrupts = <18 0>, <19 0>; 69 interrupt-names = "rx", "tx"; 70 peripheral-id = <2>; 71 status = "disabled"; 72 label = "UART_2"; 73 }; 74 75 uart0: uart@4000e000 { /* UART0 */ 76 compatible = "silabs,gecko-uart"; 77 reg = <0x4000e000 0x400>; 78 interrupts = <20 0>, <21 0>; 79 interrupt-names = "rx", "tx"; 80 peripheral-id = <0>; 81 status = "disabled"; 82 label = "UART_3"; 83 }; 84 85 uart1: uart@4000e400 { /* UART1 */ 86 compatible = "silabs,gecko-uart"; 87 reg = <0x4000e400 0x400>; 88 interrupts = <22 0>, <23 0>; 89 interrupt-names = "rx", "tx"; 90 peripheral-id = <1>; 91 status = "disabled"; 92 label = "UART_4"; 93 }; 94 95 leuart0: leuart@40084000 { /* LEUART0 */ 96 compatible = "silabs,gecko-leuart"; 97 reg = <0x40084000 0x400>; 98 interrupts = <24 0>; 99 peripheral-id = <0>; 100 status = "disabled"; 101 label = "LEUART_0"; 102 }; 103 104 leuart1: leuart@40084400 { /* LEUART1 */ 105 compatible = "silabs,gecko-leuart"; 106 reg = <0x40084400 0x400>; 107 interrupts = <25 0>; 108 peripheral-id = <1>; 109 status = "disabled"; 110 label = "LEUART_1"; 111 }; 112 113 i2c0: i2c@4000a000 { 114 compatible = "silabs,gecko-i2c"; 115 clock-frequency = <I2C_BITRATE_STANDARD>; 116 #address-cells = <1>; 117 #size-cells = <0>; 118 reg = <0x4000a000 0x400>; 119 interrupts = <9 0>; 120 label = "I2C_0"; 121 status = "disabled"; 122 }; 123 124 i2c1: i2c@4000a400 { 125 compatible = "silabs,gecko-i2c"; 126 clock-frequency = <I2C_BITRATE_STANDARD>; 127 #address-cells = <1>; 128 #size-cells = <0>; 129 reg = <0x4000a400 0x400>; 130 interrupts = <10 0>; 131 label = "I2C_1"; 132 status = "disabled"; 133 }; 134 135 gpio@40006100 { 136 compatible = "silabs,gecko-gpio"; 137 reg = <0x40006100 0xf00>; 138 interrupts = <1 2 11 2>; 139 interrupt-names = "GPIO_EVEN", "GPIO_ODD"; 140 label = "GPIO"; 141 142 ranges; 143 #address-cells = <1>; 144 #size-cells = <1>; 145 146 gpioa: gpio@40006000 { 147 compatible = "silabs,gecko-gpio-port"; 148 reg = <0x40006000 0x24>; 149 peripheral-id = <0>; 150 label = "GPIO_A"; 151 gpio-controller; 152 #gpio-cells = <2>; 153 status = "disabled"; 154 }; 155 156 gpiob: gpio@40006024 { 157 compatible = "silabs,gecko-gpio-port"; 158 reg = <0x40006024 0x24>; 159 peripheral-id = <1>; 160 label = "GPIO_B"; 161 gpio-controller; 162 #gpio-cells = <2>; 163 status = "disabled"; 164 }; 165 166 gpioc: gpio@40006048 { 167 compatible = "silabs,gecko-gpio-port"; 168 reg = <0x40006048 0x24>; 169 peripheral-id = <2>; 170 label = "GPIO_C"; 171 gpio-controller; 172 #gpio-cells = <2>; 173 status = "disabled"; 174 }; 175 176 gpiod: gpio@4000606c { 177 compatible = "silabs,gecko-gpio-port"; 178 reg = <0x4000606c 0x24>; 179 peripheral-id = <3>; 180 label = "GPIO_D"; 181 gpio-controller; 182 #gpio-cells = <2>; 183 status = "disabled"; 184 }; 185 186 gpioe: gpio@40006090 { 187 compatible = "silabs,gecko-gpio-port"; 188 reg = <0x40006090 0x24>; 189 peripheral-id = <4>; 190 label = "GPIO_E"; 191 gpio-controller; 192 #gpio-cells = <2>; 193 status = "disabled"; 194 }; 195 196 gpiof: gpio@400060b4 { 197 compatible = "silabs,gecko-gpio-port"; 198 reg = <0x400060b4 0x24>; 199 peripheral-id = <5>; 200 label = "GPIO_F"; 201 gpio-controller; 202 #gpio-cells = <2>; 203 status = "disabled"; 204 }; 205 }; 206 }; 207}; 208 209&nvic { 210 arm,num-irq-priority-bits = <3>; 211}; 212