11.1.1.4Sjmcneill// SPDX-License-Identifier: (GPL-2.0+ OR MIT) 21.1Sjmcneill/* 31.1Sjmcneill * Device Tree Include file for Marvell 98dx3236 family SoC 41.1Sjmcneill * 51.1Sjmcneill * Copyright (C) 2016 Allied Telesis Labs 61.1Sjmcneill * 71.1Sjmcneill * Contains definitions specific to the 98dx3236 SoC that are not 81.1Sjmcneill * common to all Armada XP SoCs. 91.1Sjmcneill */ 101.1Sjmcneill 111.1.1.2Sjmcneill#include "armada-370-xp.dtsi" 121.1Sjmcneill 131.1Sjmcneill/ { 141.1.1.2Sjmcneill #address-cells = <2>; 151.1.1.2Sjmcneill #size-cells = <2>; 161.1.1.2Sjmcneill 171.1Sjmcneill model = "Marvell 98DX3236 SoC"; 181.1.1.2Sjmcneill compatible = "marvell,armadaxp-98dx3236", "marvell,armada-370-xp"; 191.1Sjmcneill 201.1Sjmcneill aliases { 211.1Sjmcneill gpio0 = &gpio0; 221.1Sjmcneill gpio1 = &gpio1; 231.1Sjmcneill gpio2 = &gpio2; 241.1Sjmcneill }; 251.1Sjmcneill 261.1Sjmcneill cpus { 271.1Sjmcneill #address-cells = <1>; 281.1Sjmcneill #size-cells = <0>; 291.1Sjmcneill enable-method = "marvell,98dx3236-smp"; 301.1Sjmcneill 311.1Sjmcneill cpu@0 { 321.1Sjmcneill device_type = "cpu"; 331.1Sjmcneill compatible = "marvell,sheeva-v7"; 341.1Sjmcneill reg = <0>; 351.1Sjmcneill clocks = <&cpuclk 0>; 361.1Sjmcneill clock-latency = <1000000>; 371.1Sjmcneill }; 381.1Sjmcneill }; 391.1Sjmcneill 401.1Sjmcneill soc { 411.1.1.2Sjmcneill compatible = "marvell,armadaxp-mbus", "simple-bus"; 421.1.1.2Sjmcneill 431.1Sjmcneill ranges = <MBUS_ID(0xf0, 0x01) 0 0 0xf1000000 0x100000 441.1Sjmcneill MBUS_ID(0x01, 0x1d) 0 0 0xfff00000 0x100000 451.1Sjmcneill MBUS_ID(0x01, 0x2f) 0 0 0xf0000000 0x1000000 461.1Sjmcneill MBUS_ID(0x03, 0x00) 0 0 0xa8000000 0x4000000 471.1Sjmcneill MBUS_ID(0x08, 0x00) 0 0 0xac000000 0x100000>; 481.1Sjmcneill 491.1.1.2Sjmcneill bootrom { 501.1.1.2Sjmcneill compatible = "marvell,bootrom"; 511.1.1.2Sjmcneill reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>; 521.1.1.2Sjmcneill }; 531.1.1.2Sjmcneill 541.1Sjmcneill /* 551.1Sjmcneill * 98DX3236 has 1 x1 PCIe unit Gen2.0 561.1Sjmcneill */ 571.1.1.3Sjmcneill pciec: pcie@82000000 { 581.1Sjmcneill compatible = "marvell,armada-xp-pcie"; 591.1Sjmcneill status = "disabled"; 601.1Sjmcneill device_type = "pci"; 611.1Sjmcneill 621.1Sjmcneill #address-cells = <3>; 631.1Sjmcneill #size-cells = <2>; 641.1Sjmcneill 651.1Sjmcneill msi-parent = <&mpic>; 661.1Sjmcneill bus-range = <0x00 0xff>; 671.1Sjmcneill 681.1Sjmcneill ranges = 691.1Sjmcneill <0x82000000 0 0x40000 MBUS_ID(0xf0, 0x01) 0x40000 0 0x00002000 /* Port 0.0 registers */ 701.1Sjmcneill 0x82000000 0x1 0 MBUS_ID(0x04, 0xe8) 0 1 0 /* Port 0.0 MEM */ 711.1.1.2Sjmcneill 0x81000000 0x1 0 MBUS_ID(0x04, 0xe0) 0 1 0 /* Port 0.0 IO */>; 721.1Sjmcneill 731.1Sjmcneill pcie1: pcie@1,0 { 741.1Sjmcneill device_type = "pci"; 751.1Sjmcneill assigned-addresses = <0x82000800 0 0x40000 0 0x2000>; 761.1Sjmcneill reg = <0x0800 0 0 0 0>; 771.1Sjmcneill #address-cells = <3>; 781.1Sjmcneill #size-cells = <2>; 791.1Sjmcneill #interrupt-cells = <1>; 801.1Sjmcneill ranges = <0x82000000 0 0 0x82000000 0x1 0 1 0 811.1Sjmcneill 0x81000000 0 0 0x81000000 0x1 0 1 0>; 821.1.1.3Sjmcneill bus-range = <0x00 0xff>; 831.1Sjmcneill interrupt-map-mask = <0 0 0 0>; 841.1Sjmcneill interrupt-map = <0 0 0 0 &mpic 58>; 851.1Sjmcneill marvell,pcie-port = <0>; 861.1Sjmcneill marvell,pcie-lane = <0>; 871.1Sjmcneill clocks = <&gateclk 5>; 881.1Sjmcneill status = "disabled"; 891.1Sjmcneill }; 901.1Sjmcneill }; 911.1Sjmcneill 921.1Sjmcneill internal-regs { 931.1.1.7Sskrll sdramc: sdramc@1400 { 941.1.1.2Sjmcneill compatible = "marvell,armada-xp-sdram-controller"; 951.1.1.2Sjmcneill reg = <0x1400 0x500>; 961.1.1.2Sjmcneill }; 971.1.1.2Sjmcneill 981.1.1.2Sjmcneill L2: l2-cache@8000 { 991.1.1.2Sjmcneill compatible = "marvell,aurora-system-cache"; 1001.1.1.2Sjmcneill reg = <0x08000 0x1000>; 1011.1.1.2Sjmcneill cache-id-part = <0x100>; 1021.1.1.2Sjmcneill cache-level = <2>; 1031.1.1.2Sjmcneill cache-unified; 1041.1.1.2Sjmcneill wt-override; 1051.1.1.2Sjmcneill }; 1061.1.1.2Sjmcneill 1071.1.1.2Sjmcneill gpio0: gpio@18100 { 1081.1.1.2Sjmcneill compatible = "marvell,orion-gpio"; 1091.1.1.2Sjmcneill reg = <0x18100 0x40>; 1101.1.1.2Sjmcneill ngpios = <32>; 1111.1.1.2Sjmcneill gpio-controller; 1121.1.1.2Sjmcneill #gpio-cells = <2>; 1131.1.1.2Sjmcneill interrupt-controller; 1141.1.1.2Sjmcneill #interrupt-cells = <2>; 1151.1.1.2Sjmcneill interrupts = <82>, <83>, <84>, <85>; 1161.1.1.2Sjmcneill }; 1171.1.1.2Sjmcneill 1181.1.1.2Sjmcneill /* does not exist */ 1191.1.1.2Sjmcneill gpio1: gpio@18140 { 1201.1.1.2Sjmcneill compatible = "marvell,orion-gpio"; 1211.1.1.2Sjmcneill reg = <0x18140 0x40>; 1221.1.1.2Sjmcneill status = "disabled"; 1231.1.1.2Sjmcneill }; 1241.1.1.2Sjmcneill 1251.1.1.2Sjmcneill gpio2: gpio@18180 { /* rework some properties */ 1261.1.1.2Sjmcneill compatible = "marvell,orion-gpio"; 1271.1.1.2Sjmcneill reg = <0x18180 0x40>; 1281.1.1.2Sjmcneill ngpios = <1>; /* only gpio #32 */ 1291.1.1.2Sjmcneill gpio-controller; 1301.1.1.2Sjmcneill #gpio-cells = <2>; 1311.1.1.2Sjmcneill interrupt-controller; 1321.1.1.2Sjmcneill #interrupt-cells = <2>; 1331.1.1.2Sjmcneill interrupts = <87>; 1341.1.1.2Sjmcneill }; 1351.1.1.2Sjmcneill 1361.1.1.2Sjmcneill systemc: system-controller@18200 { 1371.1.1.2Sjmcneill compatible = "marvell,armada-370-xp-system-controller"; 1381.1.1.2Sjmcneill reg = <0x18200 0x500>; 1391.1.1.2Sjmcneill }; 1401.1.1.2Sjmcneill 1411.1.1.2Sjmcneill gateclk: clock-gating-control@18220 { 1421.1.1.2Sjmcneill compatible = "marvell,mv98dx3236-gating-clock"; 1431.1.1.2Sjmcneill reg = <0x18220 0x4>; 1441.1.1.2Sjmcneill clocks = <&coreclk 0>; 1451.1.1.2Sjmcneill #clock-cells = <1>; 1461.1Sjmcneill }; 1471.1Sjmcneill 1481.1Sjmcneill cpuclk: clock-complex@18700 { 1491.1.1.2Sjmcneill #clock-cells = <1>; 1501.1Sjmcneill compatible = "marvell,mv98dx3236-cpu-clock"; 1511.1.1.2Sjmcneill reg = <0x18700 0x24>, <0x1c054 0x10>; 1521.1.1.2Sjmcneill clocks = <&coreclk 1>; 1531.1Sjmcneill }; 1541.1Sjmcneill 1551.1Sjmcneill corediv-clock@18740 { 1561.1Sjmcneill status = "disabled"; 1571.1Sjmcneill }; 1581.1Sjmcneill 1591.1.1.2Sjmcneill cpu-config@21000 { 1601.1.1.2Sjmcneill compatible = "marvell,armada-xp-cpu-config"; 1611.1.1.2Sjmcneill reg = <0x21000 0x8>; 1621.1Sjmcneill }; 1631.1Sjmcneill 1641.1.1.2Sjmcneill ethernet@70000 { 1651.1.1.2Sjmcneill compatible = "marvell,armada-xp-neta"; 1661.1Sjmcneill }; 1671.1Sjmcneill 1681.1.1.2Sjmcneill ethernet@74000 { 1691.1.1.2Sjmcneill compatible = "marvell,armada-xp-neta"; 1701.1Sjmcneill }; 1711.1Sjmcneill 1721.1.1.2Sjmcneill xor1: xor@f0800 { 1731.1Sjmcneill compatible = "marvell,orion-xor"; 1741.1Sjmcneill reg = <0xf0800 0x100 1751.1Sjmcneill 0xf0a00 0x100>; 1761.1Sjmcneill clocks = <&gateclk 22>; 1771.1Sjmcneill status = "okay"; 1781.1Sjmcneill 1791.1Sjmcneill xor10 { 1801.1Sjmcneill interrupts = <51>; 1811.1Sjmcneill dmacap,memcpy; 1821.1Sjmcneill dmacap,xor; 1831.1Sjmcneill }; 1841.1Sjmcneill xor11 { 1851.1Sjmcneill interrupts = <52>; 1861.1Sjmcneill dmacap,memcpy; 1871.1Sjmcneill dmacap,xor; 1881.1Sjmcneill dmacap,memset; 1891.1Sjmcneill }; 1901.1Sjmcneill }; 1911.1Sjmcneill 1921.1.1.6Sjmcneill nand_controller: nand-controller@d0000 { 1931.1.1.2Sjmcneill clocks = <&dfx_coredivclk 0>; 1941.1Sjmcneill }; 1951.1Sjmcneill 1961.1.1.2Sjmcneill xor0: xor@f0900 { 1971.1.1.2Sjmcneill compatible = "marvell,orion-xor"; 1981.1.1.2Sjmcneill reg = <0xF0900 0x100 1991.1.1.2Sjmcneill 0xF0B00 0x100>; 2001.1.1.2Sjmcneill clocks = <&gateclk 28>; 2011.1.1.2Sjmcneill status = "okay"; 2021.1Sjmcneill 2031.1.1.2Sjmcneill xor00 { 2041.1.1.2Sjmcneill interrupts = <94>; 2051.1.1.2Sjmcneill dmacap,memcpy; 2061.1.1.2Sjmcneill dmacap,xor; 2071.1.1.2Sjmcneill }; 2081.1.1.2Sjmcneill xor01 { 2091.1.1.2Sjmcneill interrupts = <95>; 2101.1.1.2Sjmcneill dmacap,memcpy; 2111.1.1.2Sjmcneill dmacap,xor; 2121.1.1.2Sjmcneill dmacap,memset; 2131.1.1.2Sjmcneill }; 2141.1Sjmcneill }; 2151.1Sjmcneill }; 2161.1Sjmcneill 2171.1.1.2Sjmcneill dfx: dfx-server@ac000000 { 2181.1.1.2Sjmcneill compatible = "marvell,dfx-server", "simple-bus"; 2191.1Sjmcneill #address-cells = <1>; 2201.1Sjmcneill #size-cells = <1>; 2211.1Sjmcneill ranges = <0 MBUS_ID(0x08, 0x00) 0 0x100000>; 2221.1.1.2Sjmcneill reg = <MBUS_ID(0x08, 0x00) 0 0x100000>; 2231.1.1.2Sjmcneill 2241.1.1.2Sjmcneill coreclk: mvebu-sar@f8204 { 2251.1.1.2Sjmcneill compatible = "marvell,mv98dx3236-core-clock"; 2261.1.1.2Sjmcneill reg = <0xf8204 0x4>; 2271.1.1.2Sjmcneill #clock-cells = <1>; 2281.1.1.2Sjmcneill }; 2291.1Sjmcneill 2301.1Sjmcneill dfx_coredivclk: corediv-clock@f8268 { 2311.1Sjmcneill compatible = "marvell,mv98dx3236-corediv-clock"; 2321.1Sjmcneill reg = <0xf8268 0xc>; 2331.1Sjmcneill #clock-cells = <1>; 2341.1Sjmcneill clocks = <&mainpll>; 2351.1Sjmcneill clock-output-names = "nand"; 2361.1Sjmcneill }; 2371.1Sjmcneill }; 2381.1Sjmcneill 2391.1Sjmcneill switch: switch@a8000000 { 2401.1Sjmcneill compatible = "simple-bus"; 2411.1Sjmcneill #address-cells = <1>; 2421.1Sjmcneill #size-cells = <1>; 2431.1Sjmcneill ranges = <0 MBUS_ID(0x03, 0x00) 0 0x100000>; 2441.1Sjmcneill 2451.1Sjmcneill pp0: packet-processor@0 { 2461.1.1.6Sjmcneill compatible = "marvell,prestera-98dx3236", "marvell,prestera"; 2471.1Sjmcneill reg = <0 0x4000000>; 2481.1Sjmcneill interrupts = <33>, <34>, <35>; 2491.1Sjmcneill dfx = <&dfx>; 2501.1Sjmcneill }; 2511.1Sjmcneill }; 2521.1Sjmcneill }; 2531.1.1.2Sjmcneill 2541.1.1.2Sjmcneill clocks { 2551.1.1.2Sjmcneill /* 25 MHz reference crystal */ 2561.1.1.2Sjmcneill refclk: oscillator { 2571.1.1.2Sjmcneill compatible = "fixed-clock"; 2581.1.1.2Sjmcneill #clock-cells = <0>; 2591.1.1.2Sjmcneill clock-frequency = <25000000>; 2601.1.1.2Sjmcneill }; 2611.1.1.2Sjmcneill }; 2621.1.1.2Sjmcneill}; 2631.1.1.2Sjmcneill 2641.1.1.2Sjmcneill&i2c0 { 2651.1.1.2Sjmcneill compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; 2661.1.1.2Sjmcneill reg = <0x11000 0x100>; 2671.1.1.8Sjmcneill pinctrl-names = "default"; 2681.1.1.8Sjmcneill pinctrl-0 = <&i2c0_pins>; 2691.1.1.2Sjmcneill}; 2701.1.1.2Sjmcneill 2711.1.1.2Sjmcneill&mpic { 2721.1.1.2Sjmcneill reg = <0x20a00 0x2d0>, <0x21070 0x58>; 2731.1.1.2Sjmcneill}; 2741.1.1.2Sjmcneill 2751.1.1.3Sjmcneill&rtc { 2761.1.1.3Sjmcneill status = "disabled"; 2771.1.1.3Sjmcneill}; 2781.1.1.3Sjmcneill 2791.1.1.2Sjmcneill&timer { 2801.1.1.2Sjmcneill compatible = "marvell,armada-xp-timer"; 2811.1.1.2Sjmcneill clocks = <&coreclk 2>, <&refclk>; 2821.1.1.2Sjmcneill clock-names = "nbclk", "fixed"; 2831.1.1.2Sjmcneill}; 2841.1.1.2Sjmcneill 2851.1.1.2Sjmcneill&watchdog { 2861.1.1.2Sjmcneill compatible = "marvell,armada-xp-wdt"; 2871.1.1.2Sjmcneill clocks = <&coreclk 2>, <&refclk>; 2881.1.1.2Sjmcneill clock-names = "nbclk", "fixed"; 2891.1.1.2Sjmcneill}; 2901.1.1.2Sjmcneill 2911.1.1.2Sjmcneill&cpurst { 2921.1.1.2Sjmcneill reg = <0x20800 0x20>; 2931.1.1.2Sjmcneill}; 2941.1.1.2Sjmcneill 2951.1.1.2Sjmcneill&usb0 { 2961.1.1.2Sjmcneill clocks = <&gateclk 18>; 2971.1.1.2Sjmcneill}; 2981.1.1.2Sjmcneill 2991.1.1.2Sjmcneill&usb1 { 3001.1.1.2Sjmcneill clocks = <&gateclk 19>; 3011.1Sjmcneill}; 3021.1Sjmcneill 3031.1Sjmcneill&pinctrl { 3041.1Sjmcneill compatible = "marvell,98dx3236-pinctrl"; 3051.1Sjmcneill 3061.1.1.5Sjmcneill nand_pins: nand-pins { 3071.1.1.5Sjmcneill marvell,pins = "mpp20", "mpp21", "mpp22", 3081.1.1.5Sjmcneill "mpp23", "mpp24", "mpp25", 3091.1.1.5Sjmcneill "mpp26", "mpp27", "mpp28", 3101.1.1.5Sjmcneill "mpp29", "mpp30"; 3111.1.1.5Sjmcneill marvell,function = "dev"; 3121.1.1.5Sjmcneill }; 3131.1.1.5Sjmcneill 3141.1.1.5Sjmcneill nand_rb: nand-rb { 3151.1.1.5Sjmcneill marvell,pins = "mpp19"; 3161.1.1.5Sjmcneill marvell,function = "nand"; 3171.1.1.5Sjmcneill }; 3181.1.1.5Sjmcneill 3191.1Sjmcneill spi0_pins: spi0-pins { 3201.1Sjmcneill marvell,pins = "mpp0", "mpp1", 3211.1Sjmcneill "mpp2", "mpp3"; 3221.1Sjmcneill marvell,function = "spi0"; 3231.1Sjmcneill }; 3241.1.1.8Sjmcneill 3251.1.1.8Sjmcneill i2c0_pins: i2c-pins-0 { 3261.1.1.8Sjmcneill marvell,pins = "mpp14", "mpp15"; 3271.1.1.8Sjmcneill marvell,function = "i2c0"; 3281.1.1.8Sjmcneill }; 3291.1Sjmcneill}; 3301.1Sjmcneill 3311.1.1.2Sjmcneill&spi0 { 3321.1.1.2Sjmcneill compatible = "marvell,armada-xp-spi", "marvell,orion-spi"; 3331.1.1.2Sjmcneill pinctrl-0 = <&spi0_pins>; 3341.1.1.2Sjmcneill pinctrl-names = "default"; 3351.1Sjmcneill}; 3361.1Sjmcneill 3371.1.1.2Sjmcneill&sdio { 3381.1Sjmcneill status = "disabled"; 3391.1Sjmcneill}; 3401.1Sjmcneill 3411.1.1.7Sskrll&uart0 { 3421.1.1.7Sskrll compatible = "marvell,armada-38x-uart"; 3431.1.1.7Sskrll}; 3441.1.1.7Sskrll 3451.1.1.7Sskrll&uart1 { 3461.1.1.7Sskrll compatible = "marvell,armada-38x-uart"; 3471.1.1.7Sskrll}; 3481.1.1.7Sskrll 349