u-boot-brain/board/ti/am43xx/board.h
Felipe Balbi 403d70abd9 board: ti: am43xx: add support for AM43xx Industrial Development Kit
AM43xx Industrial Development Kit is a new board
based on AM437x line of SoCs. Targetted at Industrial
Automation applications, it comes with EtherCAT, motor
control and other goodies.

Thanks to James Doublesin for all the help.

Cc: James Doublesin <doublesin@ti.com>
Signed-off-by: Felipe Balbi <balbi@ti.com>
2015-01-13 15:26:10 -05:00

75 lines
1.7 KiB
C

/*
* board.h
*
* TI AM437x boards information header
* Derived from AM335x board.
*
* Copyright (C) 2013, Texas Instruments, Incorporated - http://www.ti.com/
*
* SPDX-License-Identifier: GPL-2.0+
*/
#ifndef _BOARD_H_
#define _BOARD_H_
#include <asm/arch/omap.h>
static char *const am43xx_board_name = (char *)AM4372_BOARD_NAME_START;
static char *const am43xx_board_rev = (char *)AM4372_BOARD_VERSION_START;
/*
* TI AM437x EVMs define a system EEPROM that defines certain sub-fields.
* We use these fields to in turn see what board we are on, and what
* that might require us to set or not set.
*/
#define HDR_NO_OF_MAC_ADDR 3
#define HDR_ETH_ALEN 6
#define HDR_NAME_LEN 8
#define DEV_ATTR_MAX_OFFSET 5
#define DEV_ATTR_MIN_OFFSET 0
struct am43xx_board_id {
unsigned int magic;
char name[HDR_NAME_LEN];
char version[4];
char serial[12];
char config[32];
char mac_addr[HDR_NO_OF_MAC_ADDR][HDR_ETH_ALEN];
};
static inline int board_is_eposevm(void)
{
return !strncmp(am43xx_board_name, "AM43EPOS", HDR_NAME_LEN);
}
static inline int board_is_gpevm(void)
{
return !strncmp(am43xx_board_name, "AM43__GP", HDR_NAME_LEN);
}
static inline int board_is_sk(void)
{
return !strncmp(am43xx_board_name, "AM43__SK", HDR_NAME_LEN);
}
static inline int board_is_idk(void)
{
return !strncmp(am43xx_board_name, "AM43_IDK", HDR_NAME_LEN);
}
static inline int board_is_evm_14_or_later(void)
{
return (board_is_gpevm() && strncmp("1.4", am43xx_board_rev, 3) <= 0);
}
static inline int board_is_evm_12_or_later(void)
{
return (board_is_gpevm() && strncmp("1.2", am43xx_board_rev, 3) <= 0);
}
void enable_uart0_pin_mux(void);
void enable_board_pin_mux(void);
void enable_i2c0_pin_mux(void);
#endif