11335483aSStefan Roese/* 21335483aSStefan Roese * Copyright (C) 2016 Marvell Technology Group Ltd. 31335483aSStefan Roese * 41335483aSStefan Roese * This file is dual-licensed: you can use it either under the terms 51335483aSStefan Roese * of the GPLv2 or the X11 license, at your option. Note that this dual 61335483aSStefan Roese * licensing only applies to this file, and not this project as a 71335483aSStefan Roese * whole. 81335483aSStefan Roese * 91335483aSStefan Roese * a) This library is free software; you can redistribute it and/or 101335483aSStefan Roese * modify it under the terms of the GNU General Public License as 111335483aSStefan Roese * published by the Free Software Foundation; either version 2 of the 121335483aSStefan Roese * License, or (at your option) any later version. 131335483aSStefan Roese * 141335483aSStefan Roese * This library is distributed in the hope that it will be useful, 151335483aSStefan Roese * but WITHOUT ANY WARRANTY; without even the implied warranty of 161335483aSStefan Roese * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 171335483aSStefan Roese * GNU General Public License for more details. 181335483aSStefan Roese * 191335483aSStefan Roese * Or, alternatively, 201335483aSStefan Roese * 211335483aSStefan Roese * b) Permission is hereby granted, free of charge, to any person 221335483aSStefan Roese * obtaining a copy of this software and associated documentation 231335483aSStefan Roese * files (the "Software"), to deal in the Software without 241335483aSStefan Roese * restriction, including without limitation the rights to use, 251335483aSStefan Roese * copy, modify, merge, publish, distribute, sublicense, and/or 261335483aSStefan Roese * sell copies of the Software, and to permit persons to whom the 271335483aSStefan Roese * Software is furnished to do so, subject to the following 281335483aSStefan Roese * conditions: 291335483aSStefan Roese * 301335483aSStefan Roese * The above copyright notice and this permission notice shall be 311335483aSStefan Roese * included in all copies or substantial portions of the Software. 321335483aSStefan Roese * 331335483aSStefan Roese * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 341335483aSStefan Roese * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 351335483aSStefan Roese * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 361335483aSStefan Roese * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 371335483aSStefan Roese * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 381335483aSStefan Roese * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 391335483aSStefan Roese * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 401335483aSStefan Roese * OTHER DEALINGS IN THE SOFTWARE. 411335483aSStefan Roese */ 421335483aSStefan Roese 431335483aSStefan Roese/* 441335483aSStefan Roese * Device Tree file for Marvell Armada AP806. 451335483aSStefan Roese */ 461335483aSStefan Roese 471335483aSStefan Roese#include <dt-bindings/interrupt-controller/arm-gic.h> 481335483aSStefan Roese 491335483aSStefan Roese/dts-v1/; 501335483aSStefan Roese 511335483aSStefan Roese/ { 521335483aSStefan Roese model = "Marvell Armada AP806"; 531335483aSStefan Roese compatible = "marvell,armada-ap806"; 541335483aSStefan Roese #address-cells = <2>; 551335483aSStefan Roese #size-cells = <2>; 561335483aSStefan Roese 571335483aSStefan Roese aliases { 581335483aSStefan Roese serial0 = &uart0; 591335483aSStefan Roese serial1 = &uart1; 601335483aSStefan Roese }; 611335483aSStefan Roese 621335483aSStefan Roese psci { 631335483aSStefan Roese compatible = "arm,psci-0.2"; 641335483aSStefan Roese method = "smc"; 651335483aSStefan Roese }; 661335483aSStefan Roese 671335483aSStefan Roese ap806 { 681335483aSStefan Roese #address-cells = <2>; 691335483aSStefan Roese #size-cells = <2>; 701335483aSStefan Roese compatible = "simple-bus"; 711335483aSStefan Roese interrupt-parent = <&gic>; 721335483aSStefan Roese ranges; 731335483aSStefan Roese 741335483aSStefan Roese config-space { 751335483aSStefan Roese #address-cells = <1>; 761335483aSStefan Roese #size-cells = <1>; 771335483aSStefan Roese compatible = "simple-bus"; 781335483aSStefan Roese ranges = <0x0 0x0 0xf0000000 0x1000000>; 791335483aSStefan Roese 801335483aSStefan Roese gic: interrupt-controller@210000 { 811335483aSStefan Roese compatible = "arm,gic-400"; 821335483aSStefan Roese #interrupt-cells = <3>; 831335483aSStefan Roese #address-cells = <1>; 841335483aSStefan Roese #size-cells = <1>; 851335483aSStefan Roese ranges; 861335483aSStefan Roese interrupt-controller; 871335483aSStefan Roese interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 881335483aSStefan Roese reg = <0x210000 0x10000>, 891335483aSStefan Roese <0x220000 0x20000>, 901335483aSStefan Roese <0x240000 0x20000>, 911335483aSStefan Roese <0x260000 0x20000>; 921335483aSStefan Roese 931335483aSStefan Roese gic_v2m0: v2m@280000 { 941335483aSStefan Roese compatible = "arm,gic-v2m-frame"; 951335483aSStefan Roese msi-controller; 961335483aSStefan Roese reg = <0x280000 0x1000>; 971335483aSStefan Roese arm,msi-base-spi = <160>; 981335483aSStefan Roese arm,msi-num-spis = <32>; 991335483aSStefan Roese }; 1001335483aSStefan Roese gic_v2m1: v2m@290000 { 1011335483aSStefan Roese compatible = "arm,gic-v2m-frame"; 1021335483aSStefan Roese msi-controller; 1031335483aSStefan Roese reg = <0x290000 0x1000>; 1041335483aSStefan Roese arm,msi-base-spi = <192>; 1051335483aSStefan Roese arm,msi-num-spis = <32>; 1061335483aSStefan Roese }; 1071335483aSStefan Roese gic_v2m2: v2m@2a0000 { 1081335483aSStefan Roese compatible = "arm,gic-v2m-frame"; 1091335483aSStefan Roese msi-controller; 1101335483aSStefan Roese reg = <0x2a0000 0x1000>; 1111335483aSStefan Roese arm,msi-base-spi = <224>; 1121335483aSStefan Roese arm,msi-num-spis = <32>; 1131335483aSStefan Roese }; 1141335483aSStefan Roese gic_v2m3: v2m@2b0000 { 1151335483aSStefan Roese compatible = "arm,gic-v2m-frame"; 1161335483aSStefan Roese msi-controller; 1171335483aSStefan Roese reg = <0x2b0000 0x1000>; 1181335483aSStefan Roese arm,msi-base-spi = <256>; 1191335483aSStefan Roese arm,msi-num-spis = <32>; 1201335483aSStefan Roese }; 1211335483aSStefan Roese }; 1221335483aSStefan Roese 1231335483aSStefan Roese timer { 1241335483aSStefan Roese compatible = "arm,armv8-timer"; 1251335483aSStefan Roese interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>, 1261335483aSStefan Roese <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>, 1271335483aSStefan Roese <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>, 1281335483aSStefan Roese <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>; 1291335483aSStefan Roese }; 1301335483aSStefan Roese 1311335483aSStefan Roese odmi: odmi@300000 { 1321335483aSStefan Roese compatible = "marvell,odmi-controller"; 1331335483aSStefan Roese interrupt-controller; 1341335483aSStefan Roese msi-controller; 1351335483aSStefan Roese marvell,odmi-frames = <4>; 1361335483aSStefan Roese reg = <0x300000 0x4000>, 1371335483aSStefan Roese <0x304000 0x4000>, 1381335483aSStefan Roese <0x308000 0x4000>, 1391335483aSStefan Roese <0x30C000 0x4000>; 1401335483aSStefan Roese marvell,spi-base = <128>, <136>, <144>, <152>; 1411335483aSStefan Roese }; 1421335483aSStefan Roese 143f99386c5SKonstantin Porotchkin ap_pinctl: ap-pinctl@6F4000 { 144f99386c5SKonstantin Porotchkin compatible = "marvell,armada-ap806-pinctrl"; 145f99386c5SKonstantin Porotchkin bank-name ="apn-806"; 146f99386c5SKonstantin Porotchkin reg = <0x6F4000 0x10>; 147f99386c5SKonstantin Porotchkin pin-count = <20>; 148f99386c5SKonstantin Porotchkin max-func = <3>; 149f99386c5SKonstantin Porotchkin 150f99386c5SKonstantin Porotchkin ap_i2c0_pins: i2c-pins-0 { 151f99386c5SKonstantin Porotchkin marvell,pins = < 4 5 >; 152f99386c5SKonstantin Porotchkin marvell,function = <3>; 153f99386c5SKonstantin Porotchkin }; 154f99386c5SKonstantin Porotchkin ap_emmc_pins: emmc-pins-0 { 155f99386c5SKonstantin Porotchkin marvell,pins = < 0 1 2 3 4 5 6 7 156f99386c5SKonstantin Porotchkin 8 9 10 >; 157f99386c5SKonstantin Porotchkin marvell,function = <1>; 158f99386c5SKonstantin Porotchkin }; 159f99386c5SKonstantin Porotchkin }; 160f99386c5SKonstantin Porotchkin 161*9eb34681SKonstantin Porotchkin ap_gpio0: gpio@6F5040 { 162*9eb34681SKonstantin Porotchkin compatible = "marvell,orion-gpio"; 163*9eb34681SKonstantin Porotchkin reg = <0x6F5040 0x40>; 164*9eb34681SKonstantin Porotchkin ngpios = <20>; 165*9eb34681SKonstantin Porotchkin gpio-controller; 166*9eb34681SKonstantin Porotchkin #gpio-cells = <2>; 167*9eb34681SKonstantin Porotchkin }; 168*9eb34681SKonstantin Porotchkin 1691335483aSStefan Roese xor@400000 { 1701335483aSStefan Roese compatible = "marvell,mv-xor-v2"; 1711335483aSStefan Roese reg = <0x400000 0x1000>, 1721335483aSStefan Roese <0x410000 0x1000>; 1731335483aSStefan Roese msi-parent = <&gic_v2m0>; 1741335483aSStefan Roese dma-coherent; 1751335483aSStefan Roese }; 1761335483aSStefan Roese 1771335483aSStefan Roese xor@420000 { 1781335483aSStefan Roese compatible = "marvell,mv-xor-v2"; 1791335483aSStefan Roese reg = <0x420000 0x1000>, 1801335483aSStefan Roese <0x430000 0x1000>; 1811335483aSStefan Roese msi-parent = <&gic_v2m0>; 1821335483aSStefan Roese dma-coherent; 1831335483aSStefan Roese }; 1841335483aSStefan Roese 1851335483aSStefan Roese xor@440000 { 1861335483aSStefan Roese compatible = "marvell,mv-xor-v2"; 1871335483aSStefan Roese reg = <0x440000 0x1000>, 1881335483aSStefan Roese <0x450000 0x1000>; 1891335483aSStefan Roese msi-parent = <&gic_v2m0>; 1901335483aSStefan Roese dma-coherent; 1911335483aSStefan Roese }; 1921335483aSStefan Roese 1931335483aSStefan Roese xor@460000 { 1941335483aSStefan Roese compatible = "marvell,mv-xor-v2"; 1951335483aSStefan Roese reg = <0x460000 0x1000>, 1961335483aSStefan Roese <0x470000 0x1000>; 1971335483aSStefan Roese msi-parent = <&gic_v2m0>; 1981335483aSStefan Roese dma-coherent; 1991335483aSStefan Roese }; 2001335483aSStefan Roese 2011335483aSStefan Roese spi0: spi@510600 { 2021335483aSStefan Roese compatible = "marvell,armada-380-spi"; 2031335483aSStefan Roese reg = <0x510600 0x50>; 2041335483aSStefan Roese #address-cells = <1>; 2051335483aSStefan Roese #size-cells = <0>; 2061335483aSStefan Roese cell-index = <0>; 2071335483aSStefan Roese interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>; 2081335483aSStefan Roese clocks = <&ap_syscon 3>; 2091335483aSStefan Roese status = "disabled"; 2101335483aSStefan Roese }; 2111335483aSStefan Roese 2121335483aSStefan Roese i2c0: i2c@511000 { 2131335483aSStefan Roese compatible = "marvell,mv78230-i2c"; 2141335483aSStefan Roese reg = <0x511000 0x20>; 2151335483aSStefan Roese #address-cells = <1>; 2161335483aSStefan Roese #size-cells = <0>; 2171335483aSStefan Roese interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>; 2181335483aSStefan Roese timeout-ms = <1000>; 2191335483aSStefan Roese clocks = <&ap_syscon 3>; 2201335483aSStefan Roese status = "disabled"; 2211335483aSStefan Roese }; 2221335483aSStefan Roese 2231335483aSStefan Roese uart0: serial@512000 { 2241335483aSStefan Roese compatible = "snps,dw-apb-uart"; 2251335483aSStefan Roese reg = <0x512000 0x100>; 2261335483aSStefan Roese reg-shift = <2>; 2271335483aSStefan Roese interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>; 2281335483aSStefan Roese reg-io-width = <1>; 2291335483aSStefan Roese clocks = <&ap_syscon 3>; 2301335483aSStefan Roese status = "disabled"; 231b5fbf5aaSStefan Roese clock-frequency = <200000000>; 2321335483aSStefan Roese }; 2331335483aSStefan Roese 2341335483aSStefan Roese uart1: serial@512100 { 2351335483aSStefan Roese compatible = "snps,dw-apb-uart"; 2361335483aSStefan Roese reg = <0x512100 0x100>; 2371335483aSStefan Roese reg-shift = <2>; 2381335483aSStefan Roese interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>; 2391335483aSStefan Roese reg-io-width = <1>; 2401335483aSStefan Roese clocks = <&ap_syscon 3>; 2411335483aSStefan Roese status = "disabled"; 2421335483aSStefan Roese 2431335483aSStefan Roese }; 2441335483aSStefan Roese 245b14b0b1eSStefan Roese ap_sdhci0: sdhci@6e0000 { 246b14b0b1eSStefan Roese compatible = "marvell,armada-8k-sdhci"; 247b14b0b1eSStefan Roese reg = <0x6e0000 0x300>; 248b14b0b1eSStefan Roese interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>; 249b14b0b1eSStefan Roese dma-coherent; 250b14b0b1eSStefan Roese status = "disabled"; 251b14b0b1eSStefan Roese }; 252b14b0b1eSStefan Roese 2531335483aSStefan Roese ap_syscon: system-controller@6f4000 { 2541335483aSStefan Roese compatible = "marvell,ap806-system-controller", 2551335483aSStefan Roese "syscon"; 2561335483aSStefan Roese #clock-cells = <1>; 2571335483aSStefan Roese clock-output-names = "ap-cpu-cluster-0", 2581335483aSStefan Roese "ap-cpu-cluster-1", 2591335483aSStefan Roese "ap-fixed", "ap-mss"; 2601335483aSStefan Roese reg = <0x6f4000 0x1000>; 2611335483aSStefan Roese }; 2621335483aSStefan Roese }; 2631335483aSStefan Roese }; 2641335483aSStefan Roese}; 265