DRIVER_API
Modules | |
FULL_MAC_DRIVER_API | |
| |
GENERAL_DRIVER_API | |
|
Functions | |
sl_status_t | sl_wfx_init (sl_wfx_context_t *context) |
Init the Wi-Fi chip. | |
sl_status_t | sl_wfx_deinit (void) |
Deinit the Wi-Fi chip. | |
sl_status_t | sl_wfx_send_command (uint8_t command_id, void *data, uint32_t data_size, sl_wfx_interface_t interface, sl_wfx_generic_confirmation_t **response) |
Send a command to WF200. | |
sl_status_t | sl_wfx_send_request (uint8_t command_id, sl_wfx_generic_message_t *request, uint16_t request_length) |
Send a request to the Wi-Fi chip. | |
sl_status_t | sl_wfx_receive_frame (uint16_t *ctrl_reg) |
Receive available frame from the Wi-Fi chip. | |
sl_status_t | sl_wfx_enable_irq (void) |
Enable the Wi-Fi chip irq. | |
sl_status_t | sl_wfx_disable_irq (void) |
Disable the Wi-Fi chip irq. | |
sl_status_t | sl_wfx_set_access_mode_message (void) |
Set access mode message. | |
sl_status_t | sl_wfx_set_wake_up_bit (uint8_t state) |
Set the Wi-Fi chip wake up bit. | |
static sl_status_t | sl_wfx_init_chip (void) |
Init the Wi-Fi chip. | |
static sl_status_t | sl_wfx_download_run_bootloader (void) |
run the Wi-Fi chip bootloader | |
static sl_status_t | sl_wfx_download_run_firmware (void) |
Download the Wi-Fi chip firmware. | |
static sl_status_t | sl_wfx_poll_for_value (uint32_t address, uint32_t polled_value, uint32_t max_retries) |
Poll a value from the Wi-Fi chip. | |
static sl_status_t | sl_wfx_compare_keysets (uint8_t chip_keyset, char *firmware_keyset) |
Compare the chip keyset and the firmware one to check compatibility. | |
sl_status_t | sl_wfx_set_antenna_config (sl_wfx_antenna_config_t config) |
Configure the antenna setting (done through the PDS) | |
sl_status_t | sl_wfx_get_hardware_revision_and_type (uint8_t *revision, uint8_t *type) |
Retrieve the hardware version and type. | |
sl_status_t | sl_wfx_get_opn (uint8_t **opn) |
Get the part opn. | |
sl_status_t | sl_wfx_allocate_command_buffer (sl_wfx_generic_message_t **buffer, uint32_t command_id, uint32_t buffer_size, uint32_t wait_duration_ms) |
Allocate a buffer for the Wi-Fi driver. |
Function Documentation
◆ sl_wfx_allocate_command_buffer()
sl_status_t sl_wfx_allocate_command_buffer | ( | sl_wfx_generic_message_t ** | buffer, |
uint32_t | command_id, |
||
uint32_t | buffer_size, |
||
uint32_t | wait_duration_ms |
||
) |
Allocate a buffer for the Wi-Fi driver.
- Parameters
-
buffer
command_id
is the ID of the command to check if encryption is required buffer_size
is the size of the buffer to allocate wait_duration_ms
is the duration before returning SL_TIMEOUT
- Returns
- SL_SUCCESS if the values are retrieved correctly, SL_TIMEOUT if the buffer is not allocated in time, SL_ERROR otherwise
Definition at line 1805
of file sl_wfx.c
.
Referenced by sl_wfx_send_command()
, sl_wfx_send_configuration()
, sl_wfx_send_join_command()
, sl_wfx_send_scan_command()
, sl_wfx_set_roam_parameters()
, sl_wfx_shutdown()
, sl_wfx_start_ap_command()
, and sl_wfx_update_ap_command()
.
◆ sl_wfx_compare_keysets()
|
static |
Compare the chip keyset and the firmware one to check compatibility.
- Parameters
-
chip_keyset
is the value retrieved from the Wi-Fi chip firmware_keyset
is the 8 first bytes of the firmware
- Returns
- SL_SUCCESS if the firmware is compatible with the WF200, SL_WIFI_INVALID_KEY otherwise
Definition at line 1706
of file sl_wfx.c
.
Referenced by sl_wfx_download_run_firmware()
.
◆ sl_wfx_deinit()
sl_status_t sl_wfx_deinit | ( | void |
| ) |
Deinit the Wi-Fi chip.
- Returns
- Returns SL_SUCCESS if the deinitialization is successful, SL_ERROR otherwise
Definition at line 170
of file sl_wfx.c
.
References sl_wfx_disable_irq()
, and sl_wfx_shutdown()
.
◆ sl_wfx_disable_irq()
sl_status_t sl_wfx_disable_irq | ( | void |
| ) |
Disable the Wi-Fi chip irq.
- Returns
- SL_SUCCESS if the irq is disabled correctly, SL_ERROR otherwise
- Note
- Disable the host irq and set the Wi-Fi chip register accordingly
Definition at line 1334
of file sl_wfx.c
.
Referenced by sl_wfx_deinit()
, and sl_wfx_init()
.
◆ sl_wfx_download_run_bootloader()
|
static |
run the Wi-Fi chip bootloader
- Returns
- SL_SUCCESS if the bootloader runs correctly, SL_ERROR otherwise
Definition at line 1473
of file sl_wfx.c
.
Referenced by sl_wfx_init()
.
◆ sl_wfx_download_run_firmware()
|
static |
Download the Wi-Fi chip firmware.
- Returns
- SL_SUCCESS if the firmware is downloaded correctly, SL_WIFI_INVALID_KEY if the firmware keyset does not match the chip one, SL_WIFI_FIRMWARE_DOWNLOAD_TIMEOUT or SL_TIMEOUT if the process times out, SL_ERROR otherwise
Definition at line 1512
of file sl_wfx.c
.
References sl_wfx_compare_keysets()
, and sl_wfx_poll_for_value()
.
Referenced by sl_wfx_init()
.
◆ sl_wfx_enable_irq()
sl_status_t sl_wfx_enable_irq | ( | void |
| ) |
Enable the Wi-Fi chip irq.
- Returns
- SL_SUCCESS if the irq is enabled correctly, SL_ERROR otherwise
- Note
- Enable the host irq and set the Wi-Fi chip register accordingly
Definition at line 1307
of file sl_wfx.c
.
Referenced by sl_wfx_init()
.
◆ sl_wfx_get_hardware_revision_and_type()
sl_status_t sl_wfx_get_hardware_revision_and_type | ( | uint8_t * | revision, |
uint8_t * | type |
||
) |
Retrieve the hardware version and type.
- Parameters
-
revision
is the pointer to retrieve the revision version type
is the pointer to retrieve the type
- Returns
- SL_SUCCESS if the values are retrieved correctly, SL_ERROR otherwise
Definition at line 1765
of file sl_wfx.c
.
◆ sl_wfx_get_opn()
sl_status_t sl_wfx_get_opn | ( | uint8_t ** | opn | ) |
Get the part opn.
- Parameters
-
opn
- Returns
- SL_SUCCESS if the values are retrieved correctly, SL_ERROR otherwise
Definition at line 1783
of file sl_wfx.c
.
References sl_wfx_context_t::opn
.
◆ sl_wfx_init()
sl_status_t sl_wfx_init | ( | sl_wfx_context_t * | context | ) |
Init the Wi-Fi chip.
Copyright 2018, Silicon Laboratories Inc.
- Parameters
-
context
maintain the Wi-Fi chip information
- Returns
- Returns SL_SUCCESS if the initialization is successful, SL_ERROR otherwise
- Note
- Actions performed by sl_wfx_init(): Reset -> load firmware -> send PDS
Definition at line 78
of file sl_wfx.c
.
References sl_wfx_context_t::mac_addr_0
, sl_wfx_context_t::mac_addr_1
, sl_wfx_disable_irq()
, sl_wfx_download_run_bootloader()
, sl_wfx_download_run_firmware()
, sl_wfx_enable_irq()
, sl_wfx_init_chip()
, sl_wfx_send_configuration()
, sl_wfx_set_access_mode_message()
, SL_WFX_STARTUP_IND_ID
, and sl_wfx_context_t::waited_event_id
.
◆ sl_wfx_init_chip()
|
static |
Init the Wi-Fi chip.
- Returns
- SL_SUCCESS if the initialization is successful, SL_ERROR otherwise
Definition at line 1411
of file sl_wfx.c
.
Referenced by sl_wfx_init()
.
◆ sl_wfx_poll_for_value()
|
static |
Poll a value from the Wi-Fi chip.
- Parameters
-
address
is the address of the value to be polled polled_value
waiting for the value to be equal to polled_value max_retries
is the number of polling to be done before returning SL_TIMEOUT
- Returns
- SL_SUCCESS if the value is received correctly, SL_TIMEOUT if the value is not found in time, SL_ERROR if not able to poll the value from the Wi-Fi chip
Definition at line 1676
of file sl_wfx.c
.
Referenced by sl_wfx_download_run_firmware()
.
◆ sl_wfx_receive_frame()
sl_status_t sl_wfx_receive_frame | ( | uint16_t * | ctrl_reg | ) |
Receive available frame from the Wi-Fi chip.
- Parameters
-
ctrl_reg
is the control register value of the last call of sl_wfx_receive_frame(). If equal to 0, the driver will read the control register.
- Returns
- SL_SUCCESS if the frame has been received correctly, SL_WIFI_NO_PACKET_TO_RECEIVE if no frame are pending inside the Wi-Fi chip SL_ERROR otherwise
Definition at line 1252
of file sl_wfx.c
.
◆ sl_wfx_send_command()
sl_status_t sl_wfx_send_command | ( | uint8_t | command_id, |
void * | data, |
||
uint32_t | data_size, |
||
sl_wfx_interface_t | interface, |
||
sl_wfx_generic_confirmation_t ** | response |
||
) |
Send a command to WF200.
- Parameters
-
command_id
is the ID of the command to be sent (cf. wfm_fm_api.h) data
is the pointer to the data to be sent by the command data_size
is the size of the data to be sent interface
is the interface affected by the command response
is a pointer to the response retrieved - SL_WFX_STA_INTERFACE
- SL_WFX_SOFTAP_INTERFACE
- Returns
- SL_SUCCESS if the command is sent correctly, SL_ERROR otherwise
Definition at line 1179
of file sl_wfx.c
.
References sl_wfx_generic_message_t::body
, sl_wfx_generic_message_t::header
, sl_wfx_header_t::info
, sl_wfx_allocate_command_buffer()
, sl_wfx_send_request()
, and WFM_STATUS_SUCCESS
.
Referenced by sl_wfx_add_blacklist_address()
, sl_wfx_add_multicast_address()
, sl_wfx_add_whitelist_address()
, sl_wfx_control_gpio()
, sl_wfx_disconnect_ap_client_command()
, sl_wfx_get_max_tx_power()
, sl_wfx_get_signal_strength()
, sl_wfx_join_ibss_command()
, sl_wfx_leave_ibss_command()
, sl_wfx_prevent_rollback()
, sl_wfx_remove_multicast_address()
, sl_wfx_send_disconnect_command()
, sl_wfx_send_stop_scan_command()
, sl_wfx_set_arp_ip_address()
, sl_wfx_set_broadcast_filter()
, sl_wfx_set_mac_address()
, sl_wfx_set_max_ap_client()
, sl_wfx_set_max_ap_client_inactivity()
, sl_wfx_set_max_tx_power()
, sl_wfx_set_ns_ip_address()
, sl_wfx_set_power_mode()
, sl_wfx_set_scan_parameters()
, sl_wfx_set_tx_rate_parameters()
, sl_wfx_set_unicast_filter()
, and sl_wfx_stop_ap_command()
.
◆ sl_wfx_send_request()
sl_status_t sl_wfx_send_request | ( | uint8_t | command_id, |
sl_wfx_generic_message_t * | request, |
||
uint16_t | request_length |
||
) |
Send a request to the Wi-Fi chip.
- Parameters
-
command_id
is the ID of the command to be sent (cf. wfm_fm_api.h) request
is the pointer to the request to be sent request_length
is the size of the request to be sent
- Returns
- SL_SUCCESS if the command is sent correctly, SL_ERROR otherwise
Definition at line 1230
of file sl_wfx.c
.
References sl_wfx_generic_message_t::header
, sl_wfx_header_t::id
, sl_wfx_header_t::length
, sl_wfx_context_t::posted_event_id
, and sl_wfx_context_t::waited_event_id
.
Referenced by sl_wfx_send_command()
, sl_wfx_send_configuration()
, sl_wfx_send_ethernet_frame()
, sl_wfx_send_join_command()
, sl_wfx_send_scan_command()
, sl_wfx_set_roam_parameters()
, sl_wfx_shutdown()
, sl_wfx_start_ap_command()
, and sl_wfx_update_ap_command()
.
◆ sl_wfx_set_access_mode_message()
sl_status_t sl_wfx_set_access_mode_message | ( | void |
| ) |
Set access mode message.
- Returns
- SL_SUCCESS if the message mode is enabled correctly, SL_ERROR otherwise
Definition at line 1360
of file sl_wfx.c
.
Referenced by sl_wfx_init()
.
◆ sl_wfx_set_antenna_config()
sl_status_t sl_wfx_set_antenna_config | ( | sl_wfx_antenna_config_t | config | ) |
Configure the antenna setting (done through the PDS)
- Parameters
-
config
is the antenna configuration to be used. - SL_WFX_ANTENNA_1_ONLY
- SL_WFX_ANTENNA_2_ONLY
- SL_WFX_ANTENNA_TX1_RX2
- SL_WFX_ANTENNA_TX2_RX1
- SL_WFX_ANTENNA_DIVERSITY
- Returns
- SL_SUCCESS if the setting is applied correctly, SL_ERROR otherwise
Definition at line 1736
of file sl_wfx.c
.
References sl_wfx_send_configuration()
.
◆ sl_wfx_set_wake_up_bit()
sl_status_t sl_wfx_set_wake_up_bit | ( | uint8_t | state | ) |
Set the Wi-Fi chip wake up bit.
- Parameters
-
state
is the state of the wake up bit to configure
- Returns
- SL_SUCCESS if the bit has been set correctly, SL_ERROR otherwise
Definition at line 1382
of file sl_wfx.c
.
Referenced by sl_wfx_shutdown()
.