mirror of
https://github.com/AuxXxilium/linux_dsm_epyc7002.git
synced 2024-12-27 17:36:25 +07:00
3c4ec0f9b3
The gpio node has 144 gpios. Each gpio is capable of generating an interrupt. Hence add interrupt-controller property to the gpio node. With this in place one can use interrupts property in device tree to request for the gpio interrupts. Signed-off-by: Keerthy <j-keerthy@ti.com> Signed-off-by: Sekhar Nori <nsekhar@ti.com>
577 lines
14 KiB
Plaintext
577 lines
14 KiB
Plaintext
/*
|
|
* Copyright 2012 DENX Software Engineering GmbH
|
|
* Heiko Schocher <hs@denx.de>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify it
|
|
* under the terms of the GNU General Public License as published by the
|
|
* Free Software Foundation; either version 2 of the License, or (at your
|
|
* option) any later version.
|
|
*/
|
|
#include "skeleton.dtsi"
|
|
#include <dt-bindings/interrupt-controller/irq.h>
|
|
|
|
/ {
|
|
arm {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges;
|
|
intc: interrupt-controller@fffee000 {
|
|
compatible = "ti,cp-intc";
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
ti,intc-size = <101>;
|
|
reg = <0xfffee000 0x2000>;
|
|
};
|
|
};
|
|
soc@1c00000 {
|
|
compatible = "simple-bus";
|
|
model = "da850";
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0x0 0x01c00000 0x400000>;
|
|
interrupt-parent = <&intc>;
|
|
|
|
pmx_core: pinmux@14120 {
|
|
compatible = "pinctrl-single";
|
|
reg = <0x14120 0x50>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
#pinctrl-cells = <2>;
|
|
pinctrl-single,bit-per-mux;
|
|
pinctrl-single,register-width = <32>;
|
|
pinctrl-single,function-mask = <0xf>;
|
|
status = "disabled";
|
|
|
|
serial0_rtscts_pins: pinmux_serial0_rtscts_pins {
|
|
pinctrl-single,bits = <
|
|
/* UART0_RTS UART0_CTS */
|
|
0x0c 0x22000000 0xff000000
|
|
>;
|
|
};
|
|
serial0_rxtx_pins: pinmux_serial0_rxtx_pins {
|
|
pinctrl-single,bits = <
|
|
/* UART0_TXD UART0_RXD */
|
|
0x0c 0x00220000 0x00ff0000
|
|
>;
|
|
};
|
|
serial1_rtscts_pins: pinmux_serial1_rtscts_pins {
|
|
pinctrl-single,bits = <
|
|
/* UART1_CTS UART1_RTS */
|
|
0x00 0x00440000 0x00ff0000
|
|
>;
|
|
};
|
|
serial1_rxtx_pins: pinmux_serial1_rxtx_pins {
|
|
pinctrl-single,bits = <
|
|
/* UART1_TXD UART1_RXD */
|
|
0x10 0x22000000 0xff000000
|
|
>;
|
|
};
|
|
serial2_rtscts_pins: pinmux_serial2_rtscts_pins {
|
|
pinctrl-single,bits = <
|
|
/* UART2_CTS UART2_RTS */
|
|
0x00 0x44000000 0xff000000
|
|
>;
|
|
};
|
|
serial2_rxtx_pins: pinmux_serial2_rxtx_pins {
|
|
pinctrl-single,bits = <
|
|
/* UART2_TXD UART2_RXD */
|
|
0x10 0x00220000 0x00ff0000
|
|
>;
|
|
};
|
|
i2c0_pins: pinmux_i2c0_pins {
|
|
pinctrl-single,bits = <
|
|
/* I2C0_SDA,I2C0_SCL */
|
|
0x10 0x00002200 0x0000ff00
|
|
>;
|
|
};
|
|
i2c1_pins: pinmux_i2c1_pins {
|
|
pinctrl-single,bits = <
|
|
/* I2C1_SDA, I2C1_SCL */
|
|
0x10 0x00440000 0x00ff0000
|
|
>;
|
|
};
|
|
mmc0_pins: pinmux_mmc_pins {
|
|
pinctrl-single,bits = <
|
|
/* MMCSD0_DAT[3] MMCSD0_DAT[2]
|
|
* MMCSD0_DAT[1] MMCSD0_DAT[0]
|
|
* MMCSD0_CMD MMCSD0_CLK
|
|
*/
|
|
0x28 0x00222222 0x00ffffff
|
|
>;
|
|
};
|
|
ehrpwm0a_pins: pinmux_ehrpwm0a_pins {
|
|
pinctrl-single,bits = <
|
|
/* EPWM0A */
|
|
0xc 0x00000002 0x0000000f
|
|
>;
|
|
};
|
|
ehrpwm0b_pins: pinmux_ehrpwm0b_pins {
|
|
pinctrl-single,bits = <
|
|
/* EPWM0B */
|
|
0xc 0x00000020 0x000000f0
|
|
>;
|
|
};
|
|
ehrpwm1a_pins: pinmux_ehrpwm1a_pins {
|
|
pinctrl-single,bits = <
|
|
/* EPWM1A */
|
|
0x14 0x00000002 0x0000000f
|
|
>;
|
|
};
|
|
ehrpwm1b_pins: pinmux_ehrpwm1b_pins {
|
|
pinctrl-single,bits = <
|
|
/* EPWM1B */
|
|
0x14 0x00000020 0x000000f0
|
|
>;
|
|
};
|
|
ecap0_pins: pinmux_ecap0_pins {
|
|
pinctrl-single,bits = <
|
|
/* ECAP0_APWM0 */
|
|
0x8 0x20000000 0xf0000000
|
|
>;
|
|
};
|
|
ecap1_pins: pinmux_ecap1_pins {
|
|
pinctrl-single,bits = <
|
|
/* ECAP1_APWM1 */
|
|
0x4 0x40000000 0xf0000000
|
|
>;
|
|
};
|
|
ecap2_pins: pinmux_ecap2_pins {
|
|
pinctrl-single,bits = <
|
|
/* ECAP2_APWM2 */
|
|
0x4 0x00000004 0x0000000f
|
|
>;
|
|
};
|
|
spi0_pins: pinmux_spi0_pins {
|
|
pinctrl-single,bits = <
|
|
/* SIMO, SOMI, CLK */
|
|
0xc 0x00001101 0x0000ff0f
|
|
>;
|
|
};
|
|
spi0_cs0_pin: pinmux_spi0_cs0 {
|
|
pinctrl-single,bits = <
|
|
/* CS0 */
|
|
0x10 0x00000010 0x000000f0
|
|
>;
|
|
};
|
|
spi0_cs3_pin: pinmux_spi0_cs3_pin {
|
|
pinctrl-single,bits = <
|
|
/* CS3 */
|
|
0xc 0x01000000 0x0f000000
|
|
>;
|
|
};
|
|
spi1_pins: pinmux_spi1_pins {
|
|
pinctrl-single,bits = <
|
|
/* SIMO, SOMI, CLK */
|
|
0x14 0x00110100 0x00ff0f00
|
|
>;
|
|
};
|
|
spi1_cs0_pin: pinmux_spi1_cs0 {
|
|
pinctrl-single,bits = <
|
|
/* CS0 */
|
|
0x14 0x00000010 0x000000f0
|
|
>;
|
|
};
|
|
mdio_pins: pinmux_mdio_pins {
|
|
pinctrl-single,bits = <
|
|
/* MDIO_CLK, MDIO_D */
|
|
0x10 0x00000088 0x000000ff
|
|
>;
|
|
};
|
|
mii_pins: pinmux_mii_pins {
|
|
pinctrl-single,bits = <
|
|
/*
|
|
* MII_TXEN, MII_TXCLK, MII_COL
|
|
* MII_TXD_3, MII_TXD_2, MII_TXD_1
|
|
* MII_TXD_0
|
|
*/
|
|
0x8 0x88888880 0xfffffff0
|
|
/*
|
|
* MII_RXER, MII_CRS, MII_RXCLK
|
|
* MII_RXDV, MII_RXD_3, MII_RXD_2
|
|
* MII_RXD_1, MII_RXD_0
|
|
*/
|
|
0xc 0x88888888 0xffffffff
|
|
>;
|
|
};
|
|
lcd_pins: pinmux_lcd_pins {
|
|
pinctrl-single,bits = <
|
|
/*
|
|
* LCD_D[2], LCD_D[3], LCD_D[4], LCD_D[5],
|
|
* LCD_D[6], LCD_D[7]
|
|
*/
|
|
0x40 0x22222200 0xffffff00
|
|
/*
|
|
* LCD_D[10], LCD_D[11], LCD_D[12], LCD_D[13],
|
|
* LCD_D[14], LCD_D[15], LCD_D[0], LCD_D[1]
|
|
*/
|
|
0x44 0x22222222 0xffffffff
|
|
/* LCD_D[8], LCD_D[9] */
|
|
0x48 0x00000022 0x000000ff
|
|
|
|
/* LCD_PCLK */
|
|
0x48 0x02000000 0x0f000000
|
|
/* LCD_AC_ENB_CS, LCD_VSYNC, LCD_HSYNC */
|
|
0x4c 0x02000022 0x0f0000ff
|
|
>;
|
|
};
|
|
vpif_capture_pins: vpif_capture_pins {
|
|
pinctrl-single,bits = <
|
|
/* VP_DIN[2..7], VP_CLKIN1, VP_CLKIN0 */
|
|
0x38 0x11111111 0xffffffff
|
|
/* VP_DIN[10..15,0..1] */
|
|
0x3c 0x11111111 0xffffffff
|
|
/* VP_DIN[8..9] */
|
|
0x40 0x00000011 0x000000ff
|
|
>;
|
|
};
|
|
vpif_display_pins: vpif_display_pins {
|
|
pinctrl-single,bits = <
|
|
/* VP_DOUT[2..7] */
|
|
0x40 0x11111100 0xffffff00
|
|
/* VP_DOUT[10..15,0..1] */
|
|
0x44 0x11111111 0xffffffff
|
|
/* VP_DOUT[8..9] */
|
|
0x48 0x00000011 0x000000ff
|
|
/*
|
|
* VP_CLKOUT3, VP_CLKIN3,
|
|
* VP_CLKOUT2, VP_CLKIN2
|
|
*/
|
|
0x4c 0x00111100 0x00ffff00
|
|
>;
|
|
};
|
|
};
|
|
prictrl: priority-controller@14110 {
|
|
compatible = "ti,da850-mstpri";
|
|
reg = <0x14110 0x0c>;
|
|
status = "disabled";
|
|
};
|
|
cfgchip: chip-controller@1417c {
|
|
compatible = "ti,da830-cfgchip", "syscon", "simple-mfd";
|
|
reg = <0x1417c 0x14>;
|
|
|
|
usb_phy: usb-phy {
|
|
compatible = "ti,da830-usb-phy";
|
|
#phy-cells = <1>;
|
|
status = "disabled";
|
|
};
|
|
};
|
|
edma0: edma@0 {
|
|
compatible = "ti,edma3-tpcc";
|
|
/* eDMA3 CC0: 0x01c0 0000 - 0x01c0 7fff */
|
|
reg = <0x0 0x8000>;
|
|
reg-names = "edma3_cc";
|
|
interrupts = <11 12>;
|
|
interrupt-names = "edma3_ccint", "edma3_ccerrint";
|
|
#dma-cells = <2>;
|
|
|
|
ti,tptcs = <&edma0_tptc0 7>, <&edma0_tptc1 0>;
|
|
};
|
|
edma0_tptc0: tptc@8000 {
|
|
compatible = "ti,edma3-tptc";
|
|
reg = <0x8000 0x400>;
|
|
interrupts = <13>;
|
|
interrupt-names = "edm3_tcerrint";
|
|
};
|
|
edma0_tptc1: tptc@8400 {
|
|
compatible = "ti,edma3-tptc";
|
|
reg = <0x8400 0x400>;
|
|
interrupts = <32>;
|
|
interrupt-names = "edm3_tcerrint";
|
|
};
|
|
edma1: edma@230000 {
|
|
compatible = "ti,edma3-tpcc";
|
|
/* eDMA3 CC1: 0x01e3 0000 - 0x01e3 7fff */
|
|
reg = <0x230000 0x8000>;
|
|
reg-names = "edma3_cc";
|
|
interrupts = <93 94>;
|
|
interrupt-names = "edma3_ccint", "edma3_ccerrint";
|
|
#dma-cells = <2>;
|
|
|
|
ti,tptcs = <&edma1_tptc0 7>;
|
|
};
|
|
edma1_tptc0: tptc@238000 {
|
|
compatible = "ti,edma3-tptc";
|
|
reg = <0x238000 0x400>;
|
|
interrupts = <95>;
|
|
interrupt-names = "edm3_tcerrint";
|
|
};
|
|
serial0: serial@42000 {
|
|
compatible = "ti,da830-uart", "ns16550a";
|
|
reg = <0x42000 0x100>;
|
|
reg-io-width = <4>;
|
|
reg-shift = <2>;
|
|
interrupts = <25>;
|
|
status = "disabled";
|
|
};
|
|
serial1: serial@10c000 {
|
|
compatible = "ti,da830-uart", "ns16550a";
|
|
reg = <0x10c000 0x100>;
|
|
reg-io-width = <4>;
|
|
reg-shift = <2>;
|
|
interrupts = <53>;
|
|
status = "disabled";
|
|
};
|
|
serial2: serial@10d000 {
|
|
compatible = "ti,da830-uart", "ns16550a";
|
|
reg = <0x10d000 0x100>;
|
|
reg-io-width = <4>;
|
|
reg-shift = <2>;
|
|
interrupts = <61>;
|
|
status = "disabled";
|
|
};
|
|
rtc0: rtc@23000 {
|
|
compatible = "ti,da830-rtc";
|
|
reg = <0x23000 0x1000>;
|
|
interrupts = <19
|
|
19>;
|
|
status = "disabled";
|
|
};
|
|
i2c0: i2c@22000 {
|
|
compatible = "ti,davinci-i2c";
|
|
reg = <0x22000 0x1000>;
|
|
interrupts = <15>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
i2c1: i2c@228000 {
|
|
compatible = "ti,davinci-i2c";
|
|
reg = <0x228000 0x1000>;
|
|
interrupts = <51>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
status = "disabled";
|
|
};
|
|
wdt: wdt@21000 {
|
|
compatible = "ti,davinci-wdt";
|
|
reg = <0x21000 0x1000>;
|
|
status = "disabled";
|
|
};
|
|
mmc0: mmc@40000 {
|
|
compatible = "ti,da830-mmc";
|
|
reg = <0x40000 0x1000>;
|
|
cap-sd-highspeed;
|
|
cap-mmc-highspeed;
|
|
interrupts = <16>;
|
|
dmas = <&edma0 16 0>, <&edma0 17 0>;
|
|
dma-names = "rx", "tx";
|
|
status = "disabled";
|
|
};
|
|
vpif: video@217000 {
|
|
compatible = "ti,da850-vpif";
|
|
reg = <0x217000 0x1000>;
|
|
interrupts = <92>;
|
|
status = "disabled";
|
|
|
|
/* VPIF capture port */
|
|
port@0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
/* VPIF display port */
|
|
port@1 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
};
|
|
mmc1: mmc@21b000 {
|
|
compatible = "ti,da830-mmc";
|
|
reg = <0x21b000 0x1000>;
|
|
cap-sd-highspeed;
|
|
cap-mmc-highspeed;
|
|
interrupts = <72>;
|
|
dmas = <&edma1 28 0>, <&edma1 29 0>;
|
|
dma-names = "rx", "tx";
|
|
status = "disabled";
|
|
};
|
|
ehrpwm0: pwm@300000 {
|
|
compatible = "ti,da850-ehrpwm", "ti,am3352-ehrpwm",
|
|
"ti,am33xx-ehrpwm";
|
|
#pwm-cells = <3>;
|
|
reg = <0x300000 0x2000>;
|
|
status = "disabled";
|
|
};
|
|
ehrpwm1: pwm@302000 {
|
|
compatible = "ti,da850-ehrpwm", "ti,am3352-ehrpwm",
|
|
"ti,am33xx-ehrpwm";
|
|
#pwm-cells = <3>;
|
|
reg = <0x302000 0x2000>;
|
|
status = "disabled";
|
|
};
|
|
ecap0: ecap@306000 {
|
|
compatible = "ti,da850-ecap", "ti,am3352-ecap",
|
|
"ti,am33xx-ecap";
|
|
#pwm-cells = <3>;
|
|
reg = <0x306000 0x80>;
|
|
status = "disabled";
|
|
};
|
|
ecap1: ecap@307000 {
|
|
compatible = "ti,da850-ecap", "ti,am3352-ecap",
|
|
"ti,am33xx-ecap";
|
|
#pwm-cells = <3>;
|
|
reg = <0x307000 0x80>;
|
|
status = "disabled";
|
|
};
|
|
ecap2: ecap@308000 {
|
|
compatible = "ti,da850-ecap", "ti,am3352-ecap",
|
|
"ti,am33xx-ecap";
|
|
#pwm-cells = <3>;
|
|
reg = <0x308000 0x80>;
|
|
status = "disabled";
|
|
};
|
|
spi0: spi@41000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "ti,da830-spi";
|
|
reg = <0x41000 0x1000>;
|
|
num-cs = <6>;
|
|
ti,davinci-spi-intr-line = <1>;
|
|
interrupts = <20>;
|
|
dmas = <&edma0 14 0>, <&edma0 15 0>;
|
|
dma-names = "rx", "tx";
|
|
status = "disabled";
|
|
};
|
|
spi1: spi@30e000 {
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
compatible = "ti,da830-spi";
|
|
reg = <0x30e000 0x1000>;
|
|
num-cs = <4>;
|
|
ti,davinci-spi-intr-line = <1>;
|
|
interrupts = <56>;
|
|
dmas = <&edma0 18 0>, <&edma0 19 0>;
|
|
dma-names = "rx", "tx";
|
|
status = "disabled";
|
|
};
|
|
usb0: usb@200000 {
|
|
compatible = "ti,da830-musb";
|
|
reg = <0x200000 0x1000>;
|
|
ranges;
|
|
interrupts = <58>;
|
|
interrupt-names = "mc";
|
|
dr_mode = "otg";
|
|
phys = <&usb_phy 0>;
|
|
phy-names = "usb-phy";
|
|
status = "disabled";
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
|
|
dmas = <&cppi41dma 0 0 &cppi41dma 1 0
|
|
&cppi41dma 2 0 &cppi41dma 3 0
|
|
&cppi41dma 0 1 &cppi41dma 1 1
|
|
&cppi41dma 2 1 &cppi41dma 3 1>;
|
|
dma-names =
|
|
"rx1", "rx2", "rx3", "rx4",
|
|
"tx1", "tx2", "tx3", "tx4";
|
|
|
|
cppi41dma: dma-controller@201000 {
|
|
compatible = "ti,da830-cppi41";
|
|
reg = <0x201000 0x1000
|
|
0x202000 0x1000
|
|
0x204000 0x4000>;
|
|
reg-names = "controller",
|
|
"scheduler", "queuemgr";
|
|
interrupts = <58>;
|
|
#dma-cells = <2>;
|
|
#dma-channels = <4>;
|
|
status = "okay";
|
|
};
|
|
};
|
|
sata: sata@218000 {
|
|
compatible = "ti,da850-ahci";
|
|
reg = <0x218000 0x2000>, <0x22c018 0x4>;
|
|
interrupts = <67>;
|
|
status = "disabled";
|
|
};
|
|
mdio: mdio@224000 {
|
|
compatible = "ti,davinci_mdio";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
reg = <0x224000 0x1000>;
|
|
status = "disabled";
|
|
};
|
|
eth0: ethernet@220000 {
|
|
compatible = "ti,davinci-dm6467-emac";
|
|
reg = <0x220000 0x4000>;
|
|
ti,davinci-ctrl-reg-offset = <0x3000>;
|
|
ti,davinci-ctrl-mod-reg-offset = <0x2000>;
|
|
ti,davinci-ctrl-ram-offset = <0>;
|
|
ti,davinci-ctrl-ram-size = <0x2000>;
|
|
local-mac-address = [ 00 00 00 00 00 00 ];
|
|
interrupts = <33
|
|
34
|
|
35
|
|
36
|
|
>;
|
|
status = "disabled";
|
|
};
|
|
usb1: usb@225000 {
|
|
compatible = "ti,da830-ohci";
|
|
reg = <0x225000 0x1000>;
|
|
interrupts = <59>;
|
|
phys = <&usb_phy 1>;
|
|
phy-names = "usb-phy";
|
|
status = "disabled";
|
|
};
|
|
gpio: gpio@226000 {
|
|
compatible = "ti,dm6441-gpio";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
reg = <0x226000 0x1000>;
|
|
interrupts = <42 IRQ_TYPE_EDGE_BOTH
|
|
43 IRQ_TYPE_EDGE_BOTH 44 IRQ_TYPE_EDGE_BOTH
|
|
45 IRQ_TYPE_EDGE_BOTH 46 IRQ_TYPE_EDGE_BOTH
|
|
47 IRQ_TYPE_EDGE_BOTH 48 IRQ_TYPE_EDGE_BOTH
|
|
49 IRQ_TYPE_EDGE_BOTH 50 IRQ_TYPE_EDGE_BOTH>;
|
|
ti,ngpio = <144>;
|
|
ti,davinci-gpio-unbanked = <0>;
|
|
status = "disabled";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
};
|
|
pinconf: pin-controller@22c00c {
|
|
compatible = "ti,da850-pupd";
|
|
reg = <0x22c00c 0x8>;
|
|
status = "disabled";
|
|
};
|
|
|
|
mcasp0: mcasp@100000 {
|
|
compatible = "ti,da830-mcasp-audio";
|
|
reg = <0x100000 0x2000>,
|
|
<0x102000 0x400000>;
|
|
reg-names = "mpu", "dat";
|
|
interrupts = <54>;
|
|
interrupt-names = "common";
|
|
status = "disabled";
|
|
dmas = <&edma0 1 1>,
|
|
<&edma0 0 1>;
|
|
dma-names = "tx", "rx";
|
|
};
|
|
|
|
lcdc: display@213000 {
|
|
compatible = "ti,da850-tilcdc";
|
|
reg = <0x213000 0x1000>;
|
|
interrupts = <52>;
|
|
max-pixelclock = <37500>;
|
|
status = "disabled";
|
|
};
|
|
};
|
|
aemif: aemif@68000000 {
|
|
compatible = "ti,da850-aemif";
|
|
#address-cells = <2>;
|
|
#size-cells = <1>;
|
|
|
|
reg = <0x68000000 0x00008000>;
|
|
ranges = <0 0 0x60000000 0x08000000
|
|
1 0 0x68000000 0x00008000>;
|
|
status = "disabled";
|
|
};
|
|
memctrl: memory-controller@b0000000 {
|
|
compatible = "ti,da850-ddr-controller";
|
|
reg = <0xb0000000 0xe8>;
|
|
status = "disabled";
|
|
};
|
|
};
|