9#ifndef _CYW43_CONFIGPORT_H
10#define _CYW43_CONFIGPORT_H
20#ifndef CYW43_HOST_NAME
21#define CYW43_HOST_NAME "PicoW"
28#ifndef CYW43_LOGIC_DEBUG
29#define CYW43_LOGIC_DEBUG 0
32#ifndef CYW43_USE_OTP_MAC
33#define CYW43_USE_OTP_MAC 1
36#ifndef CYW43_NO_NETUTILS
37#define CYW43_NO_NETUTILS 1
40#ifndef CYW43_IOCTL_TIMEOUT_US
41#define CYW43_IOCTL_TIMEOUT_US 1000000
44#ifndef CYW43_USE_STATS
45#define CYW43_USE_STATS 0
49#ifndef CYW43_HAL_MAC_WLAN0
50#define CYW43_HAL_MAC_WLAN0 0
58#define CYW43_USE_SPI 1
62#define CYW43_SPI_PIO 1
65#ifndef CYW43_CHIPSET_FIRMWARE_INCLUDE_FILE
66#if CYW43_ENABLE_BLUETOOTH
67#define CYW43_CHIPSET_FIRMWARE_INCLUDE_FILE "wb43439A0_7_95_49_00_combined.h"
69#define CYW43_CHIPSET_FIRMWARE_INCLUDE_FILE "w43439A0_7_95_49_00_combined.h"
73#ifndef CYW43_WIFI_NVRAM_INCLUDE_FILE
74#define CYW43_WIFI_NVRAM_INCLUDE_FILE "wifi_nvram_43439.h"
78#define CYW43_EPERM (-PICO_ERROR_NOT_PERMITTED)
79#define CYW43_EIO (-PICO_ERROR_IO)
80#define CYW43_EINVAL (-PICO_ERROR_INVALID_ARG)
81#define CYW43_ETIMEDOUT (-PICO_ERROR_TIMEOUT)
83#ifndef CYW43_WL_GPIO_COUNT
84#define CYW43_WL_GPIO_COUNT 3
87#define CYW43_NUM_GPIOS CYW43_WL_GPIO_COUNT
89#define cyw43_hal_pin_obj_t uint
92#define CYW43_ARRAY_SIZE(a) count_of(a)
94static inline uint32_t cyw43_hal_ticks_us(
void) {
98static inline uint32_t cyw43_hal_ticks_ms(
void) {
102#if CYW43_PIN_WL_DYNAMIC
104typedef enum cyw43_pin_index_t {
105 CYW43_PIN_INDEX_WL_REG_ON,
106 CYW43_PIN_INDEX_WL_DATA_OUT,
107 CYW43_PIN_INDEX_WL_DATA_IN,
108 CYW43_PIN_INDEX_WL_HOST_WAKE,
109 CYW43_PIN_INDEX_WL_CLOCK,
110 CYW43_PIN_INDEX_WL_CS,
111 CYW43_PIN_INDEX_WL_COUNT
113#define CYW43_PIN_WL_REG_ON cyw43_get_pin_wl(CYW43_PIN_INDEX_WL_REG_ON)
114#define CYW43_PIN_WL_DATA_OUT cyw43_get_pin_wl(CYW43_PIN_INDEX_WL_DATA_OUT)
115#define CYW43_PIN_WL_DATA_IN cyw43_get_pin_wl(CYW43_PIN_INDEX_WL_DATA_IN)
116#define CYW43_PIN_WL_HOST_WAKE cyw43_get_pin_wl(CYW43_PIN_INDEX_WL_HOST_WAKE)
117#define CYW43_PIN_WL_CLOCK cyw43_get_pin_wl(CYW43_PIN_INDEX_WL_CLOCK)
118#define CYW43_PIN_WL_CS cyw43_get_pin_wl(CYW43_PIN_INDEX_WL_CS)
120uint cyw43_get_pin_wl(cyw43_pin_index_t pin_id);
123#define CYW43_PIN_WL_REG_ON CYW43_DEFAULT_PIN_WL_REG_ON
124#define CYW43_PIN_WL_DATA_OUT CYW43_DEFAULT_PIN_WL_DATA_OUT
125#define CYW43_PIN_WL_DATA_IN CYW43_DEFAULT_PIN_WL_DATA_IN
126#define CYW43_PIN_WL_HOST_WAKE CYW43_DEFAULT_PIN_WL_HOST_WAKE
127#define CYW43_PIN_WL_CLOCK CYW43_DEFAULT_PIN_WL_CLOCK
128#define CYW43_PIN_WL_CS CYW43_DEFAULT_PIN_WL_CS
131static inline int cyw43_hal_pin_read(cyw43_hal_pin_obj_t pin) {
135static inline void cyw43_hal_pin_low(cyw43_hal_pin_obj_t pin) {
139static inline void cyw43_hal_pin_high(cyw43_hal_pin_obj_t pin) {
143#define CYW43_HAL_PIN_MODE_INPUT (GPIO_IN)
144#define CYW43_HAL_PIN_MODE_OUTPUT (GPIO_OUT)
146#define CYW43_HAL_PIN_PULL_NONE (0)
147#define CYW43_HAL_PIN_PULL_UP (1)
148#define CYW43_HAL_PIN_PULL_DOWN (2)
150static inline void cyw43_hal_pin_config(cyw43_hal_pin_obj_t pin, uint32_t mode, uint32_t pull, __unused uint32_t alt) {
151 assert((mode == CYW43_HAL_PIN_MODE_INPUT || mode == CYW43_HAL_PIN_MODE_OUTPUT) && alt == 0);
153 gpio_set_pulls(pin, pull == CYW43_HAL_PIN_PULL_UP, pull == CYW43_HAL_PIN_PULL_DOWN);
156void cyw43_hal_get_mac(
int idx, uint8_t buf[6]);
158void cyw43_hal_generate_laa_mac(
int idx, uint8_t buf[6]);
161void cyw43_thread_enter(
void);
163void cyw43_thread_exit(
void);
165#define CYW43_THREAD_ENTER cyw43_thread_enter();
166#define CYW43_THREAD_EXIT cyw43_thread_exit();
169void cyw43_thread_lock_check(
void);
171#define cyw43_arch_lwip_check() cyw43_thread_lock_check()
172#define CYW43_THREAD_LOCK_CHECK cyw43_arch_lwip_check();
174#define cyw43_arch_lwip_check() ((void)0)
175#define CYW43_THREAD_LOCK_CHECK
178void cyw43_await_background_or_timeout_us(uint32_t timeout_us);
180#define CYW43_SDPCM_SEND_COMMON_WAIT cyw43_await_background_or_timeout_us(1000);
181#define CYW43_DO_IOCTL_WAIT cyw43_await_background_or_timeout_us(1000);
183void cyw43_delay_ms(uint32_t ms);
185void cyw43_delay_us(uint32_t us);
187void cyw43_schedule_internal_poll_dispatch(
void (*func)(
void));
189void cyw43_post_poll_hook(
void);
191#define CYW43_POST_POLL_HOOK cyw43_post_poll_hook();
195#define cyw43_malloc malloc
198#define cyw43_free free
static void gpio_set_dir(uint gpio, bool out)
Set a single GPIO direction.
Definition gpio.h:1340
static void gpio_put(uint gpio, bool value)
Drive a single GPIO high/low.
Definition gpio.h:1145
void gpio_set_pulls(uint gpio, bool up, bool down)
Select up and down pulls on specific GPIO.
Definition gpio.c:63
static bool gpio_get(uint gpio)
Get state of a single specified GPIO.
Definition gpio.h:859
static uint32_t time_us_32(void)
Return a 32 bit timestamp value in microseconds for the default timer instance.
Definition timer.h:215
static absolute_time_t get_absolute_time(void)
Return a representation of the current time.
Definition time.h:66
static uint32_t to_ms_since_boot(absolute_time_t t)
Convert a timestamp into a number of milliseconds since boot.
Definition time.h:87