@@ -55,14 +55,14 @@ static void usart_async_rxc_callback(const struct usart_async_descriptor *const
55
55
}
56
56
57
57
void common_hal_busio_uart_construct (busio_uart_obj_t * self ,
58
- const mcu_pin_obj_t * tx , const mcu_pin_obj_t * rx ,
59
- const mcu_pin_obj_t * rts , const mcu_pin_obj_t * cts ,
60
- const mcu_pin_obj_t * rs485_dir , bool rs485_invert ,
58
+ const mcu_pin_obj_t * tx , const mcu_pin_obj_t * rx ,
59
+ const mcu_pin_obj_t * rts , const mcu_pin_obj_t * cts ,
60
+ const mcu_pin_obj_t * rs485_dir , bool rs485_invert ,
61
61
uint32_t baudrate , uint8_t bits , busio_uart_parity_t parity , uint8_t stop ,
62
- mp_float_t timeout , uint16_t receiver_buffer_size , byte * receiver_buffer ,
62
+ mp_float_t timeout , uint16_t receiver_buffer_size , byte * receiver_buffer ,
63
63
bool sigint_enabled ) {
64
64
65
- Sercom * sercom = NULL ;
65
+ Sercom * sercom = NULL ;
66
66
uint8_t sercom_index = 255 ; // Unset index
67
67
uint32_t rx_pinmux = 0 ;
68
68
uint8_t rx_pad = 255 ; // Unset pad
@@ -88,29 +88,29 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
88
88
self -> timeout_ms = timeout * 1000 ;
89
89
90
90
// This assignment is only here because the usart_async routines take a *const argument.
91
- struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const ) & self -> usart_desc ;
91
+ struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const )& self -> usart_desc ;
92
92
93
93
for (int i = 0 ; i < NUM_SERCOMS_PER_PIN ; i ++ ) {
94
- Sercom * potential_sercom = NULL ;
94
+ Sercom * potential_sercom = NULL ;
95
95
if (have_tx ) {
96
96
sercom_index = tx -> sercom [i ].index ;
97
97
if (sercom_index >= SERCOM_INST_NUM ) {
98
98
continue ;
99
99
}
100
100
potential_sercom = sercom_insts [sercom_index ];
101
- #ifdef SAMD21
102
- if (potential_sercom -> USART .CTRLA .bit .ENABLE != 0 ||
101
+ #ifdef SAMD21
102
+ if (potential_sercom -> USART .CTRLA .bit .ENABLE != 0 ||
103
103
!(tx -> sercom [i ].pad == 0 ||
104
104
tx -> sercom [i ].pad == 2 )) {
105
105
continue ;
106
106
}
107
- #endif
108
- #ifdef SAM_D5X_E5X
109
- if (potential_sercom -> USART .CTRLA .bit .ENABLE != 0 ||
107
+ #endif
108
+ #ifdef SAM_D5X_E5X
109
+ if (potential_sercom -> USART .CTRLA .bit .ENABLE != 0 ||
110
110
!(tx -> sercom [i ].pad == 0 )) {
111
111
continue ;
112
112
}
113
- #endif
113
+ #endif
114
114
tx_pinmux = PINMUX (tx -> number , (i == 0 ) ? MUX_C : MUX_D );
115
115
tx_pad = tx -> sercom [i ].pad ;
116
116
if (rx == NULL ) {
@@ -158,7 +158,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
158
158
// self->buffer, so do it manually. (However, as long as internal
159
159
// pointers like this are NOT moved, allocating the buffer
160
160
// in the long-lived pool is not strictly necessary)
161
- self -> buffer = (uint8_t * ) gc_alloc (self -> buffer_length * sizeof (uint8_t ), false, true);
161
+ self -> buffer = (uint8_t * )gc_alloc (self -> buffer_length * sizeof (uint8_t ), false, true);
162
162
if (self -> buffer == NULL ) {
163
163
common_hal_busio_uart_deinit (self );
164
164
mp_raise_msg_varg (& mp_type_MemoryError , translate ("Failed to allocate RX buffer of %d bytes" ), self -> buffer_length * sizeof (uint8_t ));
@@ -191,24 +191,24 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
191
191
// Doing a group mask and set of the registers saves 60 bytes over setting the bitfields individually.
192
192
193
193
sercom -> USART .CTRLA .reg &= ~(SERCOM_USART_CTRLA_TXPO_Msk |
194
- SERCOM_USART_CTRLA_RXPO_Msk |
195
- SERCOM_USART_CTRLA_FORM_Msk );
194
+ SERCOM_USART_CTRLA_RXPO_Msk |
195
+ SERCOM_USART_CTRLA_FORM_Msk );
196
196
sercom -> USART .CTRLA .reg |= SERCOM_USART_CTRLA_TXPO (tx_pad / 2 ) |
197
- SERCOM_USART_CTRLA_RXPO (rx_pad ) |
198
- (parity == BUSIO_UART_PARITY_NONE ? 0 : SERCOM_USART_CTRLA_FORM (1 ));
197
+ SERCOM_USART_CTRLA_RXPO (rx_pad ) |
198
+ (parity == BUSIO_UART_PARITY_NONE ? 0 : SERCOM_USART_CTRLA_FORM (1 ));
199
199
200
200
// Enable tx and/or rx based on whether the pins were specified.
201
201
// CHSIZE is 0 for 8 bits, 5, 6, 7 for 5, 6, 7 bits. 1 for 9 bits, but we don't support that.
202
202
sercom -> USART .CTRLB .reg &= ~(SERCOM_USART_CTRLB_TXEN |
203
- SERCOM_USART_CTRLB_RXEN |
204
- SERCOM_USART_CTRLB_PMODE |
205
- SERCOM_USART_CTRLB_SBMODE |
206
- SERCOM_USART_CTRLB_CHSIZE_Msk );
203
+ SERCOM_USART_CTRLB_RXEN |
204
+ SERCOM_USART_CTRLB_PMODE |
205
+ SERCOM_USART_CTRLB_SBMODE |
206
+ SERCOM_USART_CTRLB_CHSIZE_Msk );
207
207
sercom -> USART .CTRLB .reg |= (have_tx ? SERCOM_USART_CTRLB_TXEN : 0 ) |
208
- (have_rx ? SERCOM_USART_CTRLB_RXEN : 0 ) |
209
- (parity == BUSIO_UART_PARITY_ODD ? SERCOM_USART_CTRLB_PMODE : 0 ) |
210
- (stop > 1 ? SERCOM_USART_CTRLB_SBMODE : 0 ) |
211
- SERCOM_USART_CTRLB_CHSIZE (bits % 8 );
208
+ (have_rx ? SERCOM_USART_CTRLB_RXEN : 0 ) |
209
+ (parity == BUSIO_UART_PARITY_ODD ? SERCOM_USART_CTRLB_PMODE : 0 ) |
210
+ (stop > 1 ? SERCOM_USART_CTRLB_SBMODE : 0 ) |
211
+ SERCOM_USART_CTRLB_CHSIZE (bits % 8 );
212
212
213
213
// Set baud rate
214
214
common_hal_busio_uart_set_baudrate (self , baudrate );
@@ -227,7 +227,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
227
227
gpio_set_pin_direction (tx -> number , GPIO_DIRECTION_OUT );
228
228
gpio_set_pin_pull_mode (tx -> number , GPIO_PULL_OFF );
229
229
gpio_set_pin_function (tx -> number , tx_pinmux );
230
- self -> tx_pin = tx -> number ;
230
+ self -> tx_pin = tx -> number ;
231
231
claim_pin (tx );
232
232
} else {
233
233
self -> tx_pin = NO_PIN ;
@@ -237,7 +237,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
237
237
gpio_set_pin_direction (rx -> number , GPIO_DIRECTION_IN );
238
238
gpio_set_pin_pull_mode (rx -> number , GPIO_PULL_OFF );
239
239
gpio_set_pin_function (rx -> number , rx_pinmux );
240
- self -> rx_pin = rx -> number ;
240
+ self -> rx_pin = rx -> number ;
241
241
claim_pin (rx );
242
242
} else {
243
243
self -> rx_pin = NO_PIN ;
@@ -255,7 +255,7 @@ void common_hal_busio_uart_deinit(busio_uart_obj_t *self) {
255
255
return ;
256
256
}
257
257
// This assignment is only here because the usart_async routines take a *const argument.
258
- struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const ) & self -> usart_desc ;
258
+ struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const )& self -> usart_desc ;
259
259
usart_async_disable (usart_desc_p );
260
260
usart_async_deinit (usart_desc_p );
261
261
reset_pin_number (self -> rx_pin );
@@ -271,7 +271,7 @@ size_t common_hal_busio_uart_read(busio_uart_obj_t *self, uint8_t *data, size_t
271
271
}
272
272
273
273
// This assignment is only here because the usart_async routines take a *const argument.
274
- struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const ) & self -> usart_desc ;
274
+ struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const )& self -> usart_desc ;
275
275
276
276
if (len == 0 ) {
277
277
// Nothing to read.
@@ -328,7 +328,7 @@ size_t common_hal_busio_uart_write(busio_uart_obj_t *self, const uint8_t *data,
328
328
}
329
329
330
330
// This assignment is only here because the usart_async routines take a *const argument.
331
- struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const ) & self -> usart_desc ;
331
+ struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const )& self -> usart_desc ;
332
332
333
333
struct io_descriptor * io ;
334
334
usart_async_get_io_descriptor (usart_desc_p , & io );
@@ -359,21 +359,21 @@ uint32_t common_hal_busio_uart_get_baudrate(busio_uart_obj_t *self) {
359
359
360
360
void common_hal_busio_uart_set_baudrate (busio_uart_obj_t * self , uint32_t baudrate ) {
361
361
// This assignment is only here because the usart_async routines take a *const argument.
362
- struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const ) & self -> usart_desc ;
362
+ struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const )& self -> usart_desc ;
363
363
usart_async_set_baud_rate (usart_desc_p ,
364
- // Samples and ARITHMETIC vs FRACTIONAL must correspond to USART_SAMPR in
365
- // hpl_sercom_config.h.
366
- _usart_async_calculate_baud_rate ( baudrate , // e.g. 9600 baud
367
- PROTOTYPE_SERCOM_USART_ASYNC_CLOCK_FREQUENCY ,
368
- 16 , // samples
369
- USART_BAUDRATE_ASYNCH_ARITHMETIC ,
370
- 0 // fraction - not used for ARITHMETIC
371
- ));
364
+ // Samples and ARITHMETIC vs FRACTIONAL must correspond to USART_SAMPR in
365
+ // hpl_sercom_config.h.
366
+ _usart_async_calculate_baud_rate ( baudrate , // e.g. 9600 baud
367
+ PROTOTYPE_SERCOM_USART_ASYNC_CLOCK_FREQUENCY ,
368
+ 16 , // samples
369
+ USART_BAUDRATE_ASYNCH_ARITHMETIC ,
370
+ 0 // fraction - not used for ARITHMETIC
371
+ ));
372
372
self -> baudrate = baudrate ;
373
373
}
374
374
375
375
mp_float_t common_hal_busio_uart_get_timeout (busio_uart_obj_t * self ) {
376
- return (mp_float_t ) (self -> timeout_ms / 1000.0f );
376
+ return (mp_float_t )(self -> timeout_ms / 1000.0f );
377
377
}
378
378
379
379
void common_hal_busio_uart_set_timeout (busio_uart_obj_t * self , mp_float_t timeout ) {
@@ -382,15 +382,15 @@ void common_hal_busio_uart_set_timeout(busio_uart_obj_t *self, mp_float_t timeou
382
382
383
383
uint32_t common_hal_busio_uart_rx_characters_available (busio_uart_obj_t * self ) {
384
384
// This assignment is only here because the usart_async routines take a *const argument.
385
- struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const ) & self -> usart_desc ;
385
+ struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const )& self -> usart_desc ;
386
386
struct usart_async_status async_status ;
387
387
usart_async_get_status (usart_desc_p , & async_status );
388
388
return async_status .rxcnt ;
389
389
}
390
390
391
391
void common_hal_busio_uart_clear_rx_buffer (busio_uart_obj_t * self ) {
392
392
// This assignment is only here because the usart_async routines take a *const argument.
393
- struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const ) & self -> usart_desc ;
393
+ struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const )& self -> usart_desc ;
394
394
usart_async_flush_rx_buffer (usart_desc_p );
395
395
396
396
}
@@ -401,7 +401,7 @@ bool common_hal_busio_uart_ready_to_tx(busio_uart_obj_t *self) {
401
401
return false;
402
402
}
403
403
// This assignment is only here because the usart_async routines take a *const argument.
404
- struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const ) & self -> usart_desc ;
404
+ struct usart_async_descriptor * const usart_desc_p = (struct usart_async_descriptor * const )& self -> usart_desc ;
405
405
struct usart_async_status async_status ;
406
406
usart_async_get_status (usart_desc_p , & async_status );
407
407
return !(async_status .flags & USART_ASYNC_STATUS_BUSY );
0 commit comments