// SPDX-License-Identifier: GPL-2.0-or-later
/*
* pxa2xx.dtsi - Device Tree Include file for Marvell PXA2xx family SoC
*
* Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
*/
#include "dt-bindings/clock/pxa-clock.h"
#define PMGROUP(pin) #pin
#define PMMUX(func, pin, af) \
mux- ## func { \
groups = PMGROUP(P ## pin); \
function = #af; \
}
#define PMMUX_LPM_LOW(func, pin, af) \
mux- ## func { \
groups = PMGROUP(P ## pin); \
function = #af; \
low-power-disable; \
}
#define PMMUX_LPM_HIGH(func, pin, af) \
mux- ## func { \
groups = PMGROUP(P ## pin); \
function = #af; \
low-power-enable; \
}
/ {
#address-cells = <1>;
#size-cells = <1>;
model = "Marvell PXA2xx family SoC";
compatible = "marvell,pxa2xx";
interrupt-parent = <&pxairq>;
aliases {
serial0 = &ffuart;
serial1 = &btuart;
serial2 = &stuart;
serial3 = &hwuart;
i2c0 = &pwri2c;
i2c1 = &pxai2c1;
};
cpus {
cpu {
compatible = "marvell,xscale";
device_type = "cpu";
};
};
pxabus {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges;
pxairq: interrupt-controller@40d00000 {
#interrupt-cells = <1>;
compatible = "marvell,pxa-intc";
interrupt-controller;
interrupt-parent;
marvell,intc-nr-irqs = <32>;
reg = <0x40d00000 0xd0>;
};
gpio: gpio@40e00000 {
compatible = "mrvl,pxa-gpio";
#address-cells = <0x1>;
#size-cells = <0x1>;
reg = <0x40e00000 0x10000>;
gpio-controller;
#gpio-cells = <0x2>;
interrupts = <8>, <9>, <10>;
interrupt-names = "gpio0", "gpio1", "gpio_mux";
interrupt-controller;
#interrupt-cells = <0x2>;
ranges;
gcb0: gpio@40e00000 {
reg = <0x40e00000 0x4>;
};
gcb1: gpio@40e00004 {
reg = <0x40e00004 0x4>;
};
gcb2: gpio@40e00008 {
reg = <0x40e00008 0x4>;
};
gcb3: gpio@40e0000c {
reg = <0x40e0000c 0x4>;
};
};
ffuart: serial@40100000 {
compatible = "mrvl,pxa-uart";
reg = <0x40100000 0x30>;
interrupts = <22>;
clocks = <&clks CLK_FFUART>;
status = "disabled";
};
btuart: serial@40200000 {
compatible = "mrvl,pxa-uart";
reg = <0x40200000 0x30>;
interrupts = <21>;
clocks = <&clks CLK_BTUART>;
status = "disabled";
};
stuart: serial@40700000 {
compatible = "mrvl,pxa-uart";
reg = <0x40700000 0x30>;
interrupts = <20>;
clocks = <&clks CLK_STUART>;
status = "disabled";
};
hwuart: serial@41600000 {
compatible = "mrvl,pxa-uart";
reg = <0x41600000 0x30>;
interrupts = <7>;
status = "disabled";
};
pxai2c1: i2c@40301680 {
compatible = "mrvl,pxa-i2c";
reg = <0x40301680 0x30>;
interrupts = <18>;
clocks = <&clks CLK_I2C>;
#address-cells = <0x1>;
#size-cells = <0>;
status = "disabled";
};
mmc0: mmc@41100000 {
compatible = "marvell,pxa-mmc";
reg = <0x41100000 0x1000>;
interrupts = <23>;
clocks = <&clks CLK_MMC>;
dmas = <&pdma 21 3
&pdma 22 3>;
dma-names = "rx", "tx";
status = "disabled";
};
rtc@40900000 {
compatible = "marvell,pxa-rtc";
reg = <0x40900000 0x3c>;
interrupts = <30 31>;
};
lcdc: lcd-controller@40500000 {
compatible = "marvell,pxa2xx-lcdc";
reg = <0x44000000 0x10000>;
interrupts = <17>;
clocks = <&clks CLK_LCD>;
status = "disabled";
};
};
};