/* * Copyright (c) 2021 Henrik Brix Andersen * * SPDX-License-Identifier: Apache-2.0 */ /dts-v1/; #include #include / { chosen { zephyr,entropy = &trng; }; cpus { #address-cells = <1>; #size-cells = <0>; cpu0: cpu@0 { compatible = "neorv32-cpu", "riscv"; riscv,isa = "rv32imc_zicsr"; reg = <0>; device_type = "cpu"; intc: interrupt-controller { compatible = "riscv,cpu-intc"; interrupt-controller; #address-cells = <1>; #interrupt-cells = <1>; firq: firq { #address-cells = <1>; interrupt-map-mask = <0x0 0xffffffff>; interrupt-map = < 0 0 &intc 0 16 0 1 &intc 0 17 0 2 &intc 0 18 0 3 &intc 0 19 0 4 &intc 0 20 0 5 &intc 0 21 0 6 &intc 0 22 0 7 &intc 0 23 0 8 &intc 0 24 0 9 &intc 0 25 0 10 &intc 0 26 0 11 &intc 0 27 0 12 &intc 0 28 0 13 &intc 0 29 0 14 &intc 0 30 0 15 &intc 0 31 >; #interrupt-cells = <1>; }; }; }; }; soc { compatible = "simple-bus"; interrupt-parent = <&firq>; #address-cells = <1>; #size-cells = <1>; ranges; mtimer: timer@ffffff90 { compatible = "neorv32-machine-timer"; reg = <0xffffff90 0x10>; interrupts = <7>; }; uart0: serial@ffffffa0 { compatible = "neorv32-uart"; status = "disabled"; reg = <0xffffffa0 8>; interrupts = <2>, <3>; interrupt-names = "RX", "TX"; syscon = <&sysinfo>; }; trng: rng@ffffffb8 { compatible = "neorv32-trng"; status = "disabled"; reg = <0xffffffb8 4>; syscon = <&sysinfo>; }; gpio: gpio { compatible = "simple-bus"; gpio-map-mask = <0xffffffe0 0xffffffc0>; gpio-map-pass-thru = <0x1f 0x3f>; gpio-map = < 0x00 0x0 &gpio_lo 0x0 0x0 0x20 0x0 &gpio_hi 0x0 0x0 >; #gpio-cells = <2>; #address-cells = <1>; #size-cells = <1>; ranges; gpio_lo: gpio@ffffffc0 { compatible = "neorv32-gpio"; status = "disabled"; reg = <0xffffffc0 4 0xffffffc8 4>; reg-names = "input", "output"; gpio-controller; ngpios = <32>; syscon = <&sysinfo>; #gpio-cells = <2>; }; gpio_hi: gpio@ffffffc4 { compatible = "neorv32-gpio"; status = "disabled"; reg = <0xffffffc4 4 0xffffffcc 4>; reg-names = "input", "output"; gpio-controller; ngpios = <32>; syscon = <&sysinfo>; #gpio-cells = <2>; }; }; uart1: serial@ffffffd0 { compatible = "neorv32-uart"; status = "disabled"; reg = <0xffffffd0 8>; interrupts = <4>, <5>; interrupt-names = "RX", "TX"; syscon = <&sysinfo>; }; sysinfo: syscon@ffffffe0 { compatible = "neorv-sysinfo", "syscon"; status = "okay"; reg = <0xffffffe0 32>; }; }; };