/* SPDX-License-Identifier: GPL-2.0-only */

#ifndef _SPI_SDCARD_H_
#define _SPI_SDCARD_H_

#include <stddef.h>

struct spi_sdcard {
	int type;
	struct spi_slave slave;
};

int spi_sdcard_init(struct spi_sdcard *card,
		const unsigned int bus,
		const unsigned int cs);

int spi_sdcard_single_read(const struct spi_sdcard *card,
		size_t block_address,
		void *buff);

int spi_sdcard_multiple_read(const struct spi_sdcard *card,
		size_t start_block_address,
		size_t end_block_address,
		void *buff);

int spi_sdcard_single_write(const struct spi_sdcard *card,
		size_t block_address,
		void *buff);

int spi_sdcard_read(const struct spi_sdcard *card,
		void *dest,
		size_t offset,
		size_t count);

int spi_sdcard_multiple_write(const struct spi_sdcard *card,
		size_t start_block_address,
		size_t end_block_address,
		void *buff);

int spi_sdcard_erase(const struct spi_sdcard *card,
		size_t start_block_address,
		size_t end_block_address);

int spi_sdcard_erase_all(const struct spi_sdcard *card);

/* get the sdcard size in bytes */
size_t spi_sdcard_size(const struct spi_sdcard *card);

#endif /* _SPI_SDCARD_H_ */
