xref: /rk3399_rockchip-uboot/board/birdland/bav335x/board.h (revision b81bdf62e0cf9b5c64d30284d01658a851f142f7)
1a2bc4321SGilles Gameiro /*
2a2bc4321SGilles Gameiro  * board.c
3a2bc4321SGilles Gameiro  *
4a2bc4321SGilles Gameiro  * Board functions for Birdland Audio BAV335x Network Processor
5a2bc4321SGilles Gameiro  *
6a2bc4321SGilles Gameiro  * Copyright (c) 2012-2014, Birdland Audio - http://birdland.com/oem
7a2bc4321SGilles Gameiro  *
8a2bc4321SGilles Gameiro  *
9a2bc4321SGilles Gameiro  * SPDX-License-Identifier:	GPL-2.0+
10a2bc4321SGilles Gameiro  */
11a2bc4321SGilles Gameiro 
12a2bc4321SGilles Gameiro #ifndef _BOARD_H_
13a2bc4321SGilles Gameiro #define _BOARD_H_
14a2bc4321SGilles Gameiro 
15a2bc4321SGilles Gameiro /* Serial MagicE: AA 55 BA BE */
16a2bc4321SGilles Gameiro #define BOARD_MAGIC  0xBEBA55AA
17a2bc4321SGilles Gameiro enum board_type {UNKNOWN, BAV335A, BAV335B};
18a2bc4321SGilles Gameiro 
19a2bc4321SGilles Gameiro 
20a2bc4321SGilles Gameiro /*
21a2bc4321SGilles Gameiro  * The BAV335x may use a built-in read-only serial EEProm.
22a2bc4321SGilles Gameiro  * The Evaluation board, disables the write-protect so the Serial-EE
23a2bc4321SGilles Gameiro  * Can be programmed during manufacturing to store fields such as
24a2bc4321SGilles Gameiro  * a board serial number, ethernet mac address and other user fields.
25a2bc4321SGilles Gameiro  * Additionally, the Serial-EE can store the specific version of the
26a2bc4321SGilles Gameiro  * board it runs on, and overwrite the defaults in _defconfig
27a2bc4321SGilles Gameiro  */
28a2bc4321SGilles Gameiro #define HDR_NO_OF_MAC_ADDR	3
29a2bc4321SGilles Gameiro #define HDR_ETH_ALEN		6
30a2bc4321SGilles Gameiro #define HDR_NAME_LEN		8
31a2bc4321SGilles Gameiro 
32a2bc4321SGilles Gameiro struct board_eeconfig {
33a2bc4321SGilles Gameiro 	unsigned int  magic;
34a2bc4321SGilles Gameiro 	char name[HDR_NAME_LEN];	/* BAV3354 */
35a2bc4321SGilles Gameiro 	char version[4];		/* 0B20 - Rev.B2 */
36*b81bdf62SGilles Gameiro 	char serial[16];
37a2bc4321SGilles Gameiro 	char config[32];
38a2bc4321SGilles Gameiro 	char mac_addr[HDR_NO_OF_MAC_ADDR][HDR_ETH_ALEN];
39a2bc4321SGilles Gameiro };
40a2bc4321SGilles Gameiro 
41a2bc4321SGilles Gameiro enum board_type get_board_type(bool verbose_debug_output);
42a2bc4321SGilles Gameiro 
43a2bc4321SGilles Gameiro 
44a2bc4321SGilles Gameiro /*
45a2bc4321SGilles Gameiro  * We have three pin mux functions that must exist.  We must be able to enable
46a2bc4321SGilles Gameiro  * uart0, for initial output and i2c0 to read the main EEPROM.  We then have a
47a2bc4321SGilles Gameiro  * main pinmux function that can be overridden to enable all other pinmux that
48a2bc4321SGilles Gameiro  * is required on the board.
49a2bc4321SGilles Gameiro  */
50a2bc4321SGilles Gameiro void enable_uart0_pin_mux(void);
51a2bc4321SGilles Gameiro void enable_uart1_pin_mux(void);
52a2bc4321SGilles Gameiro void enable_uart2_pin_mux(void);
53a2bc4321SGilles Gameiro void enable_uart3_pin_mux(void);
54a2bc4321SGilles Gameiro void enable_uart4_pin_mux(void);
55a2bc4321SGilles Gameiro void enable_uart5_pin_mux(void);
56a2bc4321SGilles Gameiro void enable_i2c0_pin_mux(void);
57a2bc4321SGilles Gameiro void enable_board_pin_mux(enum board_type board);
58a2bc4321SGilles Gameiro 
59a2bc4321SGilles Gameiro #endif
60