/*
 *  FM3-MB9BF618T system defines
 * 
 *   Copyright (C) by Y.Ishioka.
 */
#ifndef   _SYSDEF_MB9BF618T_H_
#define   _SYSDEF_MB9BF618T_H_


#define PERIPH_BASE        (0x40000000)
#define QPRC0_BASE         (PERIPH_BASE + 0x26000)
#define ADC0_BASE          (PERIPH_BASE + 0x27000)
#define ADC1_BASE          (PERIPH_BASE + 0x27100)
#define ADC2_BASE          (PERIPH_BASE + 0x27200)
#define GPIO_BASE          (PERIPH_BASE + 0x33000)

/* for GPIO */
#define GPIO_ADE           (GPIO_BASE + 0x500)

#define GPIO_PFR0          (GPIO_BASE + 0x000)

#define GPIO_PFR1          (GPIO_BASE + 0x004)
#define GPIO_PCR1          (GPIO_BASE + 0x104)
#define GPIO_DDR1          (GPIO_BASE + 0x204)
#define GPIO_PDIR1         (GPIO_BASE + 0x304)
#define GPIO_PDOR1         (GPIO_BASE + 0x404)

#define GPIO_PFR4          (GPIO_BASE + 0x010)

#define GPIO_PFR5          (GPIO_BASE + 0x014)
#define GPIO_PCR5          (GPIO_BASE + 0x114)
#define GPIO_DDR5          (GPIO_BASE + 0x214)
#define GPIO_PDIR5         (GPIO_BASE + 0x314)
#define GPIO_PDOR5         (GPIO_BASE + 0x414)

#define GPIO_PFR7          (GPIO_BASE + 0x01c)
#define GPIO_PCR7          (GPIO_BASE + 0x11c)
#define GPIO_DDR7          (GPIO_BASE + 0x21c)
#define GPIO_PDIR7         (GPIO_BASE + 0x31c)
#define GPIO_PDOR7         (GPIO_BASE + 0x41c)

#define GPIO_PFRB          (GPIO_BASE + 0x02C)
#define GPIO_PCRB          (GPIO_BASE + 0x12C)
#define GPIO_DDRB          (GPIO_BASE + 0x22C)
#define GPIO_PDIRB         (GPIO_BASE + 0x32C)
#define GPIO_PDORB         (GPIO_BASE + 0x42C)

#define GPIO_PFRC          (GPIO_BASE + 0x030)
#define GPIO_PCRC          (GPIO_BASE + 0x130)
#define GPIO_DDRC          (GPIO_BASE + 0x230)
#define GPIO_PDIRC         (GPIO_BASE + 0x330)
#define GPIO_PDORC         (GPIO_BASE + 0x430)

#define GPIO_PFRF          (GPIO_BASE + 0x03c)
#define GPIO_PCRF          (GPIO_BASE + 0x13c)
#define GPIO_DDRF          (GPIO_BASE + 0x23c)
#define GPIO_PDIRF         (GPIO_BASE + 0x33c)
#define GPIO_PDORF         (GPIO_BASE + 0x43c)

#define GPIO_EPFR07        (GPIO_BASE + 0x61c)
#define GPIO_EPFR08        (GPIO_BASE + 0x620)
#define GPIO_EPFR09        (GPIO_BASE + 0x624)

/* for UARR */
#define UART_S3_BASE       (PERIPH_BASE + 0x38300)
#define UART_S4_BASE       (PERIPH_BASE + 0x38400)

#define UART_SMR           (0x000)
#define UART_SCR           (0x001)
#define UART_ESCR          (0x004)
#define UART_SSR           (0x005)
#define UART_RDR           (0x008)
#define UART_TDR           (0x008)
#define UART_BGR           (0x00c)
#define UART_BGR0          (0x00c)
#define UART_BGR1          (0x00d)
#define UART_ISBA          (0x010)
#define UART_ISMK          (0x011)
#define UART_FCR0          (0x014)
#define UART_FCR1          (0x015)
#define UART_FBYTE1        (0x018)
#define UART_FBYTE2        (0x019)

#define UART_SMR_MD_SOE    0x01
#define UART_SMR_MD_UART   0x00

#define UART_SCR_TXE       0x01
#define UART_SCR_RXE       0x02
#define UART_SCR_TBIE      0x04
#define UART_SCR_TIE       0x08
#define UART_SCR_RIE       0x10

#define UART_SSR_TDRE      0x02
#define UART_SSR_RDRF      0x04

/* for Quad counter */
#define QPRC0_QPCR         (QPRC0_BASE + 0x00)
#define QPRC0_QRCR         (QPRC0_BASE + 0x04)
#define QPRC0_QPCCR        (QPRC0_BASE + 0x08)
#define QPRC0_QPRCR        (QPRC0_BASE + 0x0c)
#define QPRC0_QMPR         (QPRC0_BASE + 0x10)
#define QPRC0_QICR         (QPRC0_BASE + 0x14)
#define QPRC0_QICRL        (QPRC0_BASE + 0x14)
#define QPRC0_QICRH        (QPRC0_BASE + 0x15)
#define QPRC0_QCR          (QPRC0_BASE + 0x18)
#define QPRC0_QCRL         (QPRC0_BASE + 0x18)
#define QPRC0_QCRH         (QPRC0_BASE + 0x19)
#define QPRC0_QECR         (QPRC0_BASE + 0x1c)
#define QPRC0_QPRCRR       (QPRC0_BASE + 0x3c)

/* for ADC */
#define ADC0_ADSR          (ADC0_BASE + 0x00)
#define ADC0_ADCR          (ADC0_BASE + 0x01)
#define ADC0_SFNS          (ADC0_BASE + 0x08)
#define ADC0_SCCR          (ADC0_BASE + 0x09)
#define ADC0_SCFD          (ADC0_BASE + 0x0c)
#define ADC0_SCIS2         (ADC0_BASE + 0x10)
#define ADC0_SCIS3         (ADC0_BASE + 0x11)
#define ADC0_SCIS0         (ADC0_BASE + 0x14)
#define ADC0_SCIS1         (ADC0_BASE + 0x15)
#define ADC0_PFNS          (ADC0_BASE + 0x18)
#define ADC0_PCCR          (ADC0_BASE + 0x19)
#define ADC0_PCFD          (ADC0_BASE + 0x1c)
#define ADC0_PCIS          (ADC0_BASE + 0x20)
#define ADC0_CMPCR         (ADC0_BASE + 0x24)
#define ADC0_CMPD          (ADC0_BASE + 0x26)
#define ADC0_ADSS2         (ADC0_BASE + 0x28)
#define ADC0_ADSS3         (ADC0_BASE + 0x29)
#define ADC0_ADSS0         (ADC0_BASE + 0x2c)
#define ADC0_ADSS1         (ADC0_BASE + 0x2d)
#define ADC0_ADST1         (ADC0_BASE + 0x30)
#define ADC0_ADST0         (ADC0_BASE + 0x31)
#define ADC0_ADCT          (ADC0_BASE + 0x34)
#define ADC0_PRTSL         (ADC0_BASE + 0x38)
#define ADC0_SCTSL         (ADC0_BASE + 0x39)
#define ADC0_ADCEN         (ADC0_BASE + 0x3c)

#endif /* _SYSDEF_MB9BF618T_H_ */
