Add initial support for TBS2910 Matrix ARM miniPC.
Support includes MMC, Ethernet, UARTs, HDMI, USB, SATA, PCI, I2C, RTC.
Signed-off-by: Soeren Moch sm...@web.de
---
Cc: Stefano Babic sba...@denx.de
Cc: Fabio Estevam feste...@gmail.com
Changes in v2:
- board_phy_config() removed, not needed
- VESA compliant HDMI video timing
- setup_display() moved from board_early_init_f() to board_init()
- add_board_boot_modes() moved from board_late_init() to board_init()
- board_late_init() removed
Changes in v3:
- fix checkpatch errors
Changes in v4:
- add MAINTAINERS file
---
arch/arm/Kconfig | 4 +
board/tbs/tbs2910/Kconfig | 23 +++
board/tbs/tbs2910/MAINTAINERS | 6 +
board/tbs/tbs2910/Makefile| 7 +
board/tbs/tbs2910/tbs2910.c | 398 ++
configs/tbs2910_defconfig | 3 +
include/configs/tbs2910.h | 242 +
7 files changed, 683 insertions(+)
create mode 100644 board/tbs/tbs2910/Kconfig
create mode 100644 board/tbs/tbs2910/MAINTAINERS
create mode 100644 board/tbs/tbs2910/Makefile
create mode 100644 board/tbs/tbs2910/tbs2910.c
create mode 100644 configs/tbs2910_defconfig
create mode 100644 include/configs/tbs2910.h
diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig
index 72558b8..cb72381 100644
--- a/arch/arm/Kconfig
+++ b/arch/arm/Kconfig
@@ -414,6 +414,9 @@ config TARGET_GW_VENTANA
config TARGET_HUMMINGBOARD
bool Support hummingboard
+config TARGET_TBS2910
+ bool Support tbs2910
+
config TARGET_TQMA6
bool TQ Systems TQMa6 board
@@ -682,6 +685,7 @@ source board/sunxi/Kconfig
source board/syteco/jadecpu/Kconfig
source board/syteco/zmx25/Kconfig
source board/taskit/stamp9g20/Kconfig
+source board/tbs/tbs2910/Kconfig
source board/ti/am335x/Kconfig
source board/ti/am43xx/Kconfig
source board/ti/ti814x/Kconfig
diff --git a/board/tbs/tbs2910/Kconfig b/board/tbs/tbs2910/Kconfig
new file mode 100644
index 000..c514e24
--- /dev/null
+++ b/board/tbs/tbs2910/Kconfig
@@ -0,0 +1,23 @@
+if TARGET_TBS2910
+
+config SYS_CPU
+ string
+ default armv7
+
+config SYS_BOARD
+ string
+ default tbs2910
+
+config SYS_VENDOR
+ string
+ default tbs
+
+config SYS_SOC
+ string
+ default mx6
+
+config SYS_CONFIG_NAME
+ string
+ default tbs2910
+
+endif
diff --git a/board/tbs/tbs2910/MAINTAINERS b/board/tbs/tbs2910/MAINTAINERS
new file mode 100644
index 000..bf17655
--- /dev/null
+++ b/board/tbs/tbs2910/MAINTAINERS
@@ -0,0 +1,6 @@
+TBS2910 BOARD
+M: Soeren Moch sm...@web.de
+S: Maintained
+F: board/tbs/tbs2910/
+F: configs/tbs2910_defconfig
+F: include/configs/tbs2910.h
diff --git a/board/tbs/tbs2910/Makefile b/board/tbs/tbs2910/Makefile
new file mode 100644
index 000..9d9eb87
--- /dev/null
+++ b/board/tbs/tbs2910/Makefile
@@ -0,0 +1,7 @@
+#
+# Copyright (C) 2014 Soeren Moch sm...@web.de
+#
+# SPDX-License-Identifier: GPL-2.0+
+#
+
+obj-y := tbs2910.o
diff --git a/board/tbs/tbs2910/tbs2910.c b/board/tbs/tbs2910/tbs2910.c
new file mode 100644
index 000..daf8ff4
--- /dev/null
+++ b/board/tbs/tbs2910/tbs2910.c
@@ -0,0 +1,398 @@
+/*
+ * Copyright (C) 2014 Soeren Moch sm...@web.de
+ *
+ * SPDX-License-Identifier:GPL-2.0+
+ */
+
+#include asm/arch/clock.h
+#include asm/arch/imx-regs.h
+#include asm/arch/iomux.h
+#include asm/arch/mx6-pins.h
+#include asm/errno.h
+#include asm/gpio.h
+#include asm/imx-common/mxc_i2c.h
+#include asm/imx-common/iomux-v3.h
+#include asm/imx-common/sata.h
+#include asm/imx-common/boot_mode.h
+#include asm/imx-common/video.h
+#include mmc.h
+#include fsl_esdhc.h
+#include miiphy.h
+#include netdev.h
+#include asm/arch/mxc_hdmi.h
+#include asm/arch/crm_regs.h
+#include asm/io.h
+#include asm/arch/sys_proto.h
+#include i2c.h
+DECLARE_GLOBAL_DATA_PTR;
+
+#define WEAK_PULLUP(PAD_CTL_PUS_47K_UP | \
+ PAD_CTL_SPEED_LOW | PAD_CTL_DSE_40ohm | PAD_CTL_HYS | \
+ PAD_CTL_SRE_SLOW)
+
+#define UART_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
+ PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | \
+ PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+#define USDHC_PAD_CTRL (PAD_CTL_PUS_47K_UP | \
+ PAD_CTL_SPEED_LOW | PAD_CTL_DSE_80ohm | \
+ PAD_CTL_SRE_FAST | PAD_CTL_HYS)
+
+#define ENET_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
+ PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS)
+
+#define I2C_PAD_CTRL (PAD_CTL_PUS_100K_UP | \
+ PAD_CTL_SPEED_MED | PAD_CTL_DSE_40ohm | PAD_CTL_HYS | \
+ PAD_CTL_ODE | PAD_CTL_SRE_FAST)
+
+#define I2C_PAD MUX_PAD_CTRL(I2C_PAD_CTRL)
+
+#ifdef CONFIG_SYS_I2C
+/* I2C1, SGTL5000 */
+static struct i2c_pads_info i2c_pad_info0 = {
+ .scl = {
+ .i2c_mode = MX6_PAD_CSI0_DAT9__I2C1_SCL | I2C_PAD,
+ .gpio_mode = MX6_PAD_CSI0_DAT9__GPIO5_IO27 | I2C_PAD,
+ .gp = IMX_GPIO_NR(5, 27)
+