
Make use of the spi-gpio driver to provide SPI support on the Ingenic JZ4780 SoC using the pins that can be used with the SSI0 device as GPIOs, until such time as we have support for the Ingenic SPI/SSI controller. [paul.burton@mips.com: Rewrite commit message.] Signed-off-by: Mathieu Malaterre <malat@debian.org> Signed-off-by: Paul Burton <paul.burton@mips.com> Patchwork: https://patchwork.linux-mips.org/patch/19489/ Cc: James Hogan <jhogan@kernel.org> Cc: Rob Herring <robh+dt@kernel.org> Cc: Mark Rutland <mark.rutland@arm.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: devicetree@vger.kernel.org Cc: linux-mips@linux-mips.org Cc: linux-kernel@vger.kernel.org
327 lines
6.0 KiB
Plaintext
327 lines
6.0 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0
|
|
#include <dt-bindings/clock/jz4780-cgu.h>
|
|
#include <dt-bindings/dma/jz4780-dma.h>
|
|
|
|
/ {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "ingenic,jz4780";
|
|
|
|
cpuintc: interrupt-controller {
|
|
#address-cells = <0>;
|
|
#interrupt-cells = <1>;
|
|
interrupt-controller;
|
|
compatible = "mti,cpu-interrupt-controller";
|
|
};
|
|
|
|
intc: interrupt-controller@10001000 {
|
|
compatible = "ingenic,jz4780-intc";
|
|
reg = <0x10001000 0x50>;
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
|
|
interrupt-parent = <&cpuintc>;
|
|
interrupts = <2>;
|
|
};
|
|
|
|
ext: ext {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
};
|
|
|
|
rtc: rtc {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <32768>;
|
|
};
|
|
|
|
cgu: jz4780-cgu@10000000 {
|
|
compatible = "ingenic,jz4780-cgu";
|
|
reg = <0x10000000 0x100>;
|
|
|
|
clocks = <&ext>, <&rtc>;
|
|
clock-names = "ext", "rtc";
|
|
|
|
#clock-cells = <1>;
|
|
};
|
|
|
|
rtc_dev: rtc@10003000 {
|
|
compatible = "ingenic,jz4780-rtc";
|
|
reg = <0x10003000 0x4c>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <32>;
|
|
|
|
clocks = <&cgu JZ4780_CLK_RTCLK>;
|
|
clock-names = "rtc";
|
|
};
|
|
|
|
pinctrl: pin-controller@10010000 {
|
|
compatible = "ingenic,jz4780-pinctrl";
|
|
reg = <0x10010000 0x600>;
|
|
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
gpa: gpio@0 {
|
|
compatible = "ingenic,jz4780-gpio";
|
|
reg = <0>;
|
|
|
|
gpio-controller;
|
|
gpio-ranges = <&pinctrl 0 0 32>;
|
|
#gpio-cells = <2>;
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <17>;
|
|
};
|
|
|
|
gpb: gpio@1 {
|
|
compatible = "ingenic,jz4780-gpio";
|
|
reg = <1>;
|
|
|
|
gpio-controller;
|
|
gpio-ranges = <&pinctrl 0 32 32>;
|
|
#gpio-cells = <2>;
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <16>;
|
|
};
|
|
|
|
gpc: gpio@2 {
|
|
compatible = "ingenic,jz4780-gpio";
|
|
reg = <2>;
|
|
|
|
gpio-controller;
|
|
gpio-ranges = <&pinctrl 0 64 32>;
|
|
#gpio-cells = <2>;
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <15>;
|
|
};
|
|
|
|
gpd: gpio@3 {
|
|
compatible = "ingenic,jz4780-gpio";
|
|
reg = <3>;
|
|
|
|
gpio-controller;
|
|
gpio-ranges = <&pinctrl 0 96 32>;
|
|
#gpio-cells = <2>;
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <14>;
|
|
};
|
|
|
|
gpe: gpio@4 {
|
|
compatible = "ingenic,jz4780-gpio";
|
|
reg = <4>;
|
|
|
|
gpio-controller;
|
|
gpio-ranges = <&pinctrl 0 128 32>;
|
|
#gpio-cells = <2>;
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <13>;
|
|
};
|
|
|
|
gpf: gpio@5 {
|
|
compatible = "ingenic,jz4780-gpio";
|
|
reg = <5>;
|
|
|
|
gpio-controller;
|
|
gpio-ranges = <&pinctrl 0 160 32>;
|
|
#gpio-cells = <2>;
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <12>;
|
|
};
|
|
};
|
|
|
|
spi_gpio {
|
|
compatible = "spi-gpio";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
num-chipselects = <2>;
|
|
|
|
gpio-miso = <&gpe 14 0>;
|
|
gpio-sck = <&gpe 15 0>;
|
|
gpio-mosi = <&gpe 17 0>;
|
|
cs-gpios = <&gpe 16 0
|
|
&gpe 18 0>;
|
|
|
|
spidev@0 {
|
|
compatible = "spidev";
|
|
reg = <0>;
|
|
spi-max-frequency = <1000000>;
|
|
};
|
|
};
|
|
|
|
uart0: serial@10030000 {
|
|
compatible = "ingenic,jz4780-uart";
|
|
reg = <0x10030000 0x100>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <51>;
|
|
|
|
clocks = <&ext>, <&cgu JZ4780_CLK_UART0>;
|
|
clock-names = "baud", "module";
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
uart1: serial@10031000 {
|
|
compatible = "ingenic,jz4780-uart";
|
|
reg = <0x10031000 0x100>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <50>;
|
|
|
|
clocks = <&ext>, <&cgu JZ4780_CLK_UART1>;
|
|
clock-names = "baud", "module";
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
uart2: serial@10032000 {
|
|
compatible = "ingenic,jz4780-uart";
|
|
reg = <0x10032000 0x100>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <49>;
|
|
|
|
clocks = <&ext>, <&cgu JZ4780_CLK_UART2>;
|
|
clock-names = "baud", "module";
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
uart3: serial@10033000 {
|
|
compatible = "ingenic,jz4780-uart";
|
|
reg = <0x10033000 0x100>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <48>;
|
|
|
|
clocks = <&ext>, <&cgu JZ4780_CLK_UART3>;
|
|
clock-names = "baud", "module";
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
uart4: serial@10034000 {
|
|
compatible = "ingenic,jz4780-uart";
|
|
reg = <0x10034000 0x100>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <34>;
|
|
|
|
clocks = <&ext>, <&cgu JZ4780_CLK_UART4>;
|
|
clock-names = "baud", "module";
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
watchdog: watchdog@10002000 {
|
|
compatible = "ingenic,jz4780-watchdog";
|
|
reg = <0x10002000 0x10>;
|
|
|
|
clocks = <&cgu JZ4780_CLK_RTCLK>;
|
|
clock-names = "rtc";
|
|
};
|
|
|
|
nemc: nemc@13410000 {
|
|
compatible = "ingenic,jz4780-nemc";
|
|
reg = <0x13410000 0x10000>;
|
|
#address-cells = <2>;
|
|
#size-cells = <1>;
|
|
ranges = <1 0 0x1b000000 0x1000000
|
|
2 0 0x1a000000 0x1000000
|
|
3 0 0x19000000 0x1000000
|
|
4 0 0x18000000 0x1000000
|
|
5 0 0x17000000 0x1000000
|
|
6 0 0x16000000 0x1000000>;
|
|
|
|
clocks = <&cgu JZ4780_CLK_NEMC>;
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
dma: dma@13420000 {
|
|
compatible = "ingenic,jz4780-dma";
|
|
reg = <0x13420000 0x10000>;
|
|
#dma-cells = <2>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <10>;
|
|
|
|
clocks = <&cgu JZ4780_CLK_PDMA>;
|
|
};
|
|
|
|
mmc0: mmc@13450000 {
|
|
compatible = "ingenic,jz4780-mmc";
|
|
reg = <0x13450000 0x1000>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <37>;
|
|
|
|
clocks = <&cgu JZ4780_CLK_MSC0>;
|
|
clock-names = "mmc";
|
|
|
|
cap-sd-highspeed;
|
|
cap-mmc-highspeed;
|
|
cap-sdio-irq;
|
|
dmas = <&dma JZ4780_DMA_MSC0_RX 0xffffffff>,
|
|
<&dma JZ4780_DMA_MSC0_TX 0xffffffff>;
|
|
dma-names = "rx", "tx";
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
mmc1: mmc@13460000 {
|
|
compatible = "ingenic,jz4780-mmc";
|
|
reg = <0x13460000 0x1000>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <36>;
|
|
|
|
clocks = <&cgu JZ4780_CLK_MSC1>;
|
|
clock-names = "mmc";
|
|
|
|
cap-sd-highspeed;
|
|
cap-mmc-highspeed;
|
|
cap-sdio-irq;
|
|
dmas = <&dma JZ4780_DMA_MSC1_RX 0xffffffff>,
|
|
<&dma JZ4780_DMA_MSC1_TX 0xffffffff>;
|
|
dma-names = "rx", "tx";
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
bch: bch@134d0000 {
|
|
compatible = "ingenic,jz4780-bch";
|
|
reg = <0x134d0000 0x10000>;
|
|
|
|
clocks = <&cgu JZ4780_CLK_BCH>;
|
|
|
|
status = "disabled";
|
|
};
|
|
};
|