diff options
| author | iabdalkader <i.abdalkader@gmail.com> | 2022-02-10 22:30:01 +0200 |
|---|---|---|
| committer | Damien George <damien@micropython.org> | 2022-02-18 14:35:26 +1100 |
| commit | 465b74e78daf50f5bd92625ba57bf2f5597cb712 (patch) | |
| tree | 493ecad0a8d54b5f0c601508ba72cc7c79ff72b9 /extmod | |
| parent | 5d6408f8f914f46f3c067fc59f5f31001b988fbc (diff) | |
drivers/ninaw10: Add NIC-level ioctl function.
This commit adds support in the driver for irregular commands. It
currently supports setting GPIO pin mode, and GPIO pin read/write value.
Diffstat (limited to 'extmod')
| -rw-r--r-- | extmod/network_ninaw10.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/extmod/network_ninaw10.c b/extmod/network_ninaw10.c index e5d322a95..034076307 100644 --- a/extmod/network_ninaw10.c +++ b/extmod/network_ninaw10.c @@ -317,6 +317,15 @@ STATIC mp_obj_t network_ninaw10_status(size_t n_args, const mp_obj_t *args) { } STATIC MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(network_ninaw10_status_obj, 1, 2, network_ninaw10_status); +STATIC mp_obj_t network_ninaw10_ioctl(mp_obj_t self_in, mp_obj_t cmd_in, mp_obj_t buf_in) { + nina_obj_t *self = MP_OBJ_TO_PTR(self_in); + mp_buffer_info_t buf; + mp_get_buffer_raise(buf_in, &buf, MP_BUFFER_READ | MP_BUFFER_WRITE); + nina_ioctl(mp_obj_get_int(cmd_in), buf.len, buf.buf, self->itf); + return mp_const_none; +} +STATIC MP_DEFINE_CONST_FUN_OBJ_3(network_ninaw10_ioctl_obj, network_ninaw10_ioctl); + STATIC int network_ninaw10_gethostbyname(mp_obj_t nic, const char *name, mp_uint_t len, uint8_t *out_ip) { return nina_gethostbyname(name, out_ip); } @@ -586,6 +595,7 @@ static const mp_rom_map_elem_t nina_locals_dict_table[] = { { MP_ROM_QSTR(MP_QSTR_ifconfig), MP_ROM_PTR(&network_ninaw10_ifconfig_obj) }, { MP_ROM_QSTR(MP_QSTR_config), MP_ROM_PTR(&network_ninaw10_config_obj) }, { MP_ROM_QSTR(MP_QSTR_status), MP_ROM_PTR(&network_ninaw10_status_obj) }, + { MP_ROM_QSTR(MP_QSTR_ioctl), MP_ROM_PTR(&network_ninaw10_ioctl_obj) }, // Network is not secured. { MP_ROM_QSTR(MP_QSTR_OPEN), MP_ROM_INT(NINA_SEC_OPEN) }, |
