⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ctkav_msc.h

📁 ct952 source code use for Digital Frame Photo
💻 H
字号:
#ifndef __CTKAV_MSC_H__#define __CTKAV_MSC_H__#ifdef __cplusplus    extern "C" {#endif  // __cplusplus#ifndef REG_FCR_BASE// =================================================================================================#define REG_FCR_BASE                            (0xa0001000)// -------------------------------------------------------------------------------------------------#define REG_FCR_FUNC_CTRL                       (*(volatile DWORD*)(REG_FCR_BASE+0x00))#define REG_FCR_CPBLT                           (*(volatile DWORD*)(REG_FCR_BASE+0x04))// =================================================================================================// REG_FCR_FUNC_CTRL#define FCR_FUNC_CTRL_SW_MS_CD                  (1 << 27)#define FCR_FUNC_CTRL_SW_SD_CD                  (1 << 26)#define FCR_FUNC_CTRL_SW_SD_WP                  (1 << 25)#define FCR_FUNC_CTRL_SW_CDWP_ENABLE            (1 << 24)#define FCR_FUNC_CTRL_LITTLE_ENDIAN             (1 << 23)#define FCR_FUNC_CTRL_SD_FLEXIBLE_CLK           (1 << 22)#define FCR_FUNC_CTRL_AHB_MAX_BURST_SIZE(n)     (((n) & 3) << 20)#define FCR_FUNC_CTRL_AHB_MAX_BURST_SIZE_MASK   FCR_FUNC_CTRL_AHB_MAX_BURST_SIZE(-1)#define FCR_FUNC_CTRL_AHB_MAX_BURST_SIZE_512    FCR_FUNC_CTRL_AHB_MAX_BURST_SIZE(3)#define FCR_FUNC_CTRL_AHB_MAX_BURST_SIZE_256    FCR_FUNC_CTRL_AHB_MAX_BURST_SIZE(2)#define FCR_FUNC_CTRL_AHB_MAX_BURST_SIZE_128    FCR_FUNC_CTRL_AHB_MAX_BURST_SIZE(1)#define FCR_FUNC_CTRL_AHB_MAX_BURST_SIZE_64     FCR_FUNC_CTRL_AHB_MAX_BURST_SIZE(0)#define FCR_FUNC_CTRL_INT_OPT_STAT              (1 << 19)#define FCR_FUNC_CTRL_INT_OPT_DMA               (1 << 18)#define FCR_FUNC_CTRL_SD_PULLUP_RESISTOR        (1 << 17)#define FCR_FUNC_CTRL_MMC_8BIT                  (1 << 16)#define FCR_FUNC_CTRL_CD_DEBOUNCE_TIME(n)       (((n) & 0xf) << 12)#define FCR_FUNC_CTRL_CD_DEBOUNCE_TIME_MASK     FCR_FUNC_CTRL_CD_DEBOUNCE_TIME(-1)#define FCR_FUNC_CTRL_PW_UP_TIME(n)             (((n) & 0xf) << 8)#define FCR_FUNC_CTRL_PW_UP_TIME_MASK           FCR_FUNC_CTRL_PW_UP_TIME(-1)#define FCR_FUNC_CTRL_SD_SIG_PULLUP_TIME(n)     (((n) & 0xf) << 4)#define FCR_FUNC_CTRL_SD_SIG_PULLUP_TIME_MASK   FCR_FUNC_CTRL_SD_SIG_PULLUP_TIME(-1)#define FCR_FUNC_CTRL_MS_SIG_DELAY(n)           (((n) & 3) << 2)#define FCR_FUNC_CTRL_MS_SIG_DELAY_MASK         FCR_FUNC_CTRL_MS_SIG_DELAY(-1)#define FCR_FUNC_CTRL_SD_SIG_DELAY(n)           ((n) & 3)#define FCR_FUNC_CTRL_SD_SIG_DELAY_MASK         FCR_FUNC_CTRL_SD_SIG_DELAY(-1)// -------------------------------------------------------------------------------------------------// REG_FCR_CPBLT#define FCR_CPBLT_VOL_18V                       (1 << 18)#define FCR_CPBLT_VOL_30V                       (1 << 17)#define FCR_CPBLT_VOL_33V                       (1 << 16)#define FCR_CPBLT_SD_BASE_CLK_FREQ(n)           (((n) & 0x3f) << 8)#define FCR_CPBLT_SD_BASE_CLK_FREQ_MASK         FCR_CPBLT_SD_BASE_CLK_FREQ(-1)#define FCR_CPBLT_SD_MAX_CURR_CPBLT(n)          ((n) & 0xff)#define FCR_CPBLT_SD_MAX_CURR_CPBLT_MASK        FCR_CPBLT_SD_MAX_CURR_CPBLT(-1)#endif  // REG_FCR_BASE// =================================================================================================#define REG_MSC_BASE                            (0xa0001080L)// -------------------------------------------------------------------------------------------------#define REG_MSC_DMA_ADDR                        (*(volatile DWORD*)(REG_MSC_BASE+0x00))#define REG_MSC_TRAN_MODE                       (*(volatile DWORD*)(REG_MSC_BASE+0x04))#define REG_MSC_CMD                             (*(volatile DWORD*)(REG_MSC_BASE+0x08))#define REG_MSC_DATA_PORT                       (*(volatile DWORD*)(REG_MSC_BASE+0x0c))#define REG_MSC_DATA(n)                         (*(volatile DWORD*)(REG_MSC_BASE+0x10+4*(n)))#define REG_MSC_DATA0                           REG_MSC_DATA(0)#define REG_MSC_DATA1                           REG_MSC_DATA(1)#define REG_MSC_INT_STAT                        (*(volatile  WORD*)(REG_MSC_BASE+0x1a))#define REG_MSC_INT_STAT_ENABLE                 (*(volatile  WORD*)(REG_MSC_BASE+0x1c))#define REG_MSC_INT_ENABLE                      (*(volatile  WORD*)(REG_MSC_BASE+0x1e))#define REG_MSC_HOST_CTRL                       (*(volatile  BYTE*)(REG_MSC_BASE+0x20))#define REG_MSC_WAKEUP_CTRL                     (*(volatile  BYTE*)(REG_MSC_BASE+0x21))#define REG_MSC_SW_RESET                        (*(volatile  BYTE*)(REG_MSC_BASE+0x22))#define REG_MSC_TIMEOUT_CTRL                    (*(volatile  BYTE*)(REG_MSC_BASE+0x23))#define REG_MSC_CLK_CTRL                        (*(volatile DWORD*)(REG_MSC_BASE+0x24))#define REG_MSC_STAT                            (*(volatile DWORD*)(REG_MSC_BASE+0x28))// =================================================================================================// REG_MSC_TRAN_MODE#define MSC_TRAN_MODE_BLK_COUNT(n)              ((DWORD)((n) & 0xffff) << 16)#define MSC_TRAN_MODE_DMA                       (1 << 15)#define MSC_TRAN_MODE_DMA_BUFF_BND(n)           ((DWORD)((n) & 7) << 12)#define MSC_TRAN_MODE_DMA_BUFF_BND_MASK         MSC_TRAN_MODE_DMA_BUFF_BND(-1)#define MSC_TRAN_MODE_DMA_BUFF_BND_512K         MSC_TRAN_MODE_DMA_BUFF_BND(7)#define MSC_TRAN_MODE_DMA_BUFF_BND_256K         MSC_TRAN_MODE_DMA_BUFF_BND(6)#define MSC_TRAN_MODE_DMA_BUFF_BND_128K         MSC_TRAN_MODE_DMA_BUFF_BND(5)#define MSC_TRAN_MODE_DMA_BUFF_BND_64K          MSC_TRAN_MODE_DMA_BUFF_BND(4)#define MSC_TRAN_MODE_DMA_BUFF_BND_32K          MSC_TRAN_MODE_DMA_BUFF_BND(3)#define MSC_TRAN_MODE_DMA_BUFF_BND_16K          MSC_TRAN_MODE_DMA_BUFF_BND(2)#define MSC_TRAN_MODE_DMA_BUFF_BND_8K           MSC_TRAN_MODE_DMA_BUFF_BND(1)#define MSC_TRAN_MODE_DMA_BUFF_BND_4K           MSC_TRAN_MODE_DMA_BUFF_BND(0)#define MSC_TRAN_MODE_WRITE                     (1 << 11)#define MSC_TRAN_MODE_BLK_SIZE(n)               ((DWORD)(n) & 0x3ff)// -------------------------------------------------------------------------------------------------// REG_MSC_CMD#define MSC_CMD_TRAN_BYTE_COUNT(n)              ((DWORD)((n)&7)<<12)#define MSC_CMD_TRAN_DATA_REG                   (1 << 9)#define MSC_CMD_TRAN_WRITE                      (1 << 8)#define MSC_CMD_TPC(n)                          ((DWORD)(n)&0xff)// -------------------------------------------------------------------------------------------------// REG_MSC_INT_STAT, REG_MSC_INT_STAT_ENABLE, REG_MSC_INT_ENABLE#define MSC_INT_ERR                             (0x1f << 11)#define MSC_INT_ERR_CURR_LIMIT                  (1 << 15)#define MSC_INT_ERR_BUFF_ACCESS                 (1 << 14)#define MSC_INT_ERR_WRITE_CMD                   (1 << 13)#define MSC_INT_ERR_CRC                         (1 << 12)#define MSC_INT_ERR_TIMEOUT                     (1 << 11)#define MSC_INT_TRAN_COMPLETE                   (1 << 10)#define MSC_INT_BUFF_READ_RDY                   (1 << 9)#define MSC_INT_BUFF_WRITE_RDY                  (1 << 8)#define MSC_INT_CARD_REM                        (1 << 7)#define MSC_INT_CARD_INS                        (1 << 6)#define MSC_INT_DMA                             (1 << 5)#define MSC_INT_CMD_COMPLETE                    (1 << 4)#define MSC_INT_INTREG_CMDNK                    (1 << 3)#define MSC_INT_INTREG_BREQ                     (1 << 2)#define MSC_INT_INTREG_ERR                      (1 << 1)#define MSC_INT_INTREG_CED                      (1 << 0)#define MSC_INT_INTREG_SIG                      (1 << 0)// -------------------------------------------------------------------------------------------------// REG_MSC_HOST_CTRL#define MSC_HOST_CTRL_LITTLE_ENDIAN             (1 << 4)#define MSC_HOST_CTRL_BUS_PW_ON                 (1 << 3)#define MSC_HOST_CTRL_SDIO_TURN_AROUND          (1 << 2)#define MSC_HOST_CTRL_4BIT                      (1 << 1)#define MSC_HOST_CTRL_LED_ON                    (1 << 0)// -------------------------------------------------------------------------------------------------// REG_MSC_WAKEUP_CTRL#define MSC_WAKEUP_CTRL_CARD_REM                (1 << 5)#define MSC_WAKEUP_CTRL_CARD_INS                (1 << 4)#define MSC_WAKEUP_CTRL_CARD_INT(n)             (1 << ((n) & 3))// -------------------------------------------------------------------------------------------------// REG_MSC_SW_RESET#define MSC_SW_RESET_ALL                        (1 << 0)// -------------------------------------------------------------------------------------------------// REG_MSC_TIMEOUT_CTRL#define MSC_TIMEOUT_CTRL_DATA_TIMEOUT(n)        ((n) & 0xf)// -------------------------------------------------------------------------------------------------// REG_MSC_CLK_CTRL#define MSC_CLK_CTRL_MSCLK_FREQ_SEL(n)          (((DWORD)(n)&0xf)<<4)#define MSC_CLK_CTRL_MSCLK_ENABLE               (1 << 2)#define MSC_CLK_CTRL_INCLK_STABLE               (1 << 1)#define MSC_CLK_CTRL_INCLK_ENABLE               (1 << 0)// -------------------------------------------------------------------------------------------------// REG_MSC_STAT#define MSC_STAT_CMD_SIG                        (1 << 24)#define MSC_STAT_DAT_SIG(n)                     (1 << (20 + (n)))#define MSC_STAT_DAT_SIG0                       MSC_STAT_DAT_SIG(0)#define MSC_STAT_DAT_SIG1                       MSC_STAT_DAT_SIG(1)#define MSC_STAT_DAT_SIG2                       MSC_STAT_DAT_SIG(2)#define MSC_STAT_DAT_SIG3                       MSC_STAT_DAT_SIG(3)#define MSC_STAT_CD_PIN                         (1 << 18)#define MSC_STAT_CARD_STAT_STABLE               (1 << 17)#define MSC_STAT_CARD_INS                       (1 << 16)#define MSC_STAT_BUFF_READ_ENABLE               (1 << 11)#define MSC_STAT_BUFF_WRITE_ENABLE              (1 << 10)#define MSC_STAT_READ_TRAN_ACTIVE               (1 << 9)#define MSC_STAT_WRITE_TRAN_ACTIVE              (1 << 8)#define MSC_STAT_INTERFACE_BUSY                 (1 << 2)// =================================================================================================#ifdef __cplusplus    }#endif  // __cplusplus#endif  // __CTKAV_MSC_H__

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -