0001 // SPDX-License-Identifier: GPL-2.0-or-later
0002 /*
0003 * pxa2xx.dtsi - Device Tree Include file for Marvell PXA2xx family SoC
0004 *
0005 * Copyright (C) 2011 Marek Vasut <marek.vasut@gmail.com>
0006 */
0007
0008 #include "dt-bindings/clock/pxa-clock.h"
0009
0010 #define PMGROUP(pin) #pin
0011 #define PMMUX(func, pin, af) \
0012 mux- ## func { \
0013 groups = PMGROUP(P ## pin); \
0014 function = #af; \
0015 }
0016 #define PMMUX_LPM_LOW(func, pin, af) \
0017 mux- ## func { \
0018 groups = PMGROUP(P ## pin); \
0019 function = #af; \
0020 low-power-disable; \
0021 }
0022 #define PMMUX_LPM_HIGH(func, pin, af) \
0023 mux- ## func { \
0024 groups = PMGROUP(P ## pin); \
0025 function = #af; \
0026 low-power-enable; \
0027 }
0028
0029 / {
0030 #address-cells = <1>;
0031 #size-cells = <1>;
0032 model = "Marvell PXA2xx family SoC";
0033 compatible = "marvell,pxa2xx";
0034 interrupt-parent = <&pxairq>;
0035
0036 aliases {
0037 serial0 = &ffuart;
0038 serial1 = &btuart;
0039 serial2 = &stuart;
0040 serial3 = &hwuart;
0041 i2c0 = &pwri2c;
0042 i2c1 = &pxai2c1;
0043 };
0044
0045 cpus {
0046 cpu {
0047 compatible = "marvell,xscale";
0048 device_type = "cpu";
0049 };
0050 };
0051
0052 pxabus {
0053 compatible = "simple-bus";
0054 #address-cells = <1>;
0055 #size-cells = <1>;
0056 ranges;
0057
0058 pxairq: interrupt-controller@40d00000 {
0059 #interrupt-cells = <1>;
0060 compatible = "marvell,pxa-intc";
0061 interrupt-controller;
0062 interrupt-parent;
0063 marvell,intc-nr-irqs = <32>;
0064 reg = <0x40d00000 0xd0>;
0065 };
0066
0067 gpio: gpio@40e00000 {
0068 compatible = "mrvl,pxa-gpio";
0069 #address-cells = <0x1>;
0070 #size-cells = <0x1>;
0071 reg = <0x40e00000 0x10000>;
0072 gpio-controller;
0073 #gpio-cells = <0x2>;
0074 interrupts = <8>, <9>, <10>;
0075 interrupt-names = "gpio0", "gpio1", "gpio_mux";
0076 interrupt-controller;
0077 #interrupt-cells = <0x2>;
0078 ranges;
0079
0080 gcb0: gpio@40e00000 {
0081 reg = <0x40e00000 0x4>;
0082 };
0083
0084 gcb1: gpio@40e00004 {
0085 reg = <0x40e00004 0x4>;
0086 };
0087
0088 gcb2: gpio@40e00008 {
0089 reg = <0x40e00008 0x4>;
0090 };
0091 gcb3: gpio@40e0000c {
0092 reg = <0x40e0000c 0x4>;
0093 };
0094 };
0095
0096 ffuart: serial@40100000 {
0097 compatible = "mrvl,pxa-uart";
0098 reg = <0x40100000 0x30>;
0099 interrupts = <22>;
0100 clocks = <&clks CLK_FFUART>;
0101 status = "disabled";
0102 };
0103
0104 btuart: serial@40200000 {
0105 compatible = "mrvl,pxa-uart";
0106 reg = <0x40200000 0x30>;
0107 interrupts = <21>;
0108 clocks = <&clks CLK_BTUART>;
0109 status = "disabled";
0110 };
0111
0112 stuart: serial@40700000 {
0113 compatible = "mrvl,pxa-uart";
0114 reg = <0x40700000 0x30>;
0115 interrupts = <20>;
0116 clocks = <&clks CLK_STUART>;
0117 status = "disabled";
0118 };
0119
0120 hwuart: serial@41600000 {
0121 compatible = "mrvl,pxa-uart";
0122 reg = <0x41600000 0x30>;
0123 interrupts = <7>;
0124 status = "disabled";
0125 };
0126
0127 pxai2c1: i2c@40301680 {
0128 compatible = "mrvl,pxa-i2c";
0129 reg = <0x40301680 0x30>;
0130 interrupts = <18>;
0131 clocks = <&clks CLK_I2C>;
0132 #address-cells = <0x1>;
0133 #size-cells = <0>;
0134 status = "disabled";
0135 };
0136
0137 mmc0: mmc@41100000 {
0138 compatible = "marvell,pxa-mmc";
0139 reg = <0x41100000 0x1000>;
0140 interrupts = <23>;
0141 clocks = <&clks CLK_MMC>;
0142 dmas = <&pdma 21 3
0143 &pdma 22 3>;
0144 dma-names = "rx", "tx";
0145 status = "disabled";
0146 };
0147
0148 rtc@40900000 {
0149 compatible = "marvell,pxa-rtc";
0150 reg = <0x40900000 0x3c>;
0151 interrupts = <30 31>;
0152 };
0153
0154 lcdc: lcd-controller@40500000 {
0155 compatible = "marvell,pxa2xx-lcdc";
0156 reg = <0x44000000 0x10000>;
0157 interrupts = <17>;
0158 clocks = <&clks CLK_LCD>;
0159 status = "disabled";
0160 };
0161 };
0162 };