| * SPDX-License-Identifier: Apache-2.0 |
| * Common utility functions for SD subsystem |
| #ifndef ZEPHYR_SUBSYS_SD_UTILS_H_ |
| #define ZEPHYR_SUBSYS_SD_UTILS_H_ |
| #include <zephyr/kernel.h> |
| #include <zephyr/sd/sd.h> |
| * Custom SD return codes. Used internally to indicate conditions that may |
| * not be errors, but are abnormal return conditions |
| /* Checks SD status return codes */ |
| static inline int sd_check_response(struct sdhc_command *cmd) |
| if (cmd->response_type == SD_RSP_TYPE_R1) { |
| return (cmd->response[0U] & SD_R1_ERR_FLAGS); |
| /* Delay function for SD subsystem */ |
| static inline void sd_delay(unsigned int millis) |
| * Helper function to retry sending command to SD card |
| * Will retry command if return code equals SD_RETRY |
| static inline int sd_retry(int(*cmd)(struct sd_card *card), |
| * Functions have 3 possible responses: |
| * SD_RETRY: retry command |
| return ret == SD_RETRY ? -ETIMEDOUT : ret; |
| #endif /* ZEPHYR_SUBSYS_SD_UTILS_H_ */ |