| /* |
| * Copyright (c) 2023 ENE Technology Inc. |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| */ |
| |
| #ifndef ENE_KB1200_SER_H |
| #define ENE_KB1200_SER_H |
| |
| /** |
| * Structure type to access Serial Port Interface (SER). |
| */ |
| struct serial_regs { |
| volatile uint32_t SERCFG; /*Configuration Register */ |
| volatile uint32_t SERIE; /*Interrupt Enable Register */ |
| volatile uint32_t SERPF; /*Pending flag Register */ |
| volatile uint32_t SERSTS; /*Status Register */ |
| volatile uint32_t SERRBUF; /*Rx Data Buffer Register */ |
| volatile uint32_t SERTBUF; /*Tx Data Buffer Register */ |
| volatile uint32_t SERCTRL; /*Control Register */ |
| }; |
| |
| #define DIVIDER_BASE_CLK 24000000 |
| |
| #define SERCTRL_MODE0 0 /* shift */ |
| #define SERCTRL_MODE1 1 /* 8-bit */ |
| #define SERCTRL_MODE2 2 /* 9-bit */ |
| #define SERCTRL_MODE3 3 /* 9-bit */ |
| |
| #define SERCFG_RX_ENABLE 0x01 |
| #define SERCFG_TX_ENABLE 0x02 |
| |
| #define SERCFG_PARITY_NONE 0 |
| #define SERCFG_PARITY_ODD 1 |
| #define SERCFG_PARITY_EVEN 3 |
| |
| /* Pending Flag */ |
| #define SERPF_RX_CNT_FULL 0x01 |
| #define SERPF_TX_EMPTY 0x02 |
| #define SERPF_RX_ERROR 0x04 |
| |
| /* Interrupt Enable */ |
| #define SERIE_RX_ENABLE 0x01 |
| #define SERIE_TX_ENABLE 0x02 |
| #define SERIE_RX_ERROR 0x04 |
| |
| /* Status Flag */ |
| #define SERSTS_FRAME_ERROR 0x0200 |
| #define SERSTS_PARITY_ERROR 0x0100 |
| #define SERSTS_RX_TIMEOUT 0x0080 |
| #define SERSTS_RX_BUSY 0x0040 |
| #define SERSTS_RX_OVERRUN 0x0020 |
| #define SERSTS_RX_EMPTY 0x0010 |
| #define SERSTS_TX_BUSY 0x0004 |
| #define SERSTS_TX_OVERRUN 0x0002 |
| #define SERSTS_TX_FULL 0x0001 |
| |
| #endif /* ENE_KB1200_SER_H */ |