1/* SPDX-License-Identifier: GPL-2.0+ */ 2/* 3 * board.h 4 * 5 * (C) Copyright 2016 6 * Heiko Schocher, DENX Software Engineering, hs@denx.de. 7 * 8 * Based on: 9 * TI AM335x boards information header 10 * 11 * Copyright (C) 2011, Texas Instruments, Incorporated - https://www.ti.com/ 12 */ 13 14#ifndef _BOARD_H_ 15#define _BOARD_H_ 16 17/* Definition to control the GPIOs (for LEDs and Reset) */ 18#define GPIO_TO_PIN(bank, gpio) (32 * (bank) + (gpio)) 19 20static inline int board_is_b_sample(void) 21{ 22#if defined CONFIG_B_SAMPLE 23 return 1; 24#else 25 return 0; 26#endif 27} 28 29static inline int board_is_c_sample(void) 30{ 31#if defined CONFIG_C_SAMPLE 32 return 1; 33#else 34 return 0; 35#endif 36} 37 38static inline int board_is_c3_sample(void) 39{ 40#if defined CONFIG_C3_SAMPLE 41 return 1; 42#else 43 return 0; 44#endif 45} 46 47static inline int board_is_series(void) 48{ 49#if defined CONFIG_SERIES 50 return 1; 51#else 52 return 0; 53#endif 54} 55 56/* 57 * Definitions for pinmuxing header and Board ID strings 58 */ 59#if defined CONFIG_B_SAMPLE 60# define BOARD_ID_STR "SHC B-Sample\n" 61#elif defined CONFIG_B2_SAMPLE 62# define BOARD_ID_STR "SHC B2-Sample\n" 63#elif defined CONFIG_C_SAMPLE 64# if defined(CONFIG_SHC_NETBOOT) 65# define BOARD_ID_STR "#### NETBOOT ####\nSHC C-Sample\n" 66# elif defined(CONFIG_SHC_SDBOOT) 67# define BOARD_ID_STR "#### SDBOOT ####\nSHC C-Sample\n" 68# else 69# define BOARD_ID_STR "SHC C-Sample\n" 70# endif 71#elif defined CONFIG_C2_SAMPLE 72# if defined(CONFIG_SHC_ICT) 73# define BOARD_ID_STR "#### ICT ####\nSHC C2-Sample\n" 74# elif defined(CONFIG_SHC_NETBOOT) 75# define BOARD_ID_STR "#### NETBOOT ####\nSHC C2-Sample\n" 76# elif defined(CONFIG_SHC_SDBOOT) 77# define BOARD_ID_STR "#### SDBOOT ####\nSHC C2-Sample\n" 78# else 79# define BOARD_ID_STR "SHC C2-Sample\n" 80# endif 81#elif defined CONFIG_C3_SAMPLE 82# if defined(CONFIG_SHC_ICT) 83# define BOARD_ID_STR "#### ICT ####\nSHC C3-Sample\n" 84# elif defined(CONFIG_SHC_NETBOOT) 85# define BOARD_ID_STR "#### NETBOOT ####\nSHC C3-Sample\n" 86# elif defined(CONFIG_SHC_SDBOOT) 87# define BOARD_ID_STR "#### SDBOOT ####\nSHC C3-Sample\n" 88# else 89# define BOARD_ID_STR "SHC C3-Sample\n" 90# endif 91#elif defined CONFIG_SERIES 92# if defined(CONFIG_SHC_ICT) 93# define BOARD_ID_STR "#### ICT ####\nSHC\n" 94# elif defined(CONFIG_SHC_NETBOOT) 95# define BOARD_ID_STR "#### NETBOOT ####\nSHC\n" 96# elif defined(CONFIG_SHC_SDBOOT) 97# define BOARD_ID_STR "#### SDBOOT ####\nSHC\n" 98# else 99# define BOARD_ID_STR "SHC\n" 100# endif 101#else 102# define BOARD_ID_STR "Unknown device!\n" 103#endif 104 105/* 106 * Definitions for GPIO pin assignments 107 */ 108#if defined CONFIG_B_SAMPLE 109 110# define LED_PWR_BL_GPIO GPIO_TO_PIN(1, 17) 111# define LED_PWR_RD_GPIO GPIO_TO_PIN(1, 18) 112# define LED_PWR_GN_GPIO GPIO_TO_PIN(1, 19) 113# define LED_CONN_BL_GPIO GPIO_TO_PIN(0, 26) 114# define LED_CONN_RD_GPIO GPIO_TO_PIN(0, 22) 115# define LED_CONN_GN_GPIO GPIO_TO_PIN(0, 23) 116# define RESET_GPIO GPIO_TO_PIN(1, 29) 117# define WIFI_REGEN_GPIO GPIO_TO_PIN(1, 16) 118# define WIFI_RST_GPIO GPIO_TO_PIN(0, 27) 119# define ZIGBEE_RST_GPIO GPIO_TO_PIN(3, 18) 120# define BIDCOS_RST_GPIO GPIO_TO_PIN(0, 12) 121# define ENOC_RST_GPIO GPIO_TO_PIN(1, 22) 122 123#else 124 125# define LED_PWR_BL_GPIO GPIO_TO_PIN(0, 22) 126# define LED_PWR_RD_GPIO GPIO_TO_PIN(0, 23) 127# define LED_LAN_BL_GPIO GPIO_TO_PIN(1, 17) 128# define LED_LAN_RD_GPIO GPIO_TO_PIN(0, 26) 129# define LED_CLOUD_BL_GPIO GPIO_TO_PIN(1, 18) 130# define LED_CLOUD_RD_GPIO GPIO_TO_PIN(2, 2) 131# define LED_PWM_GPIO GPIO_TO_PIN(1, 19) 132# define RESET_GPIO GPIO_TO_PIN(1, 29) 133# define WIFI_REGEN_GPIO GPIO_TO_PIN(1, 16) 134# define WIFI_RST_GPIO GPIO_TO_PIN(0, 27) 135# define ZIGBEE_RST_GPIO GPIO_TO_PIN(3, 18) 136# define BIDCOS_RST_GPIO GPIO_TO_PIN(1, 24) 137# define Z_WAVE_RST_GPIO GPIO_TO_PIN(1, 21) 138# define ENOC_RST_GPIO GPIO_TO_PIN(1, 22) 139 140#endif 141 142#define BACK_BUTTON_GPIO GPIO_TO_PIN(1, 29) 143#define FRONT_BUTTON_GPIO GPIO_TO_PIN(1, 25) 144 145/* Reset is on GPIO pin 29 of GPIO bank 1 */ 146#define RESET_MASK (0x1 << 29) 147 148#define HDR_MAGIC 0x43485342 149#define HDR_ETH_ALEN 6 150#define HDR_NAME_LEN 8 151#define HDR_REV_LEN 8 152#define HDR_SER_LEN 16 153#define HDR_ROOT_LEN 12 154#define HDR_FATC_LEN 12 155 156/* 157* SHC parameters held in On-Board I2C EEPROM device. 158* 159* Header Format 160* 161* Name Size Contents 162*------------------------------------------------------------- 163* Magic 4 0x42 0x53 0x48 0x43 [BSHC] 164* 165* Version 2 0x0100 for v1.0 166* 167* Lenght 2 The length of the complete structure, not only this header 168* 169* Eth-MAC 6 Ethernet MAC Address 170* SHC Pool: 7C:AC:B2:00:10:01 - TBD 171* 172* --- Further values follow, not important for Bootloader --- 173*/ 174 175struct shc_eeprom { 176 u32 magic; 177 u16 version; 178 u16 lenght; 179 uint8_t mac_addr[HDR_ETH_ALEN]; 180}; 181 182void enable_uart0_pin_mux(void); 183void enable_shc_board_pin_mux(void); 184void enable_shc_board_pwm_pin_mux(void); 185 186#endif 187