Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Fields
ep93xx_spi Struct Reference

Data Fields

spinlock_t lock
 
struct platform_devicepdev
 
struct clkclk
 
void __iomemregs_base
 
unsigned long sspdr_phys
 
unsigned long min_rate
 
unsigned long max_rate
 
bool running
 
struct workqueue_structwq
 
struct work_struct msg_work
 
struct completion wait
 
struct list_head msg_queue
 
struct spi_messagecurrent_msg
 
size_t tx
 
size_t rx
 
size_t fifo_level
 
struct dma_chandma_rx
 
struct dma_chandma_tx
 
struct ep93xx_dma_data dma_rx_data
 
struct ep93xx_dma_data dma_tx_data
 
struct sg_table rx_sgt
 
struct sg_table tx_sgt
 
voidzeropage
 

Detailed Description

struct ep93xx_spi - EP93xx SPI controller structure : spinlock that protects concurrent accesses to fields , and : pointer to platform device : clock for the controller : pointer to ioremap()'d registers : physical address of the SSPDR register : minimum clock rate (in Hz) supported by the controller : maximum clock rate (in Hz) supported by the controller : is the queue running : workqueue used by the driver : work that is queued for the driver : wait here until given transfer is completed : queue for the messages : message that is currently processed (or NULL if none) : current byte in transfer to transmit : current byte in transfer to receive : how full is FIFO (%0..SPI_FIFO_SIZE - %1). Receiving one frame decreases this level and sending one frame increases it. : RX DMA channel : TX DMA channel : RX parameters passed to the DMA engine : TX parameters passed to the DMA engine : sg table for RX transfers : sg table for TX transfers : dummy page used as RX buffer when only TX buffer is passed in by the client

This structure holds EP93xx SPI controller specific information. When is true, driver accepts transfer requests from protocol drivers. is used to hold pointer to the message that is currently processed. If is NULL, it means that no processing is going on.

Most of the fields are only written once and they can be accessed without taking the . Fields that are accessed concurrently are: , , and .

Definition at line 110 of file spi-ep93xx.c.

Field Documentation

Definition at line 113 of file spi-ep93xx.c.

struct spi_message* current_msg

Definition at line 123 of file spi-ep93xx.c.

struct dma_chan* dma_rx

Definition at line 127 of file spi-ep93xx.c.

struct ep93xx_dma_data dma_rx_data

Definition at line 129 of file spi-ep93xx.c.

struct dma_chan* dma_tx

Definition at line 128 of file spi-ep93xx.c.

struct ep93xx_dma_data dma_tx_data

Definition at line 130 of file spi-ep93xx.c.

size_t fifo_level

Definition at line 126 of file spi-ep93xx.c.

spinlock_t lock

Definition at line 111 of file spi-ep93xx.c.

unsigned long max_rate

Definition at line 117 of file spi-ep93xx.c.

unsigned long min_rate

Definition at line 116 of file spi-ep93xx.c.

Definition at line 122 of file spi-ep93xx.c.

struct work_struct msg_work

Definition at line 120 of file spi-ep93xx.c.

Definition at line 112 of file spi-ep93xx.c.

void __iomem* regs_base

Definition at line 114 of file spi-ep93xx.c.

bool running

Definition at line 118 of file spi-ep93xx.c.

Definition at line 125 of file spi-ep93xx.c.

struct sg_table rx_sgt

Definition at line 131 of file spi-ep93xx.c.

unsigned long sspdr_phys

Definition at line 115 of file spi-ep93xx.c.

size_t tx

Definition at line 124 of file spi-ep93xx.c.

struct sg_table tx_sgt

Definition at line 132 of file spi-ep93xx.c.

Definition at line 121 of file spi-ep93xx.c.

Definition at line 119 of file spi-ep93xx.c.

Definition at line 133 of file spi-ep93xx.c.


The documentation for this struct was generated from the following file: