1/* 2 * Copyright (c) 2020 TriaGnoSys GmbH 3 * Copyright (c) 2021 Safran Passenger Innovations Germany GmbH 4 * 5 * SPDX-License-Identifier: Apache-2.0 6 */ 7 8#include <arm/armv8-m.dtsi> 9#include <zephyr/dt-bindings/gpio/gpio.h> 10#include <zephyr/dt-bindings/i2c/i2c.h> 11#include "gpio_gecko.h" 12 13/ { 14 chosen { 15 zephyr,entropy = &se; 16 zephyr,flash-controller = &msc; 17 }; 18 19 cpus { 20 #address-cells = <1>; 21 #size-cells = <0>; 22 23 cpu0: cpu@0 { 24 device_type = "cpu"; 25 compatible = "arm,cortex-m33f"; 26 reg = <0>; 27 #address-cells = <1>; 28 #size-cells = <1>; 29 30 mpu: mpu@e000ed90 { 31 compatible = "arm,armv8m-mpu"; 32 reg = <0xe000ed90 0x40>; 33 arm,num-mpu-regions = <16>; 34 }; 35 }; 36 }; 37 38 sram0: memory@20000000 { 39 device_type = "memory"; 40 compatible = "mmio-sram"; 41 }; 42 43 soc { 44 msc: flash-controller@50030000 { 45 compatible = "silabs,gecko-flash-controller"; 46 reg = <0x50030000 0x31a4>; 47 interrupts = <51 0>; 48 49 #address-cells = <1>; 50 #size-cells = <1>; 51 52 flash0: flash@0 { 53 compatible = "soc-nv-flash"; 54 write-block-size = <4>; 55 erase-block-size = <8192>; 56 }; 57 }; 58 59 usart0: usart@50058000 { /* USART0 */ 60 compatible = "silabs,gecko-usart"; 61 reg = <0x50058000 0x400>; 62 interrupts = <11 0>, <12 0>; 63 interrupt-names = "rx", "tx"; 64 peripheral-id = <0>; 65 status = "disabled"; 66 }; 67 68 usart1: usart@5005c000 { /* USART1 */ 69 compatible = "silabs,gecko-usart"; 70 reg = <0x5005c000 0x400>; 71 interrupts = <13 0>, <14 0>; 72 interrupt-names = "rx", "tx"; 73 peripheral-id = <1>; 74 status = "disabled"; 75 }; 76 77 usart2: usart@50060000 { /* USART2 */ 78 compatible = "silabs,gecko-usart"; 79 reg = <0x50060000 0x400>; 80 interrupts = <15 0>, <16 0>; 81 interrupt-names = "rx", "tx"; 82 peripheral-id = <2>; 83 status = "disabled"; 84 }; 85 86 i2c0: i2c@5a010000 { 87 compatible = "silabs,gecko-i2c"; 88 clock-frequency = <I2C_BITRATE_STANDARD>; 89 #address-cells = <1>; 90 #size-cells = <0>; 91 reg = <0x5a010000 0x400>; 92 interrupts = <27 0>; 93 status = "disabled"; 94 }; 95 96 i2c1: i2c@50068000 { 97 compatible = "silabs,gecko-i2c"; 98 clock-frequency = <I2C_BITRATE_STANDARD>; 99 #address-cells = <1>; 100 #size-cells = <0>; 101 reg = <0x50068000 0x400>; 102 interrupts = <28 0>; 103 status = "disabled"; 104 }; 105 106 rtcc0: rtcc@58000000 { 107 compatible = "silabs,gecko-rtcc"; 108 reg = <0x58000000 0x400>; 109 interrupts = <10 0>; 110 clock-frequency = <32768>; 111 prescaler = <1>; 112 status = "disabled"; 113 }; 114 115 gpio: gpio@5003c300 { 116 compatible = "silabs,gecko-gpio"; 117 reg = <0x5003c300 0x3c00>; 118 interrupts = <26 2>, <25 2>; 119 interrupt-names = "GPIO_EVEN", "GPIO_ODD"; 120 121 ranges; 122 #address-cells = <1>; 123 #size-cells = <1>; 124 125 gpioa: gpio@5003c000 { 126 compatible = "silabs,gecko-gpio-port"; 127 reg = <0x5003c000 0x30>; 128 peripheral-id = <0>; 129 gpio-controller; 130 #gpio-cells = <2>; 131 status = "disabled"; 132 }; 133 134 gpiob: gpio@5003c030 { 135 compatible = "silabs,gecko-gpio-port"; 136 reg = <0x5003c030 0x30>; 137 peripheral-id = <1>; 138 gpio-controller; 139 #gpio-cells = <2>; 140 status = "disabled"; 141 }; 142 143 gpioc: gpio@5003c060 { 144 compatible = "silabs,gecko-gpio-port"; 145 reg = <0x5003c060 0x30>; 146 peripheral-id = <2>; 147 gpio-controller; 148 #gpio-cells = <2>; 149 status = "disabled"; 150 }; 151 152 gpiod: gpio@5003c090 { 153 compatible = "silabs,gecko-gpio-port"; 154 reg = <0x5003c090 0x30>; 155 peripheral-id = <3>; 156 gpio-controller; 157 #gpio-cells = <2>; 158 status = "disabled"; 159 }; 160 }; 161 162 se: semailbox@5c000000 { 163 compatible = "silabs,gecko-semailbox"; 164 reg = <0x5c000000 0x80>; 165 interrupts = <0 3>, <1 3>, <2 3>; 166 interrupt-names = "SETAMPERHOST", "SEMBRX", "SEMBTX"; 167 status = "okay"; 168 }; 169 170 wdog0: wdog@5a018000 { 171 compatible = "silabs,gecko-wdog"; 172 reg = <0x5a018000 0x2C>; 173 peripheral-id = <0>; 174 interrupts = <43 0>; 175 status = "disabled"; 176 }; 177 178 wdog1: wdog@5a01c000 { 179 compatible = "silabs,gecko-wdog"; 180 reg = <0x5a01c000 0x2C>; 181 peripheral-id = <1>; 182 interrupts = <44 0>; 183 status = "disabled"; 184 }; 185 186 pinctrl: pin-controller { 187 /* Pin controller is a "virtual" device since SiLabs SoCs do pin 188 * control in a distributed way (GPIO registers and PSEL 189 * registers on each peripheral). 190 */ 191 compatible = "silabs,gecko-pinctrl"; 192 }; 193 }; 194}; 195 196&nvic { 197 arm,num-irq-priority-bits = <4>; 198}; 199