110 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			110 lines
		
	
	
		
			2.3 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 IOT_ETH_API_H
 | 
						|
#define IOT_ETH_API_H
 | 
						|
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
extern "C" {
 | 
						|
#endif
 | 
						|
 | 
						|
#define EMAC_UNIT  0
 | 
						|
 | 
						|
/** \defgroup EMAC_APIs
 | 
						|
 *  @brief EMAC APIs
 | 
						|
 *
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
/* recv callback */
 | 
						|
typedef void (*eth_packet_recv)(uint8_t *data, uint32_t len);
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_eth_send_packet() - send packet list into emac's hardware queue.
 | 
						|
 * @param lst:         iot_pkt list for packets.
 | 
						|
 * @return
 | 
						|
 *
 | 
						|
 */
 | 
						|
void iot_eth_send_packet(iot_pkt_ls *lst);
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_eth_register_recv_callback() - register a recv callback
 | 
						|
 * @param recv        recv callback function.
 | 
						|
 * @return
 | 
						|
 *
 | 
						|
 */
 | 
						|
void iot_eth_register_recv_callback(eth_packet_recv recv);
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_eth_set_mac_addr() - set mac address
 | 
						|
 * @param addr        mac address
 | 
						|
 * @return
 | 
						|
 *
 | 
						|
 */
 | 
						|
void iot_eth_set_mac_addr(uint8_t *addr);
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_eth_init() - get mac address
 | 
						|
 * @param addr        mac address
 | 
						|
 * @return
 | 
						|
 *
 | 
						|
 */
 | 
						|
void iot_eth_get_mac_addr(uint8_t *addr);
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_eth_restart() - restart emac controller
 | 
						|
 *
 | 
						|
 * @return
 | 
						|
 *
 | 
						|
 */
 | 
						|
void iot_eth_restart();
 | 
						|
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_eth_get_link_status() - query link status
 | 
						|
 *
 | 
						|
 * @return 1=linked, 0=un-link
 | 
						|
 */
 | 
						|
uint8_t iot_eth_get_link_status();
 | 
						|
 | 
						|
/** \defgroup EMAC_APIs
 | 
						|
 *  @brief EMAC APIs
 | 
						|
 *
 | 
						|
 *
 | 
						|
 */
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_eth_init() - init emac subsystem
 | 
						|
 *
 | 
						|
 * @return
 | 
						|
 *
 | 
						|
 */
 | 
						|
void iot_eth_init();
 | 
						|
 | 
						|
/**
 | 
						|
 * @brief iot_eth_dinit() - deinit emac subsystem
 | 
						|
 *
 | 
						|
 * @return
 | 
						|
 *
 | 
						|
 */
 | 
						|
void iot_eth_deinit();
 | 
						|
 | 
						|
 | 
						|
#ifdef __cplusplus
 | 
						|
}
 | 
						|
#endif
 | 
						|
 | 
						|
#endif //IOT_ETH_API_H
 |