Skip to content

Commit b09bf72

Browse files
Igor Grinbergtrini
Igor Grinberg
authored andcommitted
omap3: cm-t3517: add basic board support
CompuLab cm-t3517 is Computer on Module (CoM) based on AM3517 SoC. Features: up to 256MB DDR2, up to 512MB NAND, USB hub, mUSB, WiFi, BT, Analog audio codec, touch screen controller, LED. Add basic support including: LED, Serial console, NAND, MMC, GPIO, I2C, 256MB DRAM. Signed-off-by: Igor Grinberg <[email protected]>
1 parent 0b03a93 commit b09bf72

File tree

8 files changed

+507
-0
lines changed

8 files changed

+507
-0
lines changed

arch/arm/cpu/armv7/omap3/Kconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@ config TARGET_CM_T35
2222
bool "CompuLab CM-T3530 and CM-T3730 boards"
2323
select SUPPORT_SPL
2424

25+
config TARGET_CM_T3517
26+
bool "CompuLab CM-T3517 boards"
27+
2528
config TARGET_DEVKIT8000
2629
bool "TimLL OMAP3 Devkit8000"
2730
select SUPPORT_SPL
@@ -98,6 +101,7 @@ source "board/teejet/mt_ventoux/Kconfig"
98101
source "board/ti/sdp3430/Kconfig"
99102
source "board/ti/beagle/Kconfig"
100103
source "board/compulab/cm_t35/Kconfig"
104+
source "board/compulab/cm_t3517/Kconfig"
101105
source "board/timll/devkit8000/Kconfig"
102106
source "board/ti/evm/Kconfig"
103107
source "board/isee/igep00x0/Kconfig"

board/compulab/cm_t3517/Kconfig

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
if TARGET_CM_T3517
2+
3+
config SYS_BOARD
4+
default "cm_t3517"
5+
6+
config SYS_VENDOR
7+
default "compulab"
8+
9+
config SYS_CONFIG_NAME
10+
default "cm_t3517"
11+
12+
endif

board/compulab/cm_t3517/MAINTAINERS

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
CM_T3517 BOARD
2+
M: Igor Grinberg <[email protected]>
3+
S: Maintained
4+
F: board/compulab/cm_t3517/
5+
F: include/configs/cm_t3517.h
6+
F: configs/cm_t3517_defconfig

board/compulab/cm_t3517/Makefile

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
#
2+
# (C) Copyright 2014 CompuLab, Ltd. <www.compulab.co.il>
3+
#
4+
# Authors: Igor Grinberg <[email protected]>
5+
#
6+
# SPDX-License-Identifier: GPL-2.0+
7+
#
8+
9+
obj-y += cm_t3517.o mux.o

board/compulab/cm_t3517/cm_t3517.c

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
/*
2+
* (C) Copyright 2014 CompuLab, Ltd. <www.compulab.co.il>
3+
*
4+
* Authors: Igor Grinberg <[email protected]>
5+
*
6+
* SPDX-License-Identifier: GPL-2.0+
7+
*/
8+
9+
#include <common.h>
10+
#include <status_led.h>
11+
#include <mmc.h>
12+
#include <linux/compiler.h>
13+
14+
#include <asm/io.h>
15+
#include <asm/arch/mem.h>
16+
#include <asm/arch/am35x_def.h>
17+
#include <asm/arch/mmc_host_def.h>
18+
#include <asm/arch/sys_proto.h>
19+
20+
#include "../common/common.h"
21+
22+
DECLARE_GLOBAL_DATA_PTR;
23+
24+
const omap3_sysinfo sysinfo = {
25+
DDR_DISCRETE,
26+
"CM-T3517 board",
27+
"NAND 128/512M",
28+
};
29+
30+
int board_init(void)
31+
{
32+
gpmc_init(); /* in SRAM or SDRAM, finish GPMC */
33+
34+
/* boot param addr */
35+
gd->bd->bi_boot_params = (OMAP34XX_SDRC_CS0 + 0x100);
36+
37+
#if defined(CONFIG_STATUS_LED) && defined(STATUS_LED_BOOT)
38+
status_led_set(STATUS_LED_BOOT, STATUS_LED_ON);
39+
#endif
40+
41+
return 0;
42+
}
43+
44+
int misc_init_r(void)
45+
{
46+
cl_print_pcb_info();
47+
dieid_num_r();
48+
49+
return 0;
50+
}
51+
52+
#if defined(CONFIG_GENERIC_MMC) && !defined(CONFIG_SPL_BUILD)
53+
#define SB_T35_CD_GPIO 144
54+
#define SB_T35_WP_GPIO 59
55+
56+
int board_mmc_init(bd_t *bis)
57+
{
58+
return omap_mmc_init(0, 0, 0, SB_T35_CD_GPIO, SB_T35_WP_GPIO);
59+
}
60+
#endif

board/compulab/cm_t3517/mux.c

Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
/*
2+
* (C) Copyright 2014 CompuLab, Ltd. <www.compulab.co.il>
3+
*
4+
* Authors: Igor Grinberg <[email protected]>
5+
*
6+
* SPDX-License-Identifier: GPL-2.0+
7+
*/
8+
9+
#include <common.h>
10+
#include <asm/arch/sys_proto.h>
11+
#include <asm/arch/mux.h>
12+
#include <asm/io.h>
13+
14+
void set_muxconf_regs(void)
15+
{
16+
/* SDRC */
17+
MUX_VAL(CP(SDRC_D0), (IEN | PTD | DIS | M0));
18+
MUX_VAL(CP(SDRC_D1), (IEN | PTD | DIS | M0));
19+
MUX_VAL(CP(SDRC_D2), (IEN | PTD | DIS | M0));
20+
MUX_VAL(CP(SDRC_D3), (IEN | PTD | DIS | M0));
21+
MUX_VAL(CP(SDRC_D4), (IEN | PTD | DIS | M0));
22+
MUX_VAL(CP(SDRC_D5), (IEN | PTD | DIS | M0));
23+
MUX_VAL(CP(SDRC_D6), (IEN | PTD | DIS | M0));
24+
MUX_VAL(CP(SDRC_D7), (IEN | PTD | DIS | M0));
25+
MUX_VAL(CP(SDRC_D8), (IEN | PTD | DIS | M0));
26+
MUX_VAL(CP(SDRC_D9), (IEN | PTD | DIS | M0));
27+
MUX_VAL(CP(SDRC_D10), (IEN | PTD | DIS | M0));
28+
MUX_VAL(CP(SDRC_D11), (IEN | PTD | DIS | M0));
29+
MUX_VAL(CP(SDRC_D12), (IEN | PTD | DIS | M0));
30+
MUX_VAL(CP(SDRC_D13), (IEN | PTD | DIS | M0));
31+
MUX_VAL(CP(SDRC_D14), (IEN | PTD | DIS | M0));
32+
MUX_VAL(CP(SDRC_D15), (IEN | PTD | DIS | M0));
33+
MUX_VAL(CP(SDRC_D16), (IEN | PTD | DIS | M0));
34+
MUX_VAL(CP(SDRC_D17), (IEN | PTD | DIS | M0));
35+
MUX_VAL(CP(SDRC_D18), (IEN | PTD | DIS | M0));
36+
MUX_VAL(CP(SDRC_D19), (IEN | PTD | DIS | M0));
37+
MUX_VAL(CP(SDRC_D20), (IEN | PTD | DIS | M0));
38+
MUX_VAL(CP(SDRC_D21), (IEN | PTD | DIS | M0));
39+
MUX_VAL(CP(SDRC_D22), (IEN | PTD | DIS | M0));
40+
MUX_VAL(CP(SDRC_D23), (IEN | PTD | DIS | M0));
41+
MUX_VAL(CP(SDRC_D24), (IEN | PTD | DIS | M0));
42+
MUX_VAL(CP(SDRC_D25), (IEN | PTD | DIS | M0));
43+
MUX_VAL(CP(SDRC_D26), (IEN | PTD | DIS | M0));
44+
MUX_VAL(CP(SDRC_D27), (IEN | PTD | DIS | M0));
45+
MUX_VAL(CP(SDRC_D28), (IEN | PTD | DIS | M0));
46+
MUX_VAL(CP(SDRC_D29), (IEN | PTD | DIS | M0));
47+
MUX_VAL(CP(SDRC_D30), (IEN | PTD | DIS | M0));
48+
MUX_VAL(CP(SDRC_D31), (IEN | PTD | DIS | M0));
49+
MUX_VAL(CP(SDRC_CLK), (IEN | PTD | DIS | M0));
50+
MUX_VAL(CP(SDRC_DQS0), (IEN | PTD | DIS | M0));
51+
MUX_VAL(CP(SDRC_DQS1), (IEN | PTD | DIS | M0));
52+
MUX_VAL(CP(SDRC_DQS2), (IEN | PTD | DIS | M0));
53+
MUX_VAL(CP(SDRC_DQS3), (IEN | PTD | DIS | M0));
54+
MUX_VAL(CP(SDRC_CKE0), (IDIS | PTU | EN | M0));
55+
MUX_VAL(CP(SDRC_CKE1), (IDIS | PTD | DIS | M7));
56+
57+
/* GPMC */
58+
MUX_VAL(CP(GPMC_A1), (IDIS | PTU | EN | M0));
59+
MUX_VAL(CP(GPMC_A2), (IDIS | PTU | EN | M0));
60+
MUX_VAL(CP(GPMC_A3), (IDIS | PTU | EN | M0));
61+
MUX_VAL(CP(GPMC_A4), (IDIS | PTU | EN | M0));
62+
MUX_VAL(CP(GPMC_A5), (IDIS | PTU | EN | M0));
63+
MUX_VAL(CP(GPMC_A6), (IDIS | PTU | EN | M0));
64+
MUX_VAL(CP(GPMC_A7), (IDIS | PTU | EN | M0));
65+
MUX_VAL(CP(GPMC_A8), (IDIS | PTU | EN | M0));
66+
MUX_VAL(CP(GPMC_A9), (IDIS | PTU | EN | M0));
67+
MUX_VAL(CP(GPMC_A10), (IDIS | PTU | EN | M0));
68+
MUX_VAL(CP(GPMC_D0), (IEN | PTU | EN | M0));
69+
MUX_VAL(CP(GPMC_D1), (IEN | PTU | EN | M0));
70+
MUX_VAL(CP(GPMC_D2), (IEN | PTU | EN | M0));
71+
MUX_VAL(CP(GPMC_D3), (IEN | PTU | EN | M0));
72+
MUX_VAL(CP(GPMC_D4), (IEN | PTU | EN | M0));
73+
MUX_VAL(CP(GPMC_D5), (IEN | PTU | EN | M0));
74+
MUX_VAL(CP(GPMC_D6), (IEN | PTU | EN | M0));
75+
MUX_VAL(CP(GPMC_D7), (IEN | PTU | EN | M0));
76+
MUX_VAL(CP(GPMC_D8), (IEN | PTU | EN | M0));
77+
MUX_VAL(CP(GPMC_D9), (IEN | PTU | EN | M0));
78+
MUX_VAL(CP(GPMC_D10), (IEN | PTU | EN | M0));
79+
MUX_VAL(CP(GPMC_D11), (IEN | PTU | EN | M0));
80+
MUX_VAL(CP(GPMC_D12), (IEN | PTU | EN | M0));
81+
MUX_VAL(CP(GPMC_D13), (IEN | PTU | EN | M0));
82+
MUX_VAL(CP(GPMC_D14), (IEN | PTU | EN | M0));
83+
MUX_VAL(CP(GPMC_D15), (IEN | PTU | EN | M0));
84+
MUX_VAL(CP(GPMC_NCS0), (IDIS | PTU | EN | M0));
85+
86+
/* SB-T35 SD/MMC WP GPIO59 */
87+
MUX_VAL(CP(GPMC_CLK), (IEN | PTU | EN | M4)); /*GPIO_59*/
88+
MUX_VAL(CP(GPMC_NWE), (IDIS | PTD | DIS | M0));
89+
MUX_VAL(CP(GPMC_NOE), (IDIS | PTD | DIS | M0));
90+
MUX_VAL(CP(GPMC_NADV_ALE), (IDIS | PTD | DIS | M0));
91+
MUX_VAL(CP(GPMC_NBE0_CLE), (IDIS | PTU | EN | M0));
92+
/* SB-T35 Audio Enable GPIO61 */
93+
MUX_VAL(CP(GPMC_NBE1), (IDIS | PTU | EN | M4)); /*GPIO_61*/
94+
MUX_VAL(CP(GPMC_NWP), (IEN | PTD | DIS | M0));
95+
MUX_VAL(CP(GPMC_WAIT0), (IEN | PTU | EN | M0));
96+
97+
/* UART3 Console */
98+
MUX_VAL(CP(UART3_RX_IRRX), (IEN | PTD | DIS | M0));
99+
MUX_VAL(CP(UART3_TX_IRTX), (IDIS | PTD | DIS | M0));
100+
/* RTC V3020 nCS GPIO163 */
101+
MUX_VAL(CP(UART3_CTS_RCTX), (IEN | PTU | EN | M4)); /*GPIO_163*/
102+
103+
/* SB-T35 SD/MMC CD GPIO144 */
104+
MUX_VAL(CP(UART2_CTS), (IEN | PTU | EN | M4)); /*GPIO_144*/
105+
/* WIFI nRESET GPIO145 */
106+
MUX_VAL(CP(UART2_RTS), (IEN | PTD | EN | M4)); /*GPIO_145*/
107+
108+
/* MMC1 */
109+
MUX_VAL(CP(MMC1_CLK), (IDIS | PTU | EN | M0));
110+
MUX_VAL(CP(MMC1_CMD), (IEN | PTU | EN | M0));
111+
MUX_VAL(CP(MMC1_DAT0), (IEN | PTU | EN | M0));
112+
MUX_VAL(CP(MMC1_DAT1), (IEN | PTU | EN | M0));
113+
MUX_VAL(CP(MMC1_DAT2), (IEN | PTU | EN | M0));
114+
MUX_VAL(CP(MMC1_DAT3), (IEN | PTU | EN | M0));
115+
116+
/* I2C */
117+
MUX_VAL(CP(I2C1_SCL), (IEN | PTU | EN | M0));
118+
MUX_VAL(CP(I2C1_SDA), (IEN | PTU | EN | M0));
119+
MUX_VAL(CP(I2C3_SCL), (IEN | PTU | EN | M0));
120+
MUX_VAL(CP(I2C3_SDA), (IEN | PTU | EN | M0));
121+
122+
/* Green LED GPIO186 */
123+
MUX_VAL(CP(SYS_CLKOUT2), (IDIS | PTU | DIS | M4)); /*GPIO_186*/
124+
125+
/* RTC V3020 CS Enable GPIO160 */
126+
MUX_VAL(CP(MCBSP_CLKS), (IEN | PTD | EN | M4)); /*GPIO_160*/
127+
128+
/* SYS_BOOT */
129+
MUX_VAL(CP(SYS_BOOT0), (IEN | PTU | DIS | M4)); /*GPIO_2*/
130+
MUX_VAL(CP(SYS_BOOT1), (IEN | PTU | DIS | M4)); /*GPIO_3*/
131+
MUX_VAL(CP(SYS_BOOT2), (IEN | PTU | DIS | M4)); /*GPIO_4*/
132+
MUX_VAL(CP(SYS_BOOT3), (IEN | PTU | DIS | M4)); /*GPIO_5*/
133+
MUX_VAL(CP(SYS_BOOT4), (IEN | PTU | DIS | M4)); /*GPIO_6*/
134+
MUX_VAL(CP(SYS_BOOT5), (IEN | PTU | DIS | M4)); /*GPIO_7*/
135+
}

configs/cm_t3517_defconfig

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
CONFIG_SPL=n
2+
+S:CONFIG_ARM=y
3+
+S:CONFIG_OMAP34XX=y
4+
+S:CONFIG_TARGET_CM_T3517=y

0 commit comments

Comments
 (0)