Initial commit: TXW82x FPV v2.7.0.7-42229 SDK + project sources
This commit is contained in:
70
sdk/include/hal/sdio_slave.h
Normal file
70
sdk/include/hal/sdio_slave.h
Normal file
@@ -0,0 +1,70 @@
|
||||
#ifndef _HAL_SDIO_SLAVE_H_
|
||||
#define _HAL_SDIO_SLAVE_H_
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
enum sdio_slave_flags {
|
||||
SDIO_SLAVE_FLAG_4BIT = BIT(0),
|
||||
};
|
||||
|
||||
enum sdio_slave_speed {
|
||||
SDIO_SLAVE_SPEED_1M,
|
||||
SDIO_SLAVE_SPEED_2M,
|
||||
SDIO_SLAVE_SPEED_4M,
|
||||
SDIO_SLAVE_SPEED_8M,
|
||||
SDIO_SLAVE_SPEED_12M,
|
||||
SDIO_SLAVE_SPEED_24M,
|
||||
SDIO_SLAVE_SPEED_48M,
|
||||
|
||||
SDIO_SLAVE_SPEED_NUM,
|
||||
};
|
||||
|
||||
enum sdio_slave_irqs {
|
||||
SDIO_SLAVE_IRQ_RX = BIT(0),
|
||||
SDIO_SLAVE_IRQ_RX_OVERFLOW = BIT(1),
|
||||
SDIO_SLAVE_IRQ_RX_CRC_ERR = BIT(2),
|
||||
SDIO_SLAVE_IRQ_TX_DONE = BIT(3),
|
||||
SDIO_SLAVE_IRQ_TX_ERR = BIT(4),
|
||||
SDIO_SLAVE_IRQ_RESET = BIT(5),
|
||||
};
|
||||
|
||||
enum sdio_slave_ioctl_cmd {
|
||||
SDIO_SLAVE_IO_CMD_RESET,
|
||||
SDIO_SLAVE_IO_CMD_MNTR_RDYSTAT,
|
||||
SDIO_SLAVE_IO_CMD_SET_USER_REG0,
|
||||
SDIO_SLAVE_IO_CMD_SET_USER_REG1,
|
||||
SDIO_SLAVE_IO_CMD_SET_USER_REG2,
|
||||
|
||||
};
|
||||
|
||||
typedef void (*sdio_slave_irq_hdl)(uint32 irq, uint32 param1, uint32 param2, uint32 param3);
|
||||
|
||||
struct sdio_slave {
|
||||
struct dev_obj dev;
|
||||
};
|
||||
|
||||
struct sdios_hal_ops{
|
||||
struct devobj_ops ops;
|
||||
int32(*open)(struct sdio_slave *slave, enum sdio_slave_speed speed, uint32 flags);
|
||||
int32(*close)(struct sdio_slave *slave);
|
||||
int32(*ioctl)(struct sdio_slave *slave, int32 cmd, uint32 param);
|
||||
int32(*read)(struct sdio_slave *slave, uint8 *buff, uint32 len, int8 sync);
|
||||
int32(*write)(struct sdio_slave *slave, uint8 *buff, uint32 len, int8 sync);
|
||||
int32(*write_scatter)(struct sdio_slave *slave, scatter_data *data, uint32 count, int8 sync);
|
||||
int32(*request_irq)(struct sdio_slave *slave, sdio_slave_irq_hdl irqhdl, uint32 data);
|
||||
};
|
||||
|
||||
int32 sdio_slave_open(struct sdio_slave *slave, enum sdio_slave_speed speed, uint32 flags);
|
||||
int32 sdio_slave_close(struct sdio_slave *slave);
|
||||
int32 sdio_slave_write(struct sdio_slave *slave, uint8 *buff, uint32 len, int8 sync);
|
||||
int32 sdio_slave_write_scatter(struct sdio_slave *slave, scatter_data *data, uint32 count, int8 sync);
|
||||
int32 sdio_slave_read(struct sdio_slave *slave, uint8 *buff, uint32 len, int8 sync);
|
||||
int32 sdio_slave_ioctl(struct sdio_slave *slave, uint32 cmd, uint32 param);
|
||||
int32 sdio_slave_request_irq(struct sdio_slave *slave, sdio_slave_irq_hdl handle, uint32 data);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user