From: Paul Burton
Add support for the Creator CI20 platform based on the JZ4780 SoC.
The DTS file comes from Linux 4.6 as of revision
78800558d104e003f9ae92e0107f1de39cf9de9f
So far, there are still a few details which will have to be fixed
once they are fleshed out in Linux:
- pinmux: Thus far, this board just pokes the pinmux registers to
set the pinmux. For MMC in SPL, this will have to stay.
But for full u-boot a proper pinmux driver will have to
be added once the pinmux semantics in DT are in mainline
Linux.
- ethernet,efuse: DT bindings are missing from mainline Linux.
Signed-off-by: Marek Vasut
Cc: Daniel Schwierzeck
Cc: Paul Burton
---
arch/mips/dts/Makefile| 1 +
arch/mips/dts/ci20.dts| 114 ++
arch/mips/mach-jz47xx/Kconfig | 11 ++
board/imgtec/ci20/Kconfig | 35 +
board/imgtec/ci20/Makefile| 5 +
board/imgtec/ci20/README | 10 ++
board/imgtec/ci20/ci20.c | 354 ++
configs/ci20_defconfig| 28
include/configs/ci20.h| 105 +
9 files changed, 663 insertions(+)
create mode 100644 arch/mips/dts/ci20.dts
create mode 100644 board/imgtec/ci20/Kconfig
create mode 100644 board/imgtec/ci20/Makefile
create mode 100644 board/imgtec/ci20/README
create mode 100644 board/imgtec/ci20/ci20.c
create mode 100644 configs/ci20_defconfig
create mode 100644 include/configs/ci20.h
diff --git a/arch/mips/dts/Makefile b/arch/mips/dts/Makefile
index 30fcc2b..e3473d9 100644
--- a/arch/mips/dts/Makefile
+++ b/arch/mips/dts/Makefile
@@ -9,6 +9,7 @@ dtb-$(CONFIG_TARGET_MALTA) += mti,malta.dtb
dtb-$(CONFIG_TARGET_PIC32MZDASK) += pic32mzda_sk.dtb
dtb-$(CONFIG_TARGET_XILFPGA) += nexys4ddr.dtb
dtb-$(CONFIG_BOARD_TPLINK_WDR4300) += tplink_wdr4300.dtb
+dtb-$(CONFIG_TARGET_JZ4780_CI20) += ci20.dtb
targets += $(dtb-y)
diff --git a/arch/mips/dts/ci20.dts b/arch/mips/dts/ci20.dts
new file mode 100644
index 000..9dab5e6
--- /dev/null
+++ b/arch/mips/dts/ci20.dts
@@ -0,0 +1,114 @@
+/dts-v1/;
+
+#include "jz4780.dtsi"
+
+/ {
+ compatible = "img,ci20", "ingenic,jz4780";
+
+ aliases {
+ serial0 =
+ serial1 =
+ serial3 =
+ serial4 =
+ };
+
+ chosen {
+ stdout-path =
+ };
+
+ memory {
+ device_type = "memory";
+ reg = <0x0 0x1000
+ 0x3000 0x3000>;
+ };
+};
+
+ {
+ clock-frequency = <4800>;
+};
+
+ {
+ status = "okay";
+};
+
+ {
+ status = "okay";
+};
+
+ {
+ status = "okay";
+};
+
+ {
+ status = "okay";
+};
+
+ {
+ status = "okay";
+
+ nandc: nand-controller@1 {
+ compatible = "ingenic,jz4780-nand";
+ reg = <1 0 0x100>;
+
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ ingenic,bch-controller = <>;
+
+ ingenic,nemc-tAS = <10>;
+ ingenic,nemc-tAH = <5>;
+ ingenic,nemc-tBP = <10>;
+ ingenic,nemc-tAW = <15>;
+ ingenic,nemc-tSTRV = <100>;
+
+ nand@1 {
+ reg = <1>;
+
+ nand-ecc-step-size = <1024>;
+ nand-ecc-strength = <24>;
+ nand-ecc-mode = "hw";
+ nand-on-flash-bbt;
+
+ partitions {
+ compatible = "fixed-partitions";
+ #address-cells = <2>;
+ #size-cells = <2>;
+
+ partition@0 {
+ label = "u-boot-spl";
+ reg = <0x0 0x0 0x0 0x80>;
+ };
+
+ partition@0x80 {
+ label = "u-boot";
+ reg = <0x0 0x80 0x0 0x20>;
+ };
+
+ partition@0xa0 {
+ label = "u-boot-env";
+ reg = <0x0 0xa0 0x0 0x20>;
+ };
+
+ partition@0xc0 {
+ label = "boot";
+ reg = <0x0 0xc0 0x0 0x400>;
+ };
+
+ partition@0x8c0 {
+ label = "system";
+ reg = <0x0 0x4c0 0x1 0xfb40>;
+ };
+ };
+ };
+ };
+};
+
+ {
+ status = "okay";
+};
+
+ {
+