|
28 | 28 | static mp_obj_t wiznet_pio_spi_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args) { |
29 | 29 | #if CIRCUITPY_WIZNET |
30 | 30 | wiznet_pio_spi_obj_t *self = mp_obj_malloc(wiznet_pio_spi_obj_t, &wiznet_pio_spi_type); |
31 | | - #if CIRCUITPY_WIZNET_W6300 |
32 | | - enum { ARG_clock, ARG_quad_io0, ARG_quad_io1, ARG_quad_io2, ARG_quad_io3, ARG_half_duplex, ARG_quad_spi }; |
33 | | - static const mp_arg_t allowed_args[] = { |
34 | | - { MP_QSTR_clock, MP_ARG_REQUIRED | MP_ARG_OBJ }, |
35 | | - { MP_QSTR_quad_io0, MP_ARG_OBJ, {.u_obj = mp_const_none} }, |
36 | | - { MP_QSTR_quad_io1, MP_ARG_OBJ, {.u_obj = mp_const_none} }, |
37 | | - { MP_QSTR_quad_io2, MP_ARG_OBJ, {.u_obj = mp_const_none} }, |
38 | | - { MP_QSTR_quad_io3, MP_ARG_OBJ, {.u_obj = mp_const_none} }, |
39 | | - { MP_QSTR_half_duplex, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = false} }, |
40 | | - }; |
41 | | - mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; |
42 | | - mp_arg_parse_all_kw_array(n_args, n_kw, all_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); |
43 | | - |
44 | | - const mcu_pin_obj_t *clock = validate_obj_is_free_pin(args[ARG_clock].u_obj, MP_QSTR_clock); |
45 | | - const mcu_pin_obj_t *quad_io0 = validate_obj_is_free_pin_or_none(args[ARG_quad_io0].u_obj, MP_QSTR_quad_io0); |
46 | | - const mcu_pin_obj_t *quad_io1 = validate_obj_is_free_pin_or_none(args[ARG_quad_io1].u_obj, MP_QSTR_quad_io1); |
47 | | - const mcu_pin_obj_t *quad_io2 = validate_obj_is_free_pin_or_none(args[ARG_quad_io2].u_obj, MP_QSTR_quad_io2); |
48 | | - const mcu_pin_obj_t *quad_io3 = validate_obj_is_free_pin_or_none(args[ARG_quad_io3].u_obj, MP_QSTR_quad_io3); |
49 | | - |
50 | | - common_hal_wiznet_pio_qspi_construct(self, clock, quad_io0, quad_io1, quad_io2, quad_io3, args[ARG_half_duplex].u_bool); |
51 | | - |
52 | | - #else // W55RP20 |
53 | | - enum { ARG_clock, ARG_MOSI, ARG_MISO, ARG_half_duplex }; |
54 | | - static const mp_arg_t allowed_args[] = { |
55 | | - { MP_QSTR_clock, MP_ARG_REQUIRED | MP_ARG_OBJ }, |
56 | | - { MP_QSTR_MOSI, MP_ARG_OBJ, {.u_obj = mp_const_none} }, |
57 | | - { MP_QSTR_MISO, MP_ARG_OBJ, {.u_obj = mp_const_none} }, |
58 | | - { MP_QSTR_half_duplex, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = false} }, |
59 | | - }; |
60 | | - mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; |
61 | | - mp_arg_parse_all_kw_array(n_args, n_kw, all_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); |
62 | | - |
63 | | - const mcu_pin_obj_t *clock = validate_obj_is_free_pin(args[ARG_clock].u_obj, MP_QSTR_clock); |
64 | | - const mcu_pin_obj_t *mosi = validate_obj_is_free_pin_or_none(args[ARG_MOSI].u_obj, MP_QSTR_mosi); |
65 | | - const mcu_pin_obj_t *miso = validate_obj_is_free_pin_or_none(args[ARG_MISO].u_obj, MP_QSTR_miso); |
66 | | - |
67 | | - if (!miso && !mosi) { |
68 | | - mp_raise_ValueError(MP_ERROR_TEXT("Must provide MISO or MOSI pin")); |
69 | | - } |
70 | | - |
71 | | - common_hal_wiznet_pio_spi_construct(self, clock, mosi, miso, args[ARG_half_duplex].u_bool); |
72 | | - #endif |
| 31 | + #if CIRCUITPY_WIZNET_W6300 |
| 32 | + enum { ARG_clock, ARG_quad_io0, ARG_quad_io1, ARG_quad_io2, ARG_quad_io3, ARG_half_duplex, ARG_quad_spi }; |
| 33 | + static const mp_arg_t allowed_args[] = { |
| 34 | + { MP_QSTR_clock, MP_ARG_REQUIRED | MP_ARG_OBJ }, |
| 35 | + { MP_QSTR_quad_io0, MP_ARG_OBJ, {.u_obj = mp_const_none} }, |
| 36 | + { MP_QSTR_quad_io1, MP_ARG_OBJ, {.u_obj = mp_const_none} }, |
| 37 | + { MP_QSTR_quad_io2, MP_ARG_OBJ, {.u_obj = mp_const_none} }, |
| 38 | + { MP_QSTR_quad_io3, MP_ARG_OBJ, {.u_obj = mp_const_none} }, |
| 39 | + { MP_QSTR_half_duplex, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = false} }, |
| 40 | + }; |
| 41 | + mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; |
| 42 | + mp_arg_parse_all_kw_array(n_args, n_kw, all_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); |
| 43 | + |
| 44 | + const mcu_pin_obj_t *clock = validate_obj_is_free_pin(args[ARG_clock].u_obj, MP_QSTR_clock); |
| 45 | + const mcu_pin_obj_t *quad_io0 = validate_obj_is_free_pin_or_none(args[ARG_quad_io0].u_obj, MP_QSTR_quad_io0); |
| 46 | + const mcu_pin_obj_t *quad_io1 = validate_obj_is_free_pin_or_none(args[ARG_quad_io1].u_obj, MP_QSTR_quad_io1); |
| 47 | + const mcu_pin_obj_t *quad_io2 = validate_obj_is_free_pin_or_none(args[ARG_quad_io2].u_obj, MP_QSTR_quad_io2); |
| 48 | + const mcu_pin_obj_t *quad_io3 = validate_obj_is_free_pin_or_none(args[ARG_quad_io3].u_obj, MP_QSTR_quad_io3); |
| 49 | + |
| 50 | + common_hal_wiznet_pio_qspi_construct(self, clock, quad_io0, quad_io1, quad_io2, quad_io3, args[ARG_half_duplex].u_bool); |
| 51 | + |
| 52 | + #else // W55RP20 |
| 53 | + enum { ARG_clock, ARG_MOSI, ARG_MISO, ARG_half_duplex }; |
| 54 | + static const mp_arg_t allowed_args[] = { |
| 55 | + { MP_QSTR_clock, MP_ARG_REQUIRED | MP_ARG_OBJ }, |
| 56 | + { MP_QSTR_MOSI, MP_ARG_OBJ, {.u_obj = mp_const_none} }, |
| 57 | + { MP_QSTR_MISO, MP_ARG_OBJ, {.u_obj = mp_const_none} }, |
| 58 | + { MP_QSTR_half_duplex, MP_ARG_BOOL | MP_ARG_KW_ONLY, {.u_bool = false} }, |
| 59 | + }; |
| 60 | + mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)]; |
| 61 | + mp_arg_parse_all_kw_array(n_args, n_kw, all_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args); |
| 62 | + |
| 63 | + const mcu_pin_obj_t *clock = validate_obj_is_free_pin(args[ARG_clock].u_obj, MP_QSTR_clock); |
| 64 | + const mcu_pin_obj_t *mosi = validate_obj_is_free_pin_or_none(args[ARG_MOSI].u_obj, MP_QSTR_mosi); |
| 65 | + const mcu_pin_obj_t *miso = validate_obj_is_free_pin_or_none(args[ARG_MISO].u_obj, MP_QSTR_miso); |
| 66 | + |
| 67 | + if (!miso && !mosi) { |
| 68 | + mp_raise_ValueError(MP_ERROR_TEXT("Must provide MISO or MOSI pin")); |
| 69 | + } |
| 70 | + |
| 71 | + common_hal_wiznet_pio_spi_construct(self, clock, mosi, miso, args[ARG_half_duplex].u_bool); |
| 72 | + #endif |
73 | 73 | return MP_OBJ_FROM_PTR(self); |
74 | 74 | #else |
75 | 75 | mp_raise_NotImplementedError(NULL); |
|
0 commit comments