| /* | 
 |  * Copyright 2022 NXP | 
 |  * | 
 |  * SPDX-License-Identifier: Apache-2.0 | 
 |  */ | 
 |  | 
 |  | 
 | #ifndef ZEPHYR_SUBSYS_SD_SD_OPS_H_ | 
 | #define ZEPHYR_SUBSYS_SD_SD_OPS_H_ | 
 |  | 
 | /* | 
 |  * Switches voltage of SD card to 1.8V, as described by | 
 |  * "Signal voltage switch procedure" in section 3.6.1 of SD host controller specification. | 
 |  */ | 
 | int sdmmc_switch_voltage(struct sd_card *card); | 
 |  | 
 | /* | 
 |  * Reads card identification register, and decodes it | 
 |  */ | 
 | int card_read_cid(struct sd_card *card); | 
 |  | 
 | /* | 
 |  * Read card specific data register | 
 |  */ | 
 | int sdmmc_read_csd(struct sd_card *card); | 
 |  | 
 | /* | 
 |  * Requests card to publish a new relative card address, and move from | 
 |  * identification to data mode | 
 |  */ | 
 | int sdmmc_request_rca(struct sd_card *card); | 
 |  | 
 | /* | 
 |  * Selects card, moving it into data transfer mode | 
 |  */ | 
 | int sdmmc_select_card(struct sd_card *card); | 
 |  | 
 | /* Returns 1 if host supports UHS, zero otherwise */ | 
 | static inline int sdmmc_host_uhs(struct sdhc_host_props *props) | 
 | { | 
 | 	return (props->host_caps.sdr50_support | | 
 | 		props->host_caps.uhs_2_support | | 
 | 		props->host_caps.sdr104_support | | 
 | 		props->host_caps.ddr50_support) | 
 | 		& (props->host_caps.vol_180_support); | 
 | } | 
 |  | 
 | int card_ioctl(struct sd_card *card, uint8_t cmd, void *buf); | 
 |  | 
 | int card_read_blocks(struct sd_card *card, uint8_t *rbuf, | 
 | 	uint32_t start_block, uint32_t num_blocks); | 
 |  | 
 | int card_write_blocks(struct sd_card *card, const uint8_t *wbuf, | 
 | 	uint32_t start_block, uint32_t num_blocks); | 
 |  | 
 | int card_app_command(struct sd_card *card, int relative_card_address); | 
 |  | 
 | int sdmmc_read_status(struct sd_card *card); | 
 |  | 
 | int sdmmc_wait_ready(struct sd_card *card); | 
 |  | 
 | #endif /* ZEPHYR_SUBSYS_SD_SD_OPS_H_ */ |