// SPDX-License-Identifier: GPL-2.0 #include <dt-bindings/clock/ath79-clk.h> / { compatible = "qca,ar9331"; #address-cells = <1>; #size-cells = <1>; cpus { #address-cells = <1>; #size-cells = <0>; cpu@0 { device_type = "cpu"; compatible = "mips,mips24Kc"; clocks = <&pll ATH79_CLK_CPU>; reg = <0>; }; }; cpuintc: interrupt-controller { compatible = "qca,ar7100-cpu-intc"; interrupt-controller; #interrupt-cells = <1>; qca,ddr-wb-channel-interrupts = <2>, <3>; qca,ddr-wb-channels = <&ddr_ctrl 3>, <&ddr_ctrl 2>; }; ref: ref { compatible = "fixed-clock"; #clock-cells = <0>; }; ahb { compatible = "simple-bus"; ranges; #address-cells = <1>; #size-cells = <1>; interrupt-parent = <&cpuintc>; apb { compatible = "simple-bus"; ranges; #address-cells = <1>; #size-cells = <1>; interrupt-parent = <&miscintc>; ddr_ctrl: memory-controller@18000000 { compatible = "qca,ar7240-ddr-controller"; reg = <0x18000000 0x100>; #qca,ddr-wb-channel-cells = <1>; }; uart: serial@18020000 { compatible = "qca,ar9330-uart"; reg = <0x18020000 0x14>; interrupts = <3>; clocks = <&ref>; clock-names = "uart"; status = "disabled"; }; gpio: gpio@18040000 { compatible = "qca,ar7100-gpio"; reg = <0x18040000 0x34>; interrupts = <2>; ngpios = <30>; gpio-controller; #gpio-cells = <2>; interrupt-controller; #interrupt-cells = <2>; status = "disabled"; }; pll: pll-controller@18050000 { compatible = "qca,ar9330-pll"; reg = <0x18050000 0x100>; clocks = <&ref>; clock-names = "ref"; #clock-cells = <1>; }; miscintc: interrupt-controller@18060010 { compatible = "qca,ar7240-misc-intc"; reg = <0x18060010 0x8>; interrupt-parent = <&cpuintc>; interrupts = <6>; interrupt-controller; #interrupt-cells = <1>; }; rst: reset-controller@1806001c { compatible = "qca,ar7100-reset"; reg = <0x1806001c 0x4>; #reset-cells = <1>; }; }; eth0: ethernet@19000000 { compatible = "qca,ar9330-eth"; reg = <0x19000000 0x200>; interrupts = <4>; resets = <&rst 9>, <&rst 22>; reset-names = "mac", "mdio"; clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_AHB>; clock-names = "eth", "mdio"; phy-mode = "mii"; phy-handle = <&phy_port4>; status = "disabled"; }; eth1: ethernet@1a000000 { compatible = "qca,ar9330-eth"; reg = <0x1a000000 0x200>; interrupts = <5>; resets = <&rst 13>, <&rst 23>; reset-names = "mac", "mdio"; clocks = <&pll ATH79_CLK_AHB>, <&pll ATH79_CLK_AHB>; clock-names = "eth", "mdio"; phy-mode = "gmii"; status = "disabled"; fixed-link { speed = <1000>; full-duplex; pause; }; mdio { #address-cells = <1>; #size-cells = <0>; switch10: switch@10 { #address-cells = <1>; #size-cells = <0>; compatible = "qca,ar9331-switch"; reg = <0x10>; resets = <&rst 8>; reset-names = "switch"; interrupt-parent = <&miscintc>; interrupts = <12>; interrupt-controller; #interrupt-cells = <1>; ports { #address-cells = <1>; #size-cells = <0>; switch_port0: port@0 { reg = <0x0>; ethernet = <ð1>; phy-mode = "gmii"; fixed-link { speed = <1000>; full-duplex; pause; }; }; switch_port1: port@1 { reg = <0x1>; phy-handle = <&phy_port0>; phy-mode = "internal"; status = "disabled"; }; switch_port2: port@2 { reg = <0x2>; phy-handle = <&phy_port1>; phy-mode = "internal"; status = "disabled"; }; switch_port3: port@3 { reg = <0x3>; phy-handle = <&phy_port2>; phy-mode = "internal"; status = "disabled"; }; switch_port4: port@4 { reg = <0x4>; phy-handle = <&phy_port3>; phy-mode = "internal"; status = "disabled"; }; }; mdio { #address-cells = <1>; #size-cells = <0>; interrupt-parent = <&switch10>; phy_port0: phy@0 { reg = <0x0>; interrupts = <0>; status = "disabled"; }; phy_port1: phy@1 { reg = <0x1>; interrupts = <0>; status = "disabled"; }; phy_port2: phy@2 { reg = <0x2>; interrupts = <0>; status = "disabled"; }; phy_port3: phy@3 { reg = <0x3>; interrupts = <0>; status = "disabled"; }; phy_port4: phy@4 { reg = <0x4>; interrupts = <0>; status = "disabled"; }; }; }; }; }; usb: usb@1b000100 { compatible = "chipidea,usb2"; reg = <0x1b000000 0x200>; interrupts = <3>; resets = <&rst 5>; phy-names = "usb-phy"; phys = <&usb_phy>; status = "disabled"; }; spi: spi@1f000000 { compatible = "qca,ar7100-spi"; reg = <0x1f000000 0x10>; clocks = <&pll ATH79_CLK_AHB>; clock-names = "ahb"; #address-cells = <1>; #size-cells = <0>; status = "disabled"; }; }; usb_phy: usb-phy { compatible = "qca,ar7100-usb-phy"; reset-names = "phy", "suspend-override"; resets = <&rst 4>, <&rst 3>; #phy-cells = <0>; status = "disabled"; }; };