Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Functions
spi-davinci.c File Reference
#include <linux/interrupt.h>
#include <linux/io.h>
#include <linux/gpio.h>
#include <linux/module.h>
#include <linux/delay.h>
#include <linux/platform_device.h>
#include <linux/err.h>
#include <linux/clk.h>
#include <linux/dmaengine.h>
#include <linux/dma-mapping.h>
#include <linux/edma.h>
#include <linux/spi/spi.h>
#include <linux/spi/spi_bitbang.h>
#include <linux/slab.h>
#include <linux/platform_data/spi-davinci.h>

Go to the source code of this file.

Data Structures

struct  davinci_spi
 

Macros

#define SPI_NO_RESOURCE   ((resource_size_t)-1)
 
#define SPI_MAX_CHIPSELECT   2
 
#define CS_DEFAULT   0xFF
 
#define SPIFMT_PHASE_MASK   BIT(16)
 
#define SPIFMT_POLARITY_MASK   BIT(17)
 
#define SPIFMT_DISTIMER_MASK   BIT(18)
 
#define SPIFMT_SHIFTDIR_MASK   BIT(20)
 
#define SPIFMT_WAITENA_MASK   BIT(21)
 
#define SPIFMT_PARITYENA_MASK   BIT(22)
 
#define SPIFMT_ODD_PARITY_MASK   BIT(23)
 
#define SPIFMT_WDELAY_MASK   0x3f000000u
 
#define SPIFMT_WDELAY_SHIFT   24
 
#define SPIFMT_PRESCALE_SHIFT   8
 
#define SPIPC0_DIFUN_MASK   BIT(11) /* MISO */
 
#define SPIPC0_DOFUN_MASK   BIT(10) /* MOSI */
 
#define SPIPC0_CLKFUN_MASK   BIT(9) /* CLK */
 
#define SPIPC0_SPIENA_MASK   BIT(8) /* nREADY */
 
#define SPIINT_MASKALL   0x0101035F
 
#define SPIINT_MASKINT   0x0000015F
 
#define SPI_INTLVL_1   0x000001FF
 
#define SPI_INTLVL_0   0x00000000
 
#define SPIDAT1_CSHOLD_MASK   BIT(12)
 
#define SPIGCR1_CLKMOD_MASK   BIT(1)
 
#define SPIGCR1_MASTER_MASK   BIT(0)
 
#define SPIGCR1_POWERDOWN_MASK   BIT(8)
 
#define SPIGCR1_LOOPBACK_MASK   BIT(16)
 
#define SPIGCR1_SPIENA_MASK   BIT(24)
 
#define SPIBUF_TXFULL_MASK   BIT(29)
 
#define SPIBUF_RXEMPTY_MASK   BIT(31)
 
#define SPIDELAY_C2TDELAY_SHIFT   24
 
#define SPIDELAY_C2TDELAY_MASK   (0xFF << SPIDELAY_C2TDELAY_SHIFT)
 
#define SPIDELAY_T2CDELAY_SHIFT   16
 
#define SPIDELAY_T2CDELAY_MASK   (0xFF << SPIDELAY_T2CDELAY_SHIFT)
 
#define SPIDELAY_T2EDELAY_SHIFT   8
 
#define SPIDELAY_T2EDELAY_MASK   (0xFF << SPIDELAY_T2EDELAY_SHIFT)
 
#define SPIDELAY_C2EDELAY_SHIFT   0
 
#define SPIDELAY_C2EDELAY_MASK   0xFF
 
#define SPIFLG_DLEN_ERR_MASK   BIT(0)
 
#define SPIFLG_TIMEOUT_MASK   BIT(1)
 
#define SPIFLG_PARERR_MASK   BIT(2)
 
#define SPIFLG_DESYNC_MASK   BIT(3)
 
#define SPIFLG_BITERR_MASK   BIT(4)
 
#define SPIFLG_OVRRUN_MASK   BIT(6)
 
#define SPIFLG_BUF_INIT_ACTIVE_MASK   BIT(24)
 
#define SPIFLG_ERROR_MASK
 
#define SPIINT_DMA_REQ_EN   BIT(16)
 
#define SPIGCR0   0x00
 
#define SPIGCR1   0x04
 
#define SPIINT   0x08
 
#define SPILVL   0x0c
 
#define SPIFLG   0x10
 
#define SPIPC0   0x14
 
#define SPIDAT1   0x3c
 
#define SPIBUF   0x40
 
#define SPIDELAY   0x48
 
#define SPIDEF   0x4c
 
#define SPIFMT0   0x50
 

Functions

 module_platform_driver (davinci_spi_driver)
 
 MODULE_DESCRIPTION ("TI DaVinci SPI Master Controller Driver")
 
 MODULE_LICENSE ("GPL")
 

Macro Definition Documentation

#define CS_DEFAULT   0xFF

Definition at line 41 of file spi-davinci.c.

#define SPI_INTLVL_0   0x00000000

Definition at line 63 of file spi-davinci.c.

#define SPI_INTLVL_1   0x000001FF

Definition at line 62 of file spi-davinci.c.

#define SPI_MAX_CHIPSELECT   2

Definition at line 39 of file spi-davinci.c.

#define SPI_NO_RESOURCE   ((resource_size_t)-1)

Definition at line 37 of file spi-davinci.c.

#define SPIBUF   0x40

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

#define SPIBUF_RXEMPTY_MASK   BIT(31)

Definition at line 77 of file spi-davinci.c.

#define SPIBUF_TXFULL_MASK   BIT(29)

Definition at line 76 of file spi-davinci.c.

#define SPIDAT1   0x3c

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

#define SPIDAT1_CSHOLD_MASK   BIT(12)

Definition at line 66 of file spi-davinci.c.

#define SPIDEF   0x4c

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

#define SPIDELAY   0x48

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

#define SPIDELAY_C2EDELAY_MASK   0xFF

Definition at line 87 of file spi-davinci.c.

#define SPIDELAY_C2EDELAY_SHIFT   0

Definition at line 86 of file spi-davinci.c.

#define SPIDELAY_C2TDELAY_MASK   (0xFF << SPIDELAY_C2TDELAY_SHIFT)

Definition at line 81 of file spi-davinci.c.

#define SPIDELAY_C2TDELAY_SHIFT   24

Definition at line 80 of file spi-davinci.c.

#define SPIDELAY_T2CDELAY_MASK   (0xFF << SPIDELAY_T2CDELAY_SHIFT)

Definition at line 83 of file spi-davinci.c.

#define SPIDELAY_T2CDELAY_SHIFT   16

Definition at line 82 of file spi-davinci.c.

#define SPIDELAY_T2EDELAY_MASK   (0xFF << SPIDELAY_T2EDELAY_SHIFT)

Definition at line 85 of file spi-davinci.c.

#define SPIDELAY_T2EDELAY_SHIFT   8

Definition at line 84 of file spi-davinci.c.

#define SPIFLG   0x10

Definition at line 109 of file spi-davinci.c.

#define SPIFLG_BITERR_MASK   BIT(4)

Definition at line 94 of file spi-davinci.c.

#define SPIFLG_BUF_INIT_ACTIVE_MASK   BIT(24)

Definition at line 96 of file spi-davinci.c.

#define SPIFLG_DESYNC_MASK   BIT(3)

Definition at line 93 of file spi-davinci.c.

#define SPIFLG_DLEN_ERR_MASK   BIT(0)

Definition at line 90 of file spi-davinci.c.

#define SPIFLG_ERROR_MASK
#define SPIFLG_OVRRUN_MASK   BIT(6)

Definition at line 95 of file spi-davinci.c.

#define SPIFLG_PARERR_MASK   BIT(2)

Definition at line 92 of file spi-davinci.c.

#define SPIFLG_TIMEOUT_MASK   BIT(1)

Definition at line 91 of file spi-davinci.c.

#define SPIFMT0   0x50

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

#define SPIFMT_DISTIMER_MASK   BIT(18)

Definition at line 45 of file spi-davinci.c.

#define SPIFMT_ODD_PARITY_MASK   BIT(23)

Definition at line 49 of file spi-davinci.c.

#define SPIFMT_PARITYENA_MASK   BIT(22)

Definition at line 48 of file spi-davinci.c.

#define SPIFMT_PHASE_MASK   BIT(16)

Definition at line 43 of file spi-davinci.c.

#define SPIFMT_POLARITY_MASK   BIT(17)

Definition at line 44 of file spi-davinci.c.

#define SPIFMT_PRESCALE_SHIFT   8

Definition at line 52 of file spi-davinci.c.

#define SPIFMT_SHIFTDIR_MASK   BIT(20)

Definition at line 46 of file spi-davinci.c.

#define SPIFMT_WAITENA_MASK   BIT(21)

Definition at line 47 of file spi-davinci.c.

#define SPIFMT_WDELAY_MASK   0x3f000000u

Definition at line 50 of file spi-davinci.c.

#define SPIFMT_WDELAY_SHIFT   24

Definition at line 51 of file spi-davinci.c.

#define SPIGCR0   0x00

Definition at line 105 of file spi-davinci.c.

#define SPIGCR1   0x04

Definition at line 106 of file spi-davinci.c.

#define SPIGCR1_CLKMOD_MASK   BIT(1)

Definition at line 69 of file spi-davinci.c.

#define SPIGCR1_LOOPBACK_MASK   BIT(16)

Definition at line 72 of file spi-davinci.c.

#define SPIGCR1_MASTER_MASK   BIT(0)

Definition at line 70 of file spi-davinci.c.

#define SPIGCR1_POWERDOWN_MASK   BIT(8)

Definition at line 71 of file spi-davinci.c.

#define SPIGCR1_SPIENA_MASK   BIT(24)

Definition at line 73 of file spi-davinci.c.

#define SPIINT   0x08

Definition at line 107 of file spi-davinci.c.

#define SPIINT_DMA_REQ_EN   BIT(16)

Definition at line 102 of file spi-davinci.c.

#define SPIINT_MASKALL   0x0101035F

Definition at line 60 of file spi-davinci.c.

#define SPIINT_MASKINT   0x0000015F

Definition at line 61 of file spi-davinci.c.

#define SPILVL   0x0c

Definition at line 108 of file spi-davinci.c.

#define SPIPC0   0x14

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

#define SPIPC0_CLKFUN_MASK   BIT(9) /* CLK */

Definition at line 57 of file spi-davinci.c.

#define SPIPC0_DIFUN_MASK   BIT(11) /* MISO */

Definition at line 55 of file spi-davinci.c.

#define SPIPC0_DOFUN_MASK   BIT(10) /* MOSI */

Definition at line 56 of file spi-davinci.c.

#define SPIPC0_SPIENA_MASK   BIT(8) /* nREADY */

Definition at line 58 of file spi-davinci.c.

Function Documentation

MODULE_DESCRIPTION ( "TI DaVinci SPI Master Controller Driver"  )
MODULE_LICENSE ( "GPL"  )
module_platform_driver ( davinci_spi_driver  )