Functions for SDIO Driver. More...
Functions for SDIO Driver.
| sdio_status_en sdio_init | ( | sdio_instance_en | id | ) |
Initializes the specified SDIO host controller. This function typically enables clocks and performs basic register configuration for the SDIO peripheral. This function must be called before any other SDIO function is used.
| id | SDIO instance ID. |
| sdio_status_en sdio_deinit | ( | sdio_instance_en | id | ) |
Deinitializes the specified SDIO host controller. This typically disables clocks and resets the peripheral.
| id | SDIO instance ID. |
| sdio_status_en sdio_enable | ( | sdio_instance_en | id | ) |
Enables the specified SDIO host controller.
| id | SDIO instance ID. |
| sdio_status_en sdio_disable | ( | sdio_instance_en | id | ) |
Disables the specified SDIO host controller.
| id | SDIO instance ID. |
| sdio_status_en sdio_config | ( | sdio_instance_en | id, |
| const sdio_config_t * | config ) |
Configures the SDIO host controller with the provided settings.
| id | SDIO instance ID. |
| config | Pointer to the SDIO initialization configuration structure (sdio_config_t). |
| sdio_status_en sdio_sd_card_init | ( | sdio_instance_en | id, |
| sdio_sd_card_config_t * | config ) |
Initializes the SD card connected to the specified SDIO instance. This function handles the necessary steps to bring the SD card to an operational state, including power-up sequence, command issuance, and configuration.
| id | SDIO instance ID. |
| config | Pointer to the SD card configuration structure (sdio_sd_card_config_t). |
| sdio_status_en sdio_sd_card_read | ( | sdio_instance_en | id, |
| sdio_write_read_config_t * | config ) |
Reads data from the SD card. This function can be used for single or multiple block reads based on the configuration provided.
| id | SDIO instance ID. |
| config | Pointer to the read configuration structure (sdio_write_read_config_t). |
| sdio_status_en sdio_sd_card_write | ( | sdio_instance_en | id, |
| sdio_write_read_config_t * | config ) |
Writes data to the SD card. This function can be used for single or multiple block writes based on the configuration provided.
| id | SDIO instance ID. |
| config | Pointer to the write configuration structure (sdio_write_read_config_t). |
| sdio_status_en sdio_sd_card_erase | ( | sdio_instance_en | id, |
| uint32_t | startAddr, | ||
| uint32_t | endAddr, | ||
| sdio_erase_type_en | eraseType ) |
Erases a specified range of blocks on the SD card.
| id | SDIO instance ID. |
| startAddr | Starting address for the erase operation. |
| endAddr | Ending address for the erase operation. |
| eraseType | Type of erase operation (sdio_erase_type_en). |
| sdio_status_en sdio_set_sd_clk_div | ( | sdio_instance_en | id, |
| uint16_t | clkDiv ) |
Sets the SD clock divider for the specified SDIO instance. This controls the clock frequency provided to the SD card.
| id | SDIO instance ID. |
| clkDiv | Clock divider value. |
| bool sdio_is_wp_set | ( | sdio_instance_en | id | ) |
Checks if the write protection is set on the SD card connected to the specified SDIO instance.
| id | SDIO instance ID. |
| sdio_status_en sdio_set_host_bus_width | ( | sdio_instance_en | id, |
| sdio_bus_width_en | width ) |
Sets the host bus width for the specified SDIO instance. This configures how many data lines are used for communication with the SD card.
| id | SDIO instance ID. |
| width | Bus width to set (sdio_bus_width_en). |
| sdio_status_en sdio_set_bus_width | ( | sdio_instance_en | id, |
| sdio_bus_width_en | width ) |
Sets the bus width for the SD card. This sends the appropriate command to the SD card to change its bus width mode.
| id | SDIO instance ID. |
| width | Bus width to set (sdio_bus_width_en). |
| sdio_status_en sdio_set_host_speed_mode | ( | sdio_instance_en | id, |
| sdio_bus_speed_mode_en | speedMode ) |
Sets the host speed mode for the specified SDIO instance. This configures the host controller's operational speed.
| id | SDIO instance ID. |
| speedMode | Bus speed mode to set (sdio_bus_speed_mode_en). |
| sdio_status_en sdio_set_bus_speed_mode | ( | sdio_instance_en | id, |
| sdio_bus_speed_mode_en | speedMode ) |
Sets the bus speed mode for the SD card. This sends the appropriate command to the SD card to change its speed mode.
| id | SDIO instance ID. |
| speedMode | Bus speed mode to set (sdio_bus_speed_mode_en). |
| sdio_status_en sdio_sel_bus_voltage | ( | sdio_instance_en | id, |
| bool | enable18VSignal ) |
Selects the bus voltage for the SDIO interface. This is typically used for voltage switching operations (e.g., 3.3V to 1.8V).
| id | SDIO instance ID. |
| enable18VSignal | True to enable 1.8V signaling, false for other voltages (e.g., 3.3V). |
| void sdio_enable_card_voltage | ( | sdio_instance_en | id | ) |
Enables the power supply to the SD card.
| id | SDIO instance ID. |
| void sdio_disable_card_voltage | ( | sdio_instance_en | id | ) |
Disables the power supply to the SD card.
| id | SDIO instance ID. |
| sdio_status_en sdio_get_response | ( | sdio_instance_en | id, |
| uint32_t * | responsePtr, | ||
| bool | largeResponse ) |
Retrieves the response from the last SDIO command.
| id | SDIO instance ID. |
| responsePtr | Pointer to a buffer to store the response. |
| largeResponse | True if a large response (e.g., R2) is expected, false for short responses. |
| sdio_status_en sdio_send_command | ( | sdio_instance_en | id, |
| sdio_cmd_config_t const * | config ) |
Sends a command to the SD card.
| id | SDIO instance ID. |
| config | Pointer to the command configuration structure (sdio_cmd_config_t). |
| sdio_status_en sdio_init_data_transfer | ( | sdio_instance_en | id, |
| sdio_data_config_t const * | dataConfig ) |
Initializes a data transfer operation (read or write) with the SD card.
| id | SDIO instance ID. |
| dataConfig | Pointer to the data transfer configuration structure (sdio_data_config_t). |
| sdio_status_en sdio_abort_transfer | ( | sdio_instance_en | id | ) |
Aborts any ongoing data transfer operation.
| id | SDIO instance ID. |
| sdio_status_en sdio_write_protect | ( | sdio_instance_en | id, |
| sdio_write_protect_en | writeProtect ) |
Sets or clears the write protection on the SD card.
| id | SDIO instance ID. |
| writeProtect | Write protect state to set (sdio_write_protect_en). |
| uint32_t sdio_get_card_status | ( | sdio_instance_en | id | ) |
Retrieves the current status of the SD card.
| id | SDIO instance ID. |
| uint32_t sdio_get_ocr | ( | sdio_instance_en | id | ) |
Retrieves the Operation Condition Register (OCR) value from the SD card.
| id | SDIO instance ID. |
| ocrReg | Pointer to a variable where the OCR register value will be stored. |
| sdio_status_en sdio_get_cid | ( | sdio_instance_en | id, |
| uint32_t * | cid ) |
Retrieves the Card Identification (CID) register from the SD card.
| id | SDIO instance ID. |
| cid | Pointer to a buffer to store the CID register value (typically 4 32-bit words). |
| sdio_status_en sdio_get_csd | ( | sdio_instance_en | id, |
| uint32_t * | csd ) |
Retrieves the Card-Specific Data (CSD) register from the SD card.
| id | SDIO instance ID. |
| csd | Pointer to a buffer to store the CSD register value (typically 4 32-bit words). |
| uint32_t sdio_get_rca | ( | sdio_instance_en | id | ) |
Retrieves the Relative Card Address (RCA) of the SD card.
| id | SDIO instance ID. |
| sdio_status_en sdio_get_scr | ( | sdio_instance_en | id, |
| uint32_t * | scr ) |
Retrieves the SD Configuration Register (SCR) from the SD card.
| id | SDIO instance ID. |
| scr | Pointer to a buffer to store the SCR register value. |
| uint32_t sdio_get_present_state | ( | sdio_instance_en | id | ) |
Retrieves the present state register of the SDIO host controller. This register provides information about various aspects of the host controller's current status and the connected card's state.
| id | SDIO instance ID. |
| bool sdio_is_card_connected | ( | sdio_instance_en | id | ) |
Checks if a card is currently connected to the specified SDIO instance.
| id | SDIO instance ID. |
| sdio_status_en sdio_software_reset | ( | sdio_instance_en | id, |
| sdio_reset_en | reset ) |
Performs a software reset of the SDIO host controller or parts of it.
| id | SDIO instance ID. |
| reset | Type of reset to perform (sdio_reset_en). |
| sdio_status_en sdio_get_block_count | ( | sdio_instance_en | id, |
| uint32_t * | block_count ) |
Retrieves the total number of blocks available on the SD card.
| id | SDIO instance ID. |
| block_count | Pointer to a uint32_t variable to store the block count. |
| uint32_t sdio_get_normal_interrupt_status | ( | sdio_instance_en | id | ) |
Retrieves the normal interrupt status register of the SDIO host controller. This indicates various non-error interrupt events.
| id | SDIO instance ID. |
| void sdio_clear_normal_interrupt_status | ( | sdio_instance_en | id, |
| uint32_t | status ) |
Clears the specified bits in the normal interrupt status register.
| id | SDIO instance ID. |
| status | Mask of status bits to clear. |
| void sdio_set_error_interrupt_enable | ( | sdio_instance_en | id, |
| uint32_t | interrupt ) |
Setting a bit in this register allows for the bit to be active in the Int status register.
| id | SDIO instance ID. |
| interrupt | The Bit field of which error interrupt status to enable. |
| void sdio_clear_error_interrupt_status | ( | sdio_instance_en | id, |
| uint32_t | status ) |
Clears the error interrupt status.
| id | SDIO instance ID. |
| status | The bitmask of statuses to clear. |
| void sdio_set_normal_interrupt_enable | ( | sdio_instance_en | id, |
| uint32_t | interrupt ) |
Sets the bit to be active in the Int status register.
| id | SDIO instance ID. |
| interrupt | The Bit field of which normal interrupt status to enable. |
| sdio_status_en sdio_buffer_write | ( | sdio_instance_en | id, |
| uint32_t | data ) |
Writes 32-bits of data into the write buffer. Only use this function if not using SD block DMA to transfer data to buffer.
| id | SDIO instance ID. |
| data | Data to be written. |
| uint32_t sdio_buffer_read | ( | sdio_instance_en | id | ) |
Reads 32-bits of data from the read buffer. Only use this function if not using SD block DMA to transfer data from buffer.
| id | SDIO instance ID. |
| sdio_status_en sdio_ops_go_idle | ( | sdio_instance_en | id | ) |
| sdio_status_en sdio_set_host_voltage | ( | sdio_instance_en | id | ) |
| sdio_status_en sdio_change_clock | ( | sdio_instance_en | id, |
| uint32_t | frequency ) |
Changes the Host controller SD clock.
| id | SDIO instance ID. |
| frequency | The frequency in Hz. |
| void sdio_set_block_size_count | ( | sdio_instance_en | id | ) |
Sets the block size and count.
| id | SDIO instance ID. |
| sdio_status_en sdio_ops_send_io_rw_direct_cmd | ( | sdio_instance_en | id, |
| uint32_t | rwFlag, | ||
| uint32_t | functionNumber, | ||
| uint32_t | rawFlag, | ||
| uint32_t | registerAddress, | ||
| uint32_t | data ) |
Sends CMD52 (Reads/writes 1 byte to the SDIO register).
| id | SDIO instance ID. |
| rwFlag | Read/Write flag. Set to 1 for write, 0 for read. |
| functionNumber | SDIO function number to access. |
| rawFlag | Read After Write flag. Used when performing write with readback verification. |
| registerAddress | The register address to access. |
| data | Data to write or dummy value for read. |
| sdio_status_en sdio_ops_sdio_send_op_cond | ( | sdio_instance_en | id, |
| uint32_t * | ocrReg, | ||
| uint32_t | cmdArgument ) |
Send CMD5 (Send SDIO operation condition command).
| id | SDIO instance ID. |
| ocrReg | Pointer to the Operation Condition Register (OCR) to store the response. |
| cmdArgument | The command argument to send with CMD5. |
| sdio_status_en sdio_ops_select_card | ( | sdio_instance_en | id | ) |
| sdio_status_en sdio_fetch_rca | ( | sdio_instance_en | id | ) |
Sends CMD3 to get the Relative Card Address (RCA).
| id | SDIO instance ID. |
| sdio_status_en sdio_cmd_rx_data | ( | sdio_instance_en | id, |
| sdio_data_config_t * | pcmd ) |
Reads the command data using a non-DMA data transfer.
| id | SDIO instance ID. |
| pcmd | Pointer to the current command data structure. |
| sdio_status_en sdio_cmd_tx_data | ( | sdio_instance_en | id, |
| sdio_data_config_t * | pcmd ) |
Writes the command data using a non-DMA data transfer.
| id | SDIO instance ID. |
| pcmd | Pointer to the current command data structure. |
| void sdio_set_normal_interrupt_mask | ( | sdio_instance_en | id, |
| uint32_t | interruptMask ) |
Sets bits in the register that allow enabled status bits to cause interrupts.
| id | SDIO instance ID. |
| interruptMask | Bit field specifying which normal interrupts can cause an interrupt. |
| ISR_CODE uint32_t sdio_isr | ( | sdio_instance_en | id | ) |
SDIO interrupt service routine for the specified instance.
| id | SDIO Instance ID. |