| /* SPDX-License-Identifier: GPL-2.0+ */ |
| /* |
| * board.h |
| * |
| * (C) Copyright 2016 |
| * Heiko Schocher, DENX Software Engineering, hs@denx.de. |
| * |
| * Based on: |
| * TI AM335x boards information header |
| * |
| * Copyright (C) 2011, Texas Instruments, Incorporated - https://www.ti.com/ |
| */ |
| |
| #ifndef _BOARD_H_ |
| #define _BOARD_H_ |
| |
| /* Definition to control the GPIOs (for LEDs and Reset) */ |
| #define GPIO_TO_PIN(bank, gpio) (32 * (bank) + (gpio)) |
| |
| static inline int board_is_b_sample(void) |
| { |
| #if defined CONFIG_B_SAMPLE |
| return 1; |
| #else |
| return 0; |
| #endif |
| } |
| |
| static inline int board_is_c_sample(void) |
| { |
| #if defined CONFIG_C_SAMPLE |
| return 1; |
| #else |
| return 0; |
| #endif |
| } |
| |
| static inline int board_is_c3_sample(void) |
| { |
| #if defined CONFIG_C3_SAMPLE |
| return 1; |
| #else |
| return 0; |
| #endif |
| } |
| |
| static inline int board_is_series(void) |
| { |
| #if defined CONFIG_SERIES |
| return 1; |
| #else |
| return 0; |
| #endif |
| } |
| |
| /* |
| * Definitions for pinmuxing header and Board ID strings |
| */ |
| #if defined CONFIG_B_SAMPLE |
| # define BOARD_ID_STR "SHC B-Sample\n" |
| #elif defined CONFIG_B2_SAMPLE |
| # define BOARD_ID_STR "SHC B2-Sample\n" |
| #elif defined CONFIG_C_SAMPLE |
| # if defined(CONFIG_SHC_NETBOOT) |
| # define BOARD_ID_STR "#### NETBOOT ####\nSHC C-Sample\n" |
| # elif defined(CONFIG_SHC_SDBOOT) |
| # define BOARD_ID_STR "#### SDBOOT ####\nSHC C-Sample\n" |
| # else |
| # define BOARD_ID_STR "SHC C-Sample\n" |
| # endif |
| #elif defined CONFIG_C2_SAMPLE |
| # if defined(CONFIG_SHC_ICT) |
| # define BOARD_ID_STR "#### ICT ####\nSHC C2-Sample\n" |
| # elif defined(CONFIG_SHC_NETBOOT) |
| # define BOARD_ID_STR "#### NETBOOT ####\nSHC C2-Sample\n" |
| # elif defined(CONFIG_SHC_SDBOOT) |
| # define BOARD_ID_STR "#### SDBOOT ####\nSHC C2-Sample\n" |
| # else |
| # define BOARD_ID_STR "SHC C2-Sample\n" |
| # endif |
| #elif defined CONFIG_C3_SAMPLE |
| # if defined(CONFIG_SHC_ICT) |
| # define BOARD_ID_STR "#### ICT ####\nSHC C3-Sample\n" |
| # elif defined(CONFIG_SHC_NETBOOT) |
| # define BOARD_ID_STR "#### NETBOOT ####\nSHC C3-Sample\n" |
| # elif defined(CONFIG_SHC_SDBOOT) |
| # define BOARD_ID_STR "#### SDBOOT ####\nSHC C3-Sample\n" |
| # else |
| # define BOARD_ID_STR "SHC C3-Sample\n" |
| # endif |
| #elif defined CONFIG_SERIES |
| # if defined(CONFIG_SHC_ICT) |
| # define BOARD_ID_STR "#### ICT ####\nSHC\n" |
| # elif defined(CONFIG_SHC_NETBOOT) |
| # define BOARD_ID_STR "#### NETBOOT ####\nSHC\n" |
| # elif defined(CONFIG_SHC_SDBOOT) |
| # define BOARD_ID_STR "#### SDBOOT ####\nSHC\n" |
| # else |
| # define BOARD_ID_STR "SHC\n" |
| # endif |
| #else |
| # define BOARD_ID_STR "Unknown device!\n" |
| #endif |
| |
| /* |
| * Definitions for GPIO pin assignments |
| */ |
| #if defined CONFIG_B_SAMPLE |
| |
| # define LED_PWR_BL_GPIO GPIO_TO_PIN(1, 17) |
| # define LED_PWR_RD_GPIO GPIO_TO_PIN(1, 18) |
| # define LED_PWR_GN_GPIO GPIO_TO_PIN(1, 19) |
| # define LED_CONN_BL_GPIO GPIO_TO_PIN(0, 26) |
| # define LED_CONN_RD_GPIO GPIO_TO_PIN(0, 22) |
| # define LED_CONN_GN_GPIO GPIO_TO_PIN(0, 23) |
| # define RESET_GPIO GPIO_TO_PIN(1, 29) |
| # define WIFI_REGEN_GPIO GPIO_TO_PIN(1, 16) |
| # define WIFI_RST_GPIO GPIO_TO_PIN(0, 27) |
| # define ZIGBEE_RST_GPIO GPIO_TO_PIN(3, 18) |
| # define BIDCOS_RST_GPIO GPIO_TO_PIN(0, 12) |
| # define ENOC_RST_GPIO GPIO_TO_PIN(1, 22) |
| |
| #else |
| |
| # define LED_PWR_BL_GPIO GPIO_TO_PIN(0, 22) |
| # define LED_PWR_RD_GPIO GPIO_TO_PIN(0, 23) |
| # define LED_LAN_BL_GPIO GPIO_TO_PIN(1, 17) |
| # define LED_LAN_RD_GPIO GPIO_TO_PIN(0, 26) |
| # define LED_CLOUD_BL_GPIO GPIO_TO_PIN(1, 18) |
| # define LED_CLOUD_RD_GPIO GPIO_TO_PIN(2, 2) |
| # define LED_PWM_GPIO GPIO_TO_PIN(1, 19) |
| # define RESET_GPIO GPIO_TO_PIN(1, 29) |
| # define WIFI_REGEN_GPIO GPIO_TO_PIN(1, 16) |
| # define WIFI_RST_GPIO GPIO_TO_PIN(0, 27) |
| # define ZIGBEE_RST_GPIO GPIO_TO_PIN(3, 18) |
| # define BIDCOS_RST_GPIO GPIO_TO_PIN(1, 24) |
| # define Z_WAVE_RST_GPIO GPIO_TO_PIN(1, 21) |
| # define ENOC_RST_GPIO GPIO_TO_PIN(1, 22) |
| |
| #endif |
| |
| #define BACK_BUTTON_GPIO GPIO_TO_PIN(1, 29) |
| #define FRONT_BUTTON_GPIO GPIO_TO_PIN(1, 25) |
| |
| /* Reset is on GPIO pin 29 of GPIO bank 1 */ |
| #define RESET_MASK (0x1 << 29) |
| |
| #define HDR_MAGIC 0x43485342 |
| #define HDR_ETH_ALEN 6 |
| #define HDR_NAME_LEN 8 |
| #define HDR_REV_LEN 8 |
| #define HDR_SER_LEN 16 |
| #define HDR_ROOT_LEN 12 |
| #define HDR_FATC_LEN 12 |
| |
| /* |
| * SHC parameters held in On-Board I²C EEPROM device. |
| * |
| * Header Format |
| * |
| * Name Size Contents |
| *------------------------------------------------------------- |
| * Magic 4 0x42 0x53 0x48 0x43 [BSHC] |
| * |
| * Version 2 0x0100 for v1.0 |
| * |
| * Lenght 2 The length of the complete structure, not only this header |
| * |
| * Eth-MAC 6 Ethernet MAC Address |
| * SHC Pool: 7C:AC:B2:00:10:01 - TBD |
| * |
| * --- Further values follow, not important for Bootloader --- |
| */ |
| |
| struct shc_eeprom { |
| u32 magic; |
| u16 version; |
| u16 lenght; |
| uint8_t mac_addr[HDR_ETH_ALEN]; |
| }; |
| |
| void enable_uart0_pin_mux(void); |
| void enable_shc_board_pin_mux(void); |
| void enable_shc_board_pwm_pin_mux(void); |
| |
| #endif |