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