@@ -127,19 +127,23 @@ typedef struct _machine_hw_spi_obj_t {
127
127
128
128
machine_hw_spi_bus_obj_t rp2_machine_spi_bus_obj [] = {
129
129
{
130
- 0 ,
131
- mp_obj_new_int (MICROPY_HW_SPI0_SCK ),
132
- mp_obj_new_int (MICROPY_HW_SPI0_MOSI ),
133
- mp_obj_new_int (MICROPY_HW_SPI0_MISO ),
134
- 0 , 0 , (const void * )spi0
130
+ .host = 0 ,
131
+ .sck = MP_OBJ_NULL ,
132
+ .mosi = MP_OBJ_NULL ,
133
+ .miso = MP_OBJ_NULL ,
134
+ .active_devices = 0 ,
135
+ .state = 0 ,
136
+ .user_data = (const void * )spi0
135
137
},
136
138
{
137
- 1 ,
138
- mp_obj_new_int (MICROPY_HW_SPI1_SCK ),
139
- mp_obj_new_int (MICROPY_HW_SPI1_MOSI ),
140
- mp_obj_new_int (MICROPY_HW_SPI1_MISO ),
141
- 0 , 0 , (const void * )spi1
142
- },
139
+ .host = 1 ,
140
+ .sck = MP_OBJ_NULL ,
141
+ .mosi = MP_OBJ_NULL ,
142
+ .miso = MP_OBJ_NULL ,
143
+ .active_devices = 0 ,
144
+ .state = 0 ,
145
+ .user_data = (const void * )spi1
146
+ }
143
147
};
144
148
145
149
@@ -171,8 +175,20 @@ mp_obj_t machine_spi_make_new(const mp_obj_type_t *type, size_t n_args, size_t n
171
175
machine_hw_spi_obj_t * self = m_new_obj (machine_hw_spi_obj_t );
172
176
self -> base .type = & machine_spi_type ;
173
177
174
- self -> spi_bus = (machine_hw_spi_bus_obj_t * )& rp2_machine_spi_bus_obj [spi_id ];
178
+ machine_hw_spi_bus_obj_t * spi_bus = & rp2_machine_spi_bus_obj [spi_id ];
179
+ if (spi_bus -> sck == MP_OBJ_NULL ) {
180
+ if (spi_id == 0 && .sck = MP_OBJ_NULL )
181
+ spi_bus -> sck = mp_obj_new_int (MICROPY_HW_SPI0_SCK );
182
+ spi_bus -> mosi = mp_obj_new_int (MICROPY_HW_SPI0_MOSI );
183
+ spi_bus -> miso = mp_obj_new_int (MICROPY_HW_SPI0_MISO );
184
+ } else {
185
+ spi_bus -> sck = mp_obj_new_int (MICROPY_HW_SPI1_SCK );
186
+ spi_bus -> mosi = mp_obj_new_int (MICROPY_HW_SPI1_MOSI );
187
+ spi_bus -> miso = mp_obj_new_int (MICROPY_HW_SPI1_MISO );
188
+ }
189
+ }
175
190
191
+ self -> spi_bus = spi_bus ;
176
192
self -> baudrate = (uint32_t )args [ARG_baudrate ].u_int ;
177
193
self -> bits = (uint8_t )args [ARG_bits ].u_int ;
178
194
self -> polarity = (uint8_t )args [ARG_polarity ].u_int ;
0 commit comments