|
#define | ARM_MCI_API_VERSION ARM_DRIVER_VERSION_MAJOR_MINOR(2,4) /* API version */ |
|
#define | _ARM_Driver_MCI_(n) Driver_MCI##n |
|
#define | ARM_Driver_MCI_(n) _ARM_Driver_MCI_(n) |
|
#define | ARM_MCI_RESPONSE_Pos 0 |
|
#define | ARM_MCI_RESPONSE_Msk (3UL << ARM_MCI_RESPONSE_Pos) |
|
#define | ARM_MCI_RESPONSE_NONE (0UL << ARM_MCI_RESPONSE_Pos) |
| No response expected (default)
|
|
#define | ARM_MCI_RESPONSE_SHORT (1UL << ARM_MCI_RESPONSE_Pos) |
| Short response (48-bit)
|
|
#define | ARM_MCI_RESPONSE_SHORT_BUSY (2UL << ARM_MCI_RESPONSE_Pos) |
| Short response with busy signal (48-bit)
|
|
#define | ARM_MCI_RESPONSE_LONG (3UL << ARM_MCI_RESPONSE_Pos) |
| Long response (136-bit)
|
|
#define | ARM_MCI_RESPONSE_INDEX (1UL << 2) |
| Check command index in response.
|
|
#define | ARM_MCI_RESPONSE_CRC (1UL << 3) |
| Check CRC in response.
|
|
#define | ARM_MCI_WAIT_BUSY (1UL << 4) |
| Wait until busy before sending the command.
|
|
#define | ARM_MCI_TRANSFER_DATA (1UL << 5) |
| Activate Data transfer.
|
|
#define | ARM_MCI_CARD_INITIALIZE (1UL << 6) |
| Execute Memory Card initialization sequence.
|
|
#define | ARM_MCI_INTERRUPT_COMMAND (1UL << 7) |
| Send Interrupt command (CMD40 - MMC only)
|
|
#define | ARM_MCI_INTERRUPT_RESPONSE (1UL << 8) |
| Send Interrupt response (CMD40 - MMC only)
|
|
#define | ARM_MCI_BOOT_OPERATION (1UL << 9) |
| Execute Boot operation (MMC only)
|
|
#define | ARM_MCI_BOOT_ALTERNATIVE (1UL << 10) |
| Execute Alternative Boot operation (MMC only)
|
|
#define | ARM_MCI_BOOT_ACK (1UL << 11) |
| Expect Boot Acknowledge (MMC only)
|
|
#define | ARM_MCI_CCSD (1UL << 12) |
| Send Command Completion Signal Disable (CCSD) for CE-ATA device.
|
|
#define | ARM_MCI_CCS (1UL << 13) |
| Expect Command Completion Signal (CCS) for CE-ATA device.
|
|
#define | ARM_MCI_TRANSFER_READ (0UL << 0) |
| Data Read Transfer (from MCI)
|
|
#define | ARM_MCI_TRANSFER_WRITE (1UL << 0) |
| Data Write Transfer (to MCI)
|
|
#define | ARM_MCI_TRANSFER_BLOCK (0UL << 1) |
| Block Data transfer (default)
|
|
#define | ARM_MCI_TRANSFER_STREAM (1UL << 1) |
| Stream Data transfer (MMC only)
|
|
#define | ARM_MCI_BUS_SPEED (0x01UL) |
| Set Bus Speed; arg = requested speed in bits/s; returns configured speed in bits/s.
|
|
#define | ARM_MCI_BUS_SPEED_MODE (0x02UL) |
| Set Bus Speed Mode as specified with arg.
|
|
#define | ARM_MCI_BUS_CMD_MODE (0x03UL) |
| Set CMD Line Mode as specified with arg.
|
|
#define | ARM_MCI_BUS_DATA_WIDTH (0x04UL) |
| Set Bus Data Width as specified with arg.
|
|
#define | ARM_MCI_DRIVER_STRENGTH (0x05UL) |
| Set SD UHS-I Driver Strength as specified with arg.
|
|
#define | ARM_MCI_CONTROL_RESET (0x06UL) |
| Control optional RST_n Pin (eMMC); arg: 0=inactive, 1=active.
|
|
#define | ARM_MCI_CONTROL_CLOCK_IDLE (0x07UL) |
| Control Clock generation on CLK Pin when idle; arg: 0=disabled, 1=enabled.
|
|
#define | ARM_MCI_UHS_TUNING_OPERATION (0x08UL) |
| Sampling clock Tuning operation (SD UHS-I); arg: 0=reset, 1=execute.
|
|
#define | ARM_MCI_UHS_TUNING_RESULT (0x09UL) |
| Sampling clock Tuning result (SD UHS-I); returns: 0=done, 1=in progress, -1=error.
|
|
#define | ARM_MCI_DATA_TIMEOUT (0x0AUL) |
| Set Data timeout; arg = timeout in bus cycles.
|
|
#define | ARM_MCI_CSS_TIMEOUT (0x0BUL) |
| Set Command Completion Signal (CCS) timeout; arg = timeout in bus cycles.
|
|
#define | ARM_MCI_MONITOR_SDIO_INTERRUPT (0x0CUL) |
| Monitor SD I/O interrupt: arg: 0=disabled, 1=enabled.
|
|
#define | ARM_MCI_CONTROL_READ_WAIT (0x0DUL) |
| Control Read/Wait for SD I/O; arg: 0=disabled, 1=enabled.
|
|
#define | ARM_MCI_SUSPEND_TRANSFER (0x0EUL) |
| Suspend Data transfer (SD I/O); returns number of remaining bytes to transfer.
|
|
#define | ARM_MCI_RESUME_TRANSFER (0x0FUL) |
| Resume Data transfer (SD I/O)
|
|
#define | ARM_MCI_BUS_DEFAULT_SPEED (0x00UL) |
| SD/MMC: Default Speed mode up to 25/26MHz.
|
|
#define | ARM_MCI_BUS_HIGH_SPEED (0x01UL) |
| SD/MMC: High Speed mode up to 50/52MHz.
|
|
#define | ARM_MCI_BUS_UHS_SDR12 (0x02UL) |
| SD: SDR12 (Single Data Rate) up to 25MHz, 12.5MB/s: UHS-I (Ultra High Speed) 1.8V signaling.
|
|
#define | ARM_MCI_BUS_UHS_SDR25 (0x03UL) |
| SD: SDR25 (Single Data Rate) up to 50MHz, 25 MB/s: UHS-I (Ultra High Speed) 1.8V signaling.
|
|
#define | ARM_MCI_BUS_UHS_SDR50 (0x04UL) |
| SD: SDR50 (Single Data Rate) up to 100MHz, 50 MB/s: UHS-I (Ultra High Speed) 1.8V signaling.
|
|
#define | ARM_MCI_BUS_UHS_SDR104 (0x05UL) |
| SD: SDR104 (Single Data Rate) up to 208MHz, 104 MB/s: UHS-I (Ultra High Speed) 1.8V signaling.
|
|
#define | ARM_MCI_BUS_UHS_DDR50 (0x06UL) |
| SD: DDR50 (Dual Data Rate) up to 50MHz, 50 MB/s: UHS-I (Ultra High Speed) 1.8V signaling.
|
|
#define | ARM_MCI_BUS_CMD_PUSH_PULL (0x00UL) |
| Push-Pull CMD line (default)
|
|
#define | ARM_MCI_BUS_CMD_OPEN_DRAIN (0x01UL) |
| Open Drain CMD line (MMC only)
|
|
#define | ARM_MCI_BUS_DATA_WIDTH_1 (0x00UL) |
| Bus data width: 1 bit (default)
|
|
#define | ARM_MCI_BUS_DATA_WIDTH_4 (0x01UL) |
| Bus data width: 4 bits.
|
|
#define | ARM_MCI_BUS_DATA_WIDTH_8 (0x02UL) |
| Bus data width: 8 bits.
|
|
#define | ARM_MCI_BUS_DATA_WIDTH_4_DDR (0x03UL) |
| Bus data width: 4 bits, DDR (Dual Data Rate) - MMC only.
|
|
#define | ARM_MCI_BUS_DATA_WIDTH_8_DDR (0x04UL) |
| Bus data width: 8 bits, DDR (Dual Data Rate) - MMC only.
|
|
#define | ARM_MCI_DRIVER_TYPE_A (0x01UL) |
| SD UHS-I Driver Type A.
|
|
#define | ARM_MCI_DRIVER_TYPE_B (0x00UL) |
| SD UHS-I Driver Type B (default)
|
|
#define | ARM_MCI_DRIVER_TYPE_C (0x02UL) |
| SD UHS-I Driver Type C.
|
|
#define | ARM_MCI_DRIVER_TYPE_D (0x03UL) |
| SD UHS-I Driver Type D.
|
|
#define | ARM_MCI_POWER_VDD_Pos 0 |
|
#define | ARM_MCI_POWER_VDD_Msk (0x0FUL << ARM_MCI_POWER_VDD_Pos) |
|
#define | ARM_MCI_POWER_VDD_OFF (0x01UL << ARM_MCI_POWER_VDD_Pos) |
| VDD (VCC) turned off.
|
|
#define | ARM_MCI_POWER_VDD_3V3 (0x02UL << ARM_MCI_POWER_VDD_Pos) |
| VDD (VCC) = 3.3V.
|
|
#define | ARM_MCI_POWER_VDD_1V8 (0x03UL << ARM_MCI_POWER_VDD_Pos) |
| VDD (VCC) = 1.8V.
|
|
#define | ARM_MCI_POWER_VCCQ_Pos 4 |
|
#define | ARM_MCI_POWER_VCCQ_Msk (0x0FUL << ARM_MCI_POWER_VCCQ_Pos) |
|
#define | ARM_MCI_POWER_VCCQ_OFF (0x01UL << ARM_MCI_POWER_VCCQ_Pos) |
| eMMC VCCQ turned off
|
|
#define | ARM_MCI_POWER_VCCQ_3V3 (0x02UL << ARM_MCI_POWER_VCCQ_Pos) |
| eMMC VCCQ = 3.3V
|
|
#define | ARM_MCI_POWER_VCCQ_1V8 (0x03UL << ARM_MCI_POWER_VCCQ_Pos) |
| eMMC VCCQ = 1.8V
|
|
#define | ARM_MCI_POWER_VCCQ_1V2 (0x04UL << ARM_MCI_POWER_VCCQ_Pos) |
| eMMC VCCQ = 1.2V
|
|
#define | ARM_MCI_EVENT_CARD_INSERTED (1UL << 0) |
| Memory Card inserted.
|
|
#define | ARM_MCI_EVENT_CARD_REMOVED (1UL << 1) |
| Memory Card removed.
|
|
#define | ARM_MCI_EVENT_COMMAND_COMPLETE (1UL << 2) |
| Command completed.
|
|
#define | ARM_MCI_EVENT_COMMAND_TIMEOUT (1UL << 3) |
| Command timeout.
|
|
#define | ARM_MCI_EVENT_COMMAND_ERROR (1UL << 4) |
| Command response error (CRC error or invalid response)
|
|
#define | ARM_MCI_EVENT_TRANSFER_COMPLETE (1UL << 5) |
| Data transfer completed.
|
|
#define | ARM_MCI_EVENT_TRANSFER_TIMEOUT (1UL << 6) |
| Data transfer timeout.
|
|
#define | ARM_MCI_EVENT_TRANSFER_ERROR (1UL << 7) |
| Data transfer CRC failed.
|
|
#define | ARM_MCI_EVENT_SDIO_INTERRUPT (1UL << 8) |
| SD I/O Interrupt.
|
|
#define | ARM_MCI_EVENT_CCS (1UL << 9) |
| Command Completion Signal (CCS)
|
|
#define | ARM_MCI_EVENT_CCS_TIMEOUT (1UL << 10) |
| Command Completion Signal (CCS) Timeout.
|
|