Linux Kernel  3.7.1
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Data Structures | Macros | Enumerations | Functions
mxs-spi.h File Reference
#include <linux/fsl/mxs-dma.h>

Go to the source code of this file.

Data Structures

struct  mxs_ssp
 

Macros

#define ssp_is_old(host)   ((host)->devid == IMX23_SSP)
 
#define HW_SSP_CTRL0   0x000
 
#define BM_SSP_CTRL0_RUN   (1 << 29)
 
#define BM_SSP_CTRL0_SDIO_IRQ_CHECK   (1 << 28)
 
#define BM_SSP_CTRL0_LOCK_CS   (1 << 27)
 
#define BM_SSP_CTRL0_IGNORE_CRC   (1 << 26)
 
#define BM_SSP_CTRL0_READ   (1 << 25)
 
#define BM_SSP_CTRL0_DATA_XFER   (1 << 24)
 
#define BP_SSP_CTRL0_BUS_WIDTH   22
 
#define BM_SSP_CTRL0_BUS_WIDTH   (0x3 << 22)
 
#define BM_SSP_CTRL0_WAIT_FOR_IRQ   (1 << 21)
 
#define BM_SSP_CTRL0_WAIT_FOR_CMD   (1 << 20)
 
#define BM_SSP_CTRL0_LONG_RESP   (1 << 19)
 
#define BM_SSP_CTRL0_GET_RESP   (1 << 17)
 
#define BM_SSP_CTRL0_ENABLE   (1 << 16)
 
#define BP_SSP_CTRL0_XFER_COUNT   0
 
#define BM_SSP_CTRL0_XFER_COUNT   0xffff
 
#define HW_SSP_CMD0   0x010
 
#define BM_SSP_CMD0_DBL_DATA_RATE_EN   (1 << 25)
 
#define BM_SSP_CMD0_SLOW_CLKING_EN   (1 << 22)
 
#define BM_SSP_CMD0_CONT_CLKING_EN   (1 << 21)
 
#define BM_SSP_CMD0_APPEND_8CYC   (1 << 20)
 
#define BP_SSP_CMD0_BLOCK_SIZE   16
 
#define BM_SSP_CMD0_BLOCK_SIZE   (0xf << 16)
 
#define BP_SSP_CMD0_BLOCK_COUNT   8
 
#define BM_SSP_CMD0_BLOCK_COUNT   (0xff << 8)
 
#define BP_SSP_CMD0_CMD   0
 
#define BM_SSP_CMD0_CMD   0xff
 
#define HW_SSP_CMD1   0x020
 
#define HW_SSP_XFER_SIZE   0x030
 
#define HW_SSP_BLOCK_SIZE   0x040
 
#define BP_SSP_BLOCK_SIZE_BLOCK_COUNT   4
 
#define BM_SSP_BLOCK_SIZE_BLOCK_COUNT   (0xffffff << 4)
 
#define BP_SSP_BLOCK_SIZE_BLOCK_SIZE   0
 
#define BM_SSP_BLOCK_SIZE_BLOCK_SIZE   0xf
 
#define HW_SSP_TIMING(h)   (ssp_is_old(h) ? 0x050 : 0x070)
 
#define BP_SSP_TIMING_TIMEOUT   16
 
#define BM_SSP_TIMING_TIMEOUT   (0xffff << 16)
 
#define BP_SSP_TIMING_CLOCK_DIVIDE   8
 
#define BM_SSP_TIMING_CLOCK_DIVIDE   (0xff << 8)
 
#define BF_SSP_TIMING_CLOCK_DIVIDE(v)   (((v) << 8) & BM_SSP_TIMING_CLOCK_DIVIDE)
 
#define BP_SSP_TIMING_CLOCK_RATE   0
 
#define BM_SSP_TIMING_CLOCK_RATE   0xff
 
#define BF_SSP_TIMING_CLOCK_RATE(v)   (((v) << 0) & BM_SSP_TIMING_CLOCK_RATE)
 
#define HW_SSP_CTRL1(h)   (ssp_is_old(h) ? 0x060 : 0x080)
 
#define BM_SSP_CTRL1_SDIO_IRQ   (1 << 31)
 
#define BM_SSP_CTRL1_SDIO_IRQ_EN   (1 << 30)
 
#define BM_SSP_CTRL1_RESP_ERR_IRQ   (1 << 29)
 
#define BM_SSP_CTRL1_RESP_ERR_IRQ_EN   (1 << 28)
 
#define BM_SSP_CTRL1_RESP_TIMEOUT_IRQ   (1 << 27)
 
#define BM_SSP_CTRL1_RESP_TIMEOUT_IRQ_EN   (1 << 26)
 
#define BM_SSP_CTRL1_DATA_TIMEOUT_IRQ   (1 << 25)
 
#define BM_SSP_CTRL1_DATA_TIMEOUT_IRQ_EN   (1 << 24)
 
#define BM_SSP_CTRL1_DATA_CRC_IRQ   (1 << 23)
 
#define BM_SSP_CTRL1_DATA_CRC_IRQ_EN   (1 << 22)
 
#define BM_SSP_CTRL1_FIFO_UNDERRUN_IRQ   (1 << 21)
 
#define BM_SSP_CTRL1_FIFO_UNDERRUN_IRQ_EN   (1 << 20)
 
#define BM_SSP_CTRL1_RECV_TIMEOUT_IRQ   (1 << 17)
 
#define BM_SSP_CTRL1_RECV_TIMEOUT_IRQ_EN   (1 << 16)
 
#define BM_SSP_CTRL1_FIFO_OVERRUN_IRQ   (1 << 15)
 
#define BM_SSP_CTRL1_FIFO_OVERRUN_IRQ_EN   (1 << 14)
 
#define BM_SSP_CTRL1_DMA_ENABLE   (1 << 13)
 
#define BM_SSP_CTRL1_PHASE   (1 << 10)
 
#define BM_SSP_CTRL1_POLARITY   (1 << 9)
 
#define BP_SSP_CTRL1_WORD_LENGTH   4
 
#define BM_SSP_CTRL1_WORD_LENGTH   (0xf << 4)
 
#define BF_SSP_CTRL1_WORD_LENGTH(v)   (((v) << 4) & BM_SSP_CTRL1_WORD_LENGTH)
 
#define BV_SSP_CTRL1_WORD_LENGTH__FOUR_BITS   0x3
 
#define BV_SSP_CTRL1_WORD_LENGTH__EIGHT_BITS   0x7
 
#define BV_SSP_CTRL1_WORD_LENGTH__SIXTEEN_BITS   0xF
 
#define BP_SSP_CTRL1_SSP_MODE   0
 
#define BM_SSP_CTRL1_SSP_MODE   0xf
 
#define BF_SSP_CTRL1_SSP_MODE(v)   (((v) << 0) & BM_SSP_CTRL1_SSP_MODE)
 
#define BV_SSP_CTRL1_SSP_MODE__SPI   0x0
 
#define BV_SSP_CTRL1_SSP_MODE__SSI   0x1
 
#define BV_SSP_CTRL1_SSP_MODE__SD_MMC   0x3
 
#define BV_SSP_CTRL1_SSP_MODE__MS   0x4
 
#define HW_SSP_DATA(h)   (ssp_is_old(h) ? 0x070 : 0x090)
 
#define HW_SSP_SDRESP0(h)   (ssp_is_old(h) ? 0x080 : 0x0a0)
 
#define HW_SSP_SDRESP1(h)   (ssp_is_old(h) ? 0x090 : 0x0b0)
 
#define HW_SSP_SDRESP2(h)   (ssp_is_old(h) ? 0x0a0 : 0x0c0)
 
#define HW_SSP_SDRESP3(h)   (ssp_is_old(h) ? 0x0b0 : 0x0d0)
 
#define HW_SSP_STATUS(h)   (ssp_is_old(h) ? 0x0c0 : 0x100)
 
#define BM_SSP_STATUS_CARD_DETECT   (1 << 28)
 
#define BM_SSP_STATUS_SDIO_IRQ   (1 << 17)
 
#define BM_SSP_STATUS_FIFO_EMPTY   (1 << 5)
 
#define BF_SSP(value, field)   (((value) << BP_SSP_##field) & BM_SSP_##field)
 
#define SSP_PIO_NUM   3
 

Enumerations

enum  mxs_ssp_id { IMX23_SSP, IMX28_SSP }
 

Functions

void mxs_ssp_set_clk_rate (struct mxs_ssp *ssp, unsigned int rate)
 

Macro Definition Documentation

#define BF_SSP (   value,
  field 
)    (((value) << BP_SSP_##field) & BM_SSP_##field)

Definition at line 124 of file mxs-spi.h.

#define BF_SSP_CTRL1_SSP_MODE (   v)    (((v) << 0) & BM_SSP_CTRL1_SSP_MODE)

Definition at line 106 of file mxs-spi.h.

#define BF_SSP_CTRL1_WORD_LENGTH (   v)    (((v) << 4) & BM_SSP_CTRL1_WORD_LENGTH)

Definition at line 99 of file mxs-spi.h.

#define BF_SSP_TIMING_CLOCK_DIVIDE (   v)    (((v) << 8) & BM_SSP_TIMING_CLOCK_DIVIDE)

Definition at line 71 of file mxs-spi.h.

#define BF_SSP_TIMING_CLOCK_RATE (   v)    (((v) << 0) & BM_SSP_TIMING_CLOCK_RATE)

Definition at line 75 of file mxs-spi.h.

#define BM_SSP_BLOCK_SIZE_BLOCK_COUNT   (0xffffff << 4)

Definition at line 63 of file mxs-spi.h.

#define BM_SSP_BLOCK_SIZE_BLOCK_SIZE   0xf

Definition at line 65 of file mxs-spi.h.

#define BM_SSP_CMD0_APPEND_8CYC   (1 << 20)

Definition at line 52 of file mxs-spi.h.

#define BM_SSP_CMD0_BLOCK_COUNT   (0xff << 8)

Definition at line 56 of file mxs-spi.h.

#define BM_SSP_CMD0_BLOCK_SIZE   (0xf << 16)

Definition at line 54 of file mxs-spi.h.

#define BM_SSP_CMD0_CMD   0xff

Definition at line 58 of file mxs-spi.h.

#define BM_SSP_CMD0_CONT_CLKING_EN   (1 << 21)

Definition at line 51 of file mxs-spi.h.

#define BM_SSP_CMD0_DBL_DATA_RATE_EN   (1 << 25)

Definition at line 49 of file mxs-spi.h.

#define BM_SSP_CMD0_SLOW_CLKING_EN   (1 << 22)

Definition at line 50 of file mxs-spi.h.

#define BM_SSP_CTRL0_BUS_WIDTH   (0x3 << 22)

Definition at line 40 of file mxs-spi.h.

#define BM_SSP_CTRL0_DATA_XFER   (1 << 24)

Definition at line 38 of file mxs-spi.h.

#define BM_SSP_CTRL0_ENABLE   (1 << 16)

Definition at line 45 of file mxs-spi.h.

#define BM_SSP_CTRL0_GET_RESP   (1 << 17)

Definition at line 44 of file mxs-spi.h.

#define BM_SSP_CTRL0_IGNORE_CRC   (1 << 26)

Definition at line 36 of file mxs-spi.h.

#define BM_SSP_CTRL0_LOCK_CS   (1 << 27)

Definition at line 35 of file mxs-spi.h.

#define BM_SSP_CTRL0_LONG_RESP   (1 << 19)

Definition at line 43 of file mxs-spi.h.

#define BM_SSP_CTRL0_READ   (1 << 25)

Definition at line 37 of file mxs-spi.h.

#define BM_SSP_CTRL0_RUN   (1 << 29)

Definition at line 33 of file mxs-spi.h.

#define BM_SSP_CTRL0_SDIO_IRQ_CHECK   (1 << 28)

Definition at line 34 of file mxs-spi.h.

#define BM_SSP_CTRL0_WAIT_FOR_CMD   (1 << 20)

Definition at line 42 of file mxs-spi.h.

#define BM_SSP_CTRL0_WAIT_FOR_IRQ   (1 << 21)

Definition at line 41 of file mxs-spi.h.

#define BM_SSP_CTRL0_XFER_COUNT   0xffff

Definition at line 47 of file mxs-spi.h.

#define BM_SSP_CTRL1_DATA_CRC_IRQ   (1 << 23)

Definition at line 86 of file mxs-spi.h.

#define BM_SSP_CTRL1_DATA_CRC_IRQ_EN   (1 << 22)

Definition at line 87 of file mxs-spi.h.

#define BM_SSP_CTRL1_DATA_TIMEOUT_IRQ   (1 << 25)

Definition at line 84 of file mxs-spi.h.

#define BM_SSP_CTRL1_DATA_TIMEOUT_IRQ_EN   (1 << 24)

Definition at line 85 of file mxs-spi.h.

#define BM_SSP_CTRL1_DMA_ENABLE   (1 << 13)

Definition at line 94 of file mxs-spi.h.

#define BM_SSP_CTRL1_FIFO_OVERRUN_IRQ   (1 << 15)

Definition at line 92 of file mxs-spi.h.

#define BM_SSP_CTRL1_FIFO_OVERRUN_IRQ_EN   (1 << 14)

Definition at line 93 of file mxs-spi.h.

#define BM_SSP_CTRL1_FIFO_UNDERRUN_IRQ   (1 << 21)

Definition at line 88 of file mxs-spi.h.

#define BM_SSP_CTRL1_FIFO_UNDERRUN_IRQ_EN   (1 << 20)

Definition at line 89 of file mxs-spi.h.

#define BM_SSP_CTRL1_PHASE   (1 << 10)

Definition at line 95 of file mxs-spi.h.

#define BM_SSP_CTRL1_POLARITY   (1 << 9)

Definition at line 96 of file mxs-spi.h.

#define BM_SSP_CTRL1_RECV_TIMEOUT_IRQ   (1 << 17)

Definition at line 90 of file mxs-spi.h.

#define BM_SSP_CTRL1_RECV_TIMEOUT_IRQ_EN   (1 << 16)

Definition at line 91 of file mxs-spi.h.

#define BM_SSP_CTRL1_RESP_ERR_IRQ   (1 << 29)

Definition at line 80 of file mxs-spi.h.

#define BM_SSP_CTRL1_RESP_ERR_IRQ_EN   (1 << 28)

Definition at line 81 of file mxs-spi.h.

#define BM_SSP_CTRL1_RESP_TIMEOUT_IRQ   (1 << 27)

Definition at line 82 of file mxs-spi.h.

#define BM_SSP_CTRL1_RESP_TIMEOUT_IRQ_EN   (1 << 26)

Definition at line 83 of file mxs-spi.h.

#define BM_SSP_CTRL1_SDIO_IRQ   (1 << 31)

Definition at line 78 of file mxs-spi.h.

#define BM_SSP_CTRL1_SDIO_IRQ_EN   (1 << 30)

Definition at line 79 of file mxs-spi.h.

#define BM_SSP_CTRL1_SSP_MODE   0xf

Definition at line 105 of file mxs-spi.h.

#define BM_SSP_CTRL1_WORD_LENGTH   (0xf << 4)

Definition at line 98 of file mxs-spi.h.

#define BM_SSP_STATUS_CARD_DETECT   (1 << 28)

Definition at line 120 of file mxs-spi.h.

#define BM_SSP_STATUS_FIFO_EMPTY   (1 << 5)

Definition at line 122 of file mxs-spi.h.

#define BM_SSP_STATUS_SDIO_IRQ   (1 << 17)

Definition at line 121 of file mxs-spi.h.

#define BM_SSP_TIMING_CLOCK_DIVIDE   (0xff << 8)

Definition at line 70 of file mxs-spi.h.

#define BM_SSP_TIMING_CLOCK_RATE   0xff

Definition at line 74 of file mxs-spi.h.

#define BM_SSP_TIMING_TIMEOUT   (0xffff << 16)

Definition at line 68 of file mxs-spi.h.

#define BP_SSP_BLOCK_SIZE_BLOCK_COUNT   4

Definition at line 62 of file mxs-spi.h.

#define BP_SSP_BLOCK_SIZE_BLOCK_SIZE   0

Definition at line 64 of file mxs-spi.h.

#define BP_SSP_CMD0_BLOCK_COUNT   8

Definition at line 55 of file mxs-spi.h.

#define BP_SSP_CMD0_BLOCK_SIZE   16

Definition at line 53 of file mxs-spi.h.

#define BP_SSP_CMD0_CMD   0

Definition at line 57 of file mxs-spi.h.

#define BP_SSP_CTRL0_BUS_WIDTH   22

Definition at line 39 of file mxs-spi.h.

#define BP_SSP_CTRL0_XFER_COUNT   0

Definition at line 46 of file mxs-spi.h.

#define BP_SSP_CTRL1_SSP_MODE   0

Definition at line 104 of file mxs-spi.h.

#define BP_SSP_CTRL1_WORD_LENGTH   4

Definition at line 97 of file mxs-spi.h.

#define BP_SSP_TIMING_CLOCK_DIVIDE   8

Definition at line 69 of file mxs-spi.h.

#define BP_SSP_TIMING_CLOCK_RATE   0

Definition at line 73 of file mxs-spi.h.

#define BP_SSP_TIMING_TIMEOUT   16

Definition at line 67 of file mxs-spi.h.

#define BV_SSP_CTRL1_SSP_MODE__MS   0x4

Definition at line 111 of file mxs-spi.h.

#define BV_SSP_CTRL1_SSP_MODE__SD_MMC   0x3

Definition at line 110 of file mxs-spi.h.

#define BV_SSP_CTRL1_SSP_MODE__SPI   0x0

Definition at line 108 of file mxs-spi.h.

#define BV_SSP_CTRL1_SSP_MODE__SSI   0x1

Definition at line 109 of file mxs-spi.h.

#define BV_SSP_CTRL1_WORD_LENGTH__EIGHT_BITS   0x7

Definition at line 102 of file mxs-spi.h.

#define BV_SSP_CTRL1_WORD_LENGTH__FOUR_BITS   0x3

Definition at line 101 of file mxs-spi.h.

#define BV_SSP_CTRL1_WORD_LENGTH__SIXTEEN_BITS   0xF

Definition at line 103 of file mxs-spi.h.

#define HW_SSP_BLOCK_SIZE   0x040

Definition at line 61 of file mxs-spi.h.

#define HW_SSP_CMD0   0x010

Definition at line 48 of file mxs-spi.h.

#define HW_SSP_CMD1   0x020

Definition at line 59 of file mxs-spi.h.

#define HW_SSP_CTRL0   0x000

Definition at line 32 of file mxs-spi.h.

#define HW_SSP_CTRL1 (   h)    (ssp_is_old(h) ? 0x060 : 0x080)

Definition at line 77 of file mxs-spi.h.

#define HW_SSP_DATA (   h)    (ssp_is_old(h) ? 0x070 : 0x090)

Definition at line 113 of file mxs-spi.h.

#define HW_SSP_SDRESP0 (   h)    (ssp_is_old(h) ? 0x080 : 0x0a0)

Definition at line 115 of file mxs-spi.h.

#define HW_SSP_SDRESP1 (   h)    (ssp_is_old(h) ? 0x090 : 0x0b0)

Definition at line 116 of file mxs-spi.h.

#define HW_SSP_SDRESP2 (   h)    (ssp_is_old(h) ? 0x0a0 : 0x0c0)

Definition at line 117 of file mxs-spi.h.

#define HW_SSP_SDRESP3 (   h)    (ssp_is_old(h) ? 0x0b0 : 0x0d0)

Definition at line 118 of file mxs-spi.h.

#define HW_SSP_STATUS (   h)    (ssp_is_old(h) ? 0x0c0 : 0x100)

Definition at line 119 of file mxs-spi.h.

#define HW_SSP_TIMING (   h)    (ssp_is_old(h) ? 0x050 : 0x070)

Definition at line 66 of file mxs-spi.h.

#define HW_SSP_XFER_SIZE   0x030

Definition at line 60 of file mxs-spi.h.

#define ssp_is_old (   host)    ((host)->devid == IMX23_SSP)

Definition at line 29 of file mxs-spi.h.

#define SSP_PIO_NUM   3

Definition at line 126 of file mxs-spi.h.

Enumeration Type Documentation

enum mxs_ssp_id
Enumerator:
IMX23_SSP 
IMX28_SSP 

Definition at line 128 of file mxs-spi.h.

Function Documentation

void mxs_ssp_set_clk_rate ( struct mxs_ssp ssp,
unsigned int  rate 
)

Definition at line 27 of file clk-ssp.c.