update: remove old bl616 wifi driver, add new api

Signed-off-by: sakumisu <1203593632@qq.com>
This commit is contained in:
sakumisu
2025-12-03 17:26:50 +08:00
parent 670bde3671
commit 006123c296
5 changed files with 182 additions and 108 deletions

View File

@@ -21,7 +21,6 @@
// #define CONFIG_USBHOST_PLATFORM_CDC_NCM
// #define CONFIG_USBHOST_PLATFORM_ASIX
// #define CONFIG_USBHOST_PLATFORM_RTL8152
// #define CONFIG_USBHOST_PLATFORM_BL616
struct usbh_net_netif_glue {
esp_netif_driver_base_t base;

View File

@@ -35,7 +35,6 @@
// #define CONFIG_USBHOST_PLATFORM_CDC_NCM
// #define CONFIG_USBHOST_PLATFORM_ASIX
// #define CONFIG_USBHOST_PLATFORM_RTL8152
// #define CONFIG_USBHOST_PLATFORM_BL616
ip_addr_t g_ipaddr;
ip_addr_t g_netmask;
@@ -545,104 +544,3 @@ void usbh_rtl8152_stop(struct usbh_rtl8152 *rtl8152_class)
netif_remove(netif);
}
#endif
#ifdef CONFIG_USBHOST_PLATFORM_BL616
#include "usbh_bl616.h"
struct netif g_bl616_netif;
static err_t usbh_bl616_linkoutput(struct netif *netif, struct pbuf *p)
{
int ret;
(void)netif;
usbh_lwip_eth_output_common(p, usbh_bl616_get_eth_txbuf());
ret = usbh_bl616_eth_output(p->tot_len);
if (ret < 0) {
return ERR_BUF;
} else {
return ERR_OK;
}
}
void usbh_bl616_eth_input(uint8_t *buf, uint32_t buflen)
{
usbh_lwip_eth_input_common(&g_bl616_netif, buf, buflen);
}
static err_t usbh_bl616_if_init(struct netif *netif)
{
LWIP_ASSERT("netif != NULL", (netif != NULL));
netif->mtu = 1500;
netif->flags = NETIF_FLAG_BROADCAST | NETIF_FLAG_ETHARP | NETIF_FLAG_LINK_UP;
netif->state = NULL;
netif->name[0] = 'E';
netif->name[1] = 'X';
netif->output = etharp_output;
netif->linkoutput = usbh_bl616_linkoutput;
return ERR_OK;
}
void usbh_bl616_sta_connect_callback(void)
{
}
void usbh_bl616_sta_disconnect_callback(void)
{
struct netif *netif = &g_bl616_netif;
netif_set_down(netif);
}
void usbh_bl616_sta_update_ip(uint8_t ip4_addr[4], uint8_t ip4_mask[4], uint8_t ip4_gw[4])
{
struct netif *netif = &g_bl616_netif;
IP4_ADDR(&netif->ip_addr, ip4_addr[0], ip4_addr[1], ip4_addr[2], ip4_addr[3]);
IP4_ADDR(&netif->netmask, ip4_mask[0], ip4_mask[1], ip4_mask[2], ip4_mask[3]);
IP4_ADDR(&netif->gw, ip4_gw[0], ip4_gw[1], ip4_gw[2], ip4_gw[3]);
netif_set_up(netif);
}
void usbh_bl616_run(struct usbh_bl616 *bl616_class)
{
struct netif *netif = &g_bl616_netif;
netif->hwaddr_len = 6;
memcpy(netif->hwaddr, bl616_class->sta_mac, 6);
IP4_ADDR(&g_ipaddr, 0, 0, 0, 0);
IP4_ADDR(&g_netmask, 0, 0, 0, 0);
IP4_ADDR(&g_gateway, 0, 0, 0, 0);
netif = netif_add(netif, &g_ipaddr, &g_netmask, &g_gateway, NULL, usbh_bl616_if_init, tcpip_input);
netif_set_down(netif);
netif_set_default(netif);
dhcp_handle = usb_osal_timer_create("dhcp", 200, dhcp_timeout, netif, true);
if (dhcp_handle == NULL) {
USB_LOG_ERR("timer creation failed! \r\n");
while (1) {
}
}
usb_osal_timer_start(dhcp_handle);
usb_osal_thread_create("usbh_bl616", 2048, CONFIG_USBHOST_PSC_PRIO + 1, usbh_bl616_rx_thread, NULL);
}
void usbh_bl616_stop(struct usbh_bl616 *bl616_class)
{
struct netif *netif = &g_bl616_netif;
(void)bl616_class;
netif_set_down(netif);
netif_remove(netif);
}
// #include "shell.h"
// CSH_CMD_EXPORT(wifi_sta_connect, );
// CSH_CMD_EXPORT(wifi_scan, );
#endif