2019-05-19 20:51:34 +07:00
|
|
|
// SPDX-License-Identifier: GPL-2.0-or-later
|
2012-07-25 22:56:48 +07:00
|
|
|
/*
|
|
|
|
* pxa2xx.dtsi - Device Tree Include file for Marvell PXA2xx family SoC
|
|
|
|
*
|
|
|
|
* Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
|
|
|
|
*/
|
|
|
|
|
2015-02-07 19:13:24 +07:00
|
|
|
#include "dt-bindings/clock/pxa-clock.h"
|
2012-07-25 22:56:48 +07:00
|
|
|
|
ARM: dts: pxa: add pincontrol helpers
Add 3 helpers so that pincontrol definitions for pxa25x and pxa27x are
easier, and can be easily converted from old mfp mach-pxa code to
devicetree.
An example of such conversion would be :
static unsigned long mioa701_pin_config[] = {
GPIO32_MMC_CLK,
GPIO92_MMC_DAT_0,
GPIO109_MMC_DAT_1,
GPIO110_MMC_DAT_2,
GPIO111_MMC_DAT_3,
GPIO112_MMC_CMD,
MIO_CFG_IN(GPIO78_SDIO_RO, AF0),
MIO_CFG_IN(GPIO15_SDIO_INSERT, AF0),
MIO_CFG_OUT(GPIO91_SDIO_EN, AF0, DRIVE_LOW),
};
into:
pinctrl_mmc_default: mmc-default {
PMMUX(sd-insert, 15, gpio_in);
PMMUX(mmclk, 32, MMCLK);
PMMUX(sd-ro, 78, gpio_in);
PMMUX_LPM_LOW(sd-enable, 91, gpio_out);
PMMUX(mmdat0, 92, MMDAT<0>);
PMMUX(mmdat1, 109, MMDAT<1>);
PMMUX(mmdat2, 110, MMDAT<2>);
PMMUX(mmdat3, 111, MMDAT<3>);
PMMUX(mmcmd, 112, MMCMD);
};
The third column of PMMUX*() helpers can be found in pincontrol muxing
functions, either in pinctrl-pxa27x.c (or pinctrl-pxa25x.c), or by
inspecting the pincontrol once booted in debugfs.
Signed-off-by: Robert Jarzmik <robert.jarzmik@free.fr>
2018-07-02 12:37:52 +07:00
|
|
|
#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; \
|
|
|
|
}
|
|
|
|
|
2012-07-25 22:56:48 +07:00
|
|
|
/ {
|
2019-01-09 23:26:14 +07:00
|
|
|
#address-cells = <1>;
|
|
|
|
#size-cells = <1>;
|
2012-07-25 22:56:48 +07:00
|
|
|
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 {
|
2013-04-23 20:16:13 +07:00
|
|
|
cpu {
|
|
|
|
compatible = "marvell,xscale";
|
|
|
|
device_type = "cpu";
|
2012-07-25 22:56:48 +07:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
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>;
|
2016-09-26 14:22:11 +07:00
|
|
|
interrupts = <8>, <9>, <10>;
|
|
|
|
interrupt-names = "gpio0", "gpio1", "gpio_mux";
|
2012-07-25 22:56:48 +07:00
|
|
|
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>;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2018-07-16 02:47:18 +07:00
|
|
|
ffuart: serial@40100000 {
|
2012-07-25 22:56:48 +07:00
|
|
|
compatible = "mrvl,pxa-uart";
|
|
|
|
reg = <0x40100000 0x30>;
|
|
|
|
interrupts = <22>;
|
2015-02-07 19:13:24 +07:00
|
|
|
clocks = <&clks CLK_FFUART>;
|
2012-07-25 22:56:48 +07:00
|
|
|
status = "disabled";
|
|
|
|
};
|
|
|
|
|
2018-07-16 02:47:18 +07:00
|
|
|
btuart: serial@40200000 {
|
2012-07-25 22:56:48 +07:00
|
|
|
compatible = "mrvl,pxa-uart";
|
|
|
|
reg = <0x40200000 0x30>;
|
|
|
|
interrupts = <21>;
|
2015-02-07 19:13:24 +07:00
|
|
|
clocks = <&clks CLK_BTUART>;
|
2012-07-25 22:56:48 +07:00
|
|
|
status = "disabled";
|
|
|
|
};
|
|
|
|
|
2018-07-16 02:47:18 +07:00
|
|
|
stuart: serial@40700000 {
|
2012-07-25 22:56:48 +07:00
|
|
|
compatible = "mrvl,pxa-uart";
|
|
|
|
reg = <0x40700000 0x30>;
|
|
|
|
interrupts = <20>;
|
2015-02-07 19:13:24 +07:00
|
|
|
clocks = <&clks CLK_STUART>;
|
2012-07-25 22:56:48 +07:00
|
|
|
status = "disabled";
|
|
|
|
};
|
|
|
|
|
2018-12-01 00:55:39 +07:00
|
|
|
hwuart: serial@41600000 {
|
2012-07-25 22:56:48 +07:00
|
|
|
compatible = "mrvl,pxa-uart";
|
2018-12-01 00:55:39 +07:00
|
|
|
reg = <0x41600000 0x30>;
|
2012-07-25 22:56:48 +07:00
|
|
|
interrupts = <7>;
|
|
|
|
status = "disabled";
|
|
|
|
};
|
|
|
|
|
|
|
|
pxai2c1: i2c@40301680 {
|
|
|
|
compatible = "mrvl,pxa-i2c";
|
|
|
|
reg = <0x40301680 0x30>;
|
|
|
|
interrupts = <18>;
|
2015-02-07 19:13:24 +07:00
|
|
|
clocks = <&clks CLK_I2C>;
|
2012-07-25 22:56:48 +07:00
|
|
|
#address-cells = <0x1>;
|
|
|
|
#size-cells = <0>;
|
|
|
|
status = "disabled";
|
|
|
|
};
|
|
|
|
|
|
|
|
mmc0: mmc@41100000 {
|
2014-08-14 16:46:12 +07:00
|
|
|
compatible = "marvell,pxa-mmc";
|
2012-07-25 22:56:48 +07:00
|
|
|
reg = <0x41100000 0x1000>;
|
|
|
|
interrupts = <23>;
|
2015-06-20 15:17:28 +07:00
|
|
|
clocks = <&clks CLK_MMC>;
|
|
|
|
dmas = <&pdma 21 3
|
|
|
|
&pdma 22 3>;
|
|
|
|
dma-names = "rx", "tx";
|
2012-07-25 22:56:48 +07:00
|
|
|
status = "disabled";
|
|
|
|
};
|
|
|
|
|
|
|
|
rtc@40900000 {
|
|
|
|
compatible = "marvell,pxa-rtc";
|
|
|
|
reg = <0x40900000 0x3c>;
|
|
|
|
interrupts = <30 31>;
|
|
|
|
};
|
2016-04-05 13:35:50 +07:00
|
|
|
|
2018-06-24 02:37:45 +07:00
|
|
|
lcdc: lcd-controller@40500000 {
|
2016-04-05 13:35:50 +07:00
|
|
|
compatible = "marvell,pxa2xx-lcdc";
|
|
|
|
reg = <0x44000000 0x10000>;
|
|
|
|
interrupts = <17>;
|
|
|
|
clocks = <&clks CLK_LCD>;
|
|
|
|
status = "disabled";
|
|
|
|
};
|
2012-07-25 22:56:48 +07:00
|
|
|
};
|
|
|
|
};
|