Very initial SDHC driver for Kinetis parts
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@3901 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
parent
5be01dab5a
commit
8cedad6365
@ -71,6 +71,10 @@ ifeq ($(CONFIG_DEBUG_GPIO),y)
|
||||
CHIP_CSRCS += kinetis_pindbg.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_KINETIS_SDHC),y)
|
||||
CHIP_CSRCS += kinetis_sdhc.c
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_USBDEV),y)
|
||||
CHIP_CSRCS += kinetis_usbdev.c
|
||||
endif
|
||||
|
2973
arch/arm/src/kinetis/kinetis_sdhc.c
Normal file
2973
arch/arm/src/kinetis/kinetis_sdhc.c
Normal file
File diff suppressed because it is too large
Load Diff
@ -222,6 +222,7 @@
|
||||
# define SDHC_SYSCTL_DVS_DIV(n) (((n)-1) << SDHC_SYSCTL_DVS_SHIFT) /* Divide by n, n=1..16 */
|
||||
#define SDHC_SYSCTL_SDCLKFS_SHIFT (8) /* Bits 8-15: SDCLK Frequency Select */
|
||||
#define SDHC_SYSCTL_SDCLKFS_MASK (0xff << SDHC_SYSCTL_SDCLKFS_SHIFT)
|
||||
# define SDHC_SYSCTL_SDCLKFS_BYPASS (0x00 << SDHC_SYSCTL_SDCLKFS_SHIFT) /* Bypass the prescaler */
|
||||
# define SDHC_SYSCTL_SDCLKFS_DIV2 (0x01 << SDHC_SYSCTL_SDCLKFS_SHIFT) /* Base clock / 2 */
|
||||
# define SDHC_SYSCTL_SDCLKFS_DIV4 (0x02 << SDHC_SYSCTL_SDCLKFS_SHIFT) /* Base clock / 4 */
|
||||
# define SDHC_SYSCTL_SDCLKFS_DIV8 (0x04 << SDHC_SYSCTL_SDCLKFS_SHIFT) /* Base clock / 8 */
|
||||
@ -265,6 +266,8 @@
|
||||
/* Bits 25-27: Reserved */
|
||||
#define SDHC_INT_DMAE (1 << 28) /* Bit 28: DMA Error */
|
||||
/* Bits 29-31: Reserved */
|
||||
#define SDHC_INT_ALL 0x117f01ff
|
||||
|
||||
/* Auto CMD12 Error Status Register */
|
||||
|
||||
#define SDHC_AC12ERR_NE (1 << 0) /* Bit 0: Auto CMD12 Not Executed */
|
||||
|
@ -1436,7 +1436,7 @@ static uint8_t stm32_status(FAR struct sdio_dev_s *dev)
|
||||
}
|
||||
|
||||
/****************************************************************************
|
||||
* Name: SDIO_WIDEBUS
|
||||
* Name: stm32_widebus
|
||||
*
|
||||
* Description:
|
||||
* Called after change in Bus width has been selected (via ACMD6). Most
|
||||
@ -1629,7 +1629,7 @@ static void stm32_sendcmd(FAR struct sdio_dev_s *dev, uint32_t cmd, uint32_t arg
|
||||
* Name: stm32_recvsetup
|
||||
*
|
||||
* Description:
|
||||
* Setup hardware in preparation for data trasfer from the card in non-DMA
|
||||
* Setup hardware in preparation for data transfer from the card in non-DMA
|
||||
* (interrupt driven mode). This method will do whatever controller setup
|
||||
* is necessary. This would be called for SD memory just BEFORE sending
|
||||
* CMD13 (SEND_STATUS), CMD17 (READ_SINGLE_BLOCK), CMD18
|
||||
@ -1685,7 +1685,7 @@ static int stm32_recvsetup(FAR struct sdio_dev_s *dev, FAR uint8_t *buffer,
|
||||
* Name: stm32_sendsetup
|
||||
*
|
||||
* Description:
|
||||
* Setup hardware in preparation for data trasfer from the card. This method
|
||||
* Setup hardware in preparation for data transfer from the card. This method
|
||||
* will do whatever controller setup is necessary. This would be called
|
||||
* for SD memory just AFTER sending CMD24 (WRITE_BLOCK), CMD25
|
||||
* (WRITE_MULTIPLE_BLOCK), ... and before SDIO_SENDDATA is called.
|
||||
|
Loading…
Reference in New Issue
Block a user