Skip to content

MPU: SCIF

#define SH7705_SCIF (*((sh7705_scif_t *)0xa4410000))
#define SH7305_SCIF (*((sh7305_scif_t *)0xa4410000))
typedef volatile struct
{
/* Serial Mode Register */ word_union(SCSMR, uint16_t :5;
uint16_t SRC :3;
/* Sampling Control */ uint16_t CA :1;
/* Communication Mode */ uint16_t CHR :1;
/* Character Length */ uint16_t PE :1;
/* Parity Enable */ uint16_t OE :1;
/* Parity Mode */ uint16_t STOP :1;
/* Stop Bit Length */ uint16_t :1;
uint16_t CKS :2;
/* Clock Select */ );
pad(0x2);
/* Bit Rate Register */ uint8_t SCBRR;
pad(0x3);
/* Serial Control Register */ word_union(SCSCR, uint16_t :4;
uint16_t TSIE :1;
/* Transmit Data Stop Interrupt Enable */ uint16_t ERIE :1;
/* Receive Error Interrupt Enable */ uint16_t BRIE :1;
/* Break Interrupt Enable */ uint16_t DRIE :1;
/* Receive Data Ready Interrupt Enable */ uint16_t TIE :1;
/* Transmit Interrupt Enable */ uint16_t RIE :1;
/* Receive Interrupt Enable */ uint16_t TE :1;
/* Transmit Enable */ uint16_t RE :1;
/* Receive Mode */ uint16_t :2;
uint16_t CKE :2;
/* Clock Enable */ );
pad(0x2);
/* Transmit Data Stop Register */ uint8_t SCTDSR;
pad(0x3);
/* FIFO Error Count Register */ word_union(SCFER, uint16_t :2;
uint16_t PER :6;
/* Parity Error Count */ uint16_t :2;
uint16_t FER :6;
/* Framing Error Count */ );
pad(0x2);
/* Serial Status Register */ word_union(SCSSR, uint16_t :6;
uint16_t ORER :1;
/* Overrun Error */ uint16_t TSF :1;
/* Transmit Data Stop */ uint16_t ER :1;
/* Receive Error */ uint16_t TEND :1;
/* Transmit End */ uint16_t TDFE :1;
/* Transmit FIFO Data Empty */ uint16_t BRK :1;
/* Break Detect */ uint16_t FER :1;
/* Framing Error */ uint16_t PER :1;
/* Parity Error */ uint16_t RDF :1;
/* Receive FIFO Data Full */ uint16_t DR :1;
/* Receive Data Ready */ );
pad(0x2);
/* FIFO Control Register */ word_union(SCFCR, uint16_t TSE :1;
/* Transmit Data Stop Enable */ uint16_t TCRST :1;
/* Transmit Count Reset */ uint16_t :3;
uint16_t RSTRG :3;
/* RTS Output Active Trigger */ uint16_t RTRG :2;
/* Receive FIFO Data Number Trigger */ uint16_t TTRG :2;
/* Transmit FIFO Data Number Trigger */ uint16_t MCE :1;
/* Modem Control Enable */ uint16_t TFRST :1;
/* Transmit FIFO Data Register Reset */ uint16_t RFRST :1;
/* Receive FIFO Data Register Reset */ uint16_t LOOP :1;
/* Loopback Test */ );
pad(0x2);
/* FIFO Data Count Register */ word_union(SCFDR, uint16_t :1;
uint16_t T :7;
/* Pending bytes in transmit FIFO */ uint16_t :1;
uint16_t R :7;
/* Received bytes in receive FIFO */ );
pad(0x2);
/* Serial FIFO Transmit Data Register (64 bytes rolling register) */ uint8_t SCFTDR;
pad(0x3);
/* Serial FIFO Receive Data Register (64 bytes rolling register) */ uint8_t SCFRDR;
}
sh7705_scif_t
typedef volatile struct
{
/* Serial Mode Register */ word_union(SCSMR, uint16_t :8;
uint16_t CA :1;
/* Communication Mode */ uint16_t CHR :1;
/* Character Length */ uint16_t PE :1;
/* Parity Enable */ uint16_t OE :1;
/* Parity Mode */ uint16_t STOP :1;
/* Stop Bit Length */ uint16_t :1;
uint16_t CKS :2;
/* Clock Select */ );
pad(0x2);
/* Serial Bit Rate Register */ uint8_t SCBRR;
pad(0x3);
/* Serial Control Register */ word_union(SCSCR, uint16_t :8;
uint16_t TIE :1;
/* Transmit Interrupt Enable */ uint16_t RIE :1;
/* Receive Interrupt Enable */ uint16_t TE :1;
/* Transmit Enable */ uint16_t RE :1;
/* Receive Mode */ uint16_t REIE :1;
/* Receive Error Interrupt Enable */ uint16_t :1;
uint16_t CKE :2;
/* Clock Enable */ );
pad(0x2);
/* Serial FIFO Transmit Data Register */ uint8_t SCFTDR;
pad(0x3);
/* Serial FIFO Status Register */ word_union(SCFSR, uint16_t const PERC :4;
/* Number of Parity Errors */ uint16_t const FERC :4;
/* Number of Framing Errors */ uint16_t ER :1;
/* Receive Error */ uint16_t TEND :1;
/* Transmit End */ uint16_t TDFE :1;
/* Transmit FIFO Data Empty */ uint16_t BRK :1;
/* Break Detection */ uint16_t const FER :1;
/* Framing Error */ uint16_t const PER :1;
/* Parity Error */ uint16_t RDF :1;
/* Receive FIFO Data Full */ uint16_t DR :1;
/* Data Ready */ );
pad(0x2);
/* Serial FIFO Receive Data Register */ uint8_t SCFRDR;
pad(0x3);
/* Serial FIFO Control Register */ word_union(SCFCR, uint16_t :5;
uint16_t RSTRG :3;
/* RTS Output Active Trigger */ uint16_t RTRG :2;
/* Receive FIFO Data Trigger */ uint16_t TTRG :2;
/* Transmit FIFO Data Trigger */ uint16_t MCE :1;
/* Model Control Enable */ uint16_t TFRST :1;
/* Transmit FIFO Data Register Reset */ uint16_t RFRST :1;
/* Receive FIFO Data Register Reset */ uint16_t LOOP :1;
/* Loopback Test */ );
pad(0x2);
/* Serial FIFO Data Count Register */ word_union(SCFDR, uint16_t :3;
uint16_t TFDC :5;
/* Number of Data Bytes in Transmit FIFO */ uint16_t :3;
uint16_t RFDC :5;
/* Number of Data Bytes in Receive FIFO */ );
pad(0x6);
/* Serial Line Status */ word_union(SCLSR, uint16_t :15;
uint16_t ORER :1;
/* Overrun Error */ );
pad(0x2);
}
sh7305_scif_t