mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-26 06:10:54 +00:00

The arm dts directory has grown to 1559 boards which makes it a bit unwieldy to maintain and use. Past attempts stalled out due to plans to move .dts files out of the kernel tree. Doing that is no longer planned (any time soon at least), so let's go ahead and group .dts files by vendors. This move aligns arm with arm64 .dts file structure. There's no change to dtbs_install as the flat structure is maintained on install. The naming of vendor directories is roughly in this order of preference: - Matching original and current SoC vendor prefix/name (e.g. ti, qcom) - Current vendor prefix/name if still actively sold (SoCs which have been aquired) (e.g. nxp/imx) - Existing platform name for older platforms not sold/maintained by any company (e.g. gemini, nspire) The whole move was scripted with the exception of MAINTAINERS and a few makefile fixups. Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Acked-by: Michal Simek <michal.simek@amd.com> #Xilinx Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Acked-by: Neil Armstrong <neil.armstrong@linaro.org> Acked-by: Paul Barker <paul.barker@sancloud.com> Acked-by: Tony Lindgren <tony@atomide.com> Acked-by: Gregory CLEMENT <gregory.clement@bootlin.com> Acked-by: Heiko Stuebner <heiko@sntech.de> Acked-by: Wei Xu <xuwei5@hisilicon.com> #hisilicon Acked-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Nick Hawkins <nick.hawkins@hpe.com> Acked-by: Baruch Siach <baruch@tkos.co.il> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> Reviewed-by: Andre Przywara <andre.przywara@arm.com> Acked-by: Andre Przywara <andre.przywara@arm.com> Reviewed-by: Claudiu Beznea <claudiu.beznea@microchip.com> Acked-by: Peter Rosin <peda@axentia.se> Acked-by: Jesper Nilsson <jesper.nilsson@axis.com> Acked-by: Sudeep Holla <sudeep.holla@arm.com> Acked-by: Florian Fainelli <f.fainelli@gmail.com> #broadcom Acked-by: Manivannan Sadhasivam <mani@kernel.org> Reviewed-by: Jisheng Zhang <jszhang@kernel.org> Acked-by: Patrice Chotard <patrice.chotard@foss.st.com> Acked-by: Romain Perier <romain.perier@gmail.com> Acked-by: Alexandre TORGUE <alexandre.torgue@st.com> Acked-by: Shawn Guo <shawnguo@kernel.org> Acked-by: Kunihiko Hayashi <hayashi.kunihiko@socionext.com> Acked-by: Enric Balletbo i Serra <eballetbo@gmail.com> Signed-off-by: Rob Herring <robh@kernel.org>
541 lines
12 KiB
Plaintext
541 lines
12 KiB
Plaintext
// SPDX-License-Identifier: (GPL-2.0 OR MIT)
|
|
/*
|
|
* Device Tree Include file for Marvell Armada 1500 (Berlin BG2) SoC
|
|
*
|
|
* Sebastian Hesselbarth <sebastian.hesselbarth@gmail.com>
|
|
*
|
|
* based on GPL'ed 2.6 kernel sources
|
|
* (c) Marvell International Ltd.
|
|
*/
|
|
|
|
#include <dt-bindings/clock/berlin2.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
|
/ {
|
|
model = "Marvell Armada 1500 (BG2) SoC";
|
|
compatible = "marvell,berlin2", "marvell,berlin";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
aliases {
|
|
serial0 = &uart0;
|
|
serial1 = &uart1;
|
|
serial2 = &uart2;
|
|
};
|
|
|
|
cpus {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
enable-method = "marvell,berlin-smp";
|
|
|
|
cpu@0 {
|
|
compatible = "marvell,pj4b";
|
|
device_type = "cpu";
|
|
next-level-cache = <&l2>;
|
|
reg = <0>;
|
|
|
|
clocks = <&chip_clk CLKID_CPU>;
|
|
clock-latency = <100000>;
|
|
operating-points = <
|
|
/* kHz uV */
|
|
1200000 1200000
|
|
1000000 1200000
|
|
800000 1200000
|
|
600000 1200000
|
|
>;
|
|
};
|
|
|
|
cpu@1 {
|
|
compatible = "marvell,pj4b";
|
|
device_type = "cpu";
|
|
next-level-cache = <&l2>;
|
|
reg = <1>;
|
|
|
|
clocks = <&chip_clk CLKID_CPU>;
|
|
clock-latency = <100000>;
|
|
operating-points = <
|
|
/* kHz uV */
|
|
1200000 1200000
|
|
1000000 1200000
|
|
800000 1200000
|
|
600000 1200000
|
|
>;
|
|
};
|
|
};
|
|
|
|
refclk: oscillator {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <25000000>;
|
|
};
|
|
|
|
soc@f7000000 {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
interrupt-parent = <&gic>;
|
|
|
|
ranges = <0 0xf7000000 0x1000000>;
|
|
|
|
sdhci0: mmc@ab0000 {
|
|
compatible = "mrvl,pxav3-mmc";
|
|
reg = <0xab0000 0x200>;
|
|
clocks = <&chip_clk CLKID_SDIO0XIN>, <&chip_clk CLKID_SDIO0>;
|
|
clock-names = "io", "core";
|
|
interrupts = <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>;
|
|
status = "disabled";
|
|
};
|
|
|
|
sdhci1: mmc@ab0800 {
|
|
compatible = "mrvl,pxav3-mmc";
|
|
reg = <0xab0800 0x200>;
|
|
clocks = <&chip_clk CLKID_SDIO1XIN>, <&chip_clk CLKID_SDIO1>;
|
|
clock-names = "io", "core";
|
|
interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
|
|
status = "disabled";
|
|
};
|
|
|
|
sdhci2: mmc@ab1000 {
|
|
compatible = "mrvl,pxav3-mmc";
|
|
reg = <0xab1000 0x200>;
|
|
interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&chip_clk CLKID_NFC_ECC>, <&chip_clk CLKID_NFC>;
|
|
clock-names = "io", "core";
|
|
pinctrl-0 = <&emmc_pmux>;
|
|
pinctrl-names = "default";
|
|
status = "disabled";
|
|
};
|
|
|
|
l2: cache-controller@ac0000 {
|
|
compatible = "marvell,tauros3-cache", "arm,pl310-cache";
|
|
reg = <0xac0000 0x1000>;
|
|
cache-unified;
|
|
cache-level = <2>;
|
|
};
|
|
|
|
scu: snoop-control-unit@ad0000 {
|
|
compatible = "arm,cortex-a9-scu";
|
|
reg = <0xad0000 0x58>;
|
|
};
|
|
|
|
gic: interrupt-controller@ad1000 {
|
|
compatible = "arm,cortex-a9-gic";
|
|
reg = <0xad1000 0x1000>, <0xad0100 0x0100>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <3>;
|
|
};
|
|
|
|
local-timer@ad0600 {
|
|
compatible = "arm,cortex-a9-twd-timer";
|
|
reg = <0xad0600 0x20>;
|
|
interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(2) | IRQ_TYPE_EDGE_RISING)>;
|
|
clocks = <&chip_clk CLKID_TWD>;
|
|
};
|
|
|
|
eth1: ethernet@b90000 {
|
|
compatible = "marvell,pxa168-eth";
|
|
reg = <0xb90000 0x10000>;
|
|
clocks = <&chip_clk CLKID_GETH1>;
|
|
interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>;
|
|
/* set by bootloader */
|
|
local-mac-address = [00 00 00 00 00 00];
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
phy-connection-type = "mii";
|
|
phy-handle = <ðphy1>;
|
|
status = "disabled";
|
|
|
|
ethphy1: ethernet-phy@0 {
|
|
reg = <0>;
|
|
};
|
|
};
|
|
|
|
cpu-ctrl@dd0000 {
|
|
compatible = "marvell,berlin-cpu-ctrl";
|
|
reg = <0xdd0000 0x10000>;
|
|
};
|
|
|
|
eth0: ethernet@e50000 {
|
|
compatible = "marvell,pxa168-eth";
|
|
reg = <0xe50000 0x10000>;
|
|
clocks = <&chip_clk CLKID_GETH0>;
|
|
interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
|
|
/* set by bootloader */
|
|
local-mac-address = [00 00 00 00 00 00];
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
phy-connection-type = "mii";
|
|
phy-handle = <ðphy0>;
|
|
status = "disabled";
|
|
|
|
ethphy0: ethernet-phy@0 {
|
|
reg = <0>;
|
|
};
|
|
};
|
|
|
|
apb@e80000 {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
ranges = <0 0xe80000 0x10000>;
|
|
interrupt-parent = <&aic>;
|
|
|
|
gpio0: gpio@400 {
|
|
compatible = "snps,dw-apb-gpio";
|
|
reg = <0x0400 0x400>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
porta: gpio-port@0 {
|
|
compatible = "snps,dw-apb-gpio-port";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
ngpios = <8>;
|
|
reg = <0>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
interrupts = <0>;
|
|
};
|
|
};
|
|
|
|
gpio1: gpio@800 {
|
|
compatible = "snps,dw-apb-gpio";
|
|
reg = <0x0800 0x400>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
portb: gpio-port@1 {
|
|
compatible = "snps,dw-apb-gpio-port";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
ngpios = <8>;
|
|
reg = <0>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
interrupts = <1>;
|
|
};
|
|
};
|
|
|
|
gpio2: gpio@c00 {
|
|
compatible = "snps,dw-apb-gpio";
|
|
reg = <0x0c00 0x400>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
portc: gpio-port@2 {
|
|
compatible = "snps,dw-apb-gpio-port";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
ngpios = <8>;
|
|
reg = <0>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
interrupts = <2>;
|
|
};
|
|
};
|
|
|
|
gpio3: gpio@1000 {
|
|
compatible = "snps,dw-apb-gpio";
|
|
reg = <0x1000 0x400>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
portd: gpio-port@3 {
|
|
compatible = "snps,dw-apb-gpio-port";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
ngpios = <8>;
|
|
reg = <0>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
interrupts = <3>;
|
|
};
|
|
};
|
|
|
|
timer0: timer@2c00 {
|
|
compatible = "snps,dw-apb-timer";
|
|
reg = <0x2c00 0x14>;
|
|
interrupts = <8>;
|
|
clocks = <&chip_clk CLKID_CFG>;
|
|
clock-names = "timer";
|
|
status = "okay";
|
|
};
|
|
|
|
timer1: timer@2c14 {
|
|
compatible = "snps,dw-apb-timer";
|
|
reg = <0x2c14 0x14>;
|
|
interrupts = <9>;
|
|
clocks = <&chip_clk CLKID_CFG>;
|
|
clock-names = "timer";
|
|
status = "okay";
|
|
};
|
|
|
|
timer2: timer@2c28 {
|
|
compatible = "snps,dw-apb-timer";
|
|
reg = <0x2c28 0x14>;
|
|
interrupts = <10>;
|
|
clocks = <&chip_clk CLKID_CFG>;
|
|
clock-names = "timer";
|
|
status = "disabled";
|
|
};
|
|
|
|
timer3: timer@2c3c {
|
|
compatible = "snps,dw-apb-timer";
|
|
reg = <0x2c3c 0x14>;
|
|
interrupts = <11>;
|
|
clocks = <&chip_clk CLKID_CFG>;
|
|
clock-names = "timer";
|
|
status = "disabled";
|
|
};
|
|
|
|
timer4: timer@2c50 {
|
|
compatible = "snps,dw-apb-timer";
|
|
reg = <0x2c50 0x14>;
|
|
interrupts = <12>;
|
|
clocks = <&chip_clk CLKID_CFG>;
|
|
clock-names = "timer";
|
|
status = "disabled";
|
|
};
|
|
|
|
timer5: timer@2c64 {
|
|
compatible = "snps,dw-apb-timer";
|
|
reg = <0x2c64 0x14>;
|
|
interrupts = <13>;
|
|
clocks = <&chip_clk CLKID_CFG>;
|
|
clock-names = "timer";
|
|
status = "disabled";
|
|
};
|
|
|
|
timer6: timer@2c78 {
|
|
compatible = "snps,dw-apb-timer";
|
|
reg = <0x2c78 0x14>;
|
|
interrupts = <14>;
|
|
clocks = <&chip_clk CLKID_CFG>;
|
|
clock-names = "timer";
|
|
status = "disabled";
|
|
};
|
|
|
|
timer7: timer@2c8c {
|
|
compatible = "snps,dw-apb-timer";
|
|
reg = <0x2c8c 0x14>;
|
|
interrupts = <15>;
|
|
clocks = <&chip_clk CLKID_CFG>;
|
|
clock-names = "timer";
|
|
status = "disabled";
|
|
};
|
|
|
|
aic: interrupt-controller@3000 {
|
|
compatible = "snps,dw-apb-ictl";
|
|
reg = <0x3000 0xc00>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
interrupt-parent = <&gic>;
|
|
interrupts = <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>;
|
|
};
|
|
};
|
|
|
|
ahci: sata@e90000 {
|
|
compatible = "marvell,berlin2-ahci", "generic-ahci";
|
|
reg = <0xe90000 0x1000>;
|
|
interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>;
|
|
clocks = <&chip_clk CLKID_SATA>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
sata0: sata-port@0 {
|
|
reg = <0>;
|
|
phys = <&sata_phy 0>;
|
|
status = "disabled";
|
|
};
|
|
|
|
sata1: sata-port@1 {
|
|
reg = <1>;
|
|
phys = <&sata_phy 1>;
|
|
status = "disabled";
|
|
};
|
|
};
|
|
|
|
sata_phy: phy@e900a0 {
|
|
compatible = "marvell,berlin2-sata-phy";
|
|
reg = <0xe900a0 0x200>;
|
|
clocks = <&chip_clk CLKID_SATA>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
#phy-cells = <1>;
|
|
status = "disabled";
|
|
|
|
sata-phy@0 {
|
|
reg = <0>;
|
|
};
|
|
|
|
sata-phy@1 {
|
|
reg = <1>;
|
|
};
|
|
};
|
|
|
|
chip: chip-control@ea0000 {
|
|
compatible = "simple-mfd", "syscon";
|
|
reg = <0xea0000 0x400>;
|
|
|
|
chip_clk: clock {
|
|
compatible = "marvell,berlin2-clk";
|
|
#clock-cells = <1>;
|
|
clocks = <&refclk>;
|
|
clock-names = "refclk";
|
|
};
|
|
|
|
soc_pinctrl: pin-controller {
|
|
compatible = "marvell,berlin2-soc-pinctrl";
|
|
|
|
emmc_pmux: emmc-pmux {
|
|
groups = "G26";
|
|
function = "emmc";
|
|
};
|
|
};
|
|
|
|
chip_rst: reset {
|
|
compatible = "marvell,berlin2-reset";
|
|
#reset-cells = <2>;
|
|
};
|
|
};
|
|
|
|
pwm: pwm@f20000 {
|
|
compatible = "marvell,berlin-pwm";
|
|
reg = <0xf20000 0x40>;
|
|
clocks = <&chip_clk CLKID_CFG>;
|
|
#pwm-cells = <3>;
|
|
};
|
|
|
|
apb@fc0000 {
|
|
compatible = "simple-bus";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
ranges = <0 0xfc0000 0x10000>;
|
|
interrupt-parent = <&sic>;
|
|
|
|
wdt0: watchdog@1000 {
|
|
compatible = "snps,dw-wdt";
|
|
reg = <0x1000 0x100>;
|
|
clocks = <&refclk>;
|
|
interrupts = <0>;
|
|
};
|
|
|
|
wdt1: watchdog@2000 {
|
|
compatible = "snps,dw-wdt";
|
|
reg = <0x2000 0x100>;
|
|
clocks = <&refclk>;
|
|
interrupts = <1>;
|
|
};
|
|
|
|
wdt2: watchdog@3000 {
|
|
compatible = "snps,dw-wdt";
|
|
reg = <0x3000 0x100>;
|
|
clocks = <&refclk>;
|
|
interrupts = <2>;
|
|
};
|
|
|
|
sm_gpio1: gpio@5000 {
|
|
compatible = "snps,dw-apb-gpio";
|
|
reg = <0x5000 0x400>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
portf: gpio-port@5 {
|
|
compatible = "snps,dw-apb-gpio-port";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
ngpios = <8>;
|
|
reg = <0>;
|
|
};
|
|
};
|
|
|
|
sm_gpio0: gpio@c000 {
|
|
compatible = "snps,dw-apb-gpio";
|
|
reg = <0xc000 0x400>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
porte: gpio-port@4 {
|
|
compatible = "snps,dw-apb-gpio-port";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
ngpios = <8>;
|
|
reg = <0>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
interrupts = <11>;
|
|
};
|
|
};
|
|
|
|
uart0: serial@9000 {
|
|
compatible = "snps,dw-apb-uart";
|
|
reg = <0x9000 0x100>;
|
|
reg-shift = <2>;
|
|
reg-io-width = <1>;
|
|
interrupts = <8>;
|
|
clocks = <&refclk>;
|
|
pinctrl-0 = <&uart0_pmux>;
|
|
pinctrl-names = "default";
|
|
status = "disabled";
|
|
};
|
|
|
|
uart1: serial@a000 {
|
|
compatible = "snps,dw-apb-uart";
|
|
reg = <0xa000 0x100>;
|
|
reg-shift = <2>;
|
|
reg-io-width = <1>;
|
|
interrupts = <9>;
|
|
clocks = <&refclk>;
|
|
pinctrl-0 = <&uart1_pmux>;
|
|
pinctrl-names = "default";
|
|
status = "disabled";
|
|
};
|
|
|
|
uart2: serial@b000 {
|
|
compatible = "snps,dw-apb-uart";
|
|
reg = <0xb000 0x100>;
|
|
reg-shift = <2>;
|
|
reg-io-width = <1>;
|
|
interrupts = <10>;
|
|
clocks = <&refclk>;
|
|
pinctrl-0 = <&uart2_pmux>;
|
|
pinctrl-names = "default";
|
|
status = "disabled";
|
|
};
|
|
|
|
sysctrl: system-controller@d000 {
|
|
compatible = "simple-mfd", "syscon";
|
|
reg = <0xd000 0x100>;
|
|
|
|
sys_pinctrl: pin-controller {
|
|
compatible = "marvell,berlin2-system-pinctrl";
|
|
uart0_pmux: uart0-pmux {
|
|
groups = "GSM4";
|
|
function = "uart0";
|
|
};
|
|
|
|
uart1_pmux: uart1-pmux {
|
|
groups = "GSM5";
|
|
function = "uart1";
|
|
};
|
|
uart2_pmux: uart2-pmux {
|
|
groups = "GSM3";
|
|
function = "uart2";
|
|
};
|
|
};
|
|
};
|
|
|
|
sic: interrupt-controller@e000 {
|
|
compatible = "snps,dw-apb-ictl";
|
|
reg = <0xe000 0x400>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
interrupt-parent = <&gic>;
|
|
interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
|
|
};
|
|
};
|
|
};
|
|
};
|