|
@@ -27,6 +27,7 @@
|
|
#define UARTn_FRAME 0x04
|
|
#define UARTn_FRAME 0x04
|
|
#define UARTn_FRAME_DATABITS__MASK 0x000f
|
|
#define UARTn_FRAME_DATABITS__MASK 0x000f
|
|
#define UARTn_FRAME_DATABITS(n) ((n) - 3)
|
|
#define UARTn_FRAME_DATABITS(n) ((n) - 3)
|
|
|
|
+#define UARTn_FRAME_PARITY__MASK 0x0300
|
|
#define UARTn_FRAME_PARITY_NONE 0x0000
|
|
#define UARTn_FRAME_PARITY_NONE 0x0000
|
|
#define UARTn_FRAME_PARITY_EVEN 0x0200
|
|
#define UARTn_FRAME_PARITY_EVEN 0x0200
|
|
#define UARTn_FRAME_PARITY_ODD 0x0300
|
|
#define UARTn_FRAME_PARITY_ODD 0x0300
|
|
@@ -572,12 +573,16 @@ static void efm32_uart_console_get_options(struct efm32_uart_port *efm_port,
|
|
16 * (4 + (clkdiv >> 6)));
|
|
16 * (4 + (clkdiv >> 6)));
|
|
|
|
|
|
frame = efm32_uart_read32(efm_port, UARTn_FRAME);
|
|
frame = efm32_uart_read32(efm_port, UARTn_FRAME);
|
|
- if (frame & UARTn_FRAME_PARITY_ODD)
|
|
|
|
|
|
+ switch (frame & UARTn_FRAME_PARITY__MASK) {
|
|
|
|
+ case UARTn_FRAME_PARITY_ODD:
|
|
*parity = 'o';
|
|
*parity = 'o';
|
|
- else if (frame & UARTn_FRAME_PARITY_EVEN)
|
|
|
|
|
|
+ break;
|
|
|
|
+ case UARTn_FRAME_PARITY_EVEN:
|
|
*parity = 'e';
|
|
*parity = 'e';
|
|
- else
|
|
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
*parity = 'n';
|
|
*parity = 'n';
|
|
|
|
+ }
|
|
|
|
|
|
*bits = (frame & UARTn_FRAME_DATABITS__MASK) -
|
|
*bits = (frame & UARTn_FRAME_DATABITS__MASK) -
|
|
UARTn_FRAME_DATABITS(4) + 4;
|
|
UARTn_FRAME_DATABITS(4) + 4;
|