diff options
Diffstat (limited to 'board/ti')
| -rw-r--r-- | board/ti/beagle/beagle.c | 5 | ||||
| -rw-r--r-- | board/ti/dra7xx/evm.c | 2 | ||||
| -rw-r--r-- | board/ti/omap5_uevm/evm.c | 6 | ||||
| -rw-r--r-- | board/ti/panda/panda.c | 6 | ||||
| -rw-r--r-- | board/ti/ti814x/evm.c | 75 | ||||
| -rw-r--r-- | board/ti/ti814x/evm.h | 1 | ||||
| -rw-r--r-- | board/ti/ti814x/mux.c | 35 | 
7 files changed, 124 insertions, 6 deletions
| diff --git a/board/ti/beagle/beagle.c b/board/ti/beagle/beagle.c index 3d9b6dd8f..c686f40a9 100644 --- a/board/ti/beagle/beagle.c +++ b/board/ti/beagle/beagle.c @@ -108,13 +108,14 @@ int board_init(void)  /*   * Routine: get_board_revision   * Description: Detect if we are running on a Beagle revision Ax/Bx, - *		C1/2/3, C4 or xM. This can be done by reading + *		C1/2/3, C4, xM Ax/Bx or xM Cx. This can be done by reading   *		the level of GPIO173, GPIO172 and GPIO171. This should   *		result in   *		GPIO173, GPIO172, GPIO171: 1 1 1 => Ax/Bx   *		GPIO173, GPIO172, GPIO171: 1 1 0 => C1/2/3   *		GPIO173, GPIO172, GPIO171: 1 0 1 => C4 - *		GPIO173, GPIO172, GPIO171: 0 0 0 => xM + *		GPIO173, GPIO172, GPIO171: 0 1 0 => xM Cx + *		GPIO173, GPIO172, GPIO171: 0 0 0 => xM Ax/Bx   */  static int get_board_revision(void)  { diff --git a/board/ti/dra7xx/evm.c b/board/ti/dra7xx/evm.c index 7bbb5492f..bf7e09196 100644 --- a/board/ti/dra7xx/evm.c +++ b/board/ti/dra7xx/evm.c @@ -27,7 +27,7 @@   * MA 02111-1307 USA   */  #include <common.h> -#include <twl6035.h> +#include <palmas.h>  #include <asm/arch/sys_proto.h>  #include <asm/arch/mmc_host_def.h> diff --git a/board/ti/omap5_uevm/evm.c b/board/ti/omap5_uevm/evm.c index 55337c09d..46db1bfe6 100644 --- a/board/ti/omap5_uevm/evm.c +++ b/board/ti/omap5_uevm/evm.c @@ -23,7 +23,7 @@   * MA 02111-1307 USA   */  #include <common.h> -#include <twl6035.h> +#include <palmas.h>  #include <asm/arch/sys_proto.h>  #include <asm/arch/mmc_host_def.h> @@ -63,8 +63,8 @@ int board_eth_init(bd_t *bis)   */  int misc_init_r(void)  { -#ifdef CONFIG_TWL6035_POWER -	twl6035_init_settings(); +#ifdef CONFIG_PALMAS_POWER +	palmas_init_settings();  #endif  	return 0;  } diff --git a/board/ti/panda/panda.c b/board/ti/panda/panda.c index cab059863..2bbe392d8 100644 --- a/board/ti/panda/panda.c +++ b/board/ti/panda/panda.c @@ -82,6 +82,12 @@ int misc_init_r(void)  	if (omap_revision() == OMAP4430_ES1_0)  		return 0; +#ifdef CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG +	if (omap_revision() >= OMAP4460_ES1_0 || +		omap_revision() <= OMAP4460_ES1_1) +		setenv("board_name", strcat(CONFIG_SYS_BOARD, "-es")); +#endif +  	gpio_direction_input(PANDA_ULPI_PHY_TYPE_GPIO);  	phy_type = gpio_get_value(PANDA_ULPI_PHY_TYPE_GPIO); diff --git a/board/ti/ti814x/evm.c b/board/ti/ti814x/evm.c index 446e36b84..7adb52405 100644 --- a/board/ti/ti814x/evm.c +++ b/board/ti/ti814x/evm.c @@ -17,6 +17,7 @@   */  #include <common.h> +#include <cpsw.h>  #include <errno.h>  #include <spl.h>  #include <asm/arch/cpu.h> @@ -39,6 +40,8 @@ static struct wd_timer *wdtimer = (struct wd_timer *)WDT_BASE;  static struct uart_sys *uart_base = (struct uart_sys *)DEFAULT_UART_BASE;  #endif +static struct ctrl_dev *cdev = (struct ctrl_dev *)CTRL_DEVICE_BASE; +  /* UART Defines */  #ifdef CONFIG_SPL_BUILD  #define UART_RESET		(0x1 << 1) @@ -151,6 +154,9 @@ void s_init(void)  	 */  	wdt_disable(); +	/* Enable timer */ +	timer_init(); +  	/* Setup the PLLs and the clocks for the peripherals */  	pll_init(); @@ -163,6 +169,9 @@ void s_init(void)  	/* Set MMC pins */  	enable_mmc1_pin_mux(); +	/* Set Ethernet pins */ +	enable_enet_pin_mux(); +  	/* Enable UART */  	uart_enable(); @@ -196,3 +205,69 @@ int board_mmc_init(bd_t *bis)  	return 0;  }  #endif + +#ifdef CONFIG_DRIVER_TI_CPSW +static void cpsw_control(int enabled) +{ +	/* VTP can be added here */ + +	return; +} + +static struct cpsw_slave_data cpsw_slaves[] = { +	{ +		.slave_reg_ofs	= 0x50, +		.sliver_reg_ofs	= 0x700, +		.phy_id		= 1, +	}, +	{ +		.slave_reg_ofs	= 0x90, +		.sliver_reg_ofs	= 0x740, +		.phy_id		= 0, +	}, +}; + +static struct cpsw_platform_data cpsw_data = { +	.mdio_base		= CPSW_MDIO_BASE, +	.cpsw_base		= CPSW_BASE, +	.mdio_div		= 0xff, +	.channels		= 8, +	.cpdma_reg_ofs		= 0x100, +	.slaves			= 1, +	.slave_data		= cpsw_slaves, +	.ale_reg_ofs		= 0x600, +	.ale_entries		= 1024, +	.host_port_reg_ofs	= 0x28, +	.hw_stats_reg_ofs	= 0x400, +	.mac_control		= (1 << 5), +	.control		= cpsw_control, +	.host_port_num		= 0, +	.version		= CPSW_CTRL_VERSION_1, +}; +#endif + +int board_eth_init(bd_t *bis) +{ +	uint8_t mac_addr[6]; +	uint32_t mac_hi, mac_lo; + +	if (!eth_getenv_enetaddr("ethaddr", mac_addr)) { +		printf("<ethaddr> not set. Reading from E-fuse\n"); +		/* try reading mac address from efuse */ +		mac_lo = readl(&cdev->macid0l); +		mac_hi = readl(&cdev->macid0h); +		mac_addr[0] = mac_hi & 0xFF; +		mac_addr[1] = (mac_hi & 0xFF00) >> 8; +		mac_addr[2] = (mac_hi & 0xFF0000) >> 16; +		mac_addr[3] = (mac_hi & 0xFF000000) >> 24; +		mac_addr[4] = mac_lo & 0xFF; +		mac_addr[5] = (mac_lo & 0xFF00) >> 8; + +		if (is_valid_ether_addr(mac_addr)) +			eth_setenv_enetaddr("ethaddr", mac_addr); +		else +			printf("Unable to read MAC address. Set <ethaddr>\n"); +	} + +	return cpsw_register(&cpsw_data); +} diff --git a/board/ti/ti814x/evm.h b/board/ti/ti814x/evm.h index 40f8710c8..6aebec62d 100644 --- a/board/ti/ti814x/evm.h +++ b/board/ti/ti814x/evm.h @@ -3,5 +3,6 @@  void enable_uart0_pin_mux(void);  void enable_mmc1_pin_mux(void); +void enable_enet_pin_mux(void);  #endif /* _EVM_H */ diff --git a/board/ti/ti814x/mux.c b/board/ti/ti814x/mux.c index 137acb452..fd9f36451 100644 --- a/board/ti/ti814x/mux.c +++ b/board/ti/ti814x/mux.c @@ -40,6 +40,36 @@ static struct module_pin_mux mmc1_pin_mux[] = {  	{-1},  }; +static struct module_pin_mux enet_pin_mux[] = { +	{OFFSET(pincntl232), MODE(0x01)},		/* EMAC_RMREFCLK */ +	{OFFSET(pincntl233), PULLUP_EN | MODE(0x01)},	/* MDCLK */ +	{OFFSET(pincntl234), PULLUP_EN | MODE(0x01)},	/* MDIO */ +	{OFFSET(pincntl235), MODE(0x01)},		/* EMAC[0]_MTCLK */ +	{OFFSET(pincntl236), MODE(0x01)},		/* EMAC[0]_MCOL */ +	{OFFSET(pincntl237), MODE(0x01)},		/* EMAC[0]_MCRS */ +	{OFFSET(pincntl238), MODE(0x01)},		/* EMAC[0]_MRXER */ +	{OFFSET(pincntl239), MODE(0x01)},		/* EMAC[0]_MRCLK */ +	{OFFSET(pincntl240), MODE(0x01)},		/* EMAC[0]_MRXD[0] */ +	{OFFSET(pincntl241), MODE(0x01)},		/* EMAC[0]_MRXD[1] */ +	{OFFSET(pincntl242), MODE(0x01)},		/* EMAC[0]_MRXD[2] */ +	{OFFSET(pincntl243), MODE(0x01)},		/* EMAC[0]_MRXD[3] */ +	{OFFSET(pincntl244), MODE(0x01)},		/* EMAC[0]_MRXD[4] */ +	{OFFSET(pincntl245), MODE(0x01)},		/* EMAC[0]_MRXD[5] */ +	{OFFSET(pincntl246), MODE(0x01)},		/* EMAC[0]_MRXD[6] */ +	{OFFSET(pincntl247), MODE(0x01)},		/* EMAC[0]_MRXD[7] */ +	{OFFSET(pincntl248), MODE(0x01)},		/* EMAC[0]_MRXDV */ +	{OFFSET(pincntl249), MODE(0x01)},		/* EMAC[0]_GMTCLK */ +	{OFFSET(pincntl250), MODE(0x01)},		/* EMAC[0]_MTXD[0] */ +	{OFFSET(pincntl251), MODE(0x01)},		/* EMAC[0]_MTXD[1] */ +	{OFFSET(pincntl252), MODE(0x01)},		/* EMAC[0]_MTXD[2] */ +	{OFFSET(pincntl253), MODE(0x01)},		/* EMAC[0]_MTXD[3] */ +	{OFFSET(pincntl254), MODE(0x01)},		/* EMAC[0]_MTXD[4] */ +	{OFFSET(pincntl255), MODE(0x01)},		/* EMAC[0]_MTXD[5] */ +	{OFFSET(pincntl256), MODE(0x01)},		/* EMAC[0]_MTXD[6] */ +	{OFFSET(pincntl257), MODE(0x01)},		/* EMAC[0]_MTXD[7] */ +	{OFFSET(pincntl258), MODE(0x01)},		/* EMAC[0]_MTXEN */ +}; +  void enable_uart0_pin_mux(void)  {  	configure_module_pin_mux(uart0_pin_mux); @@ -49,3 +79,8 @@ void enable_mmc1_pin_mux(void)  {  	configure_module_pin_mux(mmc1_pin_mux);  } + +void enable_enet_pin_mux(void) +{ +	configure_module_pin_mux(enet_pin_mux); +} |