The devicetree ABI was broken on purpose by commit 6d532143c915 ("watchdog: jz4740: Use regmap provided by TCU driver"), and commit 1d9c30745455 ("watchdog: jz4740: Use WDT clock provided by TCU driver"). The commit message of the latter explains why the ABI was broken. However, the current devicetree files were not updated to the new ABI described in Documentation/devicetree/bindings/timer/ingenic,tcu.txt, so the watchdog driver would not probe. Fix this problem by updating the clock of watchdog node from "&cgu X1000_CLK_RTCLK" to "&tcu TCU_CLK_WDT" to comply with the new ABI. Fixes: 7a16ccd300c2 ("[v8,1/4] MIPS: Ingenic: Add Ingenic X1000 support."). Signed-off-by: 周琰杰 (Zhou Yanjie) <zhouyanjie@wanyeetech.com> Signed-off-by: Paul Burton <paulburton@kernel.org> Cc: linux-mips@vger.kernel.org Cc: linux-kernel@vger.kernel.org Cc: devicetree@vger.kernel.org Cc: paul@crapouillou.net Cc: robh+dt@kernel.org Cc: mark.rutland@arm.com Cc: ralf@linux-mips.org Cc: sernia.zhou@foxmail.com Cc: zhenwenjin@gmail.com Cc: dongsheng.qiu@ingenic.com
316 lines
5.9 KiB
Plaintext
316 lines
5.9 KiB
Plaintext
// SPDX-License-Identifier: GPL-2.0
|
|
#include <dt-bindings/clock/ingenic,tcu.h>
|
|
#include <dt-bindings/clock/x1000-cgu.h>
|
|
#include <dt-bindings/dma/x1000-dma.h>
|
|
|
|
/ {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "ingenic,x1000", "ingenic,x1000e";
|
|
|
|
cpuintc: interrupt-controller {
|
|
#address-cells = <0>;
|
|
#interrupt-cells = <1>;
|
|
interrupt-controller;
|
|
compatible = "mti,cpu-interrupt-controller";
|
|
};
|
|
|
|
intc: interrupt-controller@10001000 {
|
|
compatible = "ingenic,x1000-intc", "ingenic,jz4780-intc";
|
|
reg = <0x10001000 0x50>;
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
|
|
interrupt-parent = <&cpuintc>;
|
|
interrupts = <2>;
|
|
};
|
|
|
|
exclk: ext {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
};
|
|
|
|
rtclk: rtc {
|
|
compatible = "fixed-clock";
|
|
#clock-cells = <0>;
|
|
clock-frequency = <32768>;
|
|
};
|
|
|
|
cgu: x1000-cgu@10000000 {
|
|
compatible = "ingenic,x1000-cgu";
|
|
reg = <0x10000000 0x100>;
|
|
|
|
#clock-cells = <1>;
|
|
|
|
clocks = <&exclk>, <&rtclk>;
|
|
clock-names = "ext", "rtc";
|
|
};
|
|
|
|
tcu: timer@10002000 {
|
|
compatible = "ingenic,x1000-tcu",
|
|
"ingenic,jz4770-tcu",
|
|
"simple-mfd";
|
|
reg = <0x10002000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
ranges = <0x0 0x10002000 0x1000>;
|
|
|
|
#clock-cells = <1>;
|
|
|
|
clocks = <&cgu X1000_CLK_RTCLK
|
|
&cgu X1000_CLK_EXCLK
|
|
&cgu X1000_CLK_PCLK>;
|
|
clock-names = "rtc", "ext", "pclk";
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <1>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <27 26 25>;
|
|
|
|
wdt: watchdog@0 {
|
|
compatible = "ingenic,x1000-watchdog", "ingenic,jz4780-watchdog";
|
|
reg = <0x0 0x10>;
|
|
|
|
clocks = <&tcu TCU_CLK_WDT>;
|
|
clock-names = "wdt";
|
|
};
|
|
};
|
|
|
|
rtc: rtc@10003000 {
|
|
compatible = "ingenic,x1000-rtc", "ingenic,jz4780-rtc";
|
|
reg = <0x10003000 0x4c>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <32>;
|
|
|
|
clocks = <&cgu X1000_CLK_RTCLK>;
|
|
clock-names = "rtc";
|
|
};
|
|
|
|
pinctrl: pin-controller@10010000 {
|
|
compatible = "ingenic,x1000-pinctrl";
|
|
reg = <0x10010000 0x800>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
gpa: gpio@0 {
|
|
compatible = "ingenic,x1000-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,x1000-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,x1000-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,x1000-gpio";
|
|
reg = <3>;
|
|
|
|
gpio-controller;
|
|
gpio-ranges = <&pinctrl 0 96 32>;
|
|
#gpio-cells = <2>;
|
|
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <14>;
|
|
};
|
|
};
|
|
|
|
i2c0: i2c-controller@10050000 {
|
|
compatible = "ingenic,x1000-i2c";
|
|
reg = <0x10050000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <60>;
|
|
|
|
clocks = <&cgu X1000_CLK_I2C0>;
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c1: i2c-controller@10051000 {
|
|
compatible = "ingenic,x1000-i2c";
|
|
reg = <0x10051000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <59>;
|
|
|
|
clocks = <&cgu X1000_CLK_I2C1>;
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
i2c2: i2c-controller@10052000 {
|
|
compatible = "ingenic,x1000-i2c";
|
|
reg = <0x10052000 0x1000>;
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <58>;
|
|
|
|
clocks = <&cgu X1000_CLK_I2C2>;
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
uart0: serial@10030000 {
|
|
compatible = "ingenic,x1000-uart";
|
|
reg = <0x10030000 0x100>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <51>;
|
|
|
|
clocks = <&exclk>, <&cgu X1000_CLK_UART0>;
|
|
clock-names = "baud", "module";
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
uart1: serial@10031000 {
|
|
compatible = "ingenic,x1000-uart";
|
|
reg = <0x10031000 0x100>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <50>;
|
|
|
|
clocks = <&exclk>, <&cgu X1000_CLK_UART1>;
|
|
clock-names = "baud", "module";
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
uart2: serial@10032000 {
|
|
compatible = "ingenic,x1000-uart";
|
|
reg = <0x10032000 0x100>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <49>;
|
|
|
|
clocks = <&exclk>, <&cgu X1000_CLK_UART2>;
|
|
clock-names = "baud", "module";
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
pdma: dma-controller@13420000 {
|
|
compatible = "ingenic,x1000-dma";
|
|
reg = <0x13420000 0x400
|
|
0x13421000 0x40>;
|
|
#dma-cells = <2>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <10>;
|
|
|
|
clocks = <&cgu X1000_CLK_PDMA>;
|
|
};
|
|
|
|
mac: ethernet@134b0000 {
|
|
compatible = "ingenic,x1000-mac", "snps,dwmac";
|
|
reg = <0x134b0000 0x2000>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <55>;
|
|
interrupt-names = "macirq";
|
|
|
|
clocks = <&cgu X1000_CLK_MAC>;
|
|
clock-names = "stmmaceth";
|
|
|
|
status = "disabled";
|
|
|
|
mdio: mdio {
|
|
compatible = "snps,dwmac-mdio";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
|
|
status = "disabled";
|
|
};
|
|
};
|
|
|
|
msc0: mmc@13450000 {
|
|
compatible = "ingenic,x1000-mmc";
|
|
reg = <0x13450000 0x1000>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <37>;
|
|
|
|
clocks = <&cgu X1000_CLK_MSC0>;
|
|
clock-names = "mmc";
|
|
|
|
cap-sd-highspeed;
|
|
cap-mmc-highspeed;
|
|
cap-sdio-irq;
|
|
|
|
dmas = <&pdma X1000_DMA_MSC0_RX 0xffffffff>,
|
|
<&pdma X1000_DMA_MSC0_TX 0xffffffff>;
|
|
dma-names = "rx", "tx";
|
|
|
|
status = "disabled";
|
|
};
|
|
|
|
msc1: mmc@13460000 {
|
|
compatible = "ingenic,x1000-mmc";
|
|
reg = <0x13460000 0x1000>;
|
|
|
|
interrupt-parent = <&intc>;
|
|
interrupts = <36>;
|
|
|
|
clocks = <&cgu X1000_CLK_MSC1>;
|
|
clock-names = "mmc";
|
|
|
|
cap-sd-highspeed;
|
|
cap-mmc-highspeed;
|
|
cap-sdio-irq;
|
|
|
|
dmas = <&pdma X1000_DMA_MSC1_RX 0xffffffff>,
|
|
<&pdma X1000_DMA_MSC1_TX 0xffffffff>;
|
|
dma-names = "rx", "tx";
|
|
|
|
status = "disabled";
|
|
};
|
|
};
|