139a230aaSStefan Roese/* 239a230aaSStefan Roese * Device Tree Include file for Marvell Armada XP family SoC 339a230aaSStefan Roese * 439a230aaSStefan Roese * Copyright (C) 2012 Marvell 539a230aaSStefan Roese * 639a230aaSStefan Roese * Lior Amsalem <alior@marvell.com> 739a230aaSStefan Roese * Gregory CLEMENT <gregory.clement@free-electrons.com> 839a230aaSStefan Roese * Thomas Petazzoni <thomas.petazzoni@free-electrons.com> 939a230aaSStefan Roese * Ben Dooks <ben.dooks@codethink.co.uk> 1039a230aaSStefan Roese * 1139a230aaSStefan Roese * This file is dual-licensed: you can use it either under the terms 1239a230aaSStefan Roese * of the GPL or the X11 license, at your option. Note that this dual 1339a230aaSStefan Roese * licensing only applies to this file, and not this project as a 1439a230aaSStefan Roese * whole. 1539a230aaSStefan Roese * 1639a230aaSStefan Roese * a) This file is free software; you can redistribute it and/or 1739a230aaSStefan Roese * modify it under the terms of the GNU General Public License as 1839a230aaSStefan Roese * published by the Free Software Foundation; either version 2 of the 1939a230aaSStefan Roese * License, or (at your option) any later version. 2039a230aaSStefan Roese * 2139a230aaSStefan Roese * This file is distributed in the hope that it will be useful 2239a230aaSStefan Roese * but WITHOUT ANY WARRANTY; without even the implied warranty of 2339a230aaSStefan Roese * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 2439a230aaSStefan Roese * GNU General Public License for more details. 2539a230aaSStefan Roese * 2639a230aaSStefan Roese * Or, alternatively 2739a230aaSStefan Roese * 2839a230aaSStefan Roese * b) Permission is hereby granted, free of charge, to any person 2939a230aaSStefan Roese * obtaining a copy of this software and associated documentation 3039a230aaSStefan Roese * files (the "Software"), to deal in the Software without 3139a230aaSStefan Roese * restriction, including without limitation the rights to use 3239a230aaSStefan Roese * copy, modify, merge, publish, distribute, sublicense, and/or 3339a230aaSStefan Roese * sell copies of the Software, and to permit persons to whom the 3439a230aaSStefan Roese * Software is furnished to do so, subject to the following 3539a230aaSStefan Roese * conditions: 3639a230aaSStefan Roese * 3739a230aaSStefan Roese * The above copyright notice and this permission notice shall be 3839a230aaSStefan Roese * included in all copies or substantial portions of the Software. 3939a230aaSStefan Roese * 4039a230aaSStefan Roese * THE SOFTWARE IS PROVIDED , WITHOUT WARRANTY OF ANY KIND 4139a230aaSStefan Roese * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 4239a230aaSStefan Roese * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 4339a230aaSStefan Roese * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 4439a230aaSStefan Roese * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY 4539a230aaSStefan Roese * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 4639a230aaSStefan Roese * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 4739a230aaSStefan Roese * OTHER DEALINGS IN THE SOFTWARE. 4839a230aaSStefan Roese * 4939a230aaSStefan Roese * Contains definitions specific to the Armada XP SoC that are not 5039a230aaSStefan Roese * common to all Armada SoCs. 5139a230aaSStefan Roese */ 5239a230aaSStefan Roese 5339a230aaSStefan Roese#include "armada-370-xp.dtsi" 5439a230aaSStefan Roese 5539a230aaSStefan Roese/ { 5639a230aaSStefan Roese model = "Marvell Armada XP family SoC"; 5739a230aaSStefan Roese compatible = "marvell,armadaxp", "marvell,armada-370-xp"; 5839a230aaSStefan Roese 5939a230aaSStefan Roese aliases { 6039a230aaSStefan Roese serial2 = &uart2; 6139a230aaSStefan Roese serial3 = &uart3; 6239a230aaSStefan Roese }; 6339a230aaSStefan Roese 6439a230aaSStefan Roese soc { 6539a230aaSStefan Roese compatible = "marvell,armadaxp-mbus", "simple-bus"; 66*09a54c00SStefan Roese u-boot,dm-pre-reloc; 6739a230aaSStefan Roese 6839a230aaSStefan Roese bootrom { 6939a230aaSStefan Roese compatible = "marvell,bootrom"; 7039a230aaSStefan Roese reg = <MBUS_ID(0x01, 0x1d) 0 0x100000>; 7139a230aaSStefan Roese }; 7239a230aaSStefan Roese 7339a230aaSStefan Roese internal-regs { 7439a230aaSStefan Roese sdramc@1400 { 7539a230aaSStefan Roese compatible = "marvell,armada-xp-sdram-controller"; 7639a230aaSStefan Roese reg = <0x1400 0x500>; 7739a230aaSStefan Roese }; 7839a230aaSStefan Roese 7939a230aaSStefan Roese L2: l2-cache { 8039a230aaSStefan Roese compatible = "marvell,aurora-system-cache"; 8139a230aaSStefan Roese reg = <0x08000 0x1000>; 8239a230aaSStefan Roese cache-id-part = <0x100>; 8339a230aaSStefan Roese cache-level = <2>; 8439a230aaSStefan Roese cache-unified; 8539a230aaSStefan Roese wt-override; 8639a230aaSStefan Roese }; 8739a230aaSStefan Roese 8839a230aaSStefan Roese spi0: spi@10600 { 8939a230aaSStefan Roese compatible = "marvell,armada-xp-spi", 9039a230aaSStefan Roese "marvell,orion-spi"; 9139a230aaSStefan Roese pinctrl-0 = <&spi0_pins>; 9239a230aaSStefan Roese pinctrl-names = "default"; 9339a230aaSStefan Roese }; 9439a230aaSStefan Roese 9539a230aaSStefan Roese spi1: spi@10680 { 9639a230aaSStefan Roese compatible = "marvell,armada-xp-spi", 9739a230aaSStefan Roese "marvell,orion-spi"; 9839a230aaSStefan Roese }; 9939a230aaSStefan Roese 10039a230aaSStefan Roese 10139a230aaSStefan Roese i2c0: i2c@11000 { 10239a230aaSStefan Roese compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; 10339a230aaSStefan Roese reg = <0x11000 0x100>; 10439a230aaSStefan Roese }; 10539a230aaSStefan Roese 10639a230aaSStefan Roese i2c1: i2c@11100 { 10739a230aaSStefan Roese compatible = "marvell,mv78230-i2c", "marvell,mv64xxx-i2c"; 10839a230aaSStefan Roese reg = <0x11100 0x100>; 10939a230aaSStefan Roese }; 11039a230aaSStefan Roese 11139a230aaSStefan Roese uart2: serial@12200 { 11239a230aaSStefan Roese compatible = "snps,dw-apb-uart"; 11339a230aaSStefan Roese pinctrl-0 = <&uart2_pins>; 11439a230aaSStefan Roese pinctrl-names = "default"; 11539a230aaSStefan Roese reg = <0x12200 0x100>; 11639a230aaSStefan Roese reg-shift = <2>; 11739a230aaSStefan Roese interrupts = <43>; 11839a230aaSStefan Roese reg-io-width = <1>; 11939a230aaSStefan Roese clocks = <&coreclk 0>; 12039a230aaSStefan Roese status = "disabled"; 12139a230aaSStefan Roese }; 12239a230aaSStefan Roese 12339a230aaSStefan Roese uart3: serial@12300 { 12439a230aaSStefan Roese compatible = "snps,dw-apb-uart"; 12539a230aaSStefan Roese pinctrl-0 = <&uart3_pins>; 12639a230aaSStefan Roese pinctrl-names = "default"; 12739a230aaSStefan Roese reg = <0x12300 0x100>; 12839a230aaSStefan Roese reg-shift = <2>; 12939a230aaSStefan Roese interrupts = <44>; 13039a230aaSStefan Roese reg-io-width = <1>; 13139a230aaSStefan Roese clocks = <&coreclk 0>; 13239a230aaSStefan Roese status = "disabled"; 13339a230aaSStefan Roese }; 13439a230aaSStefan Roese 13539a230aaSStefan Roese system-controller@18200 { 13639a230aaSStefan Roese compatible = "marvell,armada-370-xp-system-controller"; 13739a230aaSStefan Roese reg = <0x18200 0x500>; 13839a230aaSStefan Roese }; 13939a230aaSStefan Roese 14039a230aaSStefan Roese gateclk: clock-gating-control@18220 { 14139a230aaSStefan Roese compatible = "marvell,armada-xp-gating-clock"; 14239a230aaSStefan Roese reg = <0x18220 0x4>; 14339a230aaSStefan Roese clocks = <&coreclk 0>; 14439a230aaSStefan Roese #clock-cells = <1>; 14539a230aaSStefan Roese }; 14639a230aaSStefan Roese 14739a230aaSStefan Roese coreclk: mvebu-sar@18230 { 14839a230aaSStefan Roese compatible = "marvell,armada-xp-core-clock"; 14939a230aaSStefan Roese reg = <0x18230 0x08>; 15039a230aaSStefan Roese #clock-cells = <1>; 15139a230aaSStefan Roese }; 15239a230aaSStefan Roese 15339a230aaSStefan Roese thermal@182b0 { 15439a230aaSStefan Roese compatible = "marvell,armadaxp-thermal"; 15539a230aaSStefan Roese reg = <0x182b0 0x4 15639a230aaSStefan Roese 0x184d0 0x4>; 15739a230aaSStefan Roese status = "okay"; 15839a230aaSStefan Roese }; 15939a230aaSStefan Roese 16039a230aaSStefan Roese cpuclk: clock-complex@18700 { 16139a230aaSStefan Roese #clock-cells = <1>; 16239a230aaSStefan Roese compatible = "marvell,armada-xp-cpu-clock"; 16339a230aaSStefan Roese reg = <0x18700 0x24>, <0x1c054 0x10>; 16439a230aaSStefan Roese clocks = <&coreclk 1>; 16539a230aaSStefan Roese }; 16639a230aaSStefan Roese 16739a230aaSStefan Roese interrupt-controller@20a00 { 16839a230aaSStefan Roese reg = <0x20a00 0x2d0>, <0x21070 0x58>; 16939a230aaSStefan Roese }; 17039a230aaSStefan Roese 17139a230aaSStefan Roese timer@20300 { 17239a230aaSStefan Roese compatible = "marvell,armada-xp-timer"; 17339a230aaSStefan Roese clocks = <&coreclk 2>, <&refclk>; 17439a230aaSStefan Roese clock-names = "nbclk", "fixed"; 17539a230aaSStefan Roese }; 17639a230aaSStefan Roese 17739a230aaSStefan Roese watchdog@20300 { 17839a230aaSStefan Roese compatible = "marvell,armada-xp-wdt"; 17939a230aaSStefan Roese clocks = <&coreclk 2>, <&refclk>; 18039a230aaSStefan Roese clock-names = "nbclk", "fixed"; 18139a230aaSStefan Roese }; 18239a230aaSStefan Roese 18339a230aaSStefan Roese cpurst@20800 { 18439a230aaSStefan Roese compatible = "marvell,armada-370-cpu-reset"; 18539a230aaSStefan Roese reg = <0x20800 0x20>; 18639a230aaSStefan Roese }; 18739a230aaSStefan Roese 18839a230aaSStefan Roese eth2: ethernet@30000 { 18939a230aaSStefan Roese compatible = "marvell,armada-xp-neta"; 19039a230aaSStefan Roese reg = <0x30000 0x4000>; 19139a230aaSStefan Roese interrupts = <12>; 19239a230aaSStefan Roese clocks = <&gateclk 2>; 19339a230aaSStefan Roese status = "disabled"; 19439a230aaSStefan Roese }; 19539a230aaSStefan Roese 19639a230aaSStefan Roese usb@50000 { 19739a230aaSStefan Roese clocks = <&gateclk 18>; 19839a230aaSStefan Roese }; 19939a230aaSStefan Roese 20039a230aaSStefan Roese usb@51000 { 20139a230aaSStefan Roese clocks = <&gateclk 19>; 20239a230aaSStefan Roese }; 20339a230aaSStefan Roese 20439a230aaSStefan Roese usb@52000 { 20539a230aaSStefan Roese compatible = "marvell,orion-ehci"; 20639a230aaSStefan Roese reg = <0x52000 0x500>; 20739a230aaSStefan Roese interrupts = <47>; 20839a230aaSStefan Roese clocks = <&gateclk 20>; 20939a230aaSStefan Roese status = "disabled"; 21039a230aaSStefan Roese }; 21139a230aaSStefan Roese 21239a230aaSStefan Roese xor@60900 { 21339a230aaSStefan Roese compatible = "marvell,orion-xor"; 21439a230aaSStefan Roese reg = <0x60900 0x100 21539a230aaSStefan Roese 0x60b00 0x100>; 21639a230aaSStefan Roese clocks = <&gateclk 22>; 21739a230aaSStefan Roese status = "okay"; 21839a230aaSStefan Roese 21939a230aaSStefan Roese xor10 { 22039a230aaSStefan Roese interrupts = <51>; 22139a230aaSStefan Roese dmacap,memcpy; 22239a230aaSStefan Roese dmacap,xor; 22339a230aaSStefan Roese }; 22439a230aaSStefan Roese xor11 { 22539a230aaSStefan Roese interrupts = <52>; 22639a230aaSStefan Roese dmacap,memcpy; 22739a230aaSStefan Roese dmacap,xor; 22839a230aaSStefan Roese dmacap,memset; 22939a230aaSStefan Roese }; 23039a230aaSStefan Roese }; 23139a230aaSStefan Roese 23239a230aaSStefan Roese ethernet@70000 { 23339a230aaSStefan Roese compatible = "marvell,armada-xp-neta"; 23439a230aaSStefan Roese }; 23539a230aaSStefan Roese 23639a230aaSStefan Roese ethernet@74000 { 23739a230aaSStefan Roese compatible = "marvell,armada-xp-neta"; 23839a230aaSStefan Roese }; 23939a230aaSStefan Roese 24039a230aaSStefan Roese xor@f0900 { 24139a230aaSStefan Roese compatible = "marvell,orion-xor"; 24239a230aaSStefan Roese reg = <0xF0900 0x100 24339a230aaSStefan Roese 0xF0B00 0x100>; 24439a230aaSStefan Roese clocks = <&gateclk 28>; 24539a230aaSStefan Roese status = "okay"; 24639a230aaSStefan Roese 24739a230aaSStefan Roese xor00 { 24839a230aaSStefan Roese interrupts = <94>; 24939a230aaSStefan Roese dmacap,memcpy; 25039a230aaSStefan Roese dmacap,xor; 25139a230aaSStefan Roese }; 25239a230aaSStefan Roese xor01 { 25339a230aaSStefan Roese interrupts = <95>; 25439a230aaSStefan Roese dmacap,memcpy; 25539a230aaSStefan Roese dmacap,xor; 25639a230aaSStefan Roese dmacap,memset; 25739a230aaSStefan Roese }; 25839a230aaSStefan Roese }; 25939a230aaSStefan Roese }; 26039a230aaSStefan Roese }; 26139a230aaSStefan Roese 26239a230aaSStefan Roese clocks { 26339a230aaSStefan Roese /* 25 MHz reference crystal */ 26439a230aaSStefan Roese refclk: oscillator { 26539a230aaSStefan Roese compatible = "fixed-clock"; 26639a230aaSStefan Roese #clock-cells = <0>; 26739a230aaSStefan Roese clock-frequency = <25000000>; 26839a230aaSStefan Roese }; 26939a230aaSStefan Roese }; 27039a230aaSStefan Roese}; 27139a230aaSStefan Roese 27239a230aaSStefan Roese&pinctrl { 27339a230aaSStefan Roese ge0_gmii_pins: ge0-gmii-pins { 27439a230aaSStefan Roese marvell,pins = 27539a230aaSStefan Roese "mpp0", "mpp1", "mpp2", "mpp3", 27639a230aaSStefan Roese "mpp4", "mpp5", "mpp6", "mpp7", 27739a230aaSStefan Roese "mpp8", "mpp9", "mpp10", "mpp11", 27839a230aaSStefan Roese "mpp12", "mpp13", "mpp14", "mpp15", 27939a230aaSStefan Roese "mpp16", "mpp17", "mpp18", "mpp19", 28039a230aaSStefan Roese "mpp20", "mpp21", "mpp22", "mpp23"; 28139a230aaSStefan Roese marvell,function = "ge0"; 28239a230aaSStefan Roese }; 28339a230aaSStefan Roese 28439a230aaSStefan Roese ge0_rgmii_pins: ge0-rgmii-pins { 28539a230aaSStefan Roese marvell,pins = 28639a230aaSStefan Roese "mpp0", "mpp1", "mpp2", "mpp3", 28739a230aaSStefan Roese "mpp4", "mpp5", "mpp6", "mpp7", 28839a230aaSStefan Roese "mpp8", "mpp9", "mpp10", "mpp11"; 28939a230aaSStefan Roese marvell,function = "ge0"; 29039a230aaSStefan Roese }; 29139a230aaSStefan Roese 29239a230aaSStefan Roese ge1_rgmii_pins: ge1-rgmii-pins { 29339a230aaSStefan Roese marvell,pins = 29439a230aaSStefan Roese "mpp12", "mpp13", "mpp14", "mpp15", 29539a230aaSStefan Roese "mpp16", "mpp17", "mpp18", "mpp19", 29639a230aaSStefan Roese "mpp20", "mpp21", "mpp22", "mpp23"; 29739a230aaSStefan Roese marvell,function = "ge1"; 29839a230aaSStefan Roese }; 29939a230aaSStefan Roese 30039a230aaSStefan Roese sdio_pins: sdio-pins { 30139a230aaSStefan Roese marvell,pins = "mpp30", "mpp31", "mpp32", 30239a230aaSStefan Roese "mpp33", "mpp34", "mpp35"; 30339a230aaSStefan Roese marvell,function = "sd0"; 30439a230aaSStefan Roese }; 30539a230aaSStefan Roese 30639a230aaSStefan Roese spi0_pins: spi0-pins { 30739a230aaSStefan Roese marvell,pins = "mpp36", "mpp37", 30839a230aaSStefan Roese "mpp38", "mpp39"; 30939a230aaSStefan Roese marvell,function = "spi0"; 31039a230aaSStefan Roese }; 31139a230aaSStefan Roese 31239a230aaSStefan Roese uart2_pins: uart2-pins { 31339a230aaSStefan Roese marvell,pins = "mpp42", "mpp43"; 31439a230aaSStefan Roese marvell,function = "uart2"; 31539a230aaSStefan Roese }; 31639a230aaSStefan Roese 31739a230aaSStefan Roese uart3_pins: uart3-pins { 31839a230aaSStefan Roese marvell,pins = "mpp44", "mpp45"; 31939a230aaSStefan Roese marvell,function = "uart3"; 32039a230aaSStefan Roese }; 32139a230aaSStefan Roese}; 322