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>, 139*5f7e2f3eSAlexandre Belloni <0x1060000 0x10000>, 140*5f7e2f3eSAlexandre Belloni <0x1a0 0x1c4>; 141048dc3abSAntoine Tenart reg-names = "sys", "rew", "qs", "ptp", "port0", "port1", 1423df0e680SQuentin Schulz "port2", "port3", "port4", "port5", "port6", 1433df0e680SQuentin Schulz "port7", "port8", "port9", "port10", "qsys", 144*5f7e2f3eSAlexandre Belloni "ana", "s0", "s1", "s2", "fdma"; 145*5f7e2f3eSAlexandre Belloni interrupts = <18 21 22 16>; 146*5f7e2f3eSAlexandre Belloni interrupt-names = "ptp_rdy", "xtr", "inj", "fdma"; 14749b03169SAlexandre Belloni 14849b03169SAlexandre Belloni ethernet-ports { 14949b03169SAlexandre Belloni #address-cells = <1>; 15049b03169SAlexandre Belloni #size-cells = <0>; 15149b03169SAlexandre Belloni 15249b03169SAlexandre Belloni port0: port@0 { 15349b03169SAlexandre Belloni reg = <0>; 1540181f6f1SVladimir Oltean status = "disabled"; 15549b03169SAlexandre Belloni }; 15649b03169SAlexandre Belloni port1: port@1 { 15749b03169SAlexandre Belloni reg = <1>; 1580181f6f1SVladimir Oltean status = "disabled"; 15949b03169SAlexandre Belloni }; 16049b03169SAlexandre Belloni port2: port@2 { 16149b03169SAlexandre Belloni reg = <2>; 1620181f6f1SVladimir Oltean status = "disabled"; 16349b03169SAlexandre Belloni }; 16449b03169SAlexandre Belloni port3: port@3 { 16549b03169SAlexandre Belloni reg = <3>; 1660181f6f1SVladimir Oltean status = "disabled"; 16749b03169SAlexandre Belloni }; 16849b03169SAlexandre Belloni port4: port@4 { 16949b03169SAlexandre Belloni reg = <4>; 1700181f6f1SVladimir Oltean status = "disabled"; 17149b03169SAlexandre Belloni }; 17249b03169SAlexandre Belloni port5: port@5 { 17349b03169SAlexandre Belloni reg = <5>; 1740181f6f1SVladimir Oltean status = "disabled"; 17549b03169SAlexandre Belloni }; 17649b03169SAlexandre Belloni port6: port@6 { 17749b03169SAlexandre Belloni reg = <6>; 1780181f6f1SVladimir Oltean status = "disabled"; 17949b03169SAlexandre Belloni }; 18049b03169SAlexandre Belloni port7: port@7 { 18149b03169SAlexandre Belloni reg = <7>; 1820181f6f1SVladimir Oltean status = "disabled"; 18349b03169SAlexandre Belloni }; 18449b03169SAlexandre Belloni port8: port@8 { 18549b03169SAlexandre Belloni reg = <8>; 1860181f6f1SVladimir Oltean status = "disabled"; 18749b03169SAlexandre Belloni }; 18849b03169SAlexandre Belloni port9: port@9 { 18949b03169SAlexandre Belloni reg = <9>; 1900181f6f1SVladimir Oltean status = "disabled"; 19149b03169SAlexandre Belloni }; 19249b03169SAlexandre Belloni port10: port@10 { 19349b03169SAlexandre Belloni reg = <10>; 1940181f6f1SVladimir Oltean status = "disabled"; 19549b03169SAlexandre Belloni }; 19649b03169SAlexandre Belloni }; 19749b03169SAlexandre Belloni }; 19849b03169SAlexandre Belloni 199d843dd53SAlexandre Belloni reset@1070008 { 200d843dd53SAlexandre Belloni compatible = "mscc,ocelot-chip-reset"; 201d843dd53SAlexandre Belloni reg = <0x1070008 0x4>; 202d843dd53SAlexandre Belloni }; 203d843dd53SAlexandre Belloni 204d843dd53SAlexandre Belloni gpio: pinctrl@1070034 { 205d843dd53SAlexandre Belloni compatible = "mscc,ocelot-pinctrl"; 206d843dd53SAlexandre Belloni reg = <0x1070034 0x68>; 207d843dd53SAlexandre Belloni gpio-controller; 208d843dd53SAlexandre Belloni #gpio-cells = <2>; 209d843dd53SAlexandre Belloni gpio-ranges = <&gpio 0 0 22>; 2106386889aSQuentin Schulz interrupt-controller; 2116386889aSQuentin Schulz interrupts = <13>; 2126386889aSQuentin Schulz #interrupt-cells = <2>; 213d843dd53SAlexandre Belloni 2149ca953a3SAlexandre Belloni i2c_pins: i2c-pins { 2159ca953a3SAlexandre Belloni pins = "GPIO_16", "GPIO_17"; 2169ca953a3SAlexandre Belloni function = "twi"; 2179ca953a3SAlexandre Belloni }; 2189ca953a3SAlexandre Belloni 219d843dd53SAlexandre Belloni uart_pins: uart-pins { 220d843dd53SAlexandre Belloni pins = "GPIO_6", "GPIO_7"; 221d843dd53SAlexandre Belloni function = "uart"; 222d843dd53SAlexandre Belloni }; 223d843dd53SAlexandre Belloni 224d843dd53SAlexandre Belloni uart2_pins: uart2-pins { 225d843dd53SAlexandre Belloni pins = "GPIO_12", "GPIO_13"; 226d843dd53SAlexandre Belloni function = "uart2"; 227d843dd53SAlexandre Belloni }; 228a0553e01SQuentin Schulz 229ee5930c9SMichael Walle miim1_pins: miim1-pins { 230a0553e01SQuentin Schulz pins = "GPIO_14", "GPIO_15"; 231d203c2d3SLars Povlsen function = "miim"; 232a0553e01SQuentin Schulz }; 2339ca953a3SAlexandre Belloni 234d843dd53SAlexandre Belloni }; 23549b03169SAlexandre Belloni 23649b03169SAlexandre Belloni mdio0: mdio@107009c { 23749b03169SAlexandre Belloni #address-cells = <1>; 23849b03169SAlexandre Belloni #size-cells = <0>; 23949b03169SAlexandre Belloni compatible = "mscc,ocelot-miim"; 24049e5bb13SQuentin Schulz reg = <0x107009c 0x24>, <0x10700f0 0x8>; 24149b03169SAlexandre Belloni interrupts = <14>; 24249b03169SAlexandre Belloni status = "disabled"; 24349b03169SAlexandre Belloni 24449b03169SAlexandre Belloni phy0: ethernet-phy@0 { 24549b03169SAlexandre Belloni reg = <0>; 24649b03169SAlexandre Belloni }; 24749b03169SAlexandre Belloni phy1: ethernet-phy@1 { 24849b03169SAlexandre Belloni reg = <1>; 24949b03169SAlexandre Belloni }; 25049b03169SAlexandre Belloni phy2: ethernet-phy@2 { 25149b03169SAlexandre Belloni reg = <2>; 25249b03169SAlexandre Belloni }; 25349b03169SAlexandre Belloni phy3: ethernet-phy@3 { 25449b03169SAlexandre Belloni reg = <3>; 25549b03169SAlexandre Belloni }; 25649b03169SAlexandre Belloni }; 257a0553e01SQuentin Schulz 258a0553e01SQuentin Schulz mdio1: mdio@10700c0 { 259a0553e01SQuentin Schulz #address-cells = <1>; 260a0553e01SQuentin Schulz #size-cells = <0>; 261a0553e01SQuentin Schulz compatible = "mscc,ocelot-miim"; 262a0553e01SQuentin Schulz reg = <0x10700c0 0x24>; 263a0553e01SQuentin Schulz interrupts = <15>; 264a0553e01SQuentin Schulz pinctrl-names = "default"; 265ee5930c9SMichael Walle pinctrl-0 = <&miim1_pins>; 266a0553e01SQuentin Schulz status = "disabled"; 267a0553e01SQuentin Schulz }; 2683df0e680SQuentin Schulz 2693df0e680SQuentin Schulz hsio: syscon@10d0000 { 2703df0e680SQuentin Schulz compatible = "mscc,ocelot-hsio", "syscon", "simple-mfd"; 2713df0e680SQuentin Schulz reg = <0x10d0000 0x10000>; 2721d6a632cSQuentin Schulz 2731d6a632cSQuentin Schulz serdes: serdes { 2741d6a632cSQuentin Schulz compatible = "mscc,vsc7514-serdes"; 2751d6a632cSQuentin Schulz #phy-cells = <2>; 2761d6a632cSQuentin Schulz }; 2773df0e680SQuentin Schulz }; 278d843dd53SAlexandre Belloni }; 279d843dd53SAlexandre Belloni}; 280