@@ -104,8 +104,12 @@ void common_hal_busio_spi_never_reset(busio_spi_obj_t *self) {
104
104
never_reset [i ] = true;
105
105
106
106
never_reset_pin_number (self -> clock_pin_number );
107
- never_reset_pin_number (self -> MOSI_pin_number );
108
- never_reset_pin_number (self -> MISO_pin_number );
107
+ if ( self -> MOSI_pin_number != NO_PIN ) {
108
+ never_reset_pin_number (self -> MOSI_pin_number );
109
+ }
110
+ if ( self -> MISO_pin_number != NO_PIN ) {
111
+ never_reset_pin_number (self -> MISO_pin_number );
112
+ }
109
113
break ;
110
114
}
111
115
}
@@ -180,7 +184,7 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self, const mcu_pin_obj_t *
180
184
181
185
if (miso != NULL ) {
182
186
config .miso_pin = miso -> number ;
183
- self -> MISO_pin_number = mosi -> number ;
187
+ self -> MISO_pin_number = miso -> number ;
184
188
claim_pin (miso );
185
189
} else {
186
190
self -> MISO_pin_number = NO_PIN ;
@@ -204,8 +208,12 @@ void common_hal_busio_spi_deinit(busio_spi_obj_t *self) {
204
208
nrfx_spim_uninit (& self -> spim_peripheral -> spim );
205
209
206
210
reset_pin_number (self -> clock_pin_number );
207
- reset_pin_number (self -> MOSI_pin_number );
208
- reset_pin_number (self -> MISO_pin_number );
211
+ if ( self -> MOSI_pin_number != NO_PIN ) {
212
+ reset_pin_number (self -> MOSI_pin_number );
213
+ }
214
+ if ( self -> MISO_pin_number != NO_PIN ) {
215
+ reset_pin_number (self -> MISO_pin_number );
216
+ }
209
217
}
210
218
211
219
bool common_hal_busio_spi_configure (busio_spi_obj_t * self , uint32_t baudrate , uint8_t polarity , uint8_t phase , uint8_t bits ) {
0 commit comments