18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0 OR MIT) 28c2ecf20Sopenharmony_ci/* Copyright (c) 2017 Microsemi Corporation */ 38c2ecf20Sopenharmony_ci 48c2ecf20Sopenharmony_ci/ { 58c2ecf20Sopenharmony_ci #address-cells = <1>; 68c2ecf20Sopenharmony_ci #size-cells = <1>; 78c2ecf20Sopenharmony_ci compatible = "mscc,ocelot"; 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_ci cpus { 108c2ecf20Sopenharmony_ci #address-cells = <1>; 118c2ecf20Sopenharmony_ci #size-cells = <0>; 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ci cpu@0 { 148c2ecf20Sopenharmony_ci compatible = "mips,mips24KEc"; 158c2ecf20Sopenharmony_ci device_type = "cpu"; 168c2ecf20Sopenharmony_ci clocks = <&cpu_clk>; 178c2ecf20Sopenharmony_ci reg = <0>; 188c2ecf20Sopenharmony_ci }; 198c2ecf20Sopenharmony_ci }; 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci aliases { 228c2ecf20Sopenharmony_ci serial0 = &uart0; 238c2ecf20Sopenharmony_ci }; 248c2ecf20Sopenharmony_ci 258c2ecf20Sopenharmony_ci cpuintc: interrupt-controller { 268c2ecf20Sopenharmony_ci #address-cells = <0>; 278c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 288c2ecf20Sopenharmony_ci interrupt-controller; 298c2ecf20Sopenharmony_ci compatible = "mti,cpu-interrupt-controller"; 308c2ecf20Sopenharmony_ci }; 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ci cpu_clk: cpu-clock { 338c2ecf20Sopenharmony_ci compatible = "fixed-clock"; 348c2ecf20Sopenharmony_ci #clock-cells = <0>; 358c2ecf20Sopenharmony_ci clock-frequency = <500000000>; 368c2ecf20Sopenharmony_ci }; 378c2ecf20Sopenharmony_ci 388c2ecf20Sopenharmony_ci ahb_clk: ahb-clk { 398c2ecf20Sopenharmony_ci compatible = "fixed-factor-clock"; 408c2ecf20Sopenharmony_ci #clock-cells = <0>; 418c2ecf20Sopenharmony_ci clocks = <&cpu_clk>; 428c2ecf20Sopenharmony_ci clock-div = <2>; 438c2ecf20Sopenharmony_ci clock-mult = <1>; 448c2ecf20Sopenharmony_ci }; 458c2ecf20Sopenharmony_ci 468c2ecf20Sopenharmony_ci ahb@70000000 { 478c2ecf20Sopenharmony_ci compatible = "simple-bus"; 488c2ecf20Sopenharmony_ci #address-cells = <1>; 498c2ecf20Sopenharmony_ci #size-cells = <1>; 508c2ecf20Sopenharmony_ci ranges = <0 0x70000000 0x2000000>; 518c2ecf20Sopenharmony_ci 528c2ecf20Sopenharmony_ci interrupt-parent = <&intc>; 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci cpu_ctrl: syscon@0 { 558c2ecf20Sopenharmony_ci compatible = "mscc,ocelot-cpu-syscon", "syscon"; 568c2ecf20Sopenharmony_ci reg = <0x0 0x2c>; 578c2ecf20Sopenharmony_ci }; 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci intc: interrupt-controller@70 { 608c2ecf20Sopenharmony_ci compatible = "mscc,ocelot-icpu-intr"; 618c2ecf20Sopenharmony_ci reg = <0x70 0x70>; 628c2ecf20Sopenharmony_ci #interrupt-cells = <1>; 638c2ecf20Sopenharmony_ci interrupt-controller; 648c2ecf20Sopenharmony_ci interrupt-parent = <&cpuintc>; 658c2ecf20Sopenharmony_ci interrupts = <2>; 668c2ecf20Sopenharmony_ci }; 678c2ecf20Sopenharmony_ci 688c2ecf20Sopenharmony_ci uart0: serial@100000 { 698c2ecf20Sopenharmony_ci pinctrl-0 = <&uart_pins>; 708c2ecf20Sopenharmony_ci pinctrl-names = "default"; 718c2ecf20Sopenharmony_ci compatible = "ns16550a"; 728c2ecf20Sopenharmony_ci reg = <0x100000 0x20>; 738c2ecf20Sopenharmony_ci interrupts = <6>; 748c2ecf20Sopenharmony_ci clocks = <&ahb_clk>; 758c2ecf20Sopenharmony_ci reg-io-width = <4>; 768c2ecf20Sopenharmony_ci reg-shift = <2>; 778c2ecf20Sopenharmony_ci 788c2ecf20Sopenharmony_ci status = "disabled"; 798c2ecf20Sopenharmony_ci }; 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci i2c: i2c@100400 { 828c2ecf20Sopenharmony_ci compatible = "mscc,ocelot-i2c", "snps,designware-i2c"; 838c2ecf20Sopenharmony_ci pinctrl-0 = <&i2c_pins>; 848c2ecf20Sopenharmony_ci pinctrl-names = "default"; 858c2ecf20Sopenharmony_ci reg = <0x100400 0x100>, <0x198 0x8>; 868c2ecf20Sopenharmony_ci #address-cells = <1>; 878c2ecf20Sopenharmony_ci #size-cells = <0>; 888c2ecf20Sopenharmony_ci interrupts = <8>; 898c2ecf20Sopenharmony_ci clocks = <&ahb_clk>; 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci status = "disabled"; 928c2ecf20Sopenharmony_ci }; 938c2ecf20Sopenharmony_ci 948c2ecf20Sopenharmony_ci uart2: serial@100800 { 958c2ecf20Sopenharmony_ci pinctrl-0 = <&uart2_pins>; 968c2ecf20Sopenharmony_ci pinctrl-names = "default"; 978c2ecf20Sopenharmony_ci compatible = "ns16550a"; 988c2ecf20Sopenharmony_ci reg = <0x100800 0x20>; 998c2ecf20Sopenharmony_ci interrupts = <7>; 1008c2ecf20Sopenharmony_ci clocks = <&ahb_clk>; 1018c2ecf20Sopenharmony_ci reg-io-width = <4>; 1028c2ecf20Sopenharmony_ci reg-shift = <2>; 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci status = "disabled"; 1058c2ecf20Sopenharmony_ci }; 1068c2ecf20Sopenharmony_ci 1078c2ecf20Sopenharmony_ci spi: spi@101000 { 1088c2ecf20Sopenharmony_ci compatible = "mscc,ocelot-spi", "snps,dw-apb-ssi"; 1098c2ecf20Sopenharmony_ci #address-cells = <1>; 1108c2ecf20Sopenharmony_ci #size-cells = <0>; 1118c2ecf20Sopenharmony_ci reg = <0x101000 0x100>, <0x3c 0x18>; 1128c2ecf20Sopenharmony_ci interrupts = <9>; 1138c2ecf20Sopenharmony_ci clocks = <&ahb_clk>; 1148c2ecf20Sopenharmony_ci 1158c2ecf20Sopenharmony_ci status = "disabled"; 1168c2ecf20Sopenharmony_ci }; 1178c2ecf20Sopenharmony_ci 1188c2ecf20Sopenharmony_ci switch@1010000 { 1198c2ecf20Sopenharmony_ci compatible = "mscc,vsc7514-switch"; 1208c2ecf20Sopenharmony_ci reg = <0x1010000 0x10000>, 1218c2ecf20Sopenharmony_ci <0x1030000 0x10000>, 1228c2ecf20Sopenharmony_ci <0x1080000 0x100>, 1238c2ecf20Sopenharmony_ci <0x10e0000 0x10000>, 1248c2ecf20Sopenharmony_ci <0x11e0000 0x100>, 1258c2ecf20Sopenharmony_ci <0x11f0000 0x100>, 1268c2ecf20Sopenharmony_ci <0x1200000 0x100>, 1278c2ecf20Sopenharmony_ci <0x1210000 0x100>, 1288c2ecf20Sopenharmony_ci <0x1220000 0x100>, 1298c2ecf20Sopenharmony_ci <0x1230000 0x100>, 1308c2ecf20Sopenharmony_ci <0x1240000 0x100>, 1318c2ecf20Sopenharmony_ci <0x1250000 0x100>, 1328c2ecf20Sopenharmony_ci <0x1260000 0x100>, 1338c2ecf20Sopenharmony_ci <0x1270000 0x100>, 1348c2ecf20Sopenharmony_ci <0x1280000 0x100>, 1358c2ecf20Sopenharmony_ci <0x1800000 0x80000>, 1368c2ecf20Sopenharmony_ci <0x1880000 0x10000>, 1378c2ecf20Sopenharmony_ci <0x1040000 0x10000>, 1388c2ecf20Sopenharmony_ci <0x1050000 0x10000>, 1398c2ecf20Sopenharmony_ci <0x1060000 0x10000>; 1408c2ecf20Sopenharmony_ci reg-names = "sys", "rew", "qs", "ptp", "port0", "port1", 1418c2ecf20Sopenharmony_ci "port2", "port3", "port4", "port5", "port6", 1428c2ecf20Sopenharmony_ci "port7", "port8", "port9", "port10", "qsys", 1438c2ecf20Sopenharmony_ci "ana", "s0", "s1", "s2"; 1448c2ecf20Sopenharmony_ci interrupts = <18 21 22>; 1458c2ecf20Sopenharmony_ci interrupt-names = "ptp_rdy", "xtr", "inj"; 1468c2ecf20Sopenharmony_ci 1478c2ecf20Sopenharmony_ci ethernet-ports { 1488c2ecf20Sopenharmony_ci #address-cells = <1>; 1498c2ecf20Sopenharmony_ci #size-cells = <0>; 1508c2ecf20Sopenharmony_ci 1518c2ecf20Sopenharmony_ci port0: port@0 { 1528c2ecf20Sopenharmony_ci reg = <0>; 1538c2ecf20Sopenharmony_ci }; 1548c2ecf20Sopenharmony_ci port1: port@1 { 1558c2ecf20Sopenharmony_ci reg = <1>; 1568c2ecf20Sopenharmony_ci }; 1578c2ecf20Sopenharmony_ci port2: port@2 { 1588c2ecf20Sopenharmony_ci reg = <2>; 1598c2ecf20Sopenharmony_ci }; 1608c2ecf20Sopenharmony_ci port3: port@3 { 1618c2ecf20Sopenharmony_ci reg = <3>; 1628c2ecf20Sopenharmony_ci }; 1638c2ecf20Sopenharmony_ci port4: port@4 { 1648c2ecf20Sopenharmony_ci reg = <4>; 1658c2ecf20Sopenharmony_ci }; 1668c2ecf20Sopenharmony_ci port5: port@5 { 1678c2ecf20Sopenharmony_ci reg = <5>; 1688c2ecf20Sopenharmony_ci }; 1698c2ecf20Sopenharmony_ci port6: port@6 { 1708c2ecf20Sopenharmony_ci reg = <6>; 1718c2ecf20Sopenharmony_ci }; 1728c2ecf20Sopenharmony_ci port7: port@7 { 1738c2ecf20Sopenharmony_ci reg = <7>; 1748c2ecf20Sopenharmony_ci }; 1758c2ecf20Sopenharmony_ci port8: port@8 { 1768c2ecf20Sopenharmony_ci reg = <8>; 1778c2ecf20Sopenharmony_ci }; 1788c2ecf20Sopenharmony_ci port9: port@9 { 1798c2ecf20Sopenharmony_ci reg = <9>; 1808c2ecf20Sopenharmony_ci }; 1818c2ecf20Sopenharmony_ci port10: port@10 { 1828c2ecf20Sopenharmony_ci reg = <10>; 1838c2ecf20Sopenharmony_ci }; 1848c2ecf20Sopenharmony_ci }; 1858c2ecf20Sopenharmony_ci }; 1868c2ecf20Sopenharmony_ci 1878c2ecf20Sopenharmony_ci reset@1070008 { 1888c2ecf20Sopenharmony_ci compatible = "mscc,ocelot-chip-reset"; 1898c2ecf20Sopenharmony_ci reg = <0x1070008 0x4>; 1908c2ecf20Sopenharmony_ci }; 1918c2ecf20Sopenharmony_ci 1928c2ecf20Sopenharmony_ci gpio: pinctrl@1070034 { 1938c2ecf20Sopenharmony_ci compatible = "mscc,ocelot-pinctrl"; 1948c2ecf20Sopenharmony_ci reg = <0x1070034 0x68>; 1958c2ecf20Sopenharmony_ci gpio-controller; 1968c2ecf20Sopenharmony_ci #gpio-cells = <2>; 1978c2ecf20Sopenharmony_ci gpio-ranges = <&gpio 0 0 22>; 1988c2ecf20Sopenharmony_ci interrupt-controller; 1998c2ecf20Sopenharmony_ci interrupts = <13>; 2008c2ecf20Sopenharmony_ci #interrupt-cells = <2>; 2018c2ecf20Sopenharmony_ci 2028c2ecf20Sopenharmony_ci i2c_pins: i2c-pins { 2038c2ecf20Sopenharmony_ci pins = "GPIO_16", "GPIO_17"; 2048c2ecf20Sopenharmony_ci function = "twi"; 2058c2ecf20Sopenharmony_ci }; 2068c2ecf20Sopenharmony_ci 2078c2ecf20Sopenharmony_ci uart_pins: uart-pins { 2088c2ecf20Sopenharmony_ci pins = "GPIO_6", "GPIO_7"; 2098c2ecf20Sopenharmony_ci function = "uart"; 2108c2ecf20Sopenharmony_ci }; 2118c2ecf20Sopenharmony_ci 2128c2ecf20Sopenharmony_ci uart2_pins: uart2-pins { 2138c2ecf20Sopenharmony_ci pins = "GPIO_12", "GPIO_13"; 2148c2ecf20Sopenharmony_ci function = "uart2"; 2158c2ecf20Sopenharmony_ci }; 2168c2ecf20Sopenharmony_ci 2178c2ecf20Sopenharmony_ci miim1: miim1 { 2188c2ecf20Sopenharmony_ci pins = "GPIO_14", "GPIO_15"; 2198c2ecf20Sopenharmony_ci function = "miim"; 2208c2ecf20Sopenharmony_ci }; 2218c2ecf20Sopenharmony_ci 2228c2ecf20Sopenharmony_ci }; 2238c2ecf20Sopenharmony_ci 2248c2ecf20Sopenharmony_ci mdio0: mdio@107009c { 2258c2ecf20Sopenharmony_ci #address-cells = <1>; 2268c2ecf20Sopenharmony_ci #size-cells = <0>; 2278c2ecf20Sopenharmony_ci compatible = "mscc,ocelot-miim"; 2288c2ecf20Sopenharmony_ci reg = <0x107009c 0x24>, <0x10700f0 0x8>; 2298c2ecf20Sopenharmony_ci interrupts = <14>; 2308c2ecf20Sopenharmony_ci status = "disabled"; 2318c2ecf20Sopenharmony_ci 2328c2ecf20Sopenharmony_ci phy0: ethernet-phy@0 { 2338c2ecf20Sopenharmony_ci reg = <0>; 2348c2ecf20Sopenharmony_ci }; 2358c2ecf20Sopenharmony_ci phy1: ethernet-phy@1 { 2368c2ecf20Sopenharmony_ci reg = <1>; 2378c2ecf20Sopenharmony_ci }; 2388c2ecf20Sopenharmony_ci phy2: ethernet-phy@2 { 2398c2ecf20Sopenharmony_ci reg = <2>; 2408c2ecf20Sopenharmony_ci }; 2418c2ecf20Sopenharmony_ci phy3: ethernet-phy@3 { 2428c2ecf20Sopenharmony_ci reg = <3>; 2438c2ecf20Sopenharmony_ci }; 2448c2ecf20Sopenharmony_ci }; 2458c2ecf20Sopenharmony_ci 2468c2ecf20Sopenharmony_ci mdio1: mdio@10700c0 { 2478c2ecf20Sopenharmony_ci #address-cells = <1>; 2488c2ecf20Sopenharmony_ci #size-cells = <0>; 2498c2ecf20Sopenharmony_ci compatible = "mscc,ocelot-miim"; 2508c2ecf20Sopenharmony_ci reg = <0x10700c0 0x24>; 2518c2ecf20Sopenharmony_ci interrupts = <15>; 2528c2ecf20Sopenharmony_ci pinctrl-names = "default"; 2538c2ecf20Sopenharmony_ci pinctrl-0 = <&miim1>; 2548c2ecf20Sopenharmony_ci status = "disabled"; 2558c2ecf20Sopenharmony_ci }; 2568c2ecf20Sopenharmony_ci 2578c2ecf20Sopenharmony_ci hsio: syscon@10d0000 { 2588c2ecf20Sopenharmony_ci compatible = "mscc,ocelot-hsio", "syscon", "simple-mfd"; 2598c2ecf20Sopenharmony_ci reg = <0x10d0000 0x10000>; 2608c2ecf20Sopenharmony_ci 2618c2ecf20Sopenharmony_ci serdes: serdes { 2628c2ecf20Sopenharmony_ci compatible = "mscc,vsc7514-serdes"; 2638c2ecf20Sopenharmony_ci #phy-cells = <2>; 2648c2ecf20Sopenharmony_ci }; 2658c2ecf20Sopenharmony_ci }; 2668c2ecf20Sopenharmony_ci }; 2678c2ecf20Sopenharmony_ci}; 268