1d5b0e70fSEmmanuel Vadot// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2d5b0e70fSEmmanuel Vadot/* Copyright (c) 2020-2021 Microchip Technology Inc */ 3d5b0e70fSEmmanuel Vadot 4d5b0e70fSEmmanuel Vadot/dts-v1/; 5d5b0e70fSEmmanuel Vadot#include "dt-bindings/clock/microchip,mpfs-clock.h" 6d5b0e70fSEmmanuel Vadot 7d5b0e70fSEmmanuel Vadot/ { 8d5b0e70fSEmmanuel Vadot #address-cells = <2>; 9d5b0e70fSEmmanuel Vadot #size-cells = <2>; 10d5b0e70fSEmmanuel Vadot model = "Microchip PolarFire SoC"; 11d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs"; 12d5b0e70fSEmmanuel Vadot 13d5b0e70fSEmmanuel Vadot cpus { 14d5b0e70fSEmmanuel Vadot #address-cells = <1>; 15d5b0e70fSEmmanuel Vadot #size-cells = <0>; 1684943d6fSEmmanuel Vadot timebase-frequency = <1000000>; 17d5b0e70fSEmmanuel Vadot 18d5b0e70fSEmmanuel Vadot cpu0: cpu@0 { 19d5b0e70fSEmmanuel Vadot compatible = "sifive,e51", "sifive,rocket0", "riscv"; 20d5b0e70fSEmmanuel Vadot device_type = "cpu"; 21d5b0e70fSEmmanuel Vadot i-cache-block-size = <64>; 22d5b0e70fSEmmanuel Vadot i-cache-sets = <128>; 23d5b0e70fSEmmanuel Vadot i-cache-size = <16384>; 24d5b0e70fSEmmanuel Vadot reg = <0>; 25d5b0e70fSEmmanuel Vadot riscv,isa = "rv64imac"; 2684943d6fSEmmanuel Vadot riscv,isa-base = "rv64i"; 2784943d6fSEmmanuel Vadot riscv,isa-extensions = "i", "m", "a", "c", "zicntr", "zicsr", "zifencei", 2884943d6fSEmmanuel Vadot "zihpm"; 29d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_CPU>; 30d5b0e70fSEmmanuel Vadot status = "disabled"; 31d5b0e70fSEmmanuel Vadot 32d5b0e70fSEmmanuel Vadot cpu0_intc: interrupt-controller { 33d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 34d5b0e70fSEmmanuel Vadot compatible = "riscv,cpu-intc"; 35d5b0e70fSEmmanuel Vadot interrupt-controller; 36d5b0e70fSEmmanuel Vadot }; 37d5b0e70fSEmmanuel Vadot }; 38d5b0e70fSEmmanuel Vadot 39d5b0e70fSEmmanuel Vadot cpu1: cpu@1 { 40d5b0e70fSEmmanuel Vadot compatible = "sifive,u54-mc", "sifive,rocket0", "riscv"; 41d5b0e70fSEmmanuel Vadot d-cache-block-size = <64>; 42d5b0e70fSEmmanuel Vadot d-cache-sets = <64>; 43d5b0e70fSEmmanuel Vadot d-cache-size = <32768>; 44d5b0e70fSEmmanuel Vadot d-tlb-sets = <1>; 45d5b0e70fSEmmanuel Vadot d-tlb-size = <32>; 46d5b0e70fSEmmanuel Vadot device_type = "cpu"; 47d5b0e70fSEmmanuel Vadot i-cache-block-size = <64>; 48d5b0e70fSEmmanuel Vadot i-cache-sets = <64>; 49d5b0e70fSEmmanuel Vadot i-cache-size = <32768>; 50d5b0e70fSEmmanuel Vadot i-tlb-sets = <1>; 51d5b0e70fSEmmanuel Vadot i-tlb-size = <32>; 52d5b0e70fSEmmanuel Vadot mmu-type = "riscv,sv39"; 53d5b0e70fSEmmanuel Vadot reg = <1>; 54d5b0e70fSEmmanuel Vadot riscv,isa = "rv64imafdc"; 5584943d6fSEmmanuel Vadot riscv,isa-base = "rv64i"; 5684943d6fSEmmanuel Vadot riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr", 5784943d6fSEmmanuel Vadot "zifencei", "zihpm"; 58d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_CPU>; 59d5b0e70fSEmmanuel Vadot tlb-split; 60d5b0e70fSEmmanuel Vadot next-level-cache = <&cctrllr>; 61d5b0e70fSEmmanuel Vadot status = "okay"; 62d5b0e70fSEmmanuel Vadot 63d5b0e70fSEmmanuel Vadot cpu1_intc: interrupt-controller { 64d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 65d5b0e70fSEmmanuel Vadot compatible = "riscv,cpu-intc"; 66d5b0e70fSEmmanuel Vadot interrupt-controller; 67d5b0e70fSEmmanuel Vadot }; 68d5b0e70fSEmmanuel Vadot }; 69d5b0e70fSEmmanuel Vadot 70d5b0e70fSEmmanuel Vadot cpu2: cpu@2 { 71d5b0e70fSEmmanuel Vadot compatible = "sifive,u54-mc", "sifive,rocket0", "riscv"; 72d5b0e70fSEmmanuel Vadot d-cache-block-size = <64>; 73d5b0e70fSEmmanuel Vadot d-cache-sets = <64>; 74d5b0e70fSEmmanuel Vadot d-cache-size = <32768>; 75d5b0e70fSEmmanuel Vadot d-tlb-sets = <1>; 76d5b0e70fSEmmanuel Vadot d-tlb-size = <32>; 77d5b0e70fSEmmanuel Vadot device_type = "cpu"; 78d5b0e70fSEmmanuel Vadot i-cache-block-size = <64>; 79d5b0e70fSEmmanuel Vadot i-cache-sets = <64>; 80d5b0e70fSEmmanuel Vadot i-cache-size = <32768>; 81d5b0e70fSEmmanuel Vadot i-tlb-sets = <1>; 82d5b0e70fSEmmanuel Vadot i-tlb-size = <32>; 83d5b0e70fSEmmanuel Vadot mmu-type = "riscv,sv39"; 84d5b0e70fSEmmanuel Vadot reg = <2>; 85d5b0e70fSEmmanuel Vadot riscv,isa = "rv64imafdc"; 8684943d6fSEmmanuel Vadot riscv,isa-base = "rv64i"; 8784943d6fSEmmanuel Vadot riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr", 8884943d6fSEmmanuel Vadot "zifencei", "zihpm"; 89d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_CPU>; 90d5b0e70fSEmmanuel Vadot tlb-split; 91d5b0e70fSEmmanuel Vadot next-level-cache = <&cctrllr>; 92d5b0e70fSEmmanuel Vadot status = "okay"; 93d5b0e70fSEmmanuel Vadot 94d5b0e70fSEmmanuel Vadot cpu2_intc: interrupt-controller { 95d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 96d5b0e70fSEmmanuel Vadot compatible = "riscv,cpu-intc"; 97d5b0e70fSEmmanuel Vadot interrupt-controller; 98d5b0e70fSEmmanuel Vadot }; 99d5b0e70fSEmmanuel Vadot }; 100d5b0e70fSEmmanuel Vadot 101d5b0e70fSEmmanuel Vadot cpu3: cpu@3 { 102d5b0e70fSEmmanuel Vadot compatible = "sifive,u54-mc", "sifive,rocket0", "riscv"; 103d5b0e70fSEmmanuel Vadot d-cache-block-size = <64>; 104d5b0e70fSEmmanuel Vadot d-cache-sets = <64>; 105d5b0e70fSEmmanuel Vadot d-cache-size = <32768>; 106d5b0e70fSEmmanuel Vadot d-tlb-sets = <1>; 107d5b0e70fSEmmanuel Vadot d-tlb-size = <32>; 108d5b0e70fSEmmanuel Vadot device_type = "cpu"; 109d5b0e70fSEmmanuel Vadot i-cache-block-size = <64>; 110d5b0e70fSEmmanuel Vadot i-cache-sets = <64>; 111d5b0e70fSEmmanuel Vadot i-cache-size = <32768>; 112d5b0e70fSEmmanuel Vadot i-tlb-sets = <1>; 113d5b0e70fSEmmanuel Vadot i-tlb-size = <32>; 114d5b0e70fSEmmanuel Vadot mmu-type = "riscv,sv39"; 115d5b0e70fSEmmanuel Vadot reg = <3>; 116d5b0e70fSEmmanuel Vadot riscv,isa = "rv64imafdc"; 11784943d6fSEmmanuel Vadot riscv,isa-base = "rv64i"; 11884943d6fSEmmanuel Vadot riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr", 11984943d6fSEmmanuel Vadot "zifencei", "zihpm"; 120d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_CPU>; 121d5b0e70fSEmmanuel Vadot tlb-split; 122d5b0e70fSEmmanuel Vadot next-level-cache = <&cctrllr>; 123d5b0e70fSEmmanuel Vadot status = "okay"; 124d5b0e70fSEmmanuel Vadot 125d5b0e70fSEmmanuel Vadot cpu3_intc: interrupt-controller { 126d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 127d5b0e70fSEmmanuel Vadot compatible = "riscv,cpu-intc"; 128d5b0e70fSEmmanuel Vadot interrupt-controller; 129d5b0e70fSEmmanuel Vadot }; 130d5b0e70fSEmmanuel Vadot }; 131d5b0e70fSEmmanuel Vadot 132d5b0e70fSEmmanuel Vadot cpu4: cpu@4 { 133d5b0e70fSEmmanuel Vadot compatible = "sifive,u54-mc", "sifive,rocket0", "riscv"; 134d5b0e70fSEmmanuel Vadot d-cache-block-size = <64>; 135d5b0e70fSEmmanuel Vadot d-cache-sets = <64>; 136d5b0e70fSEmmanuel Vadot d-cache-size = <32768>; 137d5b0e70fSEmmanuel Vadot d-tlb-sets = <1>; 138d5b0e70fSEmmanuel Vadot d-tlb-size = <32>; 139d5b0e70fSEmmanuel Vadot device_type = "cpu"; 140d5b0e70fSEmmanuel Vadot i-cache-block-size = <64>; 141d5b0e70fSEmmanuel Vadot i-cache-sets = <64>; 142d5b0e70fSEmmanuel Vadot i-cache-size = <32768>; 143d5b0e70fSEmmanuel Vadot i-tlb-sets = <1>; 144d5b0e70fSEmmanuel Vadot i-tlb-size = <32>; 145d5b0e70fSEmmanuel Vadot mmu-type = "riscv,sv39"; 146d5b0e70fSEmmanuel Vadot reg = <4>; 147d5b0e70fSEmmanuel Vadot riscv,isa = "rv64imafdc"; 14884943d6fSEmmanuel Vadot riscv,isa-base = "rv64i"; 14984943d6fSEmmanuel Vadot riscv,isa-extensions = "i", "m", "a", "f", "d", "c", "zicntr", "zicsr", 15084943d6fSEmmanuel Vadot "zifencei", "zihpm"; 151d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_CPU>; 152d5b0e70fSEmmanuel Vadot tlb-split; 153d5b0e70fSEmmanuel Vadot next-level-cache = <&cctrllr>; 154d5b0e70fSEmmanuel Vadot status = "okay"; 155d5b0e70fSEmmanuel Vadot cpu4_intc: interrupt-controller { 156d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 157d5b0e70fSEmmanuel Vadot compatible = "riscv,cpu-intc"; 158d5b0e70fSEmmanuel Vadot interrupt-controller; 159d5b0e70fSEmmanuel Vadot }; 160d5b0e70fSEmmanuel Vadot }; 161b97ee269SEmmanuel Vadot 162b97ee269SEmmanuel Vadot cpu-map { 163b97ee269SEmmanuel Vadot cluster0 { 164b97ee269SEmmanuel Vadot core0 { 165b97ee269SEmmanuel Vadot cpu = <&cpu0>; 166b97ee269SEmmanuel Vadot }; 167b97ee269SEmmanuel Vadot 168b97ee269SEmmanuel Vadot core1 { 169b97ee269SEmmanuel Vadot cpu = <&cpu1>; 170b97ee269SEmmanuel Vadot }; 171b97ee269SEmmanuel Vadot 172b97ee269SEmmanuel Vadot core2 { 173b97ee269SEmmanuel Vadot cpu = <&cpu2>; 174b97ee269SEmmanuel Vadot }; 175b97ee269SEmmanuel Vadot 176b97ee269SEmmanuel Vadot core3 { 177b97ee269SEmmanuel Vadot cpu = <&cpu3>; 178b97ee269SEmmanuel Vadot }; 179b97ee269SEmmanuel Vadot 180b97ee269SEmmanuel Vadot core4 { 181b97ee269SEmmanuel Vadot cpu = <&cpu4>; 182b97ee269SEmmanuel Vadot }; 183b97ee269SEmmanuel Vadot }; 184b97ee269SEmmanuel Vadot }; 185d5b0e70fSEmmanuel Vadot }; 186d5b0e70fSEmmanuel Vadot 187d5b0e70fSEmmanuel Vadot refclk: mssrefclk { 188d5b0e70fSEmmanuel Vadot compatible = "fixed-clock"; 189d5b0e70fSEmmanuel Vadot #clock-cells = <0>; 190d5b0e70fSEmmanuel Vadot }; 191d5b0e70fSEmmanuel Vadot 192d5b0e70fSEmmanuel Vadot syscontroller: syscontroller { 193d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs-sys-controller"; 194d5b0e70fSEmmanuel Vadot mboxes = <&mbox 0>; 195d5b0e70fSEmmanuel Vadot }; 196d5b0e70fSEmmanuel Vadot 1978d13bc63SEmmanuel Vadot scbclk: mssclkclk { 1988d13bc63SEmmanuel Vadot compatible = "fixed-clock"; 1998d13bc63SEmmanuel Vadot #clock-cells = <0>; 2008d13bc63SEmmanuel Vadot clock-frequency = <80000000>; 2018d13bc63SEmmanuel Vadot }; 2028d13bc63SEmmanuel Vadot 203d5b0e70fSEmmanuel Vadot soc { 204d5b0e70fSEmmanuel Vadot #address-cells = <2>; 205d5b0e70fSEmmanuel Vadot #size-cells = <2>; 206d5b0e70fSEmmanuel Vadot compatible = "simple-bus"; 207d5b0e70fSEmmanuel Vadot ranges; 208d5b0e70fSEmmanuel Vadot 209d5b0e70fSEmmanuel Vadot cctrllr: cache-controller@2010000 { 210b97ee269SEmmanuel Vadot compatible = "microchip,mpfs-ccache", "sifive,fu540-c000-ccache", "cache"; 211d5b0e70fSEmmanuel Vadot reg = <0x0 0x2010000 0x0 0x1000>; 212d5b0e70fSEmmanuel Vadot cache-block-size = <64>; 213d5b0e70fSEmmanuel Vadot cache-level = <2>; 214d5b0e70fSEmmanuel Vadot cache-sets = <1024>; 215d5b0e70fSEmmanuel Vadot cache-size = <2097152>; 216d5b0e70fSEmmanuel Vadot cache-unified; 217d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 218b97ee269SEmmanuel Vadot interrupts = <1>, <3>, <4>, <2>; 219d5b0e70fSEmmanuel Vadot }; 220d5b0e70fSEmmanuel Vadot 221d5b0e70fSEmmanuel Vadot clint: clint@2000000 { 222d5b0e70fSEmmanuel Vadot compatible = "sifive,fu540-c000-clint", "sifive,clint0"; 223d5b0e70fSEmmanuel Vadot reg = <0x0 0x2000000 0x0 0xC000>; 224d5b0e70fSEmmanuel Vadot interrupts-extended = <&cpu0_intc 3>, <&cpu0_intc 7>, 225d5b0e70fSEmmanuel Vadot <&cpu1_intc 3>, <&cpu1_intc 7>, 226d5b0e70fSEmmanuel Vadot <&cpu2_intc 3>, <&cpu2_intc 7>, 227d5b0e70fSEmmanuel Vadot <&cpu3_intc 3>, <&cpu3_intc 7>, 228d5b0e70fSEmmanuel Vadot <&cpu4_intc 3>, <&cpu4_intc 7>; 229d5b0e70fSEmmanuel Vadot }; 230d5b0e70fSEmmanuel Vadot 231d5b0e70fSEmmanuel Vadot plic: interrupt-controller@c000000 { 232d5b0e70fSEmmanuel Vadot compatible = "sifive,fu540-c000-plic", "sifive,plic-1.0.0"; 233d5b0e70fSEmmanuel Vadot reg = <0x0 0xc000000 0x0 0x4000000>; 234d5b0e70fSEmmanuel Vadot #address-cells = <0>; 235d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 236d5b0e70fSEmmanuel Vadot interrupt-controller; 237d5b0e70fSEmmanuel Vadot interrupts-extended = <&cpu0_intc 11>, 238d5b0e70fSEmmanuel Vadot <&cpu1_intc 11>, <&cpu1_intc 9>, 239d5b0e70fSEmmanuel Vadot <&cpu2_intc 11>, <&cpu2_intc 9>, 240d5b0e70fSEmmanuel Vadot <&cpu3_intc 11>, <&cpu3_intc 9>, 241d5b0e70fSEmmanuel Vadot <&cpu4_intc 11>, <&cpu4_intc 9>; 242d5b0e70fSEmmanuel Vadot riscv,ndev = <186>; 243d5b0e70fSEmmanuel Vadot }; 244d5b0e70fSEmmanuel Vadot 245d5b0e70fSEmmanuel Vadot pdma: dma-controller@3000000 { 246*01950c46SEmmanuel Vadot compatible = "microchip,mpfs-pdma", "sifive,pdma0"; 247d5b0e70fSEmmanuel Vadot reg = <0x0 0x3000000 0x0 0x8000>; 248d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 249d5b0e70fSEmmanuel Vadot interrupts = <5 6>, <7 8>, <9 10>, <11 12>; 250d5b0e70fSEmmanuel Vadot dma-channels = <4>; 251d5b0e70fSEmmanuel Vadot #dma-cells = <1>; 252d5b0e70fSEmmanuel Vadot }; 253d5b0e70fSEmmanuel Vadot 254d5b0e70fSEmmanuel Vadot clkcfg: clkcfg@20002000 { 255d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs-clkcfg"; 256d5b0e70fSEmmanuel Vadot reg = <0x0 0x20002000 0x0 0x1000>, <0x0 0x3E001000 0x0 0x1000>; 257d5b0e70fSEmmanuel Vadot clocks = <&refclk>; 258d5b0e70fSEmmanuel Vadot #clock-cells = <1>; 259fac71e4eSEmmanuel Vadot #reset-cells = <1>; 260d5b0e70fSEmmanuel Vadot }; 261d5b0e70fSEmmanuel Vadot 2628bab661aSEmmanuel Vadot ccc_se: clock-controller@38010000 { 2638bab661aSEmmanuel Vadot compatible = "microchip,mpfs-ccc"; 2648bab661aSEmmanuel Vadot reg = <0x0 0x38010000 0x0 0x1000>, <0x0 0x38020000 0x0 0x1000>, 2658bab661aSEmmanuel Vadot <0x0 0x39010000 0x0 0x1000>, <0x0 0x39020000 0x0 0x1000>; 2668bab661aSEmmanuel Vadot #clock-cells = <1>; 2678bab661aSEmmanuel Vadot status = "disabled"; 2688bab661aSEmmanuel Vadot }; 2698bab661aSEmmanuel Vadot 2708bab661aSEmmanuel Vadot ccc_ne: clock-controller@38040000 { 2718bab661aSEmmanuel Vadot compatible = "microchip,mpfs-ccc"; 2728bab661aSEmmanuel Vadot reg = <0x0 0x38040000 0x0 0x1000>, <0x0 0x38080000 0x0 0x1000>, 2738bab661aSEmmanuel Vadot <0x0 0x39040000 0x0 0x1000>, <0x0 0x39080000 0x0 0x1000>; 2748bab661aSEmmanuel Vadot #clock-cells = <1>; 2758bab661aSEmmanuel Vadot status = "disabled"; 2768bab661aSEmmanuel Vadot }; 2778bab661aSEmmanuel Vadot 2788bab661aSEmmanuel Vadot ccc_nw: clock-controller@38100000 { 2798bab661aSEmmanuel Vadot compatible = "microchip,mpfs-ccc"; 2808bab661aSEmmanuel Vadot reg = <0x0 0x38100000 0x0 0x1000>, <0x0 0x38200000 0x0 0x1000>, 2818bab661aSEmmanuel Vadot <0x0 0x39100000 0x0 0x1000>, <0x0 0x39200000 0x0 0x1000>; 2828bab661aSEmmanuel Vadot #clock-cells = <1>; 2838bab661aSEmmanuel Vadot status = "disabled"; 2848bab661aSEmmanuel Vadot }; 2858bab661aSEmmanuel Vadot 2868bab661aSEmmanuel Vadot ccc_sw: clock-controller@38400000 { 2878bab661aSEmmanuel Vadot compatible = "microchip,mpfs-ccc"; 2888bab661aSEmmanuel Vadot reg = <0x0 0x38400000 0x0 0x1000>, <0x0 0x38800000 0x0 0x1000>, 2898bab661aSEmmanuel Vadot <0x0 0x39400000 0x0 0x1000>, <0x0 0x39800000 0x0 0x1000>; 2908bab661aSEmmanuel Vadot #clock-cells = <1>; 2918bab661aSEmmanuel Vadot status = "disabled"; 2928bab661aSEmmanuel Vadot }; 2938bab661aSEmmanuel Vadot 294d5b0e70fSEmmanuel Vadot mmuart0: serial@20000000 { 295d5b0e70fSEmmanuel Vadot compatible = "ns16550a"; 296d5b0e70fSEmmanuel Vadot reg = <0x0 0x20000000 0x0 0x400>; 297d5b0e70fSEmmanuel Vadot reg-io-width = <4>; 298d5b0e70fSEmmanuel Vadot reg-shift = <2>; 299d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 300d5b0e70fSEmmanuel Vadot interrupts = <90>; 301d5b0e70fSEmmanuel Vadot current-speed = <115200>; 302d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_MMUART0>; 303d5b0e70fSEmmanuel Vadot status = "disabled"; /* Reserved for the HSS */ 304d5b0e70fSEmmanuel Vadot }; 305d5b0e70fSEmmanuel Vadot 306d5b0e70fSEmmanuel Vadot mmuart1: serial@20100000 { 307d5b0e70fSEmmanuel Vadot compatible = "ns16550a"; 308d5b0e70fSEmmanuel Vadot reg = <0x0 0x20100000 0x0 0x400>; 309d5b0e70fSEmmanuel Vadot reg-io-width = <4>; 310d5b0e70fSEmmanuel Vadot reg-shift = <2>; 311d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 312d5b0e70fSEmmanuel Vadot interrupts = <91>; 313d5b0e70fSEmmanuel Vadot current-speed = <115200>; 314d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_MMUART1>; 315d5b0e70fSEmmanuel Vadot status = "disabled"; 316d5b0e70fSEmmanuel Vadot }; 317d5b0e70fSEmmanuel Vadot 318d5b0e70fSEmmanuel Vadot mmuart2: serial@20102000 { 319d5b0e70fSEmmanuel Vadot compatible = "ns16550a"; 320d5b0e70fSEmmanuel Vadot reg = <0x0 0x20102000 0x0 0x400>; 321d5b0e70fSEmmanuel Vadot reg-io-width = <4>; 322d5b0e70fSEmmanuel Vadot reg-shift = <2>; 323d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 324d5b0e70fSEmmanuel Vadot interrupts = <92>; 325d5b0e70fSEmmanuel Vadot current-speed = <115200>; 326d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_MMUART2>; 327d5b0e70fSEmmanuel Vadot status = "disabled"; 328d5b0e70fSEmmanuel Vadot }; 329d5b0e70fSEmmanuel Vadot 330d5b0e70fSEmmanuel Vadot mmuart3: serial@20104000 { 331d5b0e70fSEmmanuel Vadot compatible = "ns16550a"; 332d5b0e70fSEmmanuel Vadot reg = <0x0 0x20104000 0x0 0x400>; 333d5b0e70fSEmmanuel Vadot reg-io-width = <4>; 334d5b0e70fSEmmanuel Vadot reg-shift = <2>; 335d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 336d5b0e70fSEmmanuel Vadot interrupts = <93>; 337d5b0e70fSEmmanuel Vadot current-speed = <115200>; 338d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_MMUART3>; 339d5b0e70fSEmmanuel Vadot status = "disabled"; 340d5b0e70fSEmmanuel Vadot }; 341d5b0e70fSEmmanuel Vadot 342d5b0e70fSEmmanuel Vadot mmuart4: serial@20106000 { 343d5b0e70fSEmmanuel Vadot compatible = "ns16550a"; 344d5b0e70fSEmmanuel Vadot reg = <0x0 0x20106000 0x0 0x400>; 345d5b0e70fSEmmanuel Vadot reg-io-width = <4>; 346d5b0e70fSEmmanuel Vadot reg-shift = <2>; 347d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 348d5b0e70fSEmmanuel Vadot interrupts = <94>; 349d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_MMUART4>; 350d5b0e70fSEmmanuel Vadot current-speed = <115200>; 351d5b0e70fSEmmanuel Vadot status = "disabled"; 352d5b0e70fSEmmanuel Vadot }; 353d5b0e70fSEmmanuel Vadot 354d5b0e70fSEmmanuel Vadot /* Common node entry for emmc/sd */ 355d5b0e70fSEmmanuel Vadot mmc: mmc@20008000 { 356d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs-sd4hc", "cdns,sd4hc"; 357d5b0e70fSEmmanuel Vadot reg = <0x0 0x20008000 0x0 0x1000>; 358d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 359d5b0e70fSEmmanuel Vadot interrupts = <88>; 360d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_MMC>; 361d5b0e70fSEmmanuel Vadot max-frequency = <200000000>; 362d5b0e70fSEmmanuel Vadot status = "disabled"; 363d5b0e70fSEmmanuel Vadot }; 364d5b0e70fSEmmanuel Vadot 365d5b0e70fSEmmanuel Vadot spi0: spi@20108000 { 366d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs-spi"; 367d5b0e70fSEmmanuel Vadot #address-cells = <1>; 368d5b0e70fSEmmanuel Vadot #size-cells = <0>; 369d5b0e70fSEmmanuel Vadot reg = <0x0 0x20108000 0x0 0x1000>; 370d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 371d5b0e70fSEmmanuel Vadot interrupts = <54>; 372d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_SPI0>; 373d5b0e70fSEmmanuel Vadot status = "disabled"; 374d5b0e70fSEmmanuel Vadot }; 375d5b0e70fSEmmanuel Vadot 376d5b0e70fSEmmanuel Vadot spi1: spi@20109000 { 377d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs-spi"; 378d5b0e70fSEmmanuel Vadot #address-cells = <1>; 379d5b0e70fSEmmanuel Vadot #size-cells = <0>; 380d5b0e70fSEmmanuel Vadot reg = <0x0 0x20109000 0x0 0x1000>; 381d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 382d5b0e70fSEmmanuel Vadot interrupts = <55>; 383d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_SPI1>; 384d5b0e70fSEmmanuel Vadot status = "disabled"; 385d5b0e70fSEmmanuel Vadot }; 386d5b0e70fSEmmanuel Vadot 387d5b0e70fSEmmanuel Vadot qspi: spi@21000000 { 3887ef62cebSEmmanuel Vadot compatible = "microchip,mpfs-qspi", "microchip,coreqspi-rtl-v2"; 389d5b0e70fSEmmanuel Vadot #address-cells = <1>; 390d5b0e70fSEmmanuel Vadot #size-cells = <0>; 391d5b0e70fSEmmanuel Vadot reg = <0x0 0x21000000 0x0 0x1000>; 392d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 393d5b0e70fSEmmanuel Vadot interrupts = <85>; 394d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_QSPI>; 395d5b0e70fSEmmanuel Vadot status = "disabled"; 396d5b0e70fSEmmanuel Vadot }; 397d5b0e70fSEmmanuel Vadot 398d5b0e70fSEmmanuel Vadot i2c0: i2c@2010a000 { 399d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs-i2c", "microchip,corei2c-rtl-v7"; 400d5b0e70fSEmmanuel Vadot reg = <0x0 0x2010a000 0x0 0x1000>; 401d5b0e70fSEmmanuel Vadot #address-cells = <1>; 402d5b0e70fSEmmanuel Vadot #size-cells = <0>; 403d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 404d5b0e70fSEmmanuel Vadot interrupts = <58>; 405d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_I2C0>; 406d5b0e70fSEmmanuel Vadot clock-frequency = <100000>; 407d5b0e70fSEmmanuel Vadot status = "disabled"; 408d5b0e70fSEmmanuel Vadot }; 409d5b0e70fSEmmanuel Vadot 410d5b0e70fSEmmanuel Vadot i2c1: i2c@2010b000 { 411d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs-i2c", "microchip,corei2c-rtl-v7"; 412d5b0e70fSEmmanuel Vadot reg = <0x0 0x2010b000 0x0 0x1000>; 413d5b0e70fSEmmanuel Vadot #address-cells = <1>; 414d5b0e70fSEmmanuel Vadot #size-cells = <0>; 415d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 416d5b0e70fSEmmanuel Vadot interrupts = <61>; 417d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_I2C1>; 418d5b0e70fSEmmanuel Vadot clock-frequency = <100000>; 419d5b0e70fSEmmanuel Vadot status = "disabled"; 420d5b0e70fSEmmanuel Vadot }; 421d5b0e70fSEmmanuel Vadot 422b97ee269SEmmanuel Vadot can0: can@2010c000 { 423b97ee269SEmmanuel Vadot compatible = "microchip,mpfs-can"; 424b97ee269SEmmanuel Vadot reg = <0x0 0x2010c000 0x0 0x1000>; 425*01950c46SEmmanuel Vadot clocks = <&clkcfg CLK_CAN0>, <&clkcfg CLK_MSSPLL3>; 426b97ee269SEmmanuel Vadot interrupt-parent = <&plic>; 427b97ee269SEmmanuel Vadot interrupts = <56>; 428b97ee269SEmmanuel Vadot status = "disabled"; 429b97ee269SEmmanuel Vadot }; 430b97ee269SEmmanuel Vadot 431b97ee269SEmmanuel Vadot can1: can@2010d000 { 432b97ee269SEmmanuel Vadot compatible = "microchip,mpfs-can"; 433b97ee269SEmmanuel Vadot reg = <0x0 0x2010d000 0x0 0x1000>; 434*01950c46SEmmanuel Vadot clocks = <&clkcfg CLK_CAN1>, <&clkcfg CLK_MSSPLL3>; 435b97ee269SEmmanuel Vadot interrupt-parent = <&plic>; 436b97ee269SEmmanuel Vadot interrupts = <57>; 437b97ee269SEmmanuel Vadot status = "disabled"; 438b97ee269SEmmanuel Vadot }; 439b97ee269SEmmanuel Vadot 440d5b0e70fSEmmanuel Vadot mac0: ethernet@20110000 { 441fac71e4eSEmmanuel Vadot compatible = "microchip,mpfs-macb", "cdns,macb"; 442d5b0e70fSEmmanuel Vadot reg = <0x0 0x20110000 0x0 0x2000>; 443d5b0e70fSEmmanuel Vadot #address-cells = <1>; 444d5b0e70fSEmmanuel Vadot #size-cells = <0>; 445d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 446d5b0e70fSEmmanuel Vadot interrupts = <64>, <65>, <66>, <67>, <68>, <69>; 447d5b0e70fSEmmanuel Vadot local-mac-address = [00 00 00 00 00 00]; 448d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_MAC0>, <&clkcfg CLK_AHB>; 449d5b0e70fSEmmanuel Vadot clock-names = "pclk", "hclk"; 450fac71e4eSEmmanuel Vadot resets = <&clkcfg CLK_MAC0>; 451d5b0e70fSEmmanuel Vadot status = "disabled"; 452d5b0e70fSEmmanuel Vadot }; 453d5b0e70fSEmmanuel Vadot 454d5b0e70fSEmmanuel Vadot mac1: ethernet@20112000 { 455fac71e4eSEmmanuel Vadot compatible = "microchip,mpfs-macb", "cdns,macb"; 456d5b0e70fSEmmanuel Vadot reg = <0x0 0x20112000 0x0 0x2000>; 457d5b0e70fSEmmanuel Vadot #address-cells = <1>; 458d5b0e70fSEmmanuel Vadot #size-cells = <0>; 459d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 460d5b0e70fSEmmanuel Vadot interrupts = <70>, <71>, <72>, <73>, <74>, <75>; 461d5b0e70fSEmmanuel Vadot local-mac-address = [00 00 00 00 00 00]; 462d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_MAC1>, <&clkcfg CLK_AHB>; 463d5b0e70fSEmmanuel Vadot clock-names = "pclk", "hclk"; 464fac71e4eSEmmanuel Vadot resets = <&clkcfg CLK_MAC1>; 465d5b0e70fSEmmanuel Vadot status = "disabled"; 466d5b0e70fSEmmanuel Vadot }; 467d5b0e70fSEmmanuel Vadot 468d5b0e70fSEmmanuel Vadot gpio0: gpio@20120000 { 469d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs-gpio"; 470d5b0e70fSEmmanuel Vadot reg = <0x0 0x20120000 0x0 0x1000>; 471d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 472d5b0e70fSEmmanuel Vadot interrupt-controller; 473d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 474d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_GPIO0>; 475d5b0e70fSEmmanuel Vadot gpio-controller; 476d5b0e70fSEmmanuel Vadot #gpio-cells = <2>; 477d5b0e70fSEmmanuel Vadot status = "disabled"; 478d5b0e70fSEmmanuel Vadot }; 479d5b0e70fSEmmanuel Vadot 480d5b0e70fSEmmanuel Vadot gpio1: gpio@20121000 { 481d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs-gpio"; 482d5b0e70fSEmmanuel Vadot reg = <0x0 0x20121000 0x0 0x1000>; 483d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 484d5b0e70fSEmmanuel Vadot interrupt-controller; 485d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 486d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_GPIO1>; 487d5b0e70fSEmmanuel Vadot gpio-controller; 488d5b0e70fSEmmanuel Vadot #gpio-cells = <2>; 489d5b0e70fSEmmanuel Vadot status = "disabled"; 490d5b0e70fSEmmanuel Vadot }; 491d5b0e70fSEmmanuel Vadot 492d5b0e70fSEmmanuel Vadot gpio2: gpio@20122000 { 493d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs-gpio"; 494d5b0e70fSEmmanuel Vadot reg = <0x0 0x20122000 0x0 0x1000>; 495d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 496d5b0e70fSEmmanuel Vadot interrupt-controller; 497d5b0e70fSEmmanuel Vadot #interrupt-cells = <1>; 498d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_GPIO2>; 499d5b0e70fSEmmanuel Vadot gpio-controller; 500d5b0e70fSEmmanuel Vadot #gpio-cells = <2>; 501d5b0e70fSEmmanuel Vadot status = "disabled"; 502d5b0e70fSEmmanuel Vadot }; 503d5b0e70fSEmmanuel Vadot 504d5b0e70fSEmmanuel Vadot rtc: rtc@20124000 { 505d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs-rtc"; 506d5b0e70fSEmmanuel Vadot reg = <0x0 0x20124000 0x0 0x1000>; 507d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 508d5b0e70fSEmmanuel Vadot interrupts = <80>, <81>; 509d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_RTC>, <&clkcfg CLK_RTCREF>; 510d5b0e70fSEmmanuel Vadot clock-names = "rtc", "rtcref"; 511d5b0e70fSEmmanuel Vadot status = "disabled"; 512d5b0e70fSEmmanuel Vadot }; 513d5b0e70fSEmmanuel Vadot 514d5b0e70fSEmmanuel Vadot usb: usb@20201000 { 515d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs-musb"; 516d5b0e70fSEmmanuel Vadot reg = <0x0 0x20201000 0x0 0x1000>; 517d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 518d5b0e70fSEmmanuel Vadot interrupts = <86>, <87>; 519d5b0e70fSEmmanuel Vadot clocks = <&clkcfg CLK_USB>; 520d5b0e70fSEmmanuel Vadot interrupt-names = "dma","mc"; 521d5b0e70fSEmmanuel Vadot status = "disabled"; 522d5b0e70fSEmmanuel Vadot }; 523d5b0e70fSEmmanuel Vadot 524d5b0e70fSEmmanuel Vadot mbox: mailbox@37020000 { 525d5b0e70fSEmmanuel Vadot compatible = "microchip,mpfs-mailbox"; 526fac71e4eSEmmanuel Vadot reg = <0x0 0x37020000 0x0 0x58>, <0x0 0x2000318C 0x0 0x40>, 527fac71e4eSEmmanuel Vadot <0x0 0x37020800 0x0 0x100>; 528d5b0e70fSEmmanuel Vadot interrupt-parent = <&plic>; 529d5b0e70fSEmmanuel Vadot interrupts = <96>; 530d5b0e70fSEmmanuel Vadot #mbox-cells = <1>; 531d5b0e70fSEmmanuel Vadot status = "disabled"; 532d5b0e70fSEmmanuel Vadot }; 5338d13bc63SEmmanuel Vadot 5348d13bc63SEmmanuel Vadot syscontroller_qspi: spi@37020100 { 5358d13bc63SEmmanuel Vadot compatible = "microchip,mpfs-qspi", "microchip,coreqspi-rtl-v2"; 5368d13bc63SEmmanuel Vadot #address-cells = <1>; 5378d13bc63SEmmanuel Vadot #size-cells = <0>; 5388d13bc63SEmmanuel Vadot reg = <0x0 0x37020100 0x0 0x100>; 5398d13bc63SEmmanuel Vadot interrupt-parent = <&plic>; 5408d13bc63SEmmanuel Vadot interrupts = <110>; 5418d13bc63SEmmanuel Vadot clocks = <&scbclk>; 5428d13bc63SEmmanuel Vadot status = "disabled"; 5438d13bc63SEmmanuel Vadot }; 544d5b0e70fSEmmanuel Vadot }; 545d5b0e70fSEmmanuel Vadot}; 546