// SPDX-License-Identifier: GPL-2.0 /* * Based on Mans Rullgard's Tango3 DT * https://github.com/mansr/linux-tangox */ #include #define CPU_CLK 0 #define SYS_CLK 1 #define USB_CLK 2 #define SDIO_CLK 3 / { interrupt-parent = <&gic>; #address-cells = <1>; #size-cells = <1>; periph_clk: periph_clk { compatible = "fixed-factor-clock"; clocks = <&clkgen CPU_CLK>; clock-mult = <1>; clock-div = <2>; #clock-cells = <0>; }; mpcore { compatible = "simple-bus"; ranges = <0x00000000 0x20000000 0x2000>; #address-cells = <1>; #size-cells = <1>; scu@0 { compatible = "arm,cortex-a9-scu"; reg = <0x0 0x100>; }; twd@600 { compatible = "arm,cortex-a9-twd-timer"; reg = <0x600 0x10>; interrupts = ; clocks = <&periph_clk>; always-on; }; gic: interrupt-controller@1000 { compatible = "arm,cortex-a9-gic"; #interrupt-cells = <3>; interrupt-controller; reg = <0x1000 0x1000>, <0x100 0x100>; }; }; l2cc: l2-cache-controller@20100000 { compatible = "arm,pl310-cache"; reg = <0x20100000 0x1000>; cache-level = <2>; cache-unified; }; soc { compatible = "simple-bus"; interrupt-parent = <&irq0>; #address-cells = <1>; #size-cells = <1>; ranges; xtal: xtal { compatible = "fixed-clock"; clock-frequency = <27000000>; #clock-cells = <0>; }; clkgen: clkgen@10000 { compatible = "sigma,tango4-clkgen"; reg = <0x10000 0x100>; clocks = <&xtal>; #clock-cells = <1>; }; tick-counter@10048 { compatible = "sigma,tick-counter"; reg = <0x10048 0x4>; clocks = <&xtal>; }; uart: serial@10700 { compatible = "ralink,rt2880-uart"; reg = <0x10700 0x30>; interrupts = <1 IRQ_TYPE_LEVEL_HIGH>; clock-frequency = <7372800>; reg-shift = <2>; }; watchdog@1fd00 { compatible = "sigma,smp8759-wdt"; reg = <0x1fd00 8>; clocks = <&xtal>; }; mmc0: mmc@21000 { compatible = "arasan,sdhci-8.9a"; reg = <0x21000 0x200>; clock-names = "clk_xin", "clk_ahb"; clocks = <&clkgen SDIO_CLK>, <&clkgen SYS_CLK>; interrupts = <60 IRQ_TYPE_LEVEL_HIGH>; }; mmc1: mmc@21200 { compatible = "arasan,sdhci-8.9a"; reg = <0x21200 0x200>; clock-names = "clk_xin", "clk_ahb"; clocks = <&clkgen SDIO_CLK>, <&clkgen SYS_CLK>; interrupts = <8 IRQ_TYPE_LEVEL_HIGH>; }; usb0: usb@21400 { compatible = "chipidea,usb2"; reg = <0x21400 0x200>; interrupts = <40 IRQ_TYPE_LEVEL_HIGH>; phys = <&usb0_phy>; phy-names = "usb-phy"; }; usb0_phy: phy@21700 { compatible = "sigma,smp8642-usb-phy"; reg = <0x21700 0x100>; #phy-cells = <0>; clocks = <&clkgen USB_CLK>; }; usb1: usb@25400 { compatible = "chipidea,usb2"; reg = <0x25400 0x200>; interrupts = <7 IRQ_TYPE_LEVEL_HIGH>; phys = <&usb1_phy>; phy-names = "usb-phy"; }; usb1_phy: phy@25700 { compatible = "sigma,smp8642-usb-phy"; reg = <0x25700 0x100>; #phy-cells = <0>; clocks = <&clkgen USB_CLK>; }; eth0: ethernet@26000 { compatible = "sigma,smp8734-ethernet"; reg = <0x26000 0x800>; interrupts = <38 IRQ_TYPE_LEVEL_HIGH>; clocks = <&clkgen SYS_CLK>; }; intc: interrupt-controller@6e000 { compatible = "sigma,smp8642-intc"; reg = <0x6e000 0x400>; ranges = <0 0x6e000 0x400>; interrupt-parent = <&gic>; interrupt-controller; #address-cells = <1>; #size-cells = <1>; irq0: irq0@000 { reg = <0x000 0x100>; interrupt-controller; #interrupt-cells = <2>; interrupts = ; }; irq1: irq1@100 { reg = <0x100 0x100>; interrupt-controller; #interrupt-cells = <2>; interrupts = ; }; irq2: irq2@300 { reg = <0x300 0x100>; interrupt-controller; #interrupt-cells = <2>; interrupts = ; }; }; }; };