Skip to content

Commit e0b95bf

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 e0b95bf

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

drivers/wifi/esp32/src/esp_wifi_drv.c

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -890,6 +890,33 @@ 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+
902+
esp_err_t ret = esp_wifi_set_mac(WIFI_IF_STA, config->mac_address.addr);
903+
904+
if (ret == ESP_OK) {
905+
memcpy(dev_data->mac_addr, config->mac_address.addr, 6);
906+
net_if_set_link_addr(esp32_wifi_iface, dev_data->mac_addr,
907+
sizeof(dev_data->mac_addr), NET_LINK_ETHERNET);
908+
} else {
909+
printk("Failed to set mac address: %d\n", ret);
910+
}
911+
912+
break;
913+
default:
914+
return -ENOTSUP;
915+
}
916+
917+
return 0;
918+
}
919+
893920
static const struct wifi_mgmt_ops esp32_wifi_mgmt = {
894921
.scan = esp32_wifi_scan,
895922
.connect = esp32_wifi_connect,
@@ -904,6 +931,7 @@ static const struct wifi_mgmt_ops esp32_wifi_mgmt = {
904931

905932
static const struct net_wifi_mgmt_offload esp32_api = {
906933
.wifi_iface.iface_api.init = esp32_wifi_init,
934+
.wifi_iface.set_config = esp32_wifi_set_config,
907935
.wifi_iface.send = esp32_wifi_send,
908936
.wifi_mgmt_api = &esp32_wifi_mgmt,
909937
};

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)