~ubuntu-branches/debian/wheezy/linux-2.6/wheezy

« back to all changes in this revision

Viewing changes to arch/blackfin/include/asm/bfin5xx_spi.h

  • Committer: Bazaar Package Importer
  • Author(s): Ben Hutchings, Ben Hutchings, Aurelien Jarno, Martin Michlmayr
  • Date: 2011-04-06 13:53:30 UTC
  • mfrom: (43.1.5 sid)
  • Revision ID: james.westby@ubuntu.com-20110406135330-wjufxhd0tvn3zx4z
Tags: 2.6.38-3
[ Ben Hutchings ]
* [ppc64] Add to linux-tools package architectures (Closes: #620124)
* [amd64] Save cr4 to mmu_cr4_features at boot time (Closes: #620284)
* appletalk: Fix bugs introduced when removing use of BKL
* ALSA: Fix yet another race in disconnection
* cciss: Fix lost command issue
* ath9k: Fix kernel panic in AR2427
* ses: Avoid kernel panic when lun 0 is not mapped
* PCI/ACPI: Report ASPM support to BIOS if not disabled from command line

[ Aurelien Jarno ]
* rtlwifi: fix build when PCI is not enabled.

[ Martin Michlmayr ]
* rtlwifi: Eliminate udelay calls with too large values (Closes: #620204)

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
 
12
12
#define MIN_SPI_BAUD_VAL        2
13
13
 
14
 
#define SPI_READ              0
15
 
#define SPI_WRITE             1
16
 
 
17
 
#define SPI_CTRL_OFF            0x0
18
 
#define SPI_FLAG_OFF            0x4
19
 
#define SPI_STAT_OFF            0x8
20
 
#define SPI_TXBUFF_OFF          0xc
21
 
#define SPI_RXBUFF_OFF          0x10
22
 
#define SPI_BAUD_OFF            0x14
23
 
#define SPI_SHAW_OFF            0x18
24
 
 
25
 
 
26
14
#define BIT_CTL_ENABLE      0x4000
27
15
#define BIT_CTL_OPENDRAIN   0x2000
28
16
#define BIT_CTL_MASTER      0x1000
29
 
#define BIT_CTL_POLAR       0x0800
30
 
#define BIT_CTL_PHASE       0x0400
31
 
#define BIT_CTL_BITORDER    0x0200
 
17
#define BIT_CTL_CPOL        0x0800
 
18
#define BIT_CTL_CPHA        0x0400
 
19
#define BIT_CTL_LSBF        0x0200
32
20
#define BIT_CTL_WORDSIZE    0x0100
33
 
#define BIT_CTL_MISOENABLE  0x0020
 
21
#define BIT_CTL_EMISO       0x0020
 
22
#define BIT_CTL_PSSE        0x0010
 
23
#define BIT_CTL_GM          0x0008
 
24
#define BIT_CTL_SZ          0x0004
34
25
#define BIT_CTL_RXMOD       0x0000
35
26
#define BIT_CTL_TXMOD       0x0001
36
27
#define BIT_CTL_TIMOD_DMA_TX 0x0003
50
41
#define BIT_STU_SENDOVER    0x0001
51
42
#define BIT_STU_RECVFULL    0x0020
52
43
 
53
 
#define CFG_SPI_ENABLE      1
54
 
#define CFG_SPI_DISABLE     0
55
 
 
56
 
#define CFG_SPI_OUTENABLE   1
57
 
#define CFG_SPI_OUTDISABLE  0
58
 
 
59
 
#define CFG_SPI_ACTLOW      1
60
 
#define CFG_SPI_ACTHIGH     0
61
 
 
62
 
#define CFG_SPI_PHASESTART  1
63
 
#define CFG_SPI_PHASEMID    0
64
 
 
65
 
#define CFG_SPI_MASTER      1
66
 
#define CFG_SPI_SLAVE       0
67
 
 
68
 
#define CFG_SPI_SENELAST    0
69
 
#define CFG_SPI_SENDZERO    1
70
 
 
71
 
#define CFG_SPI_RCVFLUSH    1
72
 
#define CFG_SPI_RCVDISCARD  0
73
 
 
74
 
#define CFG_SPI_LSBFIRST    1
75
 
#define CFG_SPI_MSBFIRST    0
76
 
 
77
 
#define CFG_SPI_WORDSIZE16  1
78
 
#define CFG_SPI_WORDSIZE8   0
79
 
 
80
 
#define CFG_SPI_MISOENABLE   1
81
 
#define CFG_SPI_MISODISABLE  0
82
 
 
83
 
#define CFG_SPI_READ      0x00
84
 
#define CFG_SPI_WRITE     0x01
85
 
#define CFG_SPI_DMAREAD   0x02
86
 
#define CFG_SPI_DMAWRITE  0x03
87
 
 
88
 
#define CFG_SPI_CSCLEARALL  0
89
 
#define CFG_SPI_CHIPSEL1    1
90
 
#define CFG_SPI_CHIPSEL2    2
91
 
#define CFG_SPI_CHIPSEL3    3
92
 
#define CFG_SPI_CHIPSEL4    4
93
 
#define CFG_SPI_CHIPSEL5    5
94
 
#define CFG_SPI_CHIPSEL6    6
95
 
#define CFG_SPI_CHIPSEL7    7
96
 
 
97
 
#define CFG_SPI_CS1VALUE    1
98
 
#define CFG_SPI_CS2VALUE    2
99
 
#define CFG_SPI_CS3VALUE    3
100
 
#define CFG_SPI_CS4VALUE    4
101
 
#define CFG_SPI_CS5VALUE    5
102
 
#define CFG_SPI_CS6VALUE    6
103
 
#define CFG_SPI_CS7VALUE    7
104
 
 
105
 
#define CMD_SPI_SET_BAUDRATE  2
106
 
#define CMD_SPI_GET_SYSTEMCLOCK   25
107
 
#define CMD_SPI_SET_WRITECONTINUOUS     26
 
44
/*
 
45
 * All Blackfin system MMRs are padded to 32bits even if the register
 
46
 * itself is only 16bits.  So use a helper macro to streamline this.
 
47
 */
 
48
#define __BFP(m) u16 m; u16 __pad_##m
 
49
 
 
50
/*
 
51
 * bfin spi registers layout
 
52
 */
 
53
struct bfin_spi_regs {
 
54
        __BFP(ctl);
 
55
        __BFP(flg);
 
56
        __BFP(stat);
 
57
        __BFP(tdbr);
 
58
        __BFP(rdbr);
 
59
        __BFP(baud);
 
60
        __BFP(shadow);
 
61
};
 
62
 
 
63
#undef __BFP
 
64
 
 
65
#define MAX_CTRL_CS          8  /* cs in spi controller */
108
66
 
109
67
/* device.platform_data for SSP controller devices */
110
68
struct bfin5xx_spi_master {
120
78
        u16 ctl_reg;
121
79
        u8 enable_dma;
122
80
        u8 bits_per_word;
123
 
        u8 cs_change_per_word;
124
81
        u16 cs_chg_udelay; /* Some devices require 16-bit delays */
125
 
        u32 cs_gpio;
126
82
        /* Value to send if no TX value is supplied, usually 0x0 or 0xFFFF */
127
83
        u16 idle_tx_val;
128
84
        u8 pio_interrupt; /* Enable spi data irq */