RTEMS: HSMCI Functions

| RTEMS 5.4-rc2

Loading...
Searching...
No Matches
Functions
HSMCI Functions
Board Support Packages » ARM » Atmel/Microchip SAM E70, S70, V70 and V71 » Contributed Code » MCI Driver (HAL for SD/MMC Lib) » Working with HSMCI

## Functions
void | HSMCI_Enable (Hsmci *pRMci)
| Enable Multi-Media Interface.
void | HSMCI_Disable (Hsmci *pRMci)
| Disable Multi-Media Interface.
void | HSMCI_Reset (Hsmci *pRMci, uint8_t bBackup)
| Reset (& Disable) Multi-Media Interface.
void | HSMCI_Select (Hsmci *pRMci, uint8_t bSlot, uint8_t bBusWidth)
| Select slot.
void | HSMCI_SetSlot (Hsmci *pRMci, uint8_t bSlot)
| Set slot.
void | HSMCI_SetBusWidth (Hsmci *pRMci, uint8_t bBusWidth)
| Set bus width of MCI.
uint8_t | HSMCI_GetBusWidth (Hsmci *pRMci)
| Return bus width setting.
void | HSMCI_ConfigureMode (Hsmci *pRMci, uint32_t dwMode)
| Configures a MCI peripheral as specified.
uint32_t | HSMCI_GetMode (Hsmci *pRMci)
| Return mode register.
void | HSMCI_ProofEnable (Hsmci *pRMci, uint8_t bRdProof, uint8_t bWrProof)
| Enable/Disable R/W proof.
void | HSMCI_PadvCtl (Hsmci *pRMci, uint8_t bPadv)
| Padding value setting.
void | HSMCI_FByteEnable (Hsmci *pRMci, uint8_t bFByteEn)
| Force byte transfer enable/disable.
uint8_t | HSMCI_IsFByteEnabled (Hsmci *pRMci)
| Check if Force Byte mode enabled.
void | HSMCI_DivCtrl (Hsmci *pRMci, uint32_t bClkDiv, uint8_t bPwsDiv)
| Set Clock Divider & Power save divider for MCI.
void | HSMCI_EnableIt (Hsmci *pRMci, uint32_t dwSources)
| Enables one or more interrupt sources of MCI peripheral.
void | HSMCI_DisableIt (Hsmci *pRMci, uint32_t dwSources)
| Disable one or more interrupt sources of MCI peripheral.
uint32_t | HSMCI_GetItMask (Hsmci *pRMci)
| Return the interrupt mask register.
void | HSMCI_ConfigureTransfer (Hsmci *pRMci, uint16_t wBlkLen, uint16_t wCnt)
| Set block len & count for transfer.
void | HSMCI_SetBlockLen (Hsmci *pRMci, uint16_t wBlkSize)
| Set block length.
void | HSMCI_SetBlockCount (Hsmci *pRMci, uint16_t wBlkCnt)
| Set block (byte) count.
void | HSMCI_ConfigureCompletionTO (Hsmci *pRMci, uint32_t dwConfigure)
| Configure the Completion Signal Timeout.
void | HSMCI_ConfigureDataTO (Hsmci *pRMci, uint32_t dwConfigure)
| Configure the Data Timeout.
void | HSMCI_SendCmd (Hsmci *pRMci, uint32_t dwCmd, uint32_t dwArg)
| Send command.
uint32_t | HSMCI_GetResponse (Hsmci *pRMci)
| Return the response register.
uint32_t | HSMCI_Read (Hsmci *pRMci)
| Return the receive data register.
void | HSMCI_ReadFifo (Hsmci *pRMci, uint8_t *pdwData, uint32_t dwSize)
| Read from FIFO.
void | HSMCI_Write (Hsmci *pRMci, uint32_t dwData)
| Sends data through MCI peripheral.
void | HSMCI_WriteFifo (Hsmci *pRMci, uint8_t *pdwData, uint32_t dwSize)
| Write to FIFO.
uint32_t | HSMCI_GetStatus (Hsmci *pRMci)
| Return the status register.
void | HSMCI_ConfigureDma (Hsmci *pRMci, uint32_t dwConfigure)
| Configure the HSMCI DMA.
void | HSMCI_EnableDma (Hsmci *pRMci, uint8_t bEnable)
| Enable the HSMCI DMA.
void | HSMCI_Configure (Hsmci *pRMci, uint32_t dwConfigure)
| Configure the HSMCI.
void | HSMCI_HsEnable (Hsmci *pRMci, uint8_t bHsEnable)
| Enable/Disable High-Speed mode for MCI.
uint8_t | HSMCI_IsHsEnabled (Hsmci *pRMci)
| Check if High-speed mode is enabled on MCI.
void | HSMCI_ConfigureWP (Hsmci *pRMci, uint32_t dwConfigure)
| Configure the Write Protection Mode.
uint32_t | HSMCI_GetWPStatus (Hsmci *pRMci)
| Return the write protect status register.
void | HSMCI_BusWidthCtl (Hsmci *pRMci, uint8_t bBusWidth)
void | HSMCI_SlotCtl (Hsmci *pRMci, uint8_t bSlot)
uint8_t | HSMCI_GetSlot (Hsmci *pRMci)

## Detailed Description

## Function Documentation

## ◆ HSMCI_Configure()

void HSMCI_Configure | ( | Hsmci * | pRMci,
|  | uint32_t | dwConfigure
| ) |  |

Configure the HSMCI.

Parameters

  pRMci | Pointer to an Hsmci instance.
  dwConfigure | Configure value.

## ◆ HSMCI_ConfigureCompletionTO()

void HSMCI_ConfigureCompletionTO | ( | Hsmci * | pRMci,
|  | uint32_t | dwConfigure
| ) |  |

Configure the Completion Signal Timeout.

Parameters

  pRMci | Pointer to an Hsmci instance.
  dwConfigure | Completion Signal Timeout configure.

## ◆ HSMCI_ConfigureDataTO()

void HSMCI_ConfigureDataTO | ( | Hsmci * | pRMci,
|  | uint32_t | dwConfigure
| ) |  |

Configure the Data Timeout.

Parameters

  pRMci | Pointer to an Hsmci instance.
  dwConfigure | Data Timeout configure.

## ◆ HSMCI_ConfigureDma()

void HSMCI_ConfigureDma | ( | Hsmci * | pRMci,
|  | uint32_t | dwConfigure
| ) |  |

Configure the HSMCI DMA.

Parameters

  pRMci | Pointer to an Hsmci instance.
  dwConfigure | Configure value.

## ◆ HSMCI_ConfigureMode()

void HSMCI_ConfigureMode | ( | Hsmci * | pRMci,
|  | uint32_t | dwMode
| ) |  |

Configures a MCI peripheral as specified.

Parameters

  pRMci | Pointer to an MCI instance.
  dwMode | Value of the MCI Mode register.

## ◆ HSMCI_ConfigureTransfer()

void HSMCI_ConfigureTransfer | ( | Hsmci * | pRMci,
|  | uint16_t | wBlkLen,
|  | uint16_t | wCnt
| ) |  |

Set block len & count for transfer.

Parameters

  pRMci | Pointer to an Hsmci instance.
  wBlkLen | Block size.
  wCnt | Block(byte) count.

## ◆ HSMCI_ConfigureWP()

void HSMCI_ConfigureWP | ( | Hsmci * | pRMci,
|  | uint32_t | dwConfigure
| ) |  |

Configure the Write Protection Mode.

Parameters

  pRMci | Pointer to an Hsmci instance.
  dwConfigure | WP mode configure value.

## ◆ HSMCI_Disable()

void HSMCI_Disable | ( | Hsmci * | pRMci | ) |

Disable Multi-Media Interface.

Parameters

  pRMci | Pointer to a Hsmci instance

## ◆ HSMCI_DisableIt()

void HSMCI_DisableIt | ( | Hsmci * | pRMci,
|  | uint32_t | dwSources
| ) |  |

Disable one or more interrupt sources of MCI peripheral.

Parameters

  pRMci | Pointer to an Hsmci instance.
  sources | Bitwise OR of selected interrupt sources.

## ◆ HSMCI_DivCtrl()

void HSMCI_DivCtrl | ( | Hsmci * | pRMci,
|  | uint32_t | bClkDiv,
|  | uint8_t | bPwsDiv
| ) |  |

Set Clock Divider & Power save divider for MCI.

Parameters

  pRMci | Pointer to an MCI instance.
  bClkDiv | Clock Divider value (0 ~ 255).
  bPwsDiv | Power Saving Divider (1 ~ 7).

## ◆ HSMCI_Enable()

void HSMCI_Enable | ( | Hsmci * | pRMci | ) |

Enable Multi-Media Interface.

Parameters

  pRMci | Pointer to a Hsmci instance

## ◆ HSMCI_EnableDma()

void HSMCI_EnableDma | ( | Hsmci * | pRMci,
|  | uint8_t | bEnable
| ) |  |

Enable the HSMCI DMA.

Parameters

  pRMci | Pointer to an Hsmci instance.
  bEnable | 1 to enable, 0 to disable.

## ◆ HSMCI_EnableIt()

void HSMCI_EnableIt | ( | Hsmci * | pRMci,
|  | uint32_t | dwSources
| ) |  |

Enables one or more interrupt sources of MCI peripheral.

Parameters

  pRMci | Pointer to an Hsmci instance.
  sources | Bitwise OR of selected interrupt sources.

## ◆ HSMCI_FByteEnable()

void HSMCI_FByteEnable | ( | Hsmci * | pRMci,
|  | uint8_t | bFByteEn
| ) |  |

Force byte transfer enable/disable.

Parameters

  pRMci | Pointer to an MCI instance.
  bFByteEn | FBYTE enable/disable.

## ◆ HSMCI_GetBusWidth()

uint8_t HSMCI_GetBusWidth | ( | Hsmci * | pRMci | ) |

Return bus width setting.

Parameters

  pRMci | Pointer to an MCI instance.

Returns
  1, 4 or 8.

## ◆ HSMCI_GetItMask()

uint32_t HSMCI_GetItMask | ( | Hsmci * | pRMci | ) |

Return the interrupt mask register.

Parameters

  pRMci | Pointer to an Hsmci instance.

Returns
  MCI interrupt mask register.

## ◆ HSMCI_GetMode()

uint32_t HSMCI_GetMode | ( | Hsmci * | pRMci | ) |

Return mode register.

Parameters

  pRMci | Pointer to an MCI instance.

## ◆ HSMCI_GetResponse()

uint32_t HSMCI_GetResponse | ( | Hsmci * | pRMci | ) |

Return the response register.

Parameters

  pRMci | Pointer to an Hsmci instance.

Returns
  MCI response register.

## ◆ HSMCI_GetStatus()

uint32_t HSMCI_GetStatus | ( | Hsmci * | pRMci | ) |

Return the status register.

Parameters

  pRMci | Pointer to an Hsmci instance.

Returns
  MCI status register.

## ◆ HSMCI_GetWPStatus()

uint32_t HSMCI_GetWPStatus | ( | Hsmci * | pRMci | ) |

Return the write protect status register.

Parameters

  pRMci | Pointer to an Hsmci instance.

Returns
  MCI write protect status register.

## ◆ HSMCI_HsEnable()

void HSMCI_HsEnable | ( | Hsmci * | pRMci,
|  | uint8_t | bHsEnable
| ) |  |

Enable/Disable High-Speed mode for MCI.

Parameters

  pRMci | Pointer to an Hsmci instance.
  bHsEnable | Enable/Disable high-speed.

## ◆ HSMCI_IsFByteEnabled()

uint8_t HSMCI_IsFByteEnabled | ( | Hsmci * | pRMci | ) |

Check if Force Byte mode enabled.

Parameters

  pRMci | Pointer to an MCI instance.

Returns
  1 if _FBYTE is enabled.

## ◆ HSMCI_IsHsEnabled()

uint8_t HSMCI_IsHsEnabled | ( | Hsmci * | pRMci | ) |

Check if High-speed mode is enabled on MCI.

Parameters

  pRMci | Pointer to an Hsmci instance.

Returns
  1

## ◆ HSMCI_PadvCtl()

void HSMCI_PadvCtl | ( | Hsmci * | pRMci,
|  | uint8_t | bPadv
| ) |  |

Padding value setting.

Parameters

  pRMci | Pointer to an MCI instance.
  bPadvEn | Padding value 0xFF/0x00.

## ◆ HSMCI_ProofEnable()

void HSMCI_ProofEnable | ( | Hsmci * | pRMci,
|  | uint8_t | bRdProof,
|  | uint8_t | bWrProof
| ) |  |

Enable/Disable R/W proof.

Parameters

  pRMci | Pointer to an MCI instance.
  bRdProof | Read proof enable/disable.
  bWrProof | Write proof enable/disable.

## ◆ HSMCI_Read()

uint32_t HSMCI_Read | ( | Hsmci * | pRMci | ) |

Return the receive data register.

Parameters

  pRMci | Pointer to an Hsmci instance.

Returns
  MCI receive data register.

## ◆ HSMCI_ReadFifo()

void HSMCI_ReadFifo | ( | Hsmci * | pRMci,
|  | uint8_t * | pdwData,
|  | uint32_t | dwSize
| ) |  |

Read from FIFO.

Parameters

  pRMci | Pointer to an Hsmci instance.
  pdwData | Pointer to data buffer.
  dwSize | Size of data buffer (in DWord).

## ◆ HSMCI_Reset()

void HSMCI_Reset | ( | Hsmci * | pRMci,
|  | uint8_t | bBackup
| ) |  |

Reset (& Disable) Multi-Media Interface.

Parameters

  mci | Pointer to a Hsmci instance
  bBackup | Backup registers values to keep previous settings, including _MR, _SDCR, _DTOR, _CSTOR, _DMA and _CFG.

## ◆ HSMCI_Select()

void HSMCI_Select | ( | Hsmci * | pRMci,
|  | uint8_t | bSlot,
|  | uint8_t | bBusWidth
| ) |  |

Select slot.

Parameters

  pRMci | Pointer to a Hsmci instance
  bSlot | Slot ID (0~3 for A~D).

## ◆ HSMCI_SendCmd()

void HSMCI_SendCmd | ( | Hsmci * | pRMci,
|  | uint32_t | dwCmd,
|  | uint32_t | dwArg
| ) |  |

Send command.

Parameters

  pRMci | Pointer to an Hsmci instance.
  dwCmd | Command register value.
  dwArg | Argument register value.

## ◆ HSMCI_SetBlockCount()

void HSMCI_SetBlockCount | ( | Hsmci * | pRMci,
|  | uint16_t | wBlkCnt
| ) |  |

Set block (byte) count.

Parameters

  pRMci | Pointer to an Hsmci instance.
  wBlkCnt | Block(byte) count.

## ◆ HSMCI_SetBlockLen()

void HSMCI_SetBlockLen | ( | Hsmci * | pRMci,
|  | uint16_t | wBlkSize
| ) |  |

Set block length.

Count is reset to 0.

Parameters

  pRMci | Pointer to an Hsmci instance.
  wBlkSize | Block size.

## ◆ HSMCI_SetBusWidth()

void HSMCI_SetBusWidth | ( | Hsmci * | pRMci,
|  | uint8_t | bBusWidth
| ) |  |

Set bus width of MCI.

Parameters

  pRMci | Pointer to a Hsmci instance
  bBusWidth | 1,4 or 8 (bits).

## ◆ HSMCI_SetSlot()

void HSMCI_SetSlot | ( | Hsmci * | pRMci,
|  | uint8_t | bSlot
| ) |  |

Set slot.

Parameters

  pRMci | Pointer to a Hsmci instance
  bSlot | Slot ID (0~3 for A~D).

## ◆ HSMCI_Write()

void HSMCI_Write | ( | Hsmci * | pRMci,
|  | uint32_t | dwData
| ) |  |

Sends data through MCI peripheral.

Parameters

  pRMci | Pointer to an Hsmci instance.

## ◆ HSMCI_WriteFifo()

void HSMCI_WriteFifo | ( | Hsmci * | pRMci,
|  | uint8_t * | pdwData,
|  | uint32_t | dwSize
| ) |  |

Write to FIFO.

Parameters

  pRMci | Pointer to an Hsmci instance.
  pdwData | Pointer to data buffer.
  dwSize | Size of data buffer (In DWord).