📄 jz4740.h
字号:
#define DMAC_DSAR2 DMAC_DSAR(2)#define DMAC_DTAR2 DMAC_DTAR(2)#define DMAC_DTCR2 DMAC_DTCR(2)#define DMAC_DRSR2 DMAC_DRSR(2)#define DMAC_DCCSR2 DMAC_DCCSR(2)#define DMAC_DCMD2 DMAC_DCMD(2)#define DMAC_DDA2 DMAC_DDA(2)// channel 3#define DMAC_DSAR3 DMAC_DSAR(3)#define DMAC_DTAR3 DMAC_DTAR(3)#define DMAC_DTCR3 DMAC_DTCR(3)#define DMAC_DRSR3 DMAC_DRSR(3)#define DMAC_DCCSR3 DMAC_DCCSR(3)#define DMAC_DCMD3 DMAC_DCMD(3)#define DMAC_DDA3 DMAC_DDA(3)// channel 4#define DMAC_DSAR4 DMAC_DSAR(4)#define DMAC_DTAR4 DMAC_DTAR(4)#define DMAC_DTCR4 DMAC_DTCR(4)#define DMAC_DRSR4 DMAC_DRSR(4)#define DMAC_DCCSR4 DMAC_DCCSR(4)#define DMAC_DCMD4 DMAC_DCMD(4)#define DMAC_DDA4 DMAC_DDA(4)// channel 5#define DMAC_DSAR5 DMAC_DSAR(5)#define DMAC_DTAR5 DMAC_DTAR(5)#define DMAC_DTCR5 DMAC_DTCR(5)#define DMAC_DRSR5 DMAC_DRSR(5)#define DMAC_DCCSR5 DMAC_DCCSR(5)#define DMAC_DCMD5 DMAC_DCMD(5)#define DMAC_DDA5 DMAC_DDA(5)#define REG_DMAC_DSAR(n) REG32(DMAC_DSAR((n)))#define REG_DMAC_DTAR(n) REG32(DMAC_DTAR((n)))#define REG_DMAC_DTCR(n) REG32(DMAC_DTCR((n)))#define REG_DMAC_DRSR(n) REG32(DMAC_DRSR((n)))#define REG_DMAC_DCCSR(n) REG32(DMAC_DCCSR((n)))#define REG_DMAC_DCMD(n) REG32(DMAC_DCMD((n)))#define REG_DMAC_DDA(n) REG32(DMAC_DDA((n)))#define REG_DMAC_DMACR REG32(DMAC_DMACR)#define REG_DMAC_DMAIPR REG32(DMAC_DMAIPR)#define REG_DMAC_DMADBR REG32(DMAC_DMADBR)#define REG_DMAC_DMADBSR REG32(DMAC_DMADBSR)// DMA request source register#define DMAC_DRSR_RS_BIT 0#define DMAC_DRSR_RS_MASK (0x1f << DMAC_DRSR_RS_BIT) #define DMAC_DRSR_RS_AUTO (8 << DMAC_DRSR_RS_BIT) #define DMAC_DRSR_RS_UART0OUT (20 << DMAC_DRSR_RS_BIT) #define DMAC_DRSR_RS_UART0IN (21 << DMAC_DRSR_RS_BIT) #define DMAC_DRSR_RS_SSIOUT (22 << DMAC_DRSR_RS_BIT) #define DMAC_DRSR_RS_SSIIN (23 << DMAC_DRSR_RS_BIT) #define DMAC_DRSR_RS_AICOUT (24 << DMAC_DRSR_RS_BIT) #define DMAC_DRSR_RS_AICIN (25 << DMAC_DRSR_RS_BIT) #define DMAC_DRSR_RS_MSCOUT (26 << DMAC_DRSR_RS_BIT) #define DMAC_DRSR_RS_MSCIN (27 << DMAC_DRSR_RS_BIT) #define DMAC_DRSR_RS_TCU (28 << DMAC_DRSR_RS_BIT) #define DMAC_DRSR_RS_SADC (29 << DMAC_DRSR_RS_BIT) #define DMAC_DRSR_RS_SLCD (30 << DMAC_DRSR_RS_BIT)// DMA channel control/status register#define DMAC_DCCSR_NDES (1 << 31) /* descriptor (0) or not (1) ? */#define DMAC_DCCSR_CDOA_BIT 16 /* copy of DMA offset address */#define DMAC_DCCSR_CDOA_MASK (0xff << DMAC_DCCSR_CDOA_BIT)#define DMAC_DCCSR_INV (1 << 6) /* descriptor invalid */#define DMAC_DCCSR_AR (1 << 4) /* address error */#define DMAC_DCCSR_TT (1 << 3) /* transfer terminated */#define DMAC_DCCSR_HLT (1 << 2) /* DMA halted */#define DMAC_DCCSR_CT (1 << 1) /* count terminated */#define DMAC_DCCSR_EN (1 << 0) /* channel enable bit */// DMA channel command register #define DMAC_DCMD_SAI (1 << 23) /* source address increment */#define DMAC_DCMD_DAI (1 << 22) /* dest address increment */#define DMAC_DCMD_RDIL_BIT 16 /* request detection interval length */#define DMAC_DCMD_RDIL_MASK (0x0f << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_IGN (0 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_2 (1 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_4 (2 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_8 (3 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_12 (4 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_16 (5 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_20 (6 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_24 (7 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_28 (8 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_32 (9 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_48 (10 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_60 (11 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_64 (12 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_124 (13 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_128 (14 << DMAC_DCMD_RDIL_BIT) #define DMAC_DCMD_RDIL_200 (15 << DMAC_DCMD_RDIL_BIT)#define DMAC_DCMD_SWDH_BIT 14 /* source port width */#define DMAC_DCMD_SWDH_MASK (0x03 << DMAC_DCMD_SWDH_BIT) #define DMAC_DCMD_SWDH_32 (0 << DMAC_DCMD_SWDH_BIT) #define DMAC_DCMD_SWDH_8 (1 << DMAC_DCMD_SWDH_BIT) #define DMAC_DCMD_SWDH_16 (2 << DMAC_DCMD_SWDH_BIT)#define DMAC_DCMD_DWDH_BIT 12 /* dest port width */#define DMAC_DCMD_DWDH_MASK (0x03 << DMAC_DCMD_DWDH_BIT) #define DMAC_DCMD_DWDH_32 (0 << DMAC_DCMD_DWDH_BIT) #define DMAC_DCMD_DWDH_8 (1 << DMAC_DCMD_DWDH_BIT) #define DMAC_DCMD_DWDH_16 (2 << DMAC_DCMD_DWDH_BIT)#define DMAC_DCMD_DS_BIT 8 /* transfer data size of a data unit */#define DMAC_DCMD_DS_MASK (0x07 << DMAC_DCMD_DS_BIT) #define DMAC_DCMD_DS_32BIT (0 << DMAC_DCMD_DS_BIT) #define DMAC_DCMD_DS_8BIT (1 << DMAC_DCMD_DS_BIT) #define DMAC_DCMD_DS_16BIT (2 << DMAC_DCMD_DS_BIT) #define DMAC_DCMD_DS_16BYTE (3 << DMAC_DCMD_DS_BIT) #define DMAC_DCMD_DS_32BYTE (4 << DMAC_DCMD_DS_BIT)#define DMAC_DCMD_TM (1 << 7) /* transfer mode: 0-single 1-block */#define DMAC_DCMD_DES_V (1 << 4) /* descriptor valid flag */#define DMAC_DCMD_DES_VM (1 << 3) /* descriptor valid mask: 1:support V-bit */#define DMAC_DCMD_DES_VIE (1 << 2) /* DMA valid error interrupt enable */#define DMAC_DCMD_TIE (1 << 1) /* DMA transfer interrupt enable */#define DMAC_DCMD_LINK (1 << 0) /* descriptor link enable */// DMA descriptor address register#define DMAC_DDA_BASE_BIT 12 /* descriptor base address */#define DMAC_DDA_BASE_MASK (0x0fffff << DMAC_DDA_BASE_BIT)#define DMAC_DDA_OFFSET_BIT 4 /* descriptor offset address */#define DMAC_DDA_OFFSET_MASK (0x0ff << DMAC_DDA_OFFSET_BIT)// DMA control register#define DMAC_DMACR_PR_BIT 8 /* channel priority mode */#define DMAC_DMACR_PR_MASK (0x03 << DMAC_DMACR_PR_BIT) #define DMAC_DMACR_PR_012345 (0 << DMAC_DMACR_PR_BIT) #define DMAC_DMACR_PR_023145 (1 << DMAC_DMACR_PR_BIT) #define DMAC_DMACR_PR_201345 (2 << DMAC_DMACR_PR_BIT) #define DMAC_DMACR_PR_RR (3 << DMAC_DMACR_PR_BIT) /* round robin */#define DMAC_DMACR_HLT (1 << 3) /* DMA halt flag */#define DMAC_DMACR_AR (1 << 2) /* address error flag */#define DMAC_DMACR_DMAE (1 << 0) /* DMA enable bit */// DMA doorbell register#define DMAC_DMADBR_DB5 (1 << 5) /* doorbell for channel 5 */#define DMAC_DMADBR_DB4 (1 << 5) /* doorbell for channel 4 */#define DMAC_DMADBR_DB3 (1 << 5) /* doorbell for channel 3 */#define DMAC_DMADBR_DB2 (1 << 5) /* doorbell for channel 2 */#define DMAC_DMADBR_DB1 (1 << 5) /* doorbell for channel 1 */#define DMAC_DMADBR_DB0 (1 << 5) /* doorbell for channel 0 */// DMA doorbell set register#define DMAC_DMADBSR_DBS5 (1 << 5) /* enable doorbell for channel 5 */#define DMAC_DMADBSR_DBS4 (1 << 5) /* enable doorbell for channel 4 */#define DMAC_DMADBSR_DBS3 (1 << 5) /* enable doorbell for channel 3 */#define DMAC_DMADBSR_DBS2 (1 << 5) /* enable doorbell for channel 2 */#define DMAC_DMADBSR_DBS1 (1 << 5) /* enable doorbell for channel 1 */#define DMAC_DMADBSR_DBS0 (1 << 5) /* enable doorbell for channel 0 */// DMA interrupt pending register#define DMAC_DMAIPR_CIRQ5 (1 << 5) /* irq pending status for channel 5 */#define DMAC_DMAIPR_CIRQ4 (1 << 4) /* irq pending status for channel 4 */#define DMAC_DMAIPR_CIRQ3 (1 << 3) /* irq pending status for channel 3 */#define DMAC_DMAIPR_CIRQ2 (1 << 2) /* irq pending status for channel 2 */#define DMAC_DMAIPR_CIRQ1 (1 << 1) /* irq pending status for channel 1 */#define DMAC_DMAIPR_CIRQ0 (1 << 0) /* irq pending status for channel 0 *//************************************************************************* * GPIO (General-Purpose I/O Ports) *************************************************************************/#define MAX_GPIO_NUM 128//n = 0,1,2,3#define GPIO_PXPIN(n) (GPIO_BASE + (0x00 + (n)*0x100)) /* PIN Level Register */#define GPIO_PXDAT(n) (GPIO_BASE + (0x10 + (n)*0x100)) /* Port Data Register */#define GPIO_PXDATS(n) (GPIO_BASE + (0x14 + (n)*0x100)) /* Port Data Set Register */#define GPIO_PXDATC(n) (GPIO_BASE + (0x18 + (n)*0x100)) /* Port Data Clear Register */#define GPIO_PXIM(n) (GPIO_BASE + (0x20 + (n)*0x100)) /* Interrupt Mask Register */#define GPIO_PXIMS(n) (GPIO_BASE + (0x24 + (n)*0x100)) /* Interrupt Mask Set Reg */#define GPIO_PXIMC(n) (GPIO_BASE + (0x28 + (n)*0x100)) /* Interrupt Mask Clear Reg */#define GPIO_PXPE(n) (GPIO_BASE + (0x30 + (n)*0x100)) /* Pull Enable Register */#define GPIO_PXPES(n) (GPIO_BASE + (0x34 + (n)*0x100)) /* Pull Enable Set Reg. */#define GPIO_PXPEC(n) (GPIO_BASE + (0x38 + (n)*0x100)) /* Pull Enable Clear Reg. */#define GPIO_PXFUN(n) (GPIO_BASE + (0x40 + (n)*0x100)) /* Function Register */#define GPIO_PXFUNS(n) (GPIO_BASE + (0x44 + (n)*0x100)) /* Function Set Register */#define GPIO_PXFUNC(n) (GPIO_BASE + (0x48 + (n)*0x100)) /* Function Clear Register */#define GPIO_PXSEL(n) (GPIO_BASE + (0x50 + (n)*0x100)) /* Select Register */#define GPIO_PXSELS(n) (GPIO_BASE + (0x54 + (n)*0x100)) /* Select Set Register */#define GPIO_PXSELC(n) (GPIO_BASE + (0x58 + (n)*0x100)) /* Select Clear Register */#define GPIO_PXDIR(n) (GPIO_BASE + (0x60 + (n)*0x100)) /* Direction Register */#define GPIO_PXDIRS(n) (GPIO_BASE + (0x64 + (n)*0x100)) /* Direction Set Register */#define GPIO_PXDIRC(n) (GPIO_BASE + (0x68 + (n)*0x100)) /* Direction Clear Register */#define GPIO_PXTRG(n) (GPIO_BASE + (0x70 + (n)*0x100)) /* Trigger Register */#define GPIO_PXTRGS(n) (GPIO_BASE + (0x74 + (n)*0x100)) /* Trigger Set Register */#define GPIO_PXTRGC(n) (GPIO_BASE + (0x78 + (n)*0x100)) /* Trigger Set Register */#define GPIO_PXFLG(n) (GPIO_BASE + (0x80 + (n)*0x100)) /* Port Flag Register */#define REG_GPIO_PXPIN(n) REG32(GPIO_PXPIN((n))) /* PIN level */#define REG_GPIO_PXDAT(n) REG32(GPIO_PXDAT((n))) /* 1: interrupt pending */#define REG_GPIO_PXDATS(n) REG32(GPIO_PXDATS((n)))#define REG_GPIO_PXDATC(n) REG32(GPIO_PXDATC((n)))#define REG_GPIO_PXIM(n) REG32(GPIO_PXIM((n))) /* 1: mask pin interrupt */#define REG_GPIO_PXIMS(n) REG32(GPIO_PXIMS((n)))#define REG_GPIO_PXIMC(n) REG32(GPIO_PXIMC((n)))#define REG_GPIO_PXPE(n) REG32(GPIO_PXPE((n))) /* 1: disable pull up/down */#define REG_GPIO_PXPES(n) REG32(GPIO_PXPES((n)))#define REG_GPIO_PXPEC(n) REG32(GPIO_PXPEC((n)))#define REG_GPIO_PXFUN(n) REG32(GPIO_PXFUN((n))) /* 0:GPIO or intr, 1:FUNC */#define REG_GPIO_PXFUNS(n) REG32(GPIO_PXFUNS((n)))#define REG_GPIO_PXFUNC(n) REG32(GPIO_PXFUNC((n)))#define REG_GPIO_PXSEL(n) REG32(GPIO_PXSEL((n))) /* 0:GPIO/Fun0,1:intr/fun1*/#define REG_GPIO_PXSELS(n) REG32(GPIO_PXSELS((n)))#define REG_GPIO_PXSELC(n) REG32(GPIO_PXSELC((n)))#define REG_GPIO_PXDIR(n) REG32(GPIO_PXDIR((n))) /* 0:input/low-level-trig/falling-edge-trig, 1:output/high-level-trig/rising-edge-trig */#define REG_GPIO_PXDIRS(n) REG32(GPIO_PXDIRS((n)))#define REG_GPIO_PXDIRC(n) REG32(GPIO_PXDIRC((n)))#define REG_GPIO_PXTRG(n) REG32(GPIO_PXTRG((n))) /* 0:level-trigger, 1:edge-trigger */#define REG_GPIO_PXTRGS(n) REG32(GPIO_PXTRGS((n)))#define REG_GPIO_PXTRGC(n) REG32(GPIO_PXTRGC((n)))#define REG_GPIO_PXFLG(n) REG32(GPIO_PXFLG((n))) /* interrupt flag *//************************************************************************* * UART *************************************************************************/#define IRDA_BASE UART0_BASE#define UART_BASE UART0_BASE#define UART_OFF 0x1000/* Register Offset */#define OFF_RDR (0x00) /* R 8b H'xx */#define OFF_TDR (0x00) /* W 8b H'xx */#define OFF_DLLR (0x00) /* RW 8b H'00 */#define OFF_DLHR (0x04) /* RW 8b H'00 */#define OFF_IER (0x04) /* RW 8b H'00 */#define OFF_ISR (0x08) /* R 8b H'01 */#define OFF_FCR (0x08) /* W 8b H'00 */#define OFF_LCR (0x0C) /* RW 8b H'00 */#define OFF_MCR (0x10) /* RW 8b H'00 */#define OFF_LSR (0x14) /* R 8b H'00 */#define OFF_MSR (0x18) /* R 8b H'00 */#define OFF_SPR (0x1C) /* RW 8b H'00 */#define OFF_SIRCR (0x20) /* RW 8b H'00, UART0 */#define OFF_UMR (0x24) /* RW 8b H'00, UART M Register */#define OFF_UACR (0x28) /* RW 8b H'00, UART Add Cycle Register *//* Register Address */#define UART0_RDR (UART0_BASE + OFF_RDR)#define UART0_TDR (UART0_BASE + OFF_TDR)#define UART0_DLLR (UART0_BASE + OFF_DLLR)#define UART0_DLHR (UART0_BASE + OFF_DLHR)#define UART0_IER (UART0_BASE + OFF_IER)#define UART0_ISR (UART0_BASE + OFF_ISR)#define UART0_FCR (UART0_BASE + OFF_FCR)#define UART0_LCR (UART0_BASE + OFF_LCR)#define UART0_MCR (UART0_BASE + OFF_MCR)#define UART0_LSR (UART0_BASE + OFF_LSR)#define UART0_MSR (UART0_BASE + OFF_MSR)#define UART0_SPR (UART0_BASE + OFF_SPR)#define UART0_SIRCR (UART0_BASE + OFF_SIRCR)#define UART0_UMR (UART0_BASE + OFF_UMR)#define UART0_UACR (UART0_BASE + OFF_UACR)/* * Define macros for UART_IER * UART Interrupt Enable Register */#define UART_IER_RIE (1 << 0) /* 0: receive fifo "full" interrupt disable */#define UART_IER_TIE (1 << 1) /* 0: transmit fifo "empty" interrupt disable */#define UART_IER_RLIE (1 << 2) /* 0: receive line status interrupt disable */#define UART_IER_MIE (1 << 3) /* 0: modem status interrupt disable */#define UART_IER_RTIE (1 << 4) /* 0: receive timeout interrupt disable *//* * Define macros for UART_ISR * UART Interrupt Status Register */#define UART_ISR_IP (1 << 0) /* 0: interrupt is pending 1: no interrupt */#define UART_ISR_IID (7 << 1) /* Source of Interrupt */#define UART_ISR_IID_MSI (0 << 1) /* Modem status interrupt */#define UART_ISR_IID_THRI (1 << 1) /* Transmitter holding register empty */#define UART_ISR_IID_RDI (2 << 1) /* Receiver data interrupt */#define UART_ISR_IID_RLSI (3 << 1) /* Receiver line status interrupt */#define UART_ISR_FFMS (3 << 6) /* FIFO mode select, set when UART_FCR.FE is set to 1 */#define UART_ISR_FFMS_NO_FIFO (0 << 6)#define UART_ISR_FFMS_FIFO_MODE (3 << 6)/* * Define macros for UART_FCR * UART FIFO Control Register */#define UART_FCR_FE (1 << 0) /* 0: non-FIFO mode 1: FIFO mode */#define UART_FCR_RFLS (1 << 1) /* write 1 to flush receive FIFO */#define UART_FCR_TFLS (1 << 2) /* write 1 to flush transmit FIFO */#define UART_FCR_DMS (1 << 3) /* 0: disable DMA mode */#define UART_FCR_UUE (1 << 4) /* 0: disable UART */#define UART_FCR_RTRG (3 << 6) /* Receive FIFO Data Trigger */#define UART_FCR_RTRG_1 (0 << 6)#define UART_FCR_RTRG_4 (1 << 6)#define UART_FCR_RTRG_8 (2 << 6)#define UART_FCR_RTRG_15 (3 << 6)/* * Define macros for UART_LCR * UART Line Control Register */#define UART_LCR_WLEN (3 << 0) /* word length */#define UART_LCR_WLEN_5 (0 << 0)#define UART_LCR_WLEN_6 (1 << 0)#define UART_LCR_WLEN_7 (2 << 0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -