1d843dd53SAlexandre Belloni// SPDX-License-Identifier: (GPL-2.0 OR MIT) 2d843dd53SAlexandre Belloni/* Copyright (c) 2017 Microsemi Corporation */ 3d843dd53SAlexandre Belloni 4d843dd53SAlexandre Belloni/ { 5d843dd53SAlexandre Belloni #address-cells = <1>; 6d843dd53SAlexandre Belloni #size-cells = <1>; 7d843dd53SAlexandre Belloni compatible = "mscc,ocelot"; 8d843dd53SAlexandre Belloni 9d843dd53SAlexandre Belloni cpus { 10d843dd53SAlexandre Belloni #address-cells = <1>; 11d843dd53SAlexandre Belloni #size-cells = <0>; 12d843dd53SAlexandre Belloni 13d843dd53SAlexandre Belloni cpu@0 { 14d843dd53SAlexandre Belloni compatible = "mips,mips24KEc"; 15d843dd53SAlexandre Belloni device_type = "cpu"; 16d843dd53SAlexandre Belloni clocks = <&cpu_clk>; 17d843dd53SAlexandre Belloni reg = <0>; 18d843dd53SAlexandre Belloni }; 19d843dd53SAlexandre Belloni }; 20d843dd53SAlexandre Belloni 21d843dd53SAlexandre Belloni aliases { 22d843dd53SAlexandre Belloni serial0 = &uart0; 23d843dd53SAlexandre Belloni }; 24d843dd53SAlexandre Belloni 25d843dd53SAlexandre Belloni cpuintc: interrupt-controller { 26d843dd53SAlexandre Belloni #address-cells = <0>; 27d843dd53SAlexandre Belloni #interrupt-cells = <1>; 28d843dd53SAlexandre Belloni interrupt-controller; 29d843dd53SAlexandre Belloni compatible = "mti,cpu-interrupt-controller"; 30d843dd53SAlexandre Belloni }; 31d843dd53SAlexandre Belloni 32d843dd53SAlexandre Belloni cpu_clk: cpu-clock { 33d843dd53SAlexandre Belloni compatible = "fixed-clock"; 34d843dd53SAlexandre Belloni #clock-cells = <0>; 35d843dd53SAlexandre Belloni clock-frequency = <500000000>; 36d843dd53SAlexandre Belloni }; 37d843dd53SAlexandre Belloni 38d843dd53SAlexandre Belloni ahb_clk: ahb-clk { 39d843dd53SAlexandre Belloni compatible = "fixed-factor-clock"; 40d843dd53SAlexandre Belloni #clock-cells = <0>; 41d843dd53SAlexandre Belloni clocks = <&cpu_clk>; 42d843dd53SAlexandre Belloni clock-div = <2>; 43d843dd53SAlexandre Belloni clock-mult = <1>; 44d843dd53SAlexandre Belloni }; 45d843dd53SAlexandre Belloni 46d843dd53SAlexandre Belloni ahb@70000000 { 47d843dd53SAlexandre Belloni compatible = "simple-bus"; 48d843dd53SAlexandre Belloni #address-cells = <1>; 49d843dd53SAlexandre Belloni #size-cells = <1>; 50d843dd53SAlexandre Belloni ranges = <0 0x70000000 0x2000000>; 51d843dd53SAlexandre Belloni 52d843dd53SAlexandre Belloni interrupt-parent = <&intc>; 53d843dd53SAlexandre Belloni 54d843dd53SAlexandre Belloni cpu_ctrl: syscon@0 { 55d843dd53SAlexandre Belloni compatible = "mscc,ocelot-cpu-syscon", "syscon"; 56d843dd53SAlexandre Belloni reg = <0x0 0x2c>; 57d843dd53SAlexandre Belloni }; 58d843dd53SAlexandre Belloni 59d843dd53SAlexandre Belloni intc: interrupt-controller@70 { 60d843dd53SAlexandre Belloni compatible = "mscc,ocelot-icpu-intr"; 61d843dd53SAlexandre Belloni reg = <0x70 0x70>; 62d843dd53SAlexandre Belloni #interrupt-cells = <1>; 63d843dd53SAlexandre Belloni interrupt-controller; 64d843dd53SAlexandre Belloni interrupt-parent = <&cpuintc>; 65d843dd53SAlexandre Belloni interrupts = <2>; 66d843dd53SAlexandre Belloni }; 67d843dd53SAlexandre Belloni 68d843dd53SAlexandre Belloni uart0: serial@100000 { 69d843dd53SAlexandre Belloni pinctrl-0 = <&uart_pins>; 70d843dd53SAlexandre Belloni pinctrl-names = "default"; 71d843dd53SAlexandre Belloni compatible = "ns16550a"; 72d843dd53SAlexandre Belloni reg = <0x100000 0x20>; 73d843dd53SAlexandre Belloni interrupts = <6>; 74d843dd53SAlexandre Belloni clocks = <&ahb_clk>; 75d843dd53SAlexandre Belloni reg-io-width = <4>; 76d843dd53SAlexandre Belloni reg-shift = <2>; 77d843dd53SAlexandre Belloni 78d843dd53SAlexandre Belloni status = "disabled"; 79d843dd53SAlexandre Belloni }; 80d843dd53SAlexandre Belloni 819ca953a3SAlexandre Belloni i2c: i2c@100400 { 829ca953a3SAlexandre Belloni compatible = "mscc,ocelot-i2c", "snps,designware-i2c"; 839ca953a3SAlexandre Belloni pinctrl-0 = <&i2c_pins>; 849ca953a3SAlexandre Belloni pinctrl-names = "default"; 859ca953a3SAlexandre Belloni reg = <0x100400 0x100>, <0x198 0x8>; 869ca953a3SAlexandre Belloni #address-cells = <1>; 879ca953a3SAlexandre Belloni #size-cells = <0>; 889ca953a3SAlexandre Belloni interrupts = <8>; 899ca953a3SAlexandre Belloni clocks = <&ahb_clk>; 909ca953a3SAlexandre Belloni 919ca953a3SAlexandre Belloni status = "disabled"; 929ca953a3SAlexandre Belloni }; 939ca953a3SAlexandre Belloni 94d843dd53SAlexandre Belloni uart2: serial@100800 { 95d843dd53SAlexandre Belloni pinctrl-0 = <&uart2_pins>; 96d843dd53SAlexandre Belloni pinctrl-names = "default"; 97d843dd53SAlexandre Belloni compatible = "ns16550a"; 98d843dd53SAlexandre Belloni reg = <0x100800 0x20>; 99d843dd53SAlexandre Belloni interrupts = <7>; 100d843dd53SAlexandre Belloni clocks = <&ahb_clk>; 101d843dd53SAlexandre Belloni reg-io-width = <4>; 102d843dd53SAlexandre Belloni reg-shift = <2>; 103d843dd53SAlexandre Belloni 104d843dd53SAlexandre Belloni status = "disabled"; 105d843dd53SAlexandre Belloni }; 106d843dd53SAlexandre Belloni 1079eaf3ba5SAlexandre Belloni spi: spi@101000 { 1089eaf3ba5SAlexandre Belloni compatible = "mscc,ocelot-spi", "snps,dw-apb-ssi"; 1099eaf3ba5SAlexandre Belloni #address-cells = <1>; 1109eaf3ba5SAlexandre Belloni #size-cells = <0>; 1119eaf3ba5SAlexandre Belloni reg = <0x101000 0x100>, <0x3c 0x18>; 1129eaf3ba5SAlexandre Belloni interrupts = <9>; 1139eaf3ba5SAlexandre Belloni clocks = <&ahb_clk>; 1149eaf3ba5SAlexandre Belloni 1159eaf3ba5SAlexandre Belloni status = "disabled"; 1169eaf3ba5SAlexandre Belloni }; 1179eaf3ba5SAlexandre Belloni 11849b03169SAlexandre Belloni switch@1010000 { 11949b03169SAlexandre Belloni compatible = "mscc,vsc7514-switch"; 12049b03169SAlexandre Belloni reg = <0x1010000 0x10000>, 12149b03169SAlexandre Belloni <0x1030000 0x10000>, 12249b03169SAlexandre Belloni <0x1080000 0x100>, 123048dc3abSAntoine Tenart <0x10e0000 0x10000>, 12449b03169SAlexandre Belloni <0x11e0000 0x100>, 12549b03169SAlexandre Belloni <0x11f0000 0x100>, 12649b03169SAlexandre Belloni <0x1200000 0x100>, 12749b03169SAlexandre Belloni <0x1210000 0x100>, 12849b03169SAlexandre Belloni <0x1220000 0x100>, 12949b03169SAlexandre Belloni <0x1230000 0x100>, 13049b03169SAlexandre Belloni <0x1240000 0x100>, 13149b03169SAlexandre Belloni <0x1250000 0x100>, 13249b03169SAlexandre Belloni <0x1260000 0x100>, 13349b03169SAlexandre Belloni <0x1270000 0x100>, 13449b03169SAlexandre Belloni <0x1280000 0x100>, 13549b03169SAlexandre Belloni <0x1800000 0x80000>, 136b5962294SHoratiu Vultur <0x1880000 0x10000>, 137e3aea296SVladimir Oltean <0x1040000 0x10000>, 138a61e365dSVladimir Oltean <0x1050000 0x10000>, 139b5962294SHoratiu Vultur <0x1060000 0x10000>; 140048dc3abSAntoine Tenart reg-names = "sys", "rew", "qs", "ptp", "port0", "port1", 1413df0e680SQuentin Schulz "port2", "port3", "port4", "port5", "port6", 1423df0e680SQuentin Schulz "port7", "port8", "port9", "port10", "qsys", 143e3aea296SVladimir Oltean "ana", "s0", "s1", "s2"; 144b4742e66SAntoine Tenart interrupts = <18 21 22>; 145b4742e66SAntoine Tenart interrupt-names = "ptp_rdy", "xtr", "inj"; 14649b03169SAlexandre Belloni 14749b03169SAlexandre Belloni ethernet-ports { 14849b03169SAlexandre Belloni #address-cells = <1>; 14949b03169SAlexandre Belloni #size-cells = <0>; 15049b03169SAlexandre Belloni 15149b03169SAlexandre Belloni port0: port@0 { 15249b03169SAlexandre Belloni reg = <0>; 153*0181f6f1SVladimir Oltean status = "disabled"; 15449b03169SAlexandre Belloni }; 15549b03169SAlexandre Belloni port1: port@1 { 15649b03169SAlexandre Belloni reg = <1>; 157*0181f6f1SVladimir Oltean status = "disabled"; 15849b03169SAlexandre Belloni }; 15949b03169SAlexandre Belloni port2: port@2 { 16049b03169SAlexandre Belloni reg = <2>; 161*0181f6f1SVladimir Oltean status = "disabled"; 16249b03169SAlexandre Belloni }; 16349b03169SAlexandre Belloni port3: port@3 { 16449b03169SAlexandre Belloni reg = <3>; 165*0181f6f1SVladimir Oltean status = "disabled"; 16649b03169SAlexandre Belloni }; 16749b03169SAlexandre Belloni port4: port@4 { 16849b03169SAlexandre Belloni reg = <4>; 169*0181f6f1SVladimir Oltean status = "disabled"; 17049b03169SAlexandre Belloni }; 17149b03169SAlexandre Belloni port5: port@5 { 17249b03169SAlexandre Belloni reg = <5>; 173*0181f6f1SVladimir Oltean status = "disabled"; 17449b03169SAlexandre Belloni }; 17549b03169SAlexandre Belloni port6: port@6 { 17649b03169SAlexandre Belloni reg = <6>; 177*0181f6f1SVladimir Oltean status = "disabled"; 17849b03169SAlexandre Belloni }; 17949b03169SAlexandre Belloni port7: port@7 { 18049b03169SAlexandre Belloni reg = <7>; 181*0181f6f1SVladimir Oltean status = "disabled"; 18249b03169SAlexandre Belloni }; 18349b03169SAlexandre Belloni port8: port@8 { 18449b03169SAlexandre Belloni reg = <8>; 185*0181f6f1SVladimir Oltean status = "disabled"; 18649b03169SAlexandre Belloni }; 18749b03169SAlexandre Belloni port9: port@9 { 18849b03169SAlexandre Belloni reg = <9>; 189*0181f6f1SVladimir Oltean status = "disabled"; 19049b03169SAlexandre Belloni }; 19149b03169SAlexandre Belloni port10: port@10 { 19249b03169SAlexandre Belloni reg = <10>; 193*0181f6f1SVladimir Oltean status = "disabled"; 19449b03169SAlexandre Belloni }; 19549b03169SAlexandre Belloni }; 19649b03169SAlexandre Belloni }; 19749b03169SAlexandre Belloni 198d843dd53SAlexandre Belloni reset@1070008 { 199d843dd53SAlexandre Belloni compatible = "mscc,ocelot-chip-reset"; 200d843dd53SAlexandre Belloni reg = <0x1070008 0x4>; 201d843dd53SAlexandre Belloni }; 202d843dd53SAlexandre Belloni 203d843dd53SAlexandre Belloni gpio: pinctrl@1070034 { 204d843dd53SAlexandre Belloni compatible = "mscc,ocelot-pinctrl"; 205d843dd53SAlexandre Belloni reg = <0x1070034 0x68>; 206d843dd53SAlexandre Belloni gpio-controller; 207d843dd53SAlexandre Belloni #gpio-cells = <2>; 208d843dd53SAlexandre Belloni gpio-ranges = <&gpio 0 0 22>; 2096386889aSQuentin Schulz interrupt-controller; 2106386889aSQuentin Schulz interrupts = <13>; 2116386889aSQuentin Schulz #interrupt-cells = <2>; 212d843dd53SAlexandre Belloni 2139ca953a3SAlexandre Belloni i2c_pins: i2c-pins { 2149ca953a3SAlexandre Belloni pins = "GPIO_16", "GPIO_17"; 2159ca953a3SAlexandre Belloni function = "twi"; 2169ca953a3SAlexandre Belloni }; 2179ca953a3SAlexandre Belloni 218d843dd53SAlexandre Belloni uart_pins: uart-pins { 219d843dd53SAlexandre Belloni pins = "GPIO_6", "GPIO_7"; 220d843dd53SAlexandre Belloni function = "uart"; 221d843dd53SAlexandre Belloni }; 222d843dd53SAlexandre Belloni 223d843dd53SAlexandre Belloni uart2_pins: uart2-pins { 224d843dd53SAlexandre Belloni pins = "GPIO_12", "GPIO_13"; 225d843dd53SAlexandre Belloni function = "uart2"; 226d843dd53SAlexandre Belloni }; 227a0553e01SQuentin Schulz 228a0553e01SQuentin Schulz miim1: miim1 { 229a0553e01SQuentin Schulz pins = "GPIO_14", "GPIO_15"; 230d203c2d3SLars Povlsen function = "miim"; 231a0553e01SQuentin Schulz }; 2329ca953a3SAlexandre Belloni 233d843dd53SAlexandre Belloni }; 23449b03169SAlexandre Belloni 23549b03169SAlexandre Belloni mdio0: mdio@107009c { 23649b03169SAlexandre Belloni #address-cells = <1>; 23749b03169SAlexandre Belloni #size-cells = <0>; 23849b03169SAlexandre Belloni compatible = "mscc,ocelot-miim"; 23949e5bb13SQuentin Schulz reg = <0x107009c 0x24>, <0x10700f0 0x8>; 24049b03169SAlexandre Belloni interrupts = <14>; 24149b03169SAlexandre Belloni status = "disabled"; 24249b03169SAlexandre Belloni 24349b03169SAlexandre Belloni phy0: ethernet-phy@0 { 24449b03169SAlexandre Belloni reg = <0>; 24549b03169SAlexandre Belloni }; 24649b03169SAlexandre Belloni phy1: ethernet-phy@1 { 24749b03169SAlexandre Belloni reg = <1>; 24849b03169SAlexandre Belloni }; 24949b03169SAlexandre Belloni phy2: ethernet-phy@2 { 25049b03169SAlexandre Belloni reg = <2>; 25149b03169SAlexandre Belloni }; 25249b03169SAlexandre Belloni phy3: ethernet-phy@3 { 25349b03169SAlexandre Belloni reg = <3>; 25449b03169SAlexandre Belloni }; 25549b03169SAlexandre Belloni }; 256a0553e01SQuentin Schulz 257a0553e01SQuentin Schulz mdio1: mdio@10700c0 { 258a0553e01SQuentin Schulz #address-cells = <1>; 259a0553e01SQuentin Schulz #size-cells = <0>; 260a0553e01SQuentin Schulz compatible = "mscc,ocelot-miim"; 261a0553e01SQuentin Schulz reg = <0x10700c0 0x24>; 262a0553e01SQuentin Schulz interrupts = <15>; 263a0553e01SQuentin Schulz pinctrl-names = "default"; 264a0553e01SQuentin Schulz pinctrl-0 = <&miim1>; 265a0553e01SQuentin Schulz status = "disabled"; 266a0553e01SQuentin Schulz }; 2673df0e680SQuentin Schulz 2683df0e680SQuentin Schulz hsio: syscon@10d0000 { 2693df0e680SQuentin Schulz compatible = "mscc,ocelot-hsio", "syscon", "simple-mfd"; 2703df0e680SQuentin Schulz reg = <0x10d0000 0x10000>; 2711d6a632cSQuentin Schulz 2721d6a632cSQuentin Schulz serdes: serdes { 2731d6a632cSQuentin Schulz compatible = "mscc,vsc7514-serdes"; 2741d6a632cSQuentin Schulz #phy-cells = <2>; 2751d6a632cSQuentin Schulz }; 2763df0e680SQuentin Schulz }; 277d843dd53SAlexandre Belloni }; 278d843dd53SAlexandre Belloni}; 279