223 lines
5.8 KiB
C
223 lines
5.8 KiB
C
/****************************************************************************
|
|
|
|
Copyright(c) 2019 by Aerospace C.Power (Chongqing) Microelectronics. ALL RIGHTS RESERVED.
|
|
|
|
This Information is proprietary to Aerospace C.Power (Chongqing) Microelectronics and MAY NOT
|
|
be copied by any method or incorporated into another program without
|
|
the express written consent of Aerospace C.Power. This Information or any portion
|
|
thereof remains the property of Aerospace C.Power. The Information contained herein
|
|
is believed to be accurate and Aerospace C.Power assumes no responsibility or
|
|
liability for its use in any way and conveys no license or title under
|
|
any patent or copyright and makes no representation or warranty that this
|
|
Information is free from patent or copyright infringement.
|
|
|
|
****************************************************************************/
|
|
|
|
#ifndef BOARD_INFO_H
|
|
#define BOARD_INFO_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
|
|
#define BOARD_OEM_INFO_SIZE_MAX (8192)
|
|
|
|
|
|
/**
|
|
* @brief load oem configuration information from oem partition,
|
|
* then set module type.
|
|
* @return ERR_OK -- ok
|
|
* others -- error
|
|
*/
|
|
uint32_t board_load_oem_cfg();
|
|
|
|
/**
|
|
* @brief dump board gpio resource configuration information.
|
|
*/
|
|
void board_resource_cfg_dump();
|
|
|
|
/**
|
|
* @brief board_lookup_uart_port() - get a uart port
|
|
* @param type: the define UART_xxxx_PORT
|
|
*
|
|
* @return uart port
|
|
*/
|
|
uint8_t board_lookup_uart_port(uint8_t type);
|
|
|
|
/**
|
|
* @brief board_lookup_pwm_ch() - get pwm channel
|
|
* @param type: pwm channel type, see PWM_CH_TYPE_XXX.
|
|
* @retval: pwm channel num, see IOT_PWM_CHANNEL_XXX.
|
|
*/
|
|
uint8_t board_lookup_pwm_ch(uint8_t type);
|
|
|
|
/**
|
|
* @brief board_lookup_gpio() - get a gpio
|
|
* @param type: the define GPIO_XXX
|
|
*
|
|
* @return gpio pin
|
|
*/
|
|
uint8_t board_lookup_gpio(uint8_t type);
|
|
|
|
/**
|
|
* @brief board_get_adc() - get an adc channel
|
|
* @param type: adc's type, see ADC_XXX.
|
|
*
|
|
* @return adc's channel, see ADC_CHANNEL enum.
|
|
*/
|
|
uint8_t board_get_adc(uint8_t type);
|
|
|
|
/**
|
|
* @brief board_get_led() - get a led's gpio
|
|
* @param type: led's id, see IOT_LED_TYPE enum.
|
|
*
|
|
* @return gpio pin
|
|
*/
|
|
uint8_t board_get_led(uint8_t type);
|
|
|
|
/**
|
|
* @brief board_get_led_cnt() - get a led's total number
|
|
*
|
|
* @return total number of led
|
|
*/
|
|
uint8_t board_get_led_cnt();
|
|
|
|
/**
|
|
* @brief board_get_led_id() - get a led's id
|
|
* @param sig_out: gpio matrix signal out number, see IOT_LED_SIG_OUT enum.
|
|
*
|
|
* @return id of led, see IOT_LED_TYPE enum.
|
|
*/
|
|
uint8_t board_get_led_id(uint8_t sig_out);
|
|
|
|
/**
|
|
* @brief bond/unbond debug uart pin
|
|
* @param enable:
|
|
* true -- bond uart pin;
|
|
* false -- unbond uart pin;
|
|
*/
|
|
void board_debug_uart_pin_bond(bool_t enable);
|
|
|
|
/**
|
|
* @brief board_get_cert_test_uart_type() - get cert test uart type.
|
|
*
|
|
* @return cert test uart type.
|
|
*/
|
|
uint8_t board_get_cert_test_uart_type(void);
|
|
|
|
/**
|
|
* @brief check if this board use rmii or not.
|
|
*
|
|
* @return true - this board use rmii interface
|
|
* false - this board not use eth rmii interface
|
|
*/
|
|
bool_t board_support_rmii(void);
|
|
|
|
/**
|
|
* @brief check if this board use 6 way zero-crossing.
|
|
*
|
|
* @return true - this board use 6 way zero-crossing
|
|
* false - this board not use 6 way zero-crossing
|
|
*/
|
|
bool_t board_support_zc6(void);
|
|
|
|
/**
|
|
* @brief check if this board use pulse for zero crossing.
|
|
*
|
|
* @return true - this board use pulse
|
|
* false - this board not use pulse
|
|
*/
|
|
bool_t board_support_zc_pulse(void);
|
|
|
|
/**
|
|
* @brief check if this board use high precision zero crossing.
|
|
*
|
|
* @return true - this board use high precision
|
|
* false - this board not use high precision
|
|
*/
|
|
bool_t board_support_zc_high_precision(void);
|
|
|
|
/**
|
|
* @brief get ntb offset between collected zc and real zc
|
|
*
|
|
* @return offset ntb, negative offset means collected zc is earlier than
|
|
* real zc, unit is 0.04us
|
|
*/
|
|
int32_t board_get_zc_ntb_offset(void);
|
|
|
|
/**
|
|
* @brief check if this board use extend gpio switch reverse zero crossing.
|
|
*
|
|
* @return true - this board use extend gpio switch
|
|
* false - this board not use extend gpio switch
|
|
*/
|
|
bool_t board_support_rev_zc_ext_gpio_switch(void);
|
|
|
|
/**
|
|
* @brief check if this board use failing edge for zero crossing.
|
|
*
|
|
* @return true - this board use failing edge
|
|
* false - this board not use failing edge
|
|
*/
|
|
bool_t board_zc_edge_is_failing(void);
|
|
|
|
/**
|
|
* @brief check if this board support topo rx or not.
|
|
*
|
|
* @return true - this board support topo rx
|
|
* false - this board not support topo rx
|
|
*/
|
|
bool_t board_support_topo_rx(void);
|
|
|
|
/**
|
|
* @brief get number of external uart port.
|
|
* @return number of external uart port.
|
|
*/
|
|
uint8_t board_get_external_uart_port_num(void);
|
|
|
|
/**
|
|
* @brief get number of virtual uart port.
|
|
* @return number of virtual uart port.
|
|
*/
|
|
uint8_t board_get_virtual_uart_port_num(void);
|
|
|
|
/**
|
|
* @brief get number of DMA uart port USED on this board.
|
|
* @return number of uart port.
|
|
*/
|
|
uint8_t board_get_dma_uart_port_num(void);
|
|
|
|
/**
|
|
* @brief get number of uart port on KL chip.
|
|
* @return number of uart port.
|
|
*/
|
|
uint8_t board_get_onchip_uart_port_num(void);
|
|
|
|
/**
|
|
* @brief get number of interkernel communication uart port.
|
|
* @return number of uart port.
|
|
*/
|
|
uint8_t board_get_interkernel_communication_uart_port_num(void);
|
|
|
|
/**
|
|
* @brief get the reason of system reset and set default reset reason.
|
|
* @param p_reset_type - get reset type
|
|
* @param p_soft_reset_type - get software reset type.
|
|
*/
|
|
void board_reset_reason_get(uint8_t *p_reset_type, uint8_t *p_soft_reset_type);
|
|
|
|
/**
|
|
* @brief check if this board is 5v power in or not.
|
|
*
|
|
* @return true - this board is 5v power in
|
|
* false - this board is not 5v power in
|
|
*/
|
|
bool_t board_is_5v_power_in(void);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* BOARD_INFO_H */
|