1 /* 2 * Copyright (c) 2006-2021, RT-Thread Development Team 3 * 4 * SPDX-License-Identifier: Apache-2.0 5 * 6 * Change Logs: 7 * Date Author Notes 8 * 2021-06-16 songchao first version 9 * 2021-08-13 songchao add more device info 10 */ 11 12 #ifndef __DRV_ETH_H__ 13 #define __DRV_ETH_H__ 14 15 #include <rtthread.h> 16 #include <netif/ethernetif.h> 17 #include "fsl_phy.h" 18 #include "imx6ull.h" 19 #include "drv_common.h" 20 21 #ifdef __cplusplus 22 extern "C" { 23 #endif 24 25 #define MAX_ADDR_LEN 6 26 struct rt_imx6ul_ethps 27 { 28 /* inherit from ethernet device */ 29 struct eth_device parent; 30 /* interface address info, hw address */ 31 rt_uint8_t dev_addr[MAX_ADDR_LEN]; 32 /* ETH_Speed */ 33 uint32_t ETH_Speed; 34 /* ETH_Duplex_Mode */ 35 uint32_t ETH_Mode; 36 rt_bool_t phy_link_status; 37 const char *mac_name; 38 const char *irq_name; 39 enum _imx_interrupts irq_num; 40 uint8_t phy_num; 41 const ENET_Type *enet_phy_base_addr; 42 ENET_Type *enet_virtual_base_addr; 43 uint32_t mac_num; 44 enet_buffer_config_t buffConfig; 45 enet_config_t config; 46 enet_handle_t handle; 47 struct imx6ull_iomuxc gpio[9]; 48 GPIO_Type *phy_base_addr; 49 uint32_t phy_gpio_pin; 50 uint32_t phy_id; 51 }; 52 53 int32_t get_instance_by_base(void *base); 54 #ifdef __cplusplus 55 } 56 #endif 57 58 #endif /* __DRV_ETH_H__ */ 59