1 /* 2 * board.h 3 * 4 * TI AM437x boards information header 5 * Derived from AM335x board. 6 * 7 * Copyright (C) 2013, Texas Instruments, Incorporated - http://www.ti.com/ 8 * 9 * SPDX-License-Identifier: GPL-2.0+ 10 */ 11 12 #ifndef _BOARD_H_ 13 #define _BOARD_H_ 14 15 #include <asm/arch/omap.h> 16 17 static char *const am43xx_board_name = (char *)AM4372_BOARD_NAME_START; 18 static char *const am43xx_board_rev = (char *)AM4372_BOARD_VERSION_START; 19 20 /* 21 * TI AM437x EVMs define a system EEPROM that defines certain sub-fields. 22 * We use these fields to in turn see what board we are on, and what 23 * that might require us to set or not set. 24 */ 25 #define HDR_NO_OF_MAC_ADDR 3 26 #define HDR_ETH_ALEN 6 27 #define HDR_NAME_LEN 8 28 29 #define DEV_ATTR_MAX_OFFSET 5 30 #define DEV_ATTR_MIN_OFFSET 0 31 32 struct am43xx_board_id { 33 unsigned int magic; 34 char name[HDR_NAME_LEN]; 35 char version[4]; 36 char serial[12]; 37 char config[32]; 38 char mac_addr[HDR_NO_OF_MAC_ADDR][HDR_ETH_ALEN]; 39 }; 40 41 static inline int board_is_eposevm(void) 42 { 43 return !strncmp(am43xx_board_name, "AM43EPOS", HDR_NAME_LEN); 44 } 45 46 static inline int board_is_gpevm(void) 47 { 48 return !strncmp(am43xx_board_name, "AM43__GP", HDR_NAME_LEN); 49 } 50 51 static inline int board_is_sk(void) 52 { 53 return !strncmp(am43xx_board_name, "AM43__SK", HDR_NAME_LEN); 54 } 55 56 static inline int board_is_evm_14_or_later(void) 57 { 58 return (board_is_gpevm() && strncmp("1.4", am43xx_board_rev, 3) <= 0); 59 } 60 61 static inline int board_is_evm_12_or_later(void) 62 { 63 return (board_is_gpevm() && strncmp("1.2", am43xx_board_rev, 3) <= 0); 64 } 65 66 void enable_uart0_pin_mux(void); 67 void enable_board_pin_mux(void); 68 void enable_i2c0_pin_mux(void); 69 #endif 70