📄 jz4730.h
字号:
#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_MCR (0x10) /* RW 8b H'00 */#define OFF_SIRCR (0x20) /* RW 8b H'00, UART0 *//* 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 UART1_RDR (UART1_BASE + OFF_RDR)#define UART1_TDR (UART1_BASE + OFF_TDR)#define UART1_DLLR (UART1_BASE + OFF_DLLR)#define UART1_DLHR (UART1_BASE + OFF_DLHR)#define UART1_IER (UART1_BASE + OFF_IER)#define UART1_ISR (UART1_BASE + OFF_ISR)#define UART1_FCR (UART1_BASE + OFF_FCR)#define UART1_LCR (UART1_BASE + OFF_LCR)#define UART1_MCR (UART1_BASE + OFF_MCR)#define UART1_LSR (UART1_BASE + OFF_LSR)#define UART1_MSR (UART1_BASE + OFF_MSR)#define UART1_SPR (UART1_BASE + OFF_SPR)#define UART1_SIRCR (UART1_BASE + OFF_SIRCR)#define UART2_RDR (UART2_BASE + OFF_RDR)#define UART2_TDR (UART2_BASE + OFF_TDR)#define UART2_DLLR (UART2_BASE + OFF_DLLR)#define UART2_DLHR (UART2_BASE + OFF_DLHR)#define UART2_IER (UART2_BASE + OFF_IER)#define UART2_ISR (UART2_BASE + OFF_ISR)#define UART2_FCR (UART2_BASE + OFF_FCR)#define UART2_LCR (UART2_BASE + OFF_LCR)#define UART2_MCR (UART2_BASE + OFF_MCR)#define UART2_LSR (UART2_BASE + OFF_LSR)#define UART2_MSR (UART2_BASE + OFF_MSR)#define UART2_SPR (UART2_BASE + OFF_SPR)#define UART2_SIRCR (UART2_BASE + OFF_SIRCR)#define UART3_RDR (UART3_BASE + OFF_RDR)#define UART3_TDR (UART3_BASE + OFF_TDR)#define UART3_DLLR (UART3_BASE + OFF_DLLR)#define UART3_DLHR (UART3_BASE + OFF_DLHR)#define UART3_IER (UART3_BASE + OFF_IER)#define UART3_ISR (UART3_BASE + OFF_ISR)#define UART3_FCR (UART3_BASE + OFF_FCR)#define UART3_LCR (UART3_BASE + OFF_LCR)#define UART3_MCR (UART3_BASE + OFF_MCR)#define UART3_LSR (UART3_BASE + OFF_LSR)#define UART3_MSR (UART3_BASE + OFF_MSR)#define UART3_SPR (UART3_BASE + OFF_SPR)#define UART3_SIRCR (UART3_BASE + OFF_SIRCR)/* * 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)#define UART_LCR_WLEN_8 (3 << 0)#define UART_LCR_STOP (1 << 2) /* 0: 1 stop bit when word length is 5,6,7,8 1: 1.5 stop bits when 5; 2 stop bits when 6,7,8 */#define UART_LCR_STOP_1 (0 << 2) /* 0: 1 stop bit when word length is 5,6,7,8 1: 1.5 stop bits when 5; 2 stop bits when 6,7,8 */#define UART_LCR_STOP_2 (1 << 2) /* 0: 1 stop bit when word length is 5,6,7,8 1: 1.5 stop bits when 5; 2 stop bits when 6,7,8 */#define UART_LCR_PE (1 << 3) /* 0: parity disable */#define UART_LCR_PROE (1 << 4) /* 0: even parity 1: odd parity */#define UART_LCR_SPAR (1 << 5) /* 0: sticky parity disable */#define UART_LCR_SBRK (1 << 6) /* write 0 normal, write 1 send break */#define UART_LCR_DLAB (1 << 7) /* 0: access UART_RDR/TDR/IER 1: access UART_DLLR/DLHR *//* * Define macros for UART_LSR * UART Line Status Register */#define UART_LSR_DR (1 << 0) /* 0: receive FIFO is empty 1: receive data is ready */#define UART_LSR_ORER (1 << 1) /* 0: no overrun error */#define UART_LSR_PER (1 << 2) /* 0: no parity error */#define UART_LSR_FER (1 << 3) /* 0; no framing error */#define UART_LSR_BRK (1 << 4) /* 0: no break detected 1: receive a break signal */#define UART_LSR_TDRQ (1 << 5) /* 1: transmit FIFO half "empty" */#define UART_LSR_TEMT (1 << 6) /* 1: transmit FIFO and shift registers empty */#define UART_LSR_RFER (1 << 7) /* 0: no receive error 1: receive error in FIFO mode *//* * Define macros for UART_MCR * UART Modem Control Register */#define UART_MCR_DTR (1 << 0) /* 0: DTR_ ouput high */#define UART_MCR_RTS (1 << 1) /* 0: RTS_ output high */#define UART_MCR_OUT1 (1 << 2) /* 0: UART_MSR.RI is set to 0 and RI_ input high */#define UART_MCR_OUT2 (1 << 3) /* 0: UART_MSR.DCD is set to 0 and DCD_ input high */#define UART_MCR_LOOP (1 << 4) /* 0: normal 1: loopback mode */#define UART_MCR_MCE (1 << 7) /* 0: modem function is disable *//* * Define macros for UART_MSR * UART Modem Status Register */#define UART_MSR_DCTS (1 << 0) /* 0: no change on CTS_ pin since last read of UART_MSR */#define UART_MSR_DDSR (1 << 1) /* 0: no change on DSR_ pin since last read of UART_MSR */#define UART_MSR_DRI (1 << 2) /* 0: no change on RI_ pin since last read of UART_MSR */#define UART_MSR_DDCD (1 << 3) /* 0: no change on DCD_ pin since last read of UART_MSR */#define UART_MSR_CTS (1 << 4) /* 0: CTS_ pin is high */#define UART_MSR_DSR (1 << 5) /* 0: DSR_ pin is high */#define UART_MSR_RI (1 << 6) /* 0: RI_ pin is high */#define UART_MSR_DCD (1 << 7) /* 0: DCD_ pin is high *//* * Define macros for SIRCR * Slow IrDA Control Register */#define SIRCR_TSIRE (1 << 0) /* 0: transmitter is in UART mode 1: IrDA mode */#define SIRCR_RSIRE (1 << 1) /* 0: receiver is in UART mode 1: IrDA mode */#define SIRCR_TPWS (1 << 2) /* 0: transmit 0 pulse width is 3/16 of bit length 1: 0 pulse width is 1.6us for 115.2Kbps */#define SIRCR_TXPL (1 << 3) /* 0: encoder generates a positive pulse for 0 */#define SIRCR_RXPL (1 << 4) /* 0: decoder interprets positive pulse as 0 *//************************************************************************* * INTC *************************************************************************/#define INTC_ISR (INTC_BASE + 0x00)#define INTC_IMR (INTC_BASE + 0x04)#define INTC_IMSR (INTC_BASE + 0x08)#define INTC_IMCR (INTC_BASE + 0x0c)#define INTC_IPR (INTC_BASE + 0x10)#define REG_INTC_ISR REG32(INTC_ISR)#define REG_INTC_IMR REG32(INTC_IMR)#define REG_INTC_IMSR REG32(INTC_IMSR)#define REG_INTC_IMCR REG32(INTC_IMCR)#define REG_INTC_IPR REG32(INTC_IPR)#define IRQ_I2C 1#define IRQ_PS2 2#define IRQ_UPRT 3#define IRQ_CORE 4#define IRQ_UART3 6#define IRQ_UART2 7#define IRQ_UART1 8#define IRQ_UART0 9#define IRQ_SCC1 10#define IRQ_SCC0 11#define IRQ_UDC 12#define IRQ_UHC 13#define IRQ_MSC 14#define IRQ_RTC 15#define IRQ_FIR 16#define IRQ_SSI 17#define IRQ_CIM 18#define IRQ_ETH 19#define IRQ_AIC 20#define IRQ_DMAC 21#define IRQ_OST2 22#define IRQ_OST1 23#define IRQ_OST0 24#define IRQ_GPIO3 25#define IRQ_GPIO2 26#define IRQ_GPIO1 27#define IRQ_GPIO0 28#define IRQ_LCD 30/************************************************************************* * CIM *************************************************************************/#define CIM_CFG (CIM_BASE + 0x0000)#define CIM_CTRL (CIM_BASE + 0x0004)#define CIM_STATE (CIM_BASE + 0x0008)#define CIM_IID (CIM_BASE + 0x000C)#define CIM_RXFIFO (CIM_BASE + 0x0010)#define CIM_DA (CIM_BASE + 0x0020)#define CIM_FA (CIM_BASE + 0x0024)#define CIM_FID (CIM_BASE + 0x0028)#define CIM_CMD (CIM_BASE + 0x002C)#define REG_CIM_CFG REG32(CIM_CFG)#define REG_CIM_CTRL REG32(CIM_CTRL)#define REG_CIM_STATE REG32(CIM_STATE)#define REG_CIM_IID REG32(CIM_IID)#define REG_CIM_RXFIFO REG32(CIM_RXFIFO)#define REG_CIM_DA REG32(CIM_DA)#define REG_CIM_FA REG32(CIM_FA)#define REG_CIM_FID REG32(CIM_FID)#define REG_CIM_CMD REG32(CIM_CMD)/* CIM Configuration Register (CIM_CFG) */#define CIM_CFG_INV_DAT (1 << 15)#define CIM_CFG_VSP (1 << 14)#define CIM_CFG_HSP (1 << 13)#define CIM_CFG_PCP (1 << 12)#define CIM_CFG_DUMMY_ZERO (1 << 9)#define CIM_CFG_EXT_VSYNC (1 << 8)#define CIM_CFG_PACK_BIT 4#define CIM_CFG_PACK_MASK (0x7 << CIM_CFG_PACK_BIT) #define CIM_CFG_PACK_0 (0 << CIM_CFG_PACK_BIT) #define CIM_CFG_PACK_1 (1 << CIM_CFG_PACK_BIT) #define CIM_CFG_PACK_2 (2 << CIM_CFG_PACK_BIT) #define CIM_CFG_PACK_3 (3 << CIM_CFG_PACK_BIT) #define CIM_CFG_PACK_4 (4 << CIM_CFG_PACK_BIT) #define CIM_CFG_PACK_5 (5 << CIM_CFG_PACK_BIT) #define CIM_CFG_PACK_6 (6 << CIM_CFG_PACK_BIT) #define CIM_CFG_PACK_7 (7 << CIM_CFG_PACK_BIT)#define CIM_CFG_DSM_BIT 0#define CIM_CFG_DSM_MASK (0x3 << CIM_CFG_DSM_BIT) #define CIM_CFG_DSM_CPM (0 << CIM_CFG_DSM_BIT) /* CCIR656 Progressive Mode */ #define CIM_CFG_DSM_CIM (1 << CIM_CFG_DSM_BIT) /* CCIR656 Interlace Mode */ #define CIM_CFG_DSM_GCM (2 << CIM_CFG_DSM_BIT) /* Gated Clock Mode */ #define CIM_CFG_DSM_NGCM (3 << CIM_CFG_DSM_BIT) /* Non-Gated Clock Mode *//* CIM Control Register (CIM_CTRL) */#define CIM_CTRL_MCLKDIV_BIT 24#define CIM_CTRL_MCLKDIV_MASK (0xff << CIM_CTRL_MCLKDIV_BIT)#define CIM_CTRL_FRC_BIT 16#define CIM_CTRL_FRC_MASK (0xf << CIM_CTRL_FRC_BIT) #define CIM_CTRL_FRC_1 (0x0 << CIM_CTRL_FRC_BIT) /* Sample every frame */ #define CIM_CTRL_FRC_2 (0x1 << CIM_CTRL_FRC_BIT) /* Sample 1/2 frame */ #define CIM_CTRL_FRC_3 (0x2 << CIM_CTRL_FRC_BIT) /* Sample 1/3 frame */ #define CIM_CTRL_FRC_4 (0x3 << CIM_CTRL_FRC_BIT) /* Sample 1/4 frame */ #define CIM_CTRL_FRC_5 (0x4 << CIM_CTRL_FRC_BIT) /* Sample 1/5 frame */ #define CIM_CTRL_FRC_6 (0x5 << CIM_CTRL_FRC_BIT) /* Sample 1/6 frame */ #define CIM_CTRL_FRC_7 (0x6 << CIM_CTRL_FRC_BIT) /* Sample 1/7 frame */ #define CIM_CTRL_FRC_8 (0x7 << CIM_CTRL_FRC_BIT) /* Sample 1/8 frame */ #define CIM_CTRL_FRC_9 (0x8 << CIM_CTRL_FRC_BIT) /* Sample 1/9 frame */ #define CIM_CTRL_FRC_10 (0x9 << CIM_CTRL_FRC_BIT) /* Sample 1/10 frame */ #define CIM_CTRL_FRC_11 (0xA << CIM_CTRL_FRC_BIT) /* Sample 1/11 frame */ #define CIM_CTRL_FRC_12 (0xB << CIM_CTRL_FRC_BIT) /* Sample 1/12 frame */ #define CIM_CTRL_FRC_13 (0xC << CIM_CTRL_FRC_BIT) /* Sample 1/13 frame */ #define CIM_CTRL_FRC_14 (0xD << CIM_CTRL_FRC_BIT) /* Sample 1/14 frame */ #define CIM_CTRL_FRC_15 (0xE << CIM_CTRL_FRC_BIT) /* Sample 1/15 frame */ #define CIM_CTRL_FRC_16 (0xF << CIM_CTRL_FRC_BIT) /* Sample 1/16 frame */#define CIM_CTRL_VDDM (1 << 13)#define CIM_CTRL_DMA_SOFM (1 << 12)#define CIM_CTRL_DMA_EOFM (1 << 11)#define CIM_CTRL_DMA_STOPM (1 << 10)#define CIM_CTRL_RXF_TRIGM (1 << 9)#define CIM_CTRL_RXF_OFM (1 << 8)#define CIM_CTRL_RXF_TRIG_BIT 4#define CIM_CTRL_RXF_TRIG_MASK (0x7 << CIM_CTRL_RXF_TRIG_BIT) #define CIM_CTRL_RXF_TRIG_4 (0 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 4 */ #define CIM_CTRL_RXF_TRIG_8 (1 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 8 */ #define CIM_CTRL_RXF_TRIG_12 (2 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 12 */ #define CIM_CTRL_RXF_TRIG_16 (3 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 16 */ #define CIM_CTRL_RXF_TRIG_20 (4 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 20 */ #define CIM_CTRL_RXF_TRIG_24 (5 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 24 */ #define CIM_CTRL_RXF_TRIG_28 (6 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 28 */ #define CIM_CTRL_RXF_TRIG_32 (7 << CIM_CTRL_RXF_TRIG_BIT) /* RXFIFO Trigger Value is 32 */#define CIM_CTRL_DMA_EN (1 << 2)#define CIM_CTRL_RXF_RST (1 << 1)#define CIM_CTRL_ENA (1 << 0)/* CIM State Register (CIM_STATE) */#define CIM_STATE_DMA_SOF (1 << 6)#define CIM_STATE_DMA_EOF (1 << 5)#define CIM_STATE_DMA_STOP (1 << 4)#define CIM_STATE_RXF_OF (1 << 3)#define CIM_STATE_RXF_TRIG (1 << 2)#define CIM_STATE_RXF_EMPTY (1 << 1)#define CIM_STATE_VDD (1 << 0)/* CIM DMA Command Register (CIM_CMD) */#define CIM_CMD_SOFINT (1 << 31)#define CIM_CMD_EOFINT (1 << 30)#define CIM_CMD_STOP (1 << 28)#define CIM_CMD_LEN_BIT 0#define CIM_CMD_LEN_MASK (0xffffff << CIM_CMD_LEN_BIT)/************************************************************************* * PWM *************************************************************************/#define PWM_CTR(n) (PWM##n##_BASE + 0x000)#define PWM_PER(n) (PWM##n##_BASE + 0x004)#define PWM_DUT(n) (PWM##n##_BASE + 0x008)#define REG_PWM_CTR(n) REG8(PWM_CTR(n))#define REG_PWM_PER(n) REG16(PWM_PER(n))#define REG_PWM_DUT(n) REG16(PWM_DUT(n))/* PWM Control Register (PWM_CTR) */#define PWM_CTR_EN (1 << 7)#define PWM_CTR_SD (1 << 6)#define PWM_CTR_PRESCALE_BIT 0#define PWM_CTR_PRESCALE_MASK (0x3f << PWM_CTR_PRESCALE_BIT)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -