1b2441318SGreg Kroah-Hartman// SPDX-License-Identifier: GPL-2.0 21e6a3492SAntony Pavlov#include <dt-bindings/clock/ath79-clk.h> 31e6a3492SAntony Pavlov 41e6a3492SAntony Pavlov/ { 51e6a3492SAntony Pavlov compatible = "qca,ar9331"; 61e6a3492SAntony Pavlov 71e6a3492SAntony Pavlov #address-cells = <1>; 81e6a3492SAntony Pavlov #size-cells = <1>; 91e6a3492SAntony Pavlov 101e6a3492SAntony Pavlov cpus { 111e6a3492SAntony Pavlov #address-cells = <1>; 121e6a3492SAntony Pavlov #size-cells = <0>; 131e6a3492SAntony Pavlov 141e6a3492SAntony Pavlov cpu@0 { 151e6a3492SAntony Pavlov device_type = "cpu"; 161e6a3492SAntony Pavlov compatible = "mips,mips24Kc"; 171e6a3492SAntony Pavlov clocks = <&pll ATH79_CLK_CPU>; 181e6a3492SAntony Pavlov reg = <0>; 191e6a3492SAntony Pavlov }; 201e6a3492SAntony Pavlov }; 211e6a3492SAntony Pavlov 221e6a3492SAntony Pavlov cpuintc: interrupt-controller { 231e6a3492SAntony Pavlov compatible = "qca,ar7100-cpu-intc"; 241e6a3492SAntony Pavlov 251e6a3492SAntony Pavlov interrupt-controller; 261e6a3492SAntony Pavlov #interrupt-cells = <1>; 271e6a3492SAntony Pavlov 281e6a3492SAntony Pavlov qca,ddr-wb-channel-interrupts = <2>, <3>; 291e6a3492SAntony Pavlov qca,ddr-wb-channels = <&ddr_ctrl 3>, <&ddr_ctrl 2>; 301e6a3492SAntony Pavlov }; 311e6a3492SAntony Pavlov 321e6a3492SAntony Pavlov ref: ref { 331e6a3492SAntony Pavlov compatible = "fixed-clock"; 341e6a3492SAntony Pavlov #clock-cells = <0>; 351e6a3492SAntony Pavlov }; 361e6a3492SAntony Pavlov 371e6a3492SAntony Pavlov ahb { 381e6a3492SAntony Pavlov compatible = "simple-bus"; 391e6a3492SAntony Pavlov ranges; 401e6a3492SAntony Pavlov 411e6a3492SAntony Pavlov #address-cells = <1>; 421e6a3492SAntony Pavlov #size-cells = <1>; 431e6a3492SAntony Pavlov 441e6a3492SAntony Pavlov interrupt-parent = <&cpuintc>; 451e6a3492SAntony Pavlov 461e6a3492SAntony Pavlov apb { 471e6a3492SAntony Pavlov compatible = "simple-bus"; 481e6a3492SAntony Pavlov ranges; 491e6a3492SAntony Pavlov 501e6a3492SAntony Pavlov #address-cells = <1>; 511e6a3492SAntony Pavlov #size-cells = <1>; 521e6a3492SAntony Pavlov 531e6a3492SAntony Pavlov interrupt-parent = <&miscintc>; 541e6a3492SAntony Pavlov 551e6a3492SAntony Pavlov ddr_ctrl: memory-controller@18000000 { 561e6a3492SAntony Pavlov compatible = "qca,ar7240-ddr-controller"; 571e6a3492SAntony Pavlov reg = <0x18000000 0x100>; 581e6a3492SAntony Pavlov 591e6a3492SAntony Pavlov #qca,ddr-wb-channel-cells = <1>; 601e6a3492SAntony Pavlov }; 611e6a3492SAntony Pavlov 62e795688eSOleksij Rempel uart: serial@18020000 { 631e6a3492SAntony Pavlov compatible = "qca,ar9330-uart"; 641e6a3492SAntony Pavlov reg = <0x18020000 0x14>; 651e6a3492SAntony Pavlov 661e6a3492SAntony Pavlov interrupts = <3>; 671e6a3492SAntony Pavlov 681e6a3492SAntony Pavlov clocks = <&ref>; 691e6a3492SAntony Pavlov clock-names = "uart"; 701e6a3492SAntony Pavlov 711e6a3492SAntony Pavlov status = "disabled"; 721e6a3492SAntony Pavlov }; 731e6a3492SAntony Pavlov 741e6a3492SAntony Pavlov gpio: gpio@18040000 { 751e6a3492SAntony Pavlov compatible = "qca,ar7100-gpio"; 761e6a3492SAntony Pavlov reg = <0x18040000 0x34>; 771e6a3492SAntony Pavlov interrupts = <2>; 781e6a3492SAntony Pavlov 791e6a3492SAntony Pavlov ngpios = <30>; 801e6a3492SAntony Pavlov 811e6a3492SAntony Pavlov gpio-controller; 821e6a3492SAntony Pavlov #gpio-cells = <2>; 831e6a3492SAntony Pavlov 841e6a3492SAntony Pavlov interrupt-controller; 851e6a3492SAntony Pavlov #interrupt-cells = <2>; 861e6a3492SAntony Pavlov 871e6a3492SAntony Pavlov status = "disabled"; 881e6a3492SAntony Pavlov }; 891e6a3492SAntony Pavlov 901e6a3492SAntony Pavlov pll: pll-controller@18050000 { 911e6a3492SAntony Pavlov compatible = "qca,ar9330-pll"; 921e6a3492SAntony Pavlov reg = <0x18050000 0x100>; 931e6a3492SAntony Pavlov 941e6a3492SAntony Pavlov clocks = <&ref>; 951e6a3492SAntony Pavlov clock-names = "ref"; 961e6a3492SAntony Pavlov 971e6a3492SAntony Pavlov #clock-cells = <1>; 981e6a3492SAntony Pavlov }; 991e6a3492SAntony Pavlov 1001e6a3492SAntony Pavlov miscintc: interrupt-controller@18060010 { 1011e6a3492SAntony Pavlov compatible = "qca,ar7240-misc-intc"; 1020889d07fSOleksij Rempel reg = <0x18060010 0x8>; 1031e6a3492SAntony Pavlov 1041e6a3492SAntony Pavlov interrupt-parent = <&cpuintc>; 1051e6a3492SAntony Pavlov interrupts = <6>; 1061e6a3492SAntony Pavlov 1071e6a3492SAntony Pavlov interrupt-controller; 1081e6a3492SAntony Pavlov #interrupt-cells = <1>; 1091e6a3492SAntony Pavlov }; 1101e6a3492SAntony Pavlov 1111e6a3492SAntony Pavlov rst: reset-controller@1806001c { 1121e6a3492SAntony Pavlov compatible = "qca,ar7100-reset"; 1131e6a3492SAntony Pavlov reg = <0x1806001c 0x4>; 1141e6a3492SAntony Pavlov 1151e6a3492SAntony Pavlov #reset-cells = <1>; 1161e6a3492SAntony Pavlov }; 1171e6a3492SAntony Pavlov }; 1181e6a3492SAntony Pavlov 1197ff836f0SOleksij Rempel eth0: ethernet@19000000 { 1207ff836f0SOleksij Rempel compatible = "qca,ar9330-eth"; 1217ff836f0SOleksij Rempel reg = <0x19000000 0x200>; 1227ff836f0SOleksij Rempel interrupts = <4>; 1237ff836f0SOleksij Rempel 1247ff836f0SOleksij Rempel resets = <&rst 9>, <&rst 22>; 1257ff836f0SOleksij Rempel reset-names = "mac", "mdio"; 1267ff836f0SOleksij Rempel clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_AHB>; 1277ff836f0SOleksij Rempel clock-names = "eth", "mdio"; 1287ff836f0SOleksij Rempel 1294eb7ae7aSOleksij Rempel phy-mode = "mii"; 1304eb7ae7aSOleksij Rempel phy-handle = <&phy_port4>; 1314eb7ae7aSOleksij Rempel 1327ff836f0SOleksij Rempel status = "disabled"; 1337ff836f0SOleksij Rempel }; 1347ff836f0SOleksij Rempel 1357ff836f0SOleksij Rempel eth1: ethernet@1a000000 { 1367ff836f0SOleksij Rempel compatible = "qca,ar9330-eth"; 1377ff836f0SOleksij Rempel reg = <0x1a000000 0x200>; 1387ff836f0SOleksij Rempel interrupts = <5>; 1397ff836f0SOleksij Rempel resets = <&rst 13>, <&rst 23>; 1407ff836f0SOleksij Rempel reset-names = "mac", "mdio"; 1417ff836f0SOleksij Rempel clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_AHB>; 1427ff836f0SOleksij Rempel clock-names = "eth", "mdio"; 1437ff836f0SOleksij Rempel 1444eb7ae7aSOleksij Rempel phy-mode = "gmii"; 1454eb7ae7aSOleksij Rempel 1467ff836f0SOleksij Rempel status = "disabled"; 1474eb7ae7aSOleksij Rempel 1484eb7ae7aSOleksij Rempel fixed-link { 1494eb7ae7aSOleksij Rempel speed = <1000>; 1504eb7ae7aSOleksij Rempel full-duplex; 151*69e22d9fSOleksij Rempel pause; 1524eb7ae7aSOleksij Rempel }; 1534eb7ae7aSOleksij Rempel 1544eb7ae7aSOleksij Rempel mdio { 1554eb7ae7aSOleksij Rempel #address-cells = <1>; 1564eb7ae7aSOleksij Rempel #size-cells = <0>; 1574eb7ae7aSOleksij Rempel 1584eb7ae7aSOleksij Rempel switch10: switch@10 { 1594eb7ae7aSOleksij Rempel #address-cells = <1>; 1604eb7ae7aSOleksij Rempel #size-cells = <0>; 1614eb7ae7aSOleksij Rempel 1624eb7ae7aSOleksij Rempel compatible = "qca,ar9331-switch"; 1634eb7ae7aSOleksij Rempel reg = <0x10>; 1644eb7ae7aSOleksij Rempel resets = <&rst 8>; 1654eb7ae7aSOleksij Rempel reset-names = "switch"; 1664eb7ae7aSOleksij Rempel 1674eb7ae7aSOleksij Rempel interrupt-parent = <&miscintc>; 1684eb7ae7aSOleksij Rempel interrupts = <12>; 1694eb7ae7aSOleksij Rempel 1704eb7ae7aSOleksij Rempel interrupt-controller; 1714eb7ae7aSOleksij Rempel #interrupt-cells = <1>; 1724eb7ae7aSOleksij Rempel 1734eb7ae7aSOleksij Rempel ports { 1744eb7ae7aSOleksij Rempel #address-cells = <1>; 1754eb7ae7aSOleksij Rempel #size-cells = <0>; 1764eb7ae7aSOleksij Rempel 1774eb7ae7aSOleksij Rempel switch_port0: port@0 { 1784eb7ae7aSOleksij Rempel reg = <0x0>; 1794eb7ae7aSOleksij Rempel ethernet = <ð1>; 1804eb7ae7aSOleksij Rempel 1814eb7ae7aSOleksij Rempel phy-mode = "gmii"; 1824eb7ae7aSOleksij Rempel 1834eb7ae7aSOleksij Rempel fixed-link { 1844eb7ae7aSOleksij Rempel speed = <1000>; 1854eb7ae7aSOleksij Rempel full-duplex; 186*69e22d9fSOleksij Rempel pause; 1874eb7ae7aSOleksij Rempel }; 1884eb7ae7aSOleksij Rempel }; 1894eb7ae7aSOleksij Rempel 1904eb7ae7aSOleksij Rempel switch_port1: port@1 { 1914eb7ae7aSOleksij Rempel reg = <0x1>; 1924eb7ae7aSOleksij Rempel phy-handle = <&phy_port0>; 1934eb7ae7aSOleksij Rempel phy-mode = "internal"; 1944eb7ae7aSOleksij Rempel 1954eb7ae7aSOleksij Rempel status = "disabled"; 1964eb7ae7aSOleksij Rempel }; 1974eb7ae7aSOleksij Rempel 1984eb7ae7aSOleksij Rempel switch_port2: port@2 { 1994eb7ae7aSOleksij Rempel reg = <0x2>; 2004eb7ae7aSOleksij Rempel phy-handle = <&phy_port1>; 2014eb7ae7aSOleksij Rempel phy-mode = "internal"; 2024eb7ae7aSOleksij Rempel 2034eb7ae7aSOleksij Rempel status = "disabled"; 2044eb7ae7aSOleksij Rempel }; 2054eb7ae7aSOleksij Rempel 2064eb7ae7aSOleksij Rempel switch_port3: port@3 { 2074eb7ae7aSOleksij Rempel reg = <0x3>; 2084eb7ae7aSOleksij Rempel phy-handle = <&phy_port2>; 2094eb7ae7aSOleksij Rempel phy-mode = "internal"; 2104eb7ae7aSOleksij Rempel 2114eb7ae7aSOleksij Rempel status = "disabled"; 2124eb7ae7aSOleksij Rempel }; 2134eb7ae7aSOleksij Rempel 2144eb7ae7aSOleksij Rempel switch_port4: port@4 { 2154eb7ae7aSOleksij Rempel reg = <0x4>; 2164eb7ae7aSOleksij Rempel phy-handle = <&phy_port3>; 2174eb7ae7aSOleksij Rempel phy-mode = "internal"; 2184eb7ae7aSOleksij Rempel 2194eb7ae7aSOleksij Rempel status = "disabled"; 2204eb7ae7aSOleksij Rempel }; 2214eb7ae7aSOleksij Rempel }; 2224eb7ae7aSOleksij Rempel 2234eb7ae7aSOleksij Rempel mdio { 2244eb7ae7aSOleksij Rempel #address-cells = <1>; 2254eb7ae7aSOleksij Rempel #size-cells = <0>; 2264eb7ae7aSOleksij Rempel 2274eb7ae7aSOleksij Rempel interrupt-parent = <&switch10>; 2284eb7ae7aSOleksij Rempel 2294eb7ae7aSOleksij Rempel phy_port0: phy@0 { 2304eb7ae7aSOleksij Rempel reg = <0x0>; 2314eb7ae7aSOleksij Rempel interrupts = <0>; 2324eb7ae7aSOleksij Rempel status = "disabled"; 2334eb7ae7aSOleksij Rempel }; 2344eb7ae7aSOleksij Rempel 2354eb7ae7aSOleksij Rempel phy_port1: phy@1 { 2364eb7ae7aSOleksij Rempel reg = <0x1>; 2374eb7ae7aSOleksij Rempel interrupts = <0>; 2384eb7ae7aSOleksij Rempel status = "disabled"; 2394eb7ae7aSOleksij Rempel }; 2404eb7ae7aSOleksij Rempel 2414eb7ae7aSOleksij Rempel phy_port2: phy@2 { 2424eb7ae7aSOleksij Rempel reg = <0x2>; 2434eb7ae7aSOleksij Rempel interrupts = <0>; 2444eb7ae7aSOleksij Rempel status = "disabled"; 2454eb7ae7aSOleksij Rempel }; 2464eb7ae7aSOleksij Rempel 2474eb7ae7aSOleksij Rempel phy_port3: phy@3 { 2484eb7ae7aSOleksij Rempel reg = <0x3>; 2494eb7ae7aSOleksij Rempel interrupts = <0>; 2504eb7ae7aSOleksij Rempel status = "disabled"; 2514eb7ae7aSOleksij Rempel }; 2524eb7ae7aSOleksij Rempel 2534eb7ae7aSOleksij Rempel phy_port4: phy@4 { 2544eb7ae7aSOleksij Rempel reg = <0x4>; 2554eb7ae7aSOleksij Rempel interrupts = <0>; 2564eb7ae7aSOleksij Rempel status = "disabled"; 2574eb7ae7aSOleksij Rempel }; 2584eb7ae7aSOleksij Rempel }; 2594eb7ae7aSOleksij Rempel }; 2604eb7ae7aSOleksij Rempel }; 2617ff836f0SOleksij Rempel }; 2627ff836f0SOleksij Rempel 2631e6a3492SAntony Pavlov usb: usb@1b000100 { 2641e6a3492SAntony Pavlov compatible = "chipidea,usb2"; 2651e6a3492SAntony Pavlov reg = <0x1b000000 0x200>; 2661e6a3492SAntony Pavlov 2671e6a3492SAntony Pavlov interrupts = <3>; 2681e6a3492SAntony Pavlov resets = <&rst 5>; 2691e6a3492SAntony Pavlov 2701e6a3492SAntony Pavlov phy-names = "usb-phy"; 2711e6a3492SAntony Pavlov phys = <&usb_phy>; 2721e6a3492SAntony Pavlov 2731e6a3492SAntony Pavlov status = "disabled"; 2741e6a3492SAntony Pavlov }; 2751e6a3492SAntony Pavlov 2761e6a3492SAntony Pavlov spi: spi@1f000000 { 2771e6a3492SAntony Pavlov compatible = "qca,ar7100-spi"; 2781e6a3492SAntony Pavlov reg = <0x1f000000 0x10>; 2791e6a3492SAntony Pavlov 2801e6a3492SAntony Pavlov clocks = <&pll ATH79_CLK_AHB>; 2811e6a3492SAntony Pavlov clock-names = "ahb"; 2821e6a3492SAntony Pavlov 2831e6a3492SAntony Pavlov #address-cells = <1>; 2841e6a3492SAntony Pavlov #size-cells = <0>; 2851e6a3492SAntony Pavlov 2861e6a3492SAntony Pavlov status = "disabled"; 2871e6a3492SAntony Pavlov }; 2881e6a3492SAntony Pavlov }; 2891e6a3492SAntony Pavlov 2901e6a3492SAntony Pavlov usb_phy: usb-phy { 2911e6a3492SAntony Pavlov compatible = "qca,ar7100-usb-phy"; 2921e6a3492SAntony Pavlov 2935bdd5fbbSAlban Bedel reset-names = "phy", "suspend-override"; 2941e6a3492SAntony Pavlov resets = <&rst 4>, <&rst 3>; 2951e6a3492SAntony Pavlov 2961e6a3492SAntony Pavlov #phy-cells = <0>; 2971e6a3492SAntony Pavlov 2981e6a3492SAntony Pavlov status = "disabled"; 2991e6a3492SAntony Pavlov }; 3001e6a3492SAntony Pavlov}; 301