Skip to content

Commit 93f2f8c

Browse files
committed
driver: wifi: esp32: add driver set_config interface
Allows set the device macaddress. > net iface set_mac 1 aa:bb:cc:dd:ee:ff > wifi connect -s ssid -p password -k 1 Signed-off-by: Sylvio Alves <[email protected]>
1 parent 8469084 commit 93f2f8c

File tree

2 files changed

+29
-0
lines changed

2 files changed

+29
-0
lines changed

drivers/wifi/esp32/src/esp_wifi_drv.c

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -890,6 +890,32 @@ static int esp32_wifi_dev_init(const struct device *dev)
890890
return 0;
891891
}
892892

893+
static int esp32_wifi_set_config(const struct device *dev, enum ethernet_config_type type,
894+
const struct ethernet_config *config)
895+
{
896+
struct esp32_wifi_runtime *dev_data = dev->data;
897+
898+
switch (type) {
899+
case ETHERNET_CONFIG_TYPE_MAC_ADDRESS:
900+
esp_wifi_set_mode(ESP32_WIFI_MODE_STA);
901+
memcpy(dev_data->mac_addr, config->mac_address.addr, 6);
902+
net_if_set_link_addr(esp32_wifi_iface, dev_data->mac_addr,
903+
sizeof(dev_data->mac_addr), NET_LINK_ETHERNET);
904+
905+
esp_err_t ret = esp_wifi_set_mac(WIFI_IF_STA, dev_data->mac_addr);
906+
907+
if (ret != ESP_OK) {
908+
printk("Failed to set mac address: %d\n", ret);
909+
}
910+
911+
break;
912+
default:
913+
return -ENOTSUP;
914+
}
915+
916+
return 0;
917+
}
918+
893919
static const struct wifi_mgmt_ops esp32_wifi_mgmt = {
894920
.scan = esp32_wifi_scan,
895921
.connect = esp32_wifi_connect,
@@ -904,6 +930,7 @@ static const struct wifi_mgmt_ops esp32_wifi_mgmt = {
904930

905931
static const struct net_wifi_mgmt_offload esp32_api = {
906932
.wifi_iface.iface_api.init = esp32_wifi_init,
933+
.wifi_iface.set_config = esp32_wifi_set_config,
907934
.wifi_iface.send = esp32_wifi_send,
908935
.wifi_mgmt_api = &esp32_wifi_mgmt,
909936
};

samples/net/wifi/shell/socs/esp32_procpu.conf

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,5 @@ CONFIG_NET_DHCPV4=y
99
CONFIG_ESP32_WIFI_STA_AUTO_DHCPV4=y
1010

1111
CONFIG_NET_LOG=y
12+
13+
CONFIG_NET_L2_ETHERNET_MGMT=y

0 commit comments

Comments
 (0)