16787c1ecSGregory CLEMENT// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 26787c1ecSGregory CLEMENT/* 36787c1ecSGregory CLEMENT * Copyright (c) 2018 Microsemi Corporation 46787c1ecSGregory CLEMENT */ 56787c1ecSGregory CLEMENT 66787c1ecSGregory CLEMENT/ { 76787c1ecSGregory CLEMENT #address-cells = <1>; 86787c1ecSGregory CLEMENT #size-cells = <1>; 96787c1ecSGregory CLEMENT compatible = "mscc,ocelot"; 106787c1ecSGregory CLEMENT 116787c1ecSGregory CLEMENT cpus { 126787c1ecSGregory CLEMENT #address-cells = <1>; 136787c1ecSGregory CLEMENT #size-cells = <0>; 146787c1ecSGregory CLEMENT 156787c1ecSGregory CLEMENT cpu@0 { 166787c1ecSGregory CLEMENT compatible = "mips,mips24KEc"; 176787c1ecSGregory CLEMENT device_type = "cpu"; 186787c1ecSGregory CLEMENT clocks = <&cpu_clk>; 196787c1ecSGregory CLEMENT reg = <0>; 206787c1ecSGregory CLEMENT }; 216787c1ecSGregory CLEMENT }; 226787c1ecSGregory CLEMENT 236787c1ecSGregory CLEMENT aliases { 246787c1ecSGregory CLEMENT serial0 = &uart0; 256787c1ecSGregory CLEMENT }; 266787c1ecSGregory CLEMENT 276787c1ecSGregory CLEMENT cpuintc: interrupt-controller@0 { 286787c1ecSGregory CLEMENT #address-cells = <0>; 296787c1ecSGregory CLEMENT #interrupt-cells = <1>; 306787c1ecSGregory CLEMENT interrupt-controller; 316787c1ecSGregory CLEMENT compatible = "mti,cpu-interrupt-controller"; 326787c1ecSGregory CLEMENT }; 336787c1ecSGregory CLEMENT 346787c1ecSGregory CLEMENT cpu_clk: cpu-clock { 356787c1ecSGregory CLEMENT compatible = "fixed-clock"; 366787c1ecSGregory CLEMENT #clock-cells = <0>; 376787c1ecSGregory CLEMENT clock-frequency = <500000000>; 386787c1ecSGregory CLEMENT }; 396787c1ecSGregory CLEMENT 4026ad3c43SLars Povlsen sys_clk: sys-clk { 4126ad3c43SLars Povlsen compatible = "fixed-clock"; 4226ad3c43SLars Povlsen #clock-cells = <0>; 4326ad3c43SLars Povlsen clock-frequency = <250000000>; 4426ad3c43SLars Povlsen }; 4526ad3c43SLars Povlsen 466787c1ecSGregory CLEMENT ahb_clk: ahb-clk { 476787c1ecSGregory CLEMENT compatible = "fixed-clock"; 486787c1ecSGregory CLEMENT #clock-cells = <0>; 496787c1ecSGregory CLEMENT clock-frequency = <250000000>; 506787c1ecSGregory CLEMENT }; 516787c1ecSGregory CLEMENT 526787c1ecSGregory CLEMENT ahb { 536787c1ecSGregory CLEMENT compatible = "simple-bus"; 546787c1ecSGregory CLEMENT #address-cells = <1>; 556787c1ecSGregory CLEMENT #size-cells = <1>; 566787c1ecSGregory CLEMENT ranges = <0 0x70000000 0x2000000>; 576787c1ecSGregory CLEMENT 586787c1ecSGregory CLEMENT interrupt-parent = <&intc>; 596787c1ecSGregory CLEMENT 606787c1ecSGregory CLEMENT cpu_ctrl: syscon@0 { 616787c1ecSGregory CLEMENT compatible = "mscc,ocelot-cpu-syscon", "syscon"; 626787c1ecSGregory CLEMENT reg = <0x0 0x2c>; 636787c1ecSGregory CLEMENT }; 646787c1ecSGregory CLEMENT 656787c1ecSGregory CLEMENT intc: interrupt-controller@70 { 666787c1ecSGregory CLEMENT compatible = "mscc,ocelot-icpu-intr"; 676787c1ecSGregory CLEMENT reg = <0x70 0x70>; 686787c1ecSGregory CLEMENT #interrupt-cells = <1>; 696787c1ecSGregory CLEMENT interrupt-controller; 706787c1ecSGregory CLEMENT interrupt-parent = <&cpuintc>; 716787c1ecSGregory CLEMENT interrupts = <2>; 726787c1ecSGregory CLEMENT }; 736787c1ecSGregory CLEMENT 746787c1ecSGregory CLEMENT uart0: serial@100000 { 756787c1ecSGregory CLEMENT pinctrl-0 = <&uart_pins>; 766787c1ecSGregory CLEMENT pinctrl-names = "default"; 776787c1ecSGregory CLEMENT compatible = "ns16550a"; 786787c1ecSGregory CLEMENT reg = <0x100000 0x20>; 796787c1ecSGregory CLEMENT interrupts = <6>; 806787c1ecSGregory CLEMENT clocks = <&ahb_clk>; 816787c1ecSGregory CLEMENT reg-io-width = <4>; 826787c1ecSGregory CLEMENT reg-shift = <2>; 836787c1ecSGregory CLEMENT 846787c1ecSGregory CLEMENT status = "disabled"; 856787c1ecSGregory CLEMENT }; 866787c1ecSGregory CLEMENT 876787c1ecSGregory CLEMENT uart2: serial@100800 { 886787c1ecSGregory CLEMENT pinctrl-0 = <&uart2_pins>; 896787c1ecSGregory CLEMENT pinctrl-names = "default"; 906787c1ecSGregory CLEMENT compatible = "ns16550a"; 916787c1ecSGregory CLEMENT reg = <0x100800 0x20>; 926787c1ecSGregory CLEMENT interrupts = <7>; 936787c1ecSGregory CLEMENT clocks = <&ahb_clk>; 946787c1ecSGregory CLEMENT reg-io-width = <4>; 956787c1ecSGregory CLEMENT reg-shift = <2>; 966787c1ecSGregory CLEMENT 976787c1ecSGregory CLEMENT status = "disabled"; 986787c1ecSGregory CLEMENT }; 996787c1ecSGregory CLEMENT 1006787c1ecSGregory CLEMENT spi0: spi-master@101000 { 1016787c1ecSGregory CLEMENT #address-cells = <1>; 1026787c1ecSGregory CLEMENT #size-cells = <0>; 1036787c1ecSGregory CLEMENT compatible = "snps,dw-apb-ssi"; 1046787c1ecSGregory CLEMENT reg = <0x101000 0x40>; 1056787c1ecSGregory CLEMENT num-chipselect = <4>; 1066787c1ecSGregory CLEMENT bus-num = <0>; 1076787c1ecSGregory CLEMENT reg-io-width = <4>; 1086787c1ecSGregory CLEMENT reg-shift = <2>; 1096787c1ecSGregory CLEMENT spi-max-frequency = <18000000>; /* input clock */ 1106787c1ecSGregory CLEMENT clocks = <&ahb_clk>; 1116787c1ecSGregory CLEMENT 1126787c1ecSGregory CLEMENT status = "disabled"; 1136787c1ecSGregory CLEMENT }; 1146787c1ecSGregory CLEMENT 115*55037902SGregory CLEMENT switch@1010000 { 116*55037902SGregory CLEMENT pinctrl-0 = <&miim1_pins>; 117*55037902SGregory CLEMENT pinctrl-names = "default"; 118*55037902SGregory CLEMENT 119*55037902SGregory CLEMENT compatible = "mscc,vsc7514-switch"; 120*55037902SGregory CLEMENT reg = <0x1010000 0x10000>, /* VTSS_TO_SYS */ 121*55037902SGregory CLEMENT <0x1030000 0x10000>, /* VTSS_TO_REW */ 122*55037902SGregory CLEMENT <0x1080000 0x100>, /* VTSS_TO_DEVCPU_QS */ 123*55037902SGregory CLEMENT <0x10d0000 0x10000>, /* VTSS_TO_HSIO */ 124*55037902SGregory CLEMENT <0x11e0000 0x100>, /* VTSS_TO_DEV_0 */ 125*55037902SGregory CLEMENT <0x11f0000 0x100>, /* VTSS_TO_DEV_1 */ 126*55037902SGregory CLEMENT <0x1200000 0x100>, /* VTSS_TO_DEV_2 */ 127*55037902SGregory CLEMENT <0x1210000 0x100>, /* VTSS_TO_DEV_3 */ 128*55037902SGregory CLEMENT <0x1220000 0x100>, /* VTSS_TO_DEV_4 */ 129*55037902SGregory CLEMENT <0x1230000 0x100>, /* VTSS_TO_DEV_5 */ 130*55037902SGregory CLEMENT <0x1240000 0x100>, /* VTSS_TO_DEV_6 */ 131*55037902SGregory CLEMENT <0x1250000 0x100>, /* VTSS_TO_DEV_7 */ 132*55037902SGregory CLEMENT <0x1260000 0x100>, /* VTSS_TO_DEV_8 */ 133*55037902SGregory CLEMENT <0x1270000 0x100>, /* NA */ 134*55037902SGregory CLEMENT <0x1280000 0x100>, /* NA */ 135*55037902SGregory CLEMENT <0x1800000 0x80000>, /* VTSS_TO_QSYS */ 136*55037902SGregory CLEMENT <0x1880000 0x10000>; /* VTSS_TO_ANA */ 137*55037902SGregory CLEMENT reg-names = "sys", "rew", "qs", "hsio", "port0", 138*55037902SGregory CLEMENT "port1", "port2", "port3", "port4", "port5", 139*55037902SGregory CLEMENT "port6", "port7", "port8", "port9", 140*55037902SGregory CLEMENT "port10", "qsys", "ana"; 141*55037902SGregory CLEMENT interrupts = <21 22>; 142*55037902SGregory CLEMENT interrupt-names = "xtr", "inj"; 143*55037902SGregory CLEMENT status = "okay"; 144*55037902SGregory CLEMENT 145*55037902SGregory CLEMENT ethernet-ports { 146*55037902SGregory CLEMENT #address-cells = <1>; 147*55037902SGregory CLEMENT #size-cells = <0>; 148*55037902SGregory CLEMENT 149*55037902SGregory CLEMENT port0: port@0 { 150*55037902SGregory CLEMENT reg = <0>; 151*55037902SGregory CLEMENT }; 152*55037902SGregory CLEMENT port1: port@1 { 153*55037902SGregory CLEMENT reg = <1>; 154*55037902SGregory CLEMENT }; 155*55037902SGregory CLEMENT port2: port@2 { 156*55037902SGregory CLEMENT reg = <2>; 157*55037902SGregory CLEMENT }; 158*55037902SGregory CLEMENT port3: port@3 { 159*55037902SGregory CLEMENT reg = <3>; 160*55037902SGregory CLEMENT }; 161*55037902SGregory CLEMENT port4: port@4 { 162*55037902SGregory CLEMENT reg = <4>; 163*55037902SGregory CLEMENT }; 164*55037902SGregory CLEMENT port5: port@5 { 165*55037902SGregory CLEMENT reg = <5>; 166*55037902SGregory CLEMENT }; 167*55037902SGregory CLEMENT port6: port@6 { 168*55037902SGregory CLEMENT reg = <6>; 169*55037902SGregory CLEMENT }; 170*55037902SGregory CLEMENT port7: port@7 { 171*55037902SGregory CLEMENT reg = <7>; 172*55037902SGregory CLEMENT }; 173*55037902SGregory CLEMENT port8: port@8 { 174*55037902SGregory CLEMENT reg = <8>; 175*55037902SGregory CLEMENT }; 176*55037902SGregory CLEMENT port9: port@9 { 177*55037902SGregory CLEMENT reg = <9>; 178*55037902SGregory CLEMENT }; 179*55037902SGregory CLEMENT port10: port@10 { 180*55037902SGregory CLEMENT reg = <10>; 181*55037902SGregory CLEMENT }; 182*55037902SGregory CLEMENT }; 183*55037902SGregory CLEMENT }; 184*55037902SGregory CLEMENT 185*55037902SGregory CLEMENT mdio0: mdio@107009c { 186*55037902SGregory CLEMENT #address-cells = <1>; 187*55037902SGregory CLEMENT #size-cells = <0>; 188*55037902SGregory CLEMENT compatible = "mscc,ocelot-miim"; 189*55037902SGregory CLEMENT reg = <0x107009c 0x24>, <0x10700f0 0x8>; 190*55037902SGregory CLEMENT interrupts = <14>; 191*55037902SGregory CLEMENT status = "disabled"; 192*55037902SGregory CLEMENT 193*55037902SGregory CLEMENT phy0: ethernet-phy@0 { 194*55037902SGregory CLEMENT reg = <0>; 195*55037902SGregory CLEMENT }; 196*55037902SGregory CLEMENT phy1: ethernet-phy@1 { 197*55037902SGregory CLEMENT reg = <1>; 198*55037902SGregory CLEMENT }; 199*55037902SGregory CLEMENT phy2: ethernet-phy@2 { 200*55037902SGregory CLEMENT reg = <2>; 201*55037902SGregory CLEMENT }; 202*55037902SGregory CLEMENT phy3: ethernet-phy@3 { 203*55037902SGregory CLEMENT reg = <3>; 204*55037902SGregory CLEMENT }; 205*55037902SGregory CLEMENT }; 206*55037902SGregory CLEMENT 2076787c1ecSGregory CLEMENT reset@1070008 { 2086787c1ecSGregory CLEMENT compatible = "mscc,ocelot-chip-reset"; 2096787c1ecSGregory CLEMENT reg = <0x1070008 0x4>; 2106787c1ecSGregory CLEMENT }; 2116787c1ecSGregory CLEMENT 2126787c1ecSGregory CLEMENT gpio: pinctrl@1070034 { 2136787c1ecSGregory CLEMENT compatible = "mscc,ocelot-pinctrl"; 2146787c1ecSGregory CLEMENT reg = <0x1070034 0x68>; 2156787c1ecSGregory CLEMENT gpio-controller; 2166787c1ecSGregory CLEMENT #gpio-cells = <2>; 2176787c1ecSGregory CLEMENT gpio-ranges = <&gpio 0 0 22>; 2186787c1ecSGregory CLEMENT 21926ad3c43SLars Povlsen sgpio_pins: sgpio-pins { 22026ad3c43SLars Povlsen pins = "GPIO_0", "GPIO_1", "GPIO_2", "GPIO_3"; 22126ad3c43SLars Povlsen function = "sg0"; 22226ad3c43SLars Povlsen }; 22326ad3c43SLars Povlsen 2246787c1ecSGregory CLEMENT uart_pins: uart-pins { 2256787c1ecSGregory CLEMENT pins = "GPIO_6", "GPIO_7"; 2266787c1ecSGregory CLEMENT function = "uart"; 2276787c1ecSGregory CLEMENT }; 2286787c1ecSGregory CLEMENT 2296787c1ecSGregory CLEMENT uart2_pins: uart2-pins { 2306787c1ecSGregory CLEMENT pins = "GPIO_12", "GPIO_13"; 2316787c1ecSGregory CLEMENT function = "uart2"; 2326787c1ecSGregory CLEMENT }; 2336787c1ecSGregory CLEMENT 2346787c1ecSGregory CLEMENT spi_cs1_pin: spi-cs1-pin { 2356787c1ecSGregory CLEMENT pins = "GPIO_8"; 2366787c1ecSGregory CLEMENT function = "si"; 2376787c1ecSGregory CLEMENT }; 2386787c1ecSGregory CLEMENT 239*55037902SGregory CLEMENT miim1_pins: miim1-pins { 240*55037902SGregory CLEMENT pins = "GPIO_14", "GPIO_15"; 241*55037902SGregory CLEMENT function = "miim1"; 242*55037902SGregory CLEMENT }; 243*55037902SGregory CLEMENT 2446787c1ecSGregory CLEMENT spi_cs2_pin: spi-cs2-pin { 2456787c1ecSGregory CLEMENT pins = "GPIO_9"; 2466787c1ecSGregory CLEMENT function = "si"; 2476787c1ecSGregory CLEMENT }; 2486787c1ecSGregory CLEMENT 2496787c1ecSGregory CLEMENT spi_cs3_pin: spi-cs3-pin { 2506787c1ecSGregory CLEMENT pins = "GPIO_16"; 2516787c1ecSGregory CLEMENT function = "si"; 2526787c1ecSGregory CLEMENT }; 2536787c1ecSGregory CLEMENT 2546787c1ecSGregory CLEMENT spi_cs4_pin: spi-cs4-pin { 2556787c1ecSGregory CLEMENT pins = "GPIO_17"; 2566787c1ecSGregory CLEMENT function = "si"; 2576787c1ecSGregory CLEMENT }; 2586787c1ecSGregory CLEMENT }; 25926ad3c43SLars Povlsen 26026ad3c43SLars Povlsen sgpio: gpio@10700f8 { 26126ad3c43SLars Povlsen compatible = "mscc,ocelot-sgpio"; 26226ad3c43SLars Povlsen status = "disabled"; 26326ad3c43SLars Povlsen clocks = <&sys_clk>; 26426ad3c43SLars Povlsen pinctrl-0 = <&sgpio_pins>; 26526ad3c43SLars Povlsen pinctrl-names = "default"; 26626ad3c43SLars Povlsen reg = <0x10700f8 0x100>; 26726ad3c43SLars Povlsen gpio-controller; 26826ad3c43SLars Povlsen #gpio-cells = <2>; 26926ad3c43SLars Povlsen gpio-ranges = <&sgpio 0 0 64>; 27026ad3c43SLars Povlsen }; 2716787c1ecSGregory CLEMENT }; 2726787c1ecSGregory CLEMENT}; 273