Low-Level Programming Models
18.4 Low-Level Programming Models
18.4.1 Surrounding Modules Global Initialization
This section identifies the requirements of initializing the surrounding modules when the module has to be
used for the first time after a device reset. This initialization of surrounding modules is based on the
integration and environment of the MMC/SD/SDIO modules.
Table 18-17. Global Init for Surrounding Modules
Surrounding Modules
Comments
PRCM
Module interface and functional clocks must be enabled. For more information, see
,
Power, Reset, and Clock Management.
Control module
Module-specific pad muxing and configuration must be set in the control module. See
,
Control Module.
(optional) MPU INTC
MPU INTC configuration must be done to enable the interrupts from the SD module. See
, Interrupts.
(optional) EDMA
DMA configuration must be done to enable the module DMA channel requests. See
EDMA.
(optional) Interconnect
For more information about the interconnect configuration, see
, Interconnects.
NOTE:
The MPU interrupt controller and the EDMA configurations are necessary, if the interrupt and
DMA based communication modes are used.
18.4.2 MMC/SD/SDIO Controller Initialization Flow
The next sections outline the four steps to initialize the MMC/SD/SDIO controller:
•
Initialize Clocks
•
Software reset of the controller
•
Set module's hardware capabilities
•
Set module's Idle and Wake-Up modes
18.4.2.1 Enable OCP and CLKADPI Clocks
Prior to any SD register access one must enable the SD OCP clock and CLKADPI clock in PRCM module
registers. For more information, see
, Power, Reset, and Clock Management.
3384
Multimedia Card (MMC)
SPRUH73H – October 2011 – Revised April 2013
Copyright © 2011–2013, Texas Instruments Incorporated