diff --git a/drivers/wifi/eswifi/eswifi.h b/drivers/wifi/eswifi/eswifi.h index 3bcdbb94b76..396defedb5d 100644 --- a/drivers/wifi/eswifi/eswifi.h +++ b/drivers/wifi/eswifi/eswifi.h @@ -124,7 +124,7 @@ struct eswifi_dev *eswifi_socket_to_dev(struct eswifi_off_socket *socket) return CONTAINER_OF(socket - socket->index, struct eswifi_dev, socket); } -extern struct eswifi_bus_ops eswifi_bus_ops_spi; +struct eswifi_bus_ops *eswifi_get_bus(void); int eswifi_offload_init(struct eswifi_dev *eswifi); struct eswifi_dev *eswifi_by_iface_idx(uint8_t iface); int eswifi_at_cmd_rsp(struct eswifi_dev *eswifi, char *cmd, char **rsp); diff --git a/drivers/wifi/eswifi/eswifi_bus_spi.c b/drivers/wifi/eswifi/eswifi_bus_spi.c index 06c61c62db0..b930f37c51b 100644 --- a/drivers/wifi/eswifi/eswifi_bus_spi.c +++ b/drivers/wifi/eswifi/eswifi_bus_spi.c @@ -272,7 +272,12 @@ int eswifi_spi_init(struct eswifi_dev *eswifi) return 0; } -struct eswifi_bus_ops eswifi_bus_ops_spi = { +static struct eswifi_bus_ops eswifi_bus_ops_spi = { .init = eswifi_spi_init, .request = eswifi_spi_request, }; + +struct eswifi_bus_ops *eswifi_get_bus(void) +{ + return &eswifi_bus_ops_spi; +} diff --git a/drivers/wifi/eswifi/eswifi_core.c b/drivers/wifi/eswifi/eswifi_core.c index ebeed3e3f2c..1dacffc5447 100644 --- a/drivers/wifi/eswifi/eswifi_core.c +++ b/drivers/wifi/eswifi/eswifi_core.c @@ -637,7 +637,7 @@ static int eswifi_init(const struct device *dev) eswifi->role = ESWIFI_ROLE_CLIENT; k_mutex_init(&eswifi->mutex); - eswifi->bus = &eswifi_bus_ops_spi; + eswifi->bus = eswifi_get_bus(); eswifi->bus->init(eswifi); eswifi->resetn.dev = device_get_binding(