/dts-v1/; / { #address-cells = <0x1>; #size-cells = <0x1>; model = "Marvell Armada 385 Development Board"; compatible = "marvell,a385-db", "marvell,armada385", "marvell,armada38x"; chosen { bootargs = "console=ttyS0,115200 earlyprintk"; }; aliases { gpio0 = "/soc/internal-regs/gpio@18100"; gpio1 = "/soc/internal-regs/gpio@18140"; }; memory { device_type = "memory"; reg = <0x0 0x40000000>; }; soc { compatible = "marvell,armada380-mbus", "simple-bus"; #address-cells = <0x2>; #size-cells = <0x1>; controller = <0x1>; interrupt-parent = <0x2>; pcie-mem-aperture = <0xe0000000 0x8000000>; pcie-io-aperture = <0xe8000000 0x100000>; ranges = <0xf0010000 0x0 0xf1000000 0x100000 0x11d0000 0x0 0xfff00000 0x100000 0x9190000 0x0 0xf1100000 0x10000 0x9150000 0x0 0xf1110000 0x10000 0xc040000 0x0 0xf1200000 0x100000 0xb040000 0x0 0xf1300000 0x100000>; bootrom { compatible = "marvell,bootrom"; reg = <0x11d0000 0x0 0x200000>; }; cesa-sram { compatible = "marvell,cesa-sram"; reg = <0x9190000 0x0 0x10000 0x9150000 0x0 0x10000>; }; devbus-bootcs { compatible = "marvell,mvebu-devbus"; reg = <0xf0010000 0x10400 0x8>; ranges = <0x0 0x12f0000 0x0 0xffffffff>; #address-cells = <0x1>; #size-cells = <0x1>; clocks = <0x3 0x0>; status = "disabled"; }; devbus-cs0 { compatible = "marvell,mvebu-devbus"; reg = <0xf0010000 0x10408 0x8>; ranges = <0x0 0x13e0000 0x0 0xffffffff>; #address-cells = <0x1>; #size-cells = <0x1>; clocks = <0x3 0x0>; status = "disabled"; }; devbus-cs1 { compatible = "marvell,mvebu-devbus"; reg = <0xf0010000 0x10410 0x8>; ranges = <0x0 0x13d0000 0x0 0xffffffff>; #address-cells = <0x1>; #size-cells = <0x1>; clocks = <0x3 0x0>; status = "disabled"; }; devbus-cs2 { compatible = "marvell,mvebu-devbus"; reg = <0xf0010000 0x10418 0x8>; ranges = <0x0 0x13b0000 0x0 0xffffffff>; #address-cells = <0x1>; #size-cells = <0x1>; clocks = <0x3 0x0>; status = "disabled"; }; devbus-cs3 { compatible = "marvell,mvebu-devbus"; reg = <0xf0010000 0x10420 0x8>; ranges = <0x0 0x1370000 0x0 0xffffffff>; #address-cells = <0x1>; #size-cells = <0x1>; clocks = <0x3 0x0>; status = "disabled"; }; internal-regs { compatible = "simple-bus"; #address-cells = <0x1>; #size-cells = <0x1>; ranges = <0x0 0xf0010000 0x0 0x100000>; coherency-fabric@21010 { compatible = "marvell,armada-380-coherency-fabric"; reg = <0x21010 0x1c>; }; mvebu-sar@18600 { compatible = "marvell,armada-380-core-clock"; reg = <0x18600 0x4>; #clock-cells = <0x1>; linux,phandle = <0x3>; phandle = <0x3>; }; corediv-clock@e4250 { compatible = "marvell,armada-38x-corediv-clock"; reg = <0xe4250 0x8>; #clock-cells = <0x1>; clocks = <0x4>; clock-output-names = "nand"; linux,phandle = <0xa>; phandle = <0xa>; }; cpurst@20800 { compatible = "marvell,armada-380-cpu-reset"; reg = <0x20800 0x10>; #reset-cells = <0x1>; linux,phandle = <0xd>; phandle = <0xd>; }; mpcore-soc-ctrl@20d20 { compatible = "marvell,armada-380-mpcore-soc-ctrl"; reg = <0x20d20 0x6c>; }; mdio { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "marvell,orion-mdio"; reg = <0x72004 0x4>; clocks = <0x5 0x4>; ethernet-phy@0 { reg = <0x1>; linux,phandle = <0x7>; phandle = <0x7>; }; }; bm_pnc@c0000 { compatible = "marvell,neta_bm_pnc"; reg = <0xc8000 0xac 0xb8000 0x48>; clocks = <0x5 0xd 0x5 0x1d>; neta_cap_bm = <0x3>; pnc_tcam_size = <0x400>; }; ethernet@70000 { compatible = "marvell,neta"; reg = <0x70000 0x4000>; interrupts-extended = <0x6 0x8>; clocks = <0x5 0x4>; tx-csum-limit = <0x2648>; status = "okay"; eth,port-num = <0x0>; eth,port-mtu = <0x5dc>; phy = <0x7>; phy-mode = "sgmii"; }; ethernet@30000 { compatible = "marvell,neta"; reg = <0x30000 0x4000>; interrupts-extended = <0x6 0xa>; clocks = <0x5 0x3>; tx-csum-limit = <0x800>; status = "disabled"; mac-address = [00 50 43 02 02 02]; eth,port-num = <0x1>; eth,port-mtu = <0x5dc>; }; ethernet@34000 { compatible = "marvell,neta"; reg = <0x34000 0x4000>; interrupts-extended = <0x6 0xc>; clocks = <0x5 0x2>; tx-csum-limit = <0x800>; status = "disabled"; mac-address = [00 50 43 02 02 03]; eth,port-num = <0x2>; eth,port-mtu = <0x5dc>; }; clock-gating-control@18220 { compatible = "marvell,armada-380-gating-clock"; reg = <0x18220 0x4>; clocks = <0x3 0x0>; #clock-cells = <0x1>; linux,phandle = <0x5>; phandle = <0x5>; }; gpio@18100 { compatible = "marvell,orion-gpio"; reg = <0x18100 0x40>; ngpios = <0x20>; gpio-controller; #gpio-cells = <0x2>; interrupt-controller; #interrupt-cells = <0x2>; interrupts = <0x0 0x35 0x4 0x0 0x36 0x4 0x0 0x37 0x4 0x0 0x38 0x4>; }; gpio@18140 { compatible = "marvell,orion-gpio"; reg = <0x18140 0x40>; ngpios = <0x1c>; gpio-controller; #gpio-cells = <0x2>; interrupt-controller; #interrupt-cells = <0x2>; interrupts = <0x0 0x3a 0x4 0x0 0x3b 0x4 0x0 0x3c 0x4 0x0 0x3d 0x4>; }; i2c@11000 { compatible = "marvell,mv64xxx-i2c"; reg = <0x11000 0x20>; #address-cells = <0x1>; #size-cells = <0x0>; interrupts = <0x0 0x2 0x4>; timeout-ms = <0x3e8>; clocks = <0x3 0x0>; status = "okay"; clock-frequency = <0x186a0>; lm75_MB@49 { compatible = "national,lm75"; reg = <0x49>; }; }; i2c@11100 { compatible = "marvell,mv64xxx-i2c"; reg = <0x11100 0x20>; #address-cells = <0x1>; #size-cells = <0x0>; interrupts = <0x0 0x3 0x4>; timeout-ms = <0x3e8>; clocks = <0x3 0x0>; status = "disabled"; }; interrupt-controller@1e001000 { compatible = "arm,cortex-a9-gic"; #interrupt-cells = <0x3>; #size-cells = <0x0>; interrupt-controller; reg = <0xd000 0x1000 0xc100 0x100>; linux,phandle = <0x2>; phandle = <0x2>; }; cache-controller { compatible = "arm,pl310-cache"; reg = <0x8000 0x1000>; cache-unified; cache-level = <0x2>; }; clock-complex@18700 { #clock-cells = <0x1>; compatible = "marvell,armada-xp-cpu-clock", "armada-380-cpu-clock"; reg = <0x18700 0xa0 0x1c054 0x40 0xe4260 0x8>; clocks = <0x3 0x1>; linux,phandle = <0xe>; phandle = <0xe>; }; mbus-controller@20000 { compatible = "marvell,mbus-controller"; reg = <0x20000 0x100 0x20180 0x20 0x20250 0x8 0x20420 0xc>; linux,phandle = <0x1>; phandle = <0x1>; }; interrupt-controller@20000 { compatible = "marvell,mpic"; reg = <0x20a00 0x2d0 0x21070 0x58 0x21870 0x190>; #interrupt-cells = <0x1>; #size-cells = <0x1>; interrupt-controller; msi-controller; interrupts = <0x1 0xf 0x4>; linux,phandle = <0x6>; phandle = <0x6>; }; pinctrl { compatible = "marvell,mv88f6820-pinctrl"; reg = <0x18000 0x20>; i2s_pins { marvell,pins = "mpp48", "mpp49", "mpp50", "mpp51", "mpp52", "mpp53"; marvell,function = "audio"; }; tdm_pins { marvell,pins = "mpp48", "mpp49", "mpp50", "mpp51", "mpp52", "mpp53"; marvell,function = "tdm2c"; linux,phandle = <0x8>; phandle = <0x8>; }; spi1_pins { marvell,pins = "mpp55", "mpp56", "mpp57", "mpp58", "mpp59"; marvell,function = "spi1"; linux,phandle = <0x9>; phandle = <0x9>; }; }; pmsu@22000 { compatible = "marvell,armada-380-pmsu"; reg = <0x22000 0x1000 0x20280 0x4>; }; sdramc@1400 { compatible = "marvell,armada-xp-sdram-controller"; reg = <0x1400 0x500>; }; rtc@a3800 { compatible = "marvell,mvebu-rtc"; reg = <0xa3800 0x20 0x184a0 0xc>; interrupts = <0x0 0x15 0x4>; }; sata@a8000 { compatible = "marvell,ahci-sata"; reg = <0xa8000 0x2000>; interrupts = <0x0 0x1a 0x4>; clocks = <0x5 0xf>; status = "okay"; }; sata@e0000 { compatible = "marvell,ahci-sata"; reg = <0xe0000 0x2000>; interrupts = <0x0 0x1c 0x4>; clocks = <0x5 0x1e>; status = "disabled"; }; tdm@b0000 { compatible = "marvell,armada-380-tdm"; reg = <0xb0000 0x5000 0x18400 0xc 0x18730 0x4>; reg-names = "tdm_regs", "pll_regs", "dco_div"; interrupts = <0x0 0x1b 0x4>; clocks = <0x5 0x19>; clock-names = "gateclk"; status = "disabled"; pinctrl-0 = <0x8>; pinctrl-names = "default"; pclk-freq-mhz = <0x8>; }; sdhci@d8000 { compatible = "marvell,armada-380-sdhci"; reg = <0xd8000 0x1000 0xdc000 0x100 0x18454 0x4>; interrupts = <0x0 0x19 0x4>; clocks = <0x5 0x11>; mrvl,clk-delay-cycles = <0x1f>; status = "disabled"; }; audio-controller@e8000 { compatible = "marvell,armada-380-audio"; reg = <0xe8000 0x4000 0x18410 0xc 0x18204 0x4>; interrupts = <0x0 0x4b 0x4>; clocks = <0x5 0x0>; clock-names = "internal"; status = "disabled"; linux,phandle = <0xc>; phandle = <0xc>; }; scu@c000 { compatible = "arm,cortex-a9-scu"; reg = <0xc000 0x58>; }; serial@12000 { compatible = "snps,dw-apb-uart"; reg = <0x12000 0x100>; reg-shift = <0x2>; interrupts = <0x0 0xc 0x4>; reg-io-width = <0x1>; clocks = <0x3 0x0>; status = "okay"; }; serial@12100 { compatible = "snps,dw-apb-uart"; reg = <0x12100 0x100>; reg-shift = <0x2>; interrupts = <0x0 0xd 0x4>; reg-io-width = <0x1>; clocks = <0x3 0x0>; status = "disabled"; }; thermal@e8078 { compatible = "marvell,armada380-thermal"; reg = <0xe4078 0x4 0xe4070 0x8 0xe4100 0x20>; interrupts = <0x0 0x4e 0x4>; threshold = <0x64>; hysteresis = <0x2>; status = "okay"; }; spi@10600 { compatible = "marvell,armada-380-spi"; reg = <0x10600 0x50>; #address-cells = <0x1>; #size-cells = <0x0>; cell-index = <0x0>; interrupts = <0x0 0x1 0x4>; clocks = <0x3 0x0>; num-cs = <0x4>; status = "disabled"; }; spi@10680 { compatible = "marvell,armada-380-spi"; reg = <0x10680 0x50>; #address-cells = <0x1>; #size-cells = <0x0>; cell-index = <0x1>; interrupts = <0x0 0x3f 0x4>; clocks = <0x3 0x0>; num-cs = <0x4>; status = "okay"; pinctrl-0 = <0x9>; pinctrl-names = "defaults"; spi-flash@0 { #address-cells = <0x1>; #size-cells = <0x0>; compatible = "mx25l3205d"; reg = <0x0>; spi-max-frequency = <0x66ff300>; spi-cpha; mtd1@00000000 { label = "U-Boot-img"; reg = <0x0 0x100000>; }; mtd2@00100000 { label = "U-Boot-env"; reg = <0x100000 0x10000>; }; }; }; nand@d0000 { compatible = "marvell,armada-nand"; interrupts = <0x0 0x54 0x4>; reg = <0xd0000 0x400>; clocks = <0xa 0x0>; clock-names = "ecc_clk"; status = "okay"; #address-cells = <0x1>; #size-cells = <0x1>; nfc,nfc-mode = "normal"; nfc,nfc-dma = <0x0>; nfc,nfc-width = <0x8>; nfc,ecc-type = <0x1>; nfc,num-cs = <0x0>; mtd0@00000000 { label = "ubifs"; reg = <0x0 0x20000000>; }; }; system-controller@18200 { compatible = "marvell,armada-380-system-controller"; reg = <0x18200 0x100>; }; timer@c600 { compatible = "arm,cortex-a9-twd-timer"; reg = <0xc600 0x20>; interrupts = <0x1 0xd 0x301>; clocks = <0x3 0x2>; }; usb@58000 { compatible = "marvell,orion-ehci"; reg = <0x58000 0x500>; interrupts = <0x0 0x12 0x4>; clocks = <0x5 0x12>; }; udc@58100 { compatible = "marvell,mv-udc"; reg = <0x58100 0x2000>; interrupts = <0x0 0x12 0x4>; clocks = <0x5 0x12>; }; usb3@f0000 { compatible = "marvell,xhci-armada-380"; reg = <0xf0000 0x3fff 0xf4000 0x3fff>; interrupts = <0x0 0x10 0x4>; clocks = <0x5 0x9>; }; usb3@f8000 { compatible = "marvell,xhci-armada-380"; reg = <0xf8000 0x3fff 0xfc000 0x3fff>; interrupts = <0x0 0x11 0x4>; clocks = <0x5 0xa>; }; usb3-utmi@1842 { compatible = "marvell,armada-380-usb-utmi"; reg = <0x18420 0x74 0xc0000 0x10000>; }; timer@20300 { compatible = "marvell,armada-380-timer"; reg = <0x20300 0x30 0x21040 0x30>; interrupts-extended = <0x2 0x0 0x8 0x4 0x2 0x0 0x9 0x4 0x2 0x0 0xa 0x4 0x2 0x0 0xb 0x4 0x6 0x5 0x6 0x6>; clocks = <0x3 0x2 0xb>; clock-names = "nbclk", "fixed"; }; watchdog@20300 { compatible = "marvell,armada-380-wdt"; reg = <0x20300 0x34 0x20704 0x4 0x18260 0x4>; clocks = <0x3 0x2 0xb>; clock-names = "nbclk", "fixed"; }; xor@60800 { compatible = "marvell,a38x-xor"; reg = <0x60800 0x100 0x60a00 0x100>; clocks = <0x5 0x16>; status = "okay"; xor00 { interrupts = <0x0 0x16 0x4>; dmacap,memcpy; dmacap,xor; dmacap,interrupt; dmacap,pq; }; xor01 { interrupts = <0x0 0x17 0x4>; dmacap,crc32c; dmacap,interrupt; }; }; xor@60900 { compatible = "marvell,a38x-xor"; reg = <0x60900 0x100 0x60b00 0x100>; clocks = <0x5 0x1c>; status = "okay"; xor10 { interrupts = <0x0 0x41 0x4>; dmacap,memcpy; dmacap,xor; dmacap,interrupt; dmacap,pq; }; xor11 { interrupts = <0x0 0x42 0x4>; dmacap,crc32c; dmacap,interrupt; }; }; crypto@9D000 { compatible = "marvell,armada-cesa"; reg = <0x9d000 0x1000 0x90000 0x1000 0x9f000 0x1000 0x92000 0x1000>; clocks = <0x5 0x17 0x5 0xe 0x5 0x15 0x5 0x10>; clock-names = "crypto0", "crypto0z", "crypto1", "crypto1z"; cesa,channels = <0x2>; cesa,mode = "ocf"; cesa,feature = "int_coalescing"; cesa,threshold = <0x2>; cesa,time_threshold = <0xfffff>; cesa,ctrlModel = [68 00]; cesa,ctrlRev = [02]; cesa,sramOffset = [00 40]; status = "okay"; crypto10 { interrupts = <0x0 0x13 0x4>; }; crypto11 { interrupts = <0x0 0x14 0x4>; }; }; pmu { compatible = "arm,cortex-a9-pmu"; interrupts-extended = <0x6 0x3>; }; prestera { compatible = "marvell,armada-prestera"; status = "disabled"; }; }; pcie-controller { compatible = "marvell,armada-38x-pcie"; status = "okay"; device_type = "pci"; #address-cells = <0x3>; #size-cells = <0x2>; msi-parent = <0x6>; bus-range = <0x0 0xff>; ranges = <0x82000000 0x0 0x80000 0xf0010000 0x80000 0x0 0x2000 0x82000000 0x0 0x40000 0xf0010000 0x40000 0x0 0x2000 0x82000000 0x0 0x44000 0xf0010000 0x44000 0x0 0x2000 0x82000000 0x0 0x48000 0xf0010000 0x48000 0x0 0x2000 0x82000000 0x1 0x0 0x8e80000 0x0 0x1 0x0 0x81000000 0x1 0x0 0x8e00000 0x0 0x1 0x0 0x82000000 0x2 0x0 0x4e80000 0x0 0x1 0x0 0x81000000 0x2 0x0 0x4e00000 0x0 0x1 0x0 0x82000000 0x3 0x0 0x4d80000 0x0 0x1 0x0 0x81000000 0x3 0x0 0x4d00000 0x0 0x1 0x0 0x82000000 0x4 0x0 0x4b80000 0x0 0x1 0x0 0x81000000 0x4 0x0 0x4b00000 0x0 0x1 0x0>; pcie@1,0 { device_type = "pci"; assigned-addresses = <0x82000800 0x0 0x80000 0x0 0x2000>; reg = <0x800 0x0 0x0 0x0 0x0>; #address-cells = <0x3>; #size-cells = <0x2>; #interrupt-cells = <0x1>; ranges = <0x82000000 0x0 0x0 0x82000000 0x1 0x0 0x1 0x0 0x81000000 0x0 0x0 0x81000000 0x1 0x0 0x1 0x0>; interrupt-map-mask = <0x0 0x0 0x0 0x0>; interrupt-map = <0x0 0x0 0x0 0x0 0x2 0x0 0x1d 0x4>; marvell,pcie-port = <0x0>; marvell,pcie-lane = <0x0>; clocks = <0x5 0x8>; status = "okay"; }; pcie@2,0 { device_type = "pci"; assigned-addresses = <0x82000800 0x0 0x40000 0x0 0x2000>; reg = <0x1000 0x0 0x0 0x0 0x0>; #address-cells = <0x3>; #size-cells = <0x2>; #interrupt-cells = <0x1>; ranges = <0x82000000 0x0 0x0 0x82000000 0x2 0x0 0x1 0x0 0x81000000 0x0 0x0 0x81000000 0x2 0x0 0x1 0x0>; interrupt-map-mask = <0x0 0x0 0x0 0x0>; interrupt-map = <0x0 0x0 0x0 0x0 0x2 0x0 0x21 0x4>; marvell,pcie-port = <0x1>; marvell,pcie-lane = <0x0>; clocks = <0x5 0x5>; status = "okay"; }; pcie@3,0 { device_type = "pci"; assigned-addresses = <0x82000800 0x0 0x44000 0x0 0x2000>; reg = <0x1800 0x0 0x0 0x0 0x0>; #address-cells = <0x3>; #size-cells = <0x2>; #interrupt-cells = <0x1>; ranges = <0x82000000 0x0 0x0 0x82000000 0x3 0x0 0x1 0x0 0x81000000 0x0 0x0 0x81000000 0x3 0x0 0x1 0x0>; interrupt-map-mask = <0x0 0x0 0x0 0x0>; interrupt-map = <0x0 0x0 0x0 0x0 0x2 0x0 0x46 0x4>; marvell,pcie-port = <0x2>; marvell,pcie-lane = <0x0>; clocks = <0x5 0x6>; status = "disabled"; }; pcie@4,0 { device_type = "pci"; assigned-addresses = <0x82000800 0x0 0x48000 0x0 0x2000>; reg = <0x2000 0x0 0x0 0x0 0x0>; #address-cells = <0x3>; #size-cells = <0x2>; #interrupt-cells = <0x1>; ranges = <0x82000000 0x0 0x0 0x82000000 0x4 0x0 0x1 0x0 0x81000000 0x0 0x0 0x81000000 0x4 0x0 0x1 0x0>; interrupt-map-mask = <0x0 0x0 0x0 0x0>; interrupt-map = <0x0 0x0 0x0 0x0 0x2 0x0 0x47 0x4>; marvell,pcie-port = <0x3>; marvell,pcie-lane = <0x0>; clocks = <0x5 0x7>; status = "disabled"; }; }; }; clocks { oscillator { compatible = "fixed-clock"; #clock-cells = <0x0>; clock-frequency = <0x17d7840>; linux,phandle = <0xb>; phandle = <0xb>; }; mainpll { compatible = "fixed-clock"; #clock-cells = <0x0>; clock-frequency = <0x77359400>; linux,phandle = <0x4>; phandle = <0x4>; }; }; switch { compatible = "marvell,mv_switch"; status = "disabled"; index = <0x0>; phy_addr = <0x2>; gbe_port = <0x0>; cpuPort = <0x6>; vid = <0x0>; port_mask = <0x7f>; connected_port_mask = <0x7f>; forced_link_port_mask = <0x60>; mtu = <0x5dc>; smi_scan_mode = <0x2>; qsgmii_module = <0x0>; gephy_on_port = <0x1f>; rgmiia_on_port = <0x60>; switch_irq = <0xffffffff>; is_speed_2000 = <0x0>; rgmii_rx_timing_delay = <0x1>; rgmii_tx_timing_delay = <0x1>; }; sound { marvell,audio-controller = <0xc>; status = "disabled"; }; spdif-out { compatible = "linux,spdif-dit"; }; spdif-in { compatible = "linux,spdif-dir"; }; cpus { #address-cells = <0x1>; #size-cells = <0x0>; clock-ranges; cpu@0 { device_type = "cpu"; compatible = "arm,cortex-a9"; reg = <0x0>; resets = <0xd 0x0>; clocks = <0xe 0x0>; clock-latency = <0xf4240>; clock-names = "cpu0"; }; cpu@1 { device_type = "cpu"; compatible = "arm,cortex-a9"; reg = <0x1>; resets = <0xd 0x1>; clocks = <0xe 0x0>; clock-latency = <0xf4240>; clock-names = "cpu1"; }; }; };