📄 jz4740.h
字号:
#define REG_ICDC_APSR REG32(ICDC_APSR)#define REG_ICDC_CDCCR1 REG32(ICDC_CDCCR1)#define REG_ICDC_CDCCR2 REG32(ICDC_CDCCR2)/* ICDC Control Register */#define ICDC_CR_LINVOL_BIT 24 /* LINE Input Volume Gain: GAIN=LINVOL*1.5-34.5 */#define ICDC_CR_LINVOL_MASK (0x1f << ICDC_CR_LINVOL_BIT)#define ICDC_CR_ASRATE_BIT 20 /* Audio Sample Rate */#define ICDC_CR_ASRATE_MASK (0x0f << ICDC_CR_ASRATE_BIT) #define ICDC_CR_ASRATE_8000 (0x0 << ICDC_CR_ASRATE_BIT) #define ICDC_CR_ASRATE_11025 (0x1 << ICDC_CR_ASRATE_BIT) #define ICDC_CR_ASRATE_12000 (0x2 << ICDC_CR_ASRATE_BIT) #define ICDC_CR_ASRATE_16000 (0x3 << ICDC_CR_ASRATE_BIT) #define ICDC_CR_ASRATE_22050 (0x4 << ICDC_CR_ASRATE_BIT) #define ICDC_CR_ASRATE_24000 (0x5 << ICDC_CR_ASRATE_BIT) #define ICDC_CR_ASRATE_32000 (0x6 << ICDC_CR_ASRATE_BIT) #define ICDC_CR_ASRATE_44100 (0x7 << ICDC_CR_ASRATE_BIT) #define ICDC_CR_ASRATE_48000 (0x8 << ICDC_CR_ASRATE_BIT)#define ICDC_CR_MICBG_BIT 18 /* MIC Boost Gain */#define ICDC_CR_MICBG_MASK (0x3 << ICDC_CR_MICBG_BIT) #define ICDC_CR_MICBG_0DB (0x0 << ICDC_CR_MICBG_BIT) #define ICDC_CR_MICBG_6DB (0x1 << ICDC_CR_MICBG_BIT) #define ICDC_CR_MICBG_12DB (0x2 << ICDC_CR_MICBG_BIT) #define ICDC_CR_MICBG_20DB (0x3 << ICDC_CR_MICBG_BIT)#define ICDC_CR_HPVOL_BIT 16 /* Headphone Volume Gain */#define ICDC_CR_HPVOL_MASK (0x3 << ICDC_CR_HPVOL_BIT) #define ICDC_CR_HPVOL_0DB (0x0 << ICDC_CR_HPVOL_BIT) #define ICDC_CR_HPVOL_2DB (0x1 << ICDC_CR_HPVOL_BIT) #define ICDC_CR_HPVOL_4DB (0x2 << ICDC_CR_HPVOL_BIT) #define ICDC_CR_HPVOL_6DB (0x3 << ICDC_CR_HPVOL_BIT)#define ICDC_CR_ELINEIN (1 << 13) /* Enable LINE Input */#define ICDC_CR_EMIC (1 << 12) /* Enable MIC Input */#define ICDC_CR_SW1ON (1 << 11) /* Switch 1 in CODEC is on */#define ICDC_CR_EADC (1 << 10) /* Enable ADC */#define ICDC_CR_SW2ON (1 << 9) /* Switch 2 in CODEC is on */#define ICDC_CR_EDAC (1 << 8) /* Enable DAC */#define ICDC_CR_HPMUTE (1 << 5) /* Headphone Mute */#define ICDC_CR_HPTON (1 << 4) /* Headphone Amplifier Trun On */#define ICDC_CR_HPTOFF (1 << 3) /* Headphone Amplifier Trun Off */#define ICDC_CR_TAAP (1 << 2) /* Turn Around of the Anti-Pop Procedure */#define ICDC_CR_EAP (1 << 1) /* Enable Anti-Pop Procedure */#define ICDC_CR_SUSPD (1 << 0) /* CODEC Suspend *//* Anti-Pop WAIT Stage Timing Control Register */#define ICDC_APWAIT_WAITSN_BIT 0#define ICDC_APWAIT_WAITSN_MASK (0x7ff << ICDC_APWAIT_WAITSN_BIT)/* Anti-Pop HPEN-PRE Stage Timing Control Register */#define ICDC_APPRE_PRESN_BIT 0#define ICDC_APPRE_PRESN_MASK (0x1ff << ICDC_APPRE_PRESN_BIT)/* Anti-Pop HPEN Stage Timing Control Register */#define ICDC_APHPEN_HPENSN_BIT 0#define ICDC_APHPEN_HPENSN_MASK (0x3fff << ICDC_APHPEN_HPENSN_BIT)/* Anti-Pop Status Register */#define ICDC_SR_HPST_BIT 14 /* Headphone Amplifier State */#define ICDC_SR_HPST_MASK (0x7 << ICDC_SR_HPST_BIT)#define ICDC_SR_HPST_HP_OFF (0x0 << ICDC_SR_HPST_BIT) /* HP amplifier is off */#define ICDC_SR_HPST_TON_WAIT (0x1 << ICDC_SR_HPST_BIT) /* wait state in turn-on */ #define ICDC_SR_HPST_TON_PRE (0x2 << ICDC_SR_HPST_BIT) /* pre-enable state in turn-on */#define ICDC_SR_HPST_TON_HPEN (0x3 << ICDC_SR_HPST_BIT) /* HP enable state in turn-on */ #define ICDC_SR_HPST_TOFF_HPEN (0x4 << ICDC_SR_HPST_BIT) /* HP enable state in turn-off */ #define ICDC_SR_HPST_TOFF_PRE (0x5 << ICDC_SR_HPST_BIT) /* pre-enable state in turn-off */ #define ICDC_SR_HPST_TOFF_WAIT (0x6 << ICDC_SR_HPST_BIT) /* wait state in turn-off */ #define ICDC_SR_HPST_HP_ON (0x7 << ICDC_SR_HPST_BIT) /* HP amplifier is on */#define ICDC_SR_SNCNT_BIT 0 /* Sample Number Counter */#define ICDC_SR_SNCNT_MASK (0x3fff << ICDC_SR_SNCNT_BIT)/************************************************************************* * I2C *************************************************************************/#define I2C_DR (I2C_BASE + 0x000)#define I2C_CR (I2C_BASE + 0x004)#define I2C_SR (I2C_BASE + 0x008)#define I2C_GR (I2C_BASE + 0x00C)#define REG_I2C_DR REG8(I2C_DR)#define REG_I2C_CR REG8(I2C_CR)#define REG_I2C_SR REG8(I2C_SR)#define REG_I2C_GR REG16(I2C_GR)/* I2C Control Register (I2C_CR) */#define I2C_CR_IEN (1 << 4)#define I2C_CR_STA (1 << 3)#define I2C_CR_STO (1 << 2)#define I2C_CR_AC (1 << 1)#define I2C_CR_I2CE (1 << 0)/* I2C Status Register (I2C_SR) */#define I2C_SR_STX (1 << 4)#define I2C_SR_BUSY (1 << 3)#define I2C_SR_TEND (1 << 2)#define I2C_SR_DRF (1 << 1)#define I2C_SR_ACKF (1 << 0)/************************************************************************* * SSI *************************************************************************/#define SSI_DR (SSI_BASE + 0x000)#define SSI_CR0 (SSI_BASE + 0x004)#define SSI_CR1 (SSI_BASE + 0x008)#define SSI_SR (SSI_BASE + 0x00C)#define SSI_ITR (SSI_BASE + 0x010)#define SSI_ICR (SSI_BASE + 0x014)#define SSI_GR (SSI_BASE + 0x018)#define REG_SSI_DR REG32(SSI_DR)#define REG_SSI_CR0 REG16(SSI_CR0)#define REG_SSI_CR1 REG32(SSI_CR1)#define REG_SSI_SR REG32(SSI_SR)#define REG_SSI_ITR REG16(SSI_ITR)#define REG_SSI_ICR REG8(SSI_ICR)#define REG_SSI_GR REG16(SSI_GR)/* SSI Data Register (SSI_DR) */#define SSI_DR_GPC_BIT 0#define SSI_DR_GPC_MASK (0x1ff << SSI_DR_GPC_BIT)/* SSI Control Register 0 (SSI_CR0) */#define SSI_CR0_SSIE (1 << 15)#define SSI_CR0_TIE (1 << 14)#define SSI_CR0_RIE (1 << 13)#define SSI_CR0_TEIE (1 << 12)#define SSI_CR0_REIE (1 << 11)#define SSI_CR0_LOOP (1 << 10)#define SSI_CR0_RFINE (1 << 9)#define SSI_CR0_RFINC (1 << 8)#define SSI_CR0_FSEL (1 << 6)#define SSI_CR0_TFLUSH (1 << 2)#define SSI_CR0_RFLUSH (1 << 1)#define SSI_CR0_DISREV (1 << 0)/* SSI Control Register 1 (SSI_CR1) */#define SSI_CR1_FRMHL_BIT 30#define SSI_CR1_FRMHL_MASK (0x3 << SSI_CR1_FRMHL_BIT) #define SSI_CR1_FRMHL_CELOW_CE2LOW (0 << SSI_CR1_FRMHL_BIT) /* SSI_CE_ is low valid and SSI_CE2_ is low valid */ #define SSI_CR1_FRMHL_CEHIGH_CE2LOW (1 << SSI_CR1_FRMHL_BIT) /* SSI_CE_ is high valid and SSI_CE2_ is low valid */ #define SSI_CR1_FRMHL_CELOW_CE2HIGH (2 << SSI_CR1_FRMHL_BIT) /* SSI_CE_ is low valid and SSI_CE2_ is high valid */ #define SSI_CR1_FRMHL_CEHIGH_CE2HIGH (3 << SSI_CR1_FRMHL_BIT) /* SSI_CE_ is high valid and SSI_CE2_ is high valid */#define SSI_CR1_TFVCK_BIT 28#define SSI_CR1_TFVCK_MASK (0x3 << SSI_CR1_TFVCK_BIT) #define SSI_CR1_TFVCK_0 (0 << SSI_CR1_TFVCK_BIT) #define SSI_CR1_TFVCK_1 (1 << SSI_CR1_TFVCK_BIT) #define SSI_CR1_TFVCK_2 (2 << SSI_CR1_TFVCK_BIT) #define SSI_CR1_TFVCK_3 (3 << SSI_CR1_TFVCK_BIT)#define SSI_CR1_TCKFI_BIT 26#define SSI_CR1_TCKFI_MASK (0x3 << SSI_CR1_TCKFI_BIT) #define SSI_CR1_TCKFI_0 (0 << SSI_CR1_TCKFI_BIT) #define SSI_CR1_TCKFI_1 (1 << SSI_CR1_TCKFI_BIT) #define SSI_CR1_TCKFI_2 (2 << SSI_CR1_TCKFI_BIT) #define SSI_CR1_TCKFI_3 (3 << SSI_CR1_TCKFI_BIT)#define SSI_CR1_LFST (1 << 25)#define SSI_CR1_ITFRM (1 << 24)#define SSI_CR1_UNFIN (1 << 23)#define SSI_CR1_MULTS (1 << 22)#define SSI_CR1_FMAT_BIT 20#define SSI_CR1_FMAT_MASK (0x3 << SSI_CR1_FMAT_BIT) #define SSI_CR1_FMAT_SPI (0 << SSI_CR1_FMAT_BIT) /* Motorola¡¯s SPI format */ #define SSI_CR1_FMAT_SSP (1 << SSI_CR1_FMAT_BIT) /* TI's SSP format */ #define SSI_CR1_FMAT_MW1 (2 << SSI_CR1_FMAT_BIT) /* National Microwire 1 format */ #define SSI_CR1_FMAT_MW2 (3 << SSI_CR1_FMAT_BIT) /* National Microwire 2 format */#define SSI_CR1_MCOM_BIT 12#define SSI_CR1_MCOM_MASK (0xf << SSI_CR1_MCOM_BIT) #define SSI_CR1_MCOM_1BIT (0x0 << SSI_CR1_MCOM_BIT) /* 1-bit command selected */ #define SSI_CR1_MCOM_2BIT (0x1 << SSI_CR1_MCOM_BIT) /* 2-bit command selected */ #define SSI_CR1_MCOM_3BIT (0x2 << SSI_CR1_MCOM_BIT) /* 3-bit command selected */ #define SSI_CR1_MCOM_4BIT (0x3 << SSI_CR1_MCOM_BIT) /* 4-bit command selected */ #define SSI_CR1_MCOM_5BIT (0x4 << SSI_CR1_MCOM_BIT) /* 5-bit command selected */ #define SSI_CR1_MCOM_6BIT (0x5 << SSI_CR1_MCOM_BIT) /* 6-bit command selected */ #define SSI_CR1_MCOM_7BIT (0x6 << SSI_CR1_MCOM_BIT) /* 7-bit command selected */ #define SSI_CR1_MCOM_8BIT (0x7 << SSI_CR1_MCOM_BIT) /* 8-bit command selected */ #define SSI_CR1_MCOM_9BIT (0x8 << SSI_CR1_MCOM_BIT) /* 9-bit command selected */ #define SSI_CR1_MCOM_10BIT (0x9 << SSI_CR1_MCOM_BIT) /* 10-bit command selected */ #define SSI_CR1_MCOM_11BIT (0xA << SSI_CR1_MCOM_BIT) /* 11-bit command selected */ #define SSI_CR1_MCOM_12BIT (0xB << SSI_CR1_MCOM_BIT) /* 12-bit command selected */ #define SSI_CR1_MCOM_13BIT (0xC << SSI_CR1_MCOM_BIT) /* 13-bit command selected */ #define SSI_CR1_MCOM_14BIT (0xD << SSI_CR1_MCOM_BIT) /* 14-bit command selected */ #define SSI_CR1_MCOM_15BIT (0xE << SSI_CR1_MCOM_BIT) /* 15-bit command selected */ #define SSI_CR1_MCOM_16BIT (0xF << SSI_CR1_MCOM_BIT) /* 16-bit command selected */#define SSI_CR1_TTRG_BIT 10#define SSI_CR1_TTRG_MASK (0x3 << SSI_CR1_TTRG_BIT) #define SSI_CR1_TTRG_1 (0 << SSI_CR1_TTRG_BIT)/* Less than or equal to 1 */ #define SSI_CR1_TTRG_4 (1 << SSI_CR1_TTRG_BIT) /* Less than or equal to 4 */ #define SSI_CR1_TTRG_8 (2 << SSI_CR1_TTRG_BIT) /* Less than or equal to 8 */ #define SSI_CR1_TTRG_14 (3 << SSI_CR1_TTRG_BIT) /* Less than or equal to 14 */#define SSI_CR1_RTRG_BIT 8#define SSI_CR1_RTRG_MASK (0x3 << SSI_CR1_RTRG_BIT) #define SSI_CR1_RTRG_1 (0 << SSI_CR1_RTRG_BIT) /* More than or equal to 1 */ #define SSI_CR1_RTRG_4 (1 << SSI_CR1_RTRG_BIT) /* More than or equal to 4 */ #define SSI_CR1_RTRG_8 (2 << SSI_CR1_RTRG_BIT) /* More than or equal to 8 */ #define SSI_CR1_RTRG_14 (3 << SSI_CR1_RTRG_BIT) /* More than or equal to 14 */#define SSI_CR1_FLEN_BIT 4#define SSI_CR1_FLEN_MASK (0xf << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_2BIT (0x0 << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_3BIT (0x1 << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_4BIT (0x2 << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_5BIT (0x3 << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_6BIT (0x4 << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_7BIT (0x5 << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_8BIT (0x6 << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_9BIT (0x7 << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_10BIT (0x8 << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_11BIT (0x9 << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_12BIT (0xA << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_13BIT (0xB << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_14BIT (0xC << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_15BIT (0xD << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_16BIT (0xE << SSI_CR1_FLEN_BIT) #define SSI_CR1_FLEN_17BIT (0xF << SSI_CR1_FLEN_BIT)#define SSI_CR1_PHA (1 << 1)#define SSI_CR1_POL (1 << 0)/* SSI Status Register (SSI_SR) */#define SSI_SR_TFIFONUM_BIT 13#define SSI_SR_TFIFONUM_MASK (0x1f << SSI_SR_TFIFONUM_BIT)#define SSI_SR_RFIFONUM_BIT 8#define SSI_SR_RFIFONUM_MASK (0x1f << SSI_SR_RFIFONUM_BIT)#define SSI_SR_END (1 << 7)#define SSI_SR_BUSY (1 << 6)#define SSI_SR_TFF (1 << 5)#define SSI_SR_RFE (1 << 4)#define SSI_SR_TFHE (1 << 3)#define SSI_SR_RFHF (1 << 2)#define SSI_SR_UNDR (1 << 1)#define SSI_SR_OVER (1 << 0)/* SSI Interval Time Control Register (SSI_ITR) */#define SSI_ITR_CNTCLK (1 << 15)#define SSI_ITR_IVLTM_BIT 0#define SSI_ITR_IVLTM_MASK (0x7fff << SSI_ITR_IVLTM_BIT)/************************************************************************* * MSC *************************************************************************/#define MSC_STRPCL (MSC_BASE + 0x000)#define MSC_STAT (MSC_BASE + 0x004)#define MSC_CLKRT (MSC_BASE + 0x008)#define MSC_CMDAT (MSC_BASE + 0x00C)#define MSC_RESTO (MSC_BASE + 0x010)#define MSC_RDTO (MSC_BASE + 0x014)#define MSC_BLKLEN (MSC_BASE + 0x018)#define MSC_NOB (MSC_BASE + 0x01C)#define MSC_SNOB (MSC_BASE + 0x020)#define MSC_IMASK (MSC_BASE + 0x024)#define MSC_IREG (MSC_BASE + 0x028)#define MSC_CMD (MSC_BASE + 0x02C)#define MSC_ARG (MSC_BASE + 0x030)#define MSC_RES (MSC_BASE + 0x034)#define MSC_RXFIFO (MSC_BASE + 0x038)#define MSC_TXFIFO (MSC_BASE + 0x03C)#define REG_MSC_STRPCL REG16(MSC_STRPCL)#define REG_MSC_STAT REG32(MSC_STAT)#define REG_MSC_CLKRT REG16(MSC_CLKRT)#define REG_MSC_CMDAT REG32(MSC_CMDAT)#define REG_MSC_RESTO REG16(MSC_RESTO)#define REG_MSC_RDTO REG16(MSC_RDTO)#define REG_MSC_BLKLEN REG16(MSC_BLKLEN)#define REG_MSC_NOB REG16(MSC_NOB)#define REG_MSC_SNOB REG16(MSC_SNOB)#define REG_MSC_IMASK REG16(MSC_IMASK)#define REG_MSC_IREG REG16(MSC_IREG)#define REG_MSC_CMD REG8(MSC_CMD)#define REG_MSC_ARG REG32(MSC_ARG)#define REG_MSC_RES REG16(MSC_RES)#define REG_MSC_RXFIFO REG32(MSC_RXFIFO)#define REG_MSC_TXFIFO REG32(MSC_TXFIFO)/* MSC Clock and Control Register (MSC_STRPCL) */#define MSC_STRPCL_EXIT_MULTIPLE (1 << 7)#define MSC_STRPCL_EXIT_TRANSFER (1 << 6)#define MSC_STRPCL_START_READWAIT (1 << 5)#define MSC_STRPCL_STOP_READWAIT (1 << 4)#define MSC_STRPCL_RESET (1 << 3)#define MSC_STRPCL_START_OP (1 << 2)#define MSC_STRPCL_CLOCK_CONTROL_BIT 0#define MSC_STRPCL_CLOCK_CONTROL_MASK (0x3 << MSC_STRPCL_CLOCK_CONTROL_BIT) #define MSC_STRPCL_CLOCK_CONTROL_STOP (0x1 << MSC_STRPCL_CLOCK_CONTROL_BIT) /* Stop MMC/SD clock */ #define MSC_STRPCL_CLOCK_CONTROL_START (0x2 << MSC_STRPCL_CLOCK_CONTROL_BIT) /* Start MMC/SD clock *//* MSC Status Register (MSC_STAT) */#define MSC_STAT_IS_RESETTING (1 << 15)#define MSC_STAT_SDIO_INT_ACTIVE (1 << 14)#define MSC_STAT_PRG_DONE (1 << 13)#define MSC_STAT_DATA_TRAN_DONE (1 << 12)#define MSC_STAT_END_CMD_RES (1 << 11)#define MSC_STAT_DATA_FIFO_AFULL (1 << 10)#define MSC_STAT_IS_READWAIT (1 << 9)#define MSC_STAT_CLK_EN (1 << 8)#define MSC_STAT_DATA_FIFO_FULL (1 << 7)#define MSC_STAT_DATA_FIFO_EMPTY (1 << 6)#define MSC_STAT_CRC_RES_ERR (1 << 5)#define MSC_STAT_CRC_READ_ERROR (1 << 4)#define MSC_STAT_CRC_WRITE_ERROR_BIT 2#define MSC_STAT_CRC_WRITE_ERROR_MASK (0x3 << MSC_STAT_CRC_WRITE_ERROR_BIT) #define MSC_STAT_CRC_WRITE_ERROR_NO (0 << MSC_STAT_CRC_WRITE_ERROR_BIT) /* No error on transmission of data */ #define MSC_STAT_CRC_WRITE_ERROR (1 << MSC_STAT_CRC_WRITE_ERROR_BIT) /* Card observed erroneous transmission of data */ #define MSC_STAT_CRC_WRITE_ERROR_NOSTS (2 << MSC_STAT_CRC_WRITE_ERROR_BIT) /* No CRC status is sent back */#define MSC_STAT_TIME_OUT_RES (1 << 1)#define MSC_STAT_TIME_OUT_R
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -