drivers/net/ethernet/asix/ax88796c_spi.h

Source file repositories/reference/linux-study-clean/drivers/net/ethernet/asix/ax88796c_spi.h

File Facts

System
Linux kernel
Corpus path
drivers/net/ethernet/asix/ax88796c_spi.h
Extension
.h
Size
1757 bytes
Lines
70
Domain
Driver Families
Bucket
drivers/net
Inferred role
Driver Families: implementation source
Status
source implementation candidate

Why This File Exists

Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.

Dependency Surface

Detected Declarations

Annotated Snippet

struct axspi_data {
	struct spi_device	*spi;
	struct spi_message	rx_msg;
	struct spi_transfer	spi_rx_xfer[2];
	u8			cmd_buf[6];
	u8			rx_buf[6];
	u8			comp;
};

struct spi_status {
	u16 isr;
	u8 status;
#	define AX_STATUS_READY		0x80
};

int axspi_read_rxq(struct axspi_data *ax_spi, void *data, int len);
int axspi_write_txq(const struct axspi_data *ax_spi, void *data, int len);
u16 axspi_read_reg(struct axspi_data *ax_spi, u8 reg);
int axspi_write_reg(struct axspi_data *ax_spi, u8 reg, u16 value);
int axspi_read_status(struct axspi_data *ax_spi, struct spi_status *status);
int axspi_wakeup(struct axspi_data *ax_spi);

static inline u16 AX_READ(struct axspi_data *ax_spi, u8 offset)
{
	return axspi_read_reg(ax_spi, offset);
}

static inline int AX_WRITE(struct axspi_data *ax_spi, u16 value, u8 offset)
{
	return axspi_write_reg(ax_spi, offset, value);
}

static inline int AX_READ_STATUS(struct axspi_data *ax_spi,
				 struct spi_status *status)
{
	return axspi_read_status(ax_spi, status);
}

static inline int AX_WAKEUP(struct axspi_data *ax_spi)
{
	return axspi_wakeup(ax_spi);
}
#endif

Annotation

Implementation Notes