mirror of
https://gitee.com/anod/open_agb_firm.git
synced 2025-05-09 15:24:09 +08:00
33 lines
1.4 KiB
C
33 lines
1.4 KiB
C
#pragma once
|
|
|
|
#include "types.h"
|
|
|
|
// Possible error codes for most of the functions below.
|
|
// TODO: Merge with WiFi error codes?
|
|
enum
|
|
{
|
|
SDIO_ERR_NONE = 0u, // No error.
|
|
SDIO_ERR_GO_IDLE_STATE = 1u, // GO_IDLE_STATE CMD error.
|
|
SDIO_ERR_IO_SEND_OP_COND = 2u, // IO_SEND_OP_COND CMD error.
|
|
SDIO_ERR_IO_OP_COND_TMOUT = 3u, // Card initialization timeout.
|
|
SDIO_ERR_VOLT_SUPPORT = 4u, // Voltage not supported.
|
|
SDIO_ERR_SEND_RCA = 5u, // SEND_RELATIVE_ADDR CMD error.
|
|
SDIO_ERR_SELECT_CARD = 6u, // SELECT_CARD CMD error.
|
|
SDIO_ERR_INVALID_ARG = 7u, // Invalid function argument(s).
|
|
SDIO_ERR_IO_RW_DIRECT = 8u, // IO_RW_DIRECT CMD error.
|
|
SDIO_ERR_IO_RW_EXTENDED = 9u, // IO_RW_EXTENDED CMD error.
|
|
SDIO_ERR_R5_ERROR = 10u, // SDIO R5 ERROR bit set in response.
|
|
SDIO_ERR_R5_INVALID_FUNC = 11u, // SDIO R5 FUNCTION_NUMBER bit set in response.
|
|
SDIO_ERR_R5_OUT_OF_RANGE = 12u // SDIO R5 OUT_OF_RANGE bit set in response.
|
|
};
|
|
|
|
|
|
|
|
u32 SDIO_init(void);
|
|
u32 SDIO_reset(void);
|
|
u32 SDIO_io_rw_direct(const bool write, const u8 func, const u32 addr, const u8 in, u8 *const out);
|
|
u32 SDIO_io_rw_extended(const bool write, const u8 func, const u32 addr, const bool incAddr, u8 *buf, const u16 count, const u16 size);
|
|
u8 SDIO_readReg8(const u8 func, const u32 addr);
|
|
u32 SDIO_writeReg8(const u8 func, const u32 addr, const u8 in);
|
|
u8 SDIO_writeReadReg8(const u8 func, const u32 addr, const u8 in);
|