Skip to content

Commit 021db8e

Browse files
committed
Merge branch 'next-spi' of git://git.secretlab.ca/git/linux-2.6
* 'next-spi' of git://git.secretlab.ca/git/linux-2.6: (77 commits) spi/omap: Fix DMA API usage in OMAP MCSPI driver spi/imx: correct the test on platform_get_irq() return value spi/topcliff: Typo fix threhold to threshold spi/dw_spi Typo change diable to disable. spi/fsl_espi: change the read behaviour of the SPIRF spi/mpc52xx-psc-spi: move probe/remove to proper sections spi/dw_spi: add DMA support spi/dw_spi: change to EXPORT_SYMBOL_GPL for exported APIs spi/dw_spi: Fix too short timeout in spi polling loop spi/pl022: convert running variable spi/pl022: convert busy flag to a bool spi/pl022: pass the returned sglen to the DMA engine spi/pl022: map the buffers on the DMA engine spi/topcliff_pch: Fix data transfer issue spi/imx: remove autodetection spi/pxa2xx: pass of_node to spi device and set a parent device spi/pxa2xx: Modify RX-Tresh instead of busy-loop for the remaining RX bytes. spi/pxa2xx: Add chipselect support for Sodaville spi/pxa2xx: Consider CE4100's FIFO depth spi/pxa2xx: Add CE4100 support ...
2 parents 72eb6a7 + 07fe035 commit 021db8e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

45 files changed

+1596
-1365
lines changed

Documentation/spi/pxa2xx

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Declaring PXA2xx Master Controllers
1919
-----------------------------------
2020
Typically a SPI master is defined in the arch/.../mach-*/board-*.c as a
2121
"platform device". The master configuration is passed to the driver via a table
22-
found in arch/arm/mach-pxa/include/mach/pxa2xx_spi.h:
22+
found in include/linux/spi/pxa2xx_spi.h:
2323

2424
struct pxa2xx_spi_master {
2525
enum pxa_ssp_type ssp_type;
@@ -94,7 +94,7 @@ using the "spi_board_info" structure found in "linux/spi/spi.h". See
9494

9595
Each slave device attached to the PXA must provide slave specific configuration
9696
information via the structure "pxa2xx_spi_chip" found in
97-
"arch/arm/mach-pxa/include/mach/pxa2xx_spi.h". The pxa2xx_spi master controller driver
97+
"include/linux/spi/pxa2xx_spi.h". The pxa2xx_spi master controller driver
9898
will uses the configuration whenever the driver communicates with the slave
9999
device. All fields are optional.
100100

arch/arm/mach-davinci/dm355.c

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -412,12 +412,7 @@ static struct resource dm355_spi0_resources[] = {
412412
static struct davinci_spi_platform_data dm355_spi0_pdata = {
413413
.version = SPI_VERSION_1,
414414
.num_chipselect = 2,
415-
.clk_internal = 1,
416-
.cs_hold = 1,
417-
.intr_level = 0,
418-
.poll_mode = 1, /* 0 -> interrupt mode 1-> polling mode */
419-
.c2tdelay = 0,
420-
.t2cdelay = 0,
415+
.cshold_bug = true,
421416
};
422417
static struct platform_device dm355_spi0_device = {
423418
.name = "spi_davinci",

arch/arm/mach-davinci/dm365.c

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -625,12 +625,6 @@ static u64 dm365_spi0_dma_mask = DMA_BIT_MASK(32);
625625
static struct davinci_spi_platform_data dm365_spi0_pdata = {
626626
.version = SPI_VERSION_1,
627627
.num_chipselect = 2,
628-
.clk_internal = 1,
629-
.cs_hold = 1,
630-
.intr_level = 0,
631-
.poll_mode = 1, /* 0 -> interrupt mode 1-> polling mode */
632-
.c2tdelay = 0,
633-
.t2cdelay = 0,
634628
};
635629

636630
static struct resource dm365_spi0_resources[] = {

arch/arm/mach-davinci/include/mach/spi.h

Lines changed: 46 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -19,26 +19,66 @@
1919
#ifndef __ARCH_ARM_DAVINCI_SPI_H
2020
#define __ARCH_ARM_DAVINCI_SPI_H
2121

22+
#define SPI_INTERN_CS 0xFF
23+
2224
enum {
2325
SPI_VERSION_1, /* For DM355/DM365/DM6467 */
2426
SPI_VERSION_2, /* For DA8xx */
2527
};
2628

29+
/**
30+
* davinci_spi_platform_data - Platform data for SPI master device on DaVinci
31+
*
32+
* @version: version of the SPI IP. Different DaVinci devices have slightly
33+
* varying versions of the same IP.
34+
* @num_chipselect: number of chipselects supported by this SPI master
35+
* @intr_line: interrupt line used to connect the SPI IP to the ARM interrupt
36+
* controller withn the SoC. Possible values are 0 and 1.
37+
* @chip_sel: list of GPIOs which can act as chip-selects for the SPI.
38+
* SPI_INTERN_CS denotes internal SPI chip-select. Not necessary
39+
* to populate if all chip-selects are internal.
40+
* @cshold_bug: set this to true if the SPI controller on your chip requires
41+
* a write to CSHOLD bit in between transfers (like in DM355).
42+
*/
2743
struct davinci_spi_platform_data {
2844
u8 version;
2945
u8 num_chipselect;
46+
u8 intr_line;
47+
u8 *chip_sel;
48+
bool cshold_bug;
49+
};
50+
51+
/**
52+
* davinci_spi_config - Per-chip-select configuration for SPI slave devices
53+
*
54+
* @wdelay: amount of delay between transmissions. Measured in number of
55+
* SPI module clocks.
56+
* @odd_parity: polarity of parity flag at the end of transmit data stream.
57+
* 0 - odd parity, 1 - even parity.
58+
* @parity_enable: enable transmission of parity at end of each transmit
59+
* data stream.
60+
* @io_type: type of IO transfer. Choose between polled, interrupt and DMA.
61+
* @timer_disable: disable chip-select timers (setup and hold)
62+
* @c2tdelay: chip-select setup time. Measured in number of SPI module clocks.
63+
* @t2cdelay: chip-select hold time. Measured in number of SPI module clocks.
64+
* @t2edelay: transmit data finished to SPI ENAn pin inactive time. Measured
65+
* in number of SPI clocks.
66+
* @c2edelay: chip-select active to SPI ENAn signal active time. Measured in
67+
* number of SPI clocks.
68+
*/
69+
struct davinci_spi_config {
3070
u8 wdelay;
3171
u8 odd_parity;
3272
u8 parity_enable;
33-
u8 wait_enable;
73+
#define SPI_IO_TYPE_INTR 0
74+
#define SPI_IO_TYPE_POLL 1
75+
#define SPI_IO_TYPE_DMA 2
76+
u8 io_type;
3477
u8 timer_disable;
35-
u8 clk_internal;
36-
u8 cs_hold;
37-
u8 intr_level;
38-
u8 poll_mode;
39-
u8 use_dma;
4078
u8 c2tdelay;
4179
u8 t2cdelay;
80+
u8 t2edelay;
81+
u8 c2edelay;
4282
};
4383

4484
#endif /* __ARCH_ARM_DAVINCI_SPI_H */

arch/arm/mach-pxa/cm-x255.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,13 +17,13 @@
1717
#include <linux/mtd/nand-gpio.h>
1818

1919
#include <linux/spi/spi.h>
20+
#include <linux/spi/pxa2xx_spi.h>
2021

2122
#include <asm/mach/arch.h>
2223
#include <asm/mach-types.h>
2324
#include <asm/mach/map.h>
2425

2526
#include <mach/pxa25x.h>
26-
#include <mach/pxa2xx_spi.h>
2727

2828
#include "generic.h"
2929

arch/arm/mach-pxa/cm-x270.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@
1919
#include <video/mbxfb.h>
2020

2121
#include <linux/spi/spi.h>
22+
#include <linux/spi/pxa2xx_spi.h>
2223
#include <linux/spi/libertas_spi.h>
2324

2425
#include <mach/pxa27x.h>
2526
#include <mach/ohci.h>
2627
#include <mach/mmc.h>
27-
#include <mach/pxa2xx_spi.h>
2828

2929
#include "generic.h"
3030

arch/arm/mach-pxa/corgi.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
#include <linux/spi/spi.h>
2929
#include <linux/spi/ads7846.h>
3030
#include <linux/spi/corgi_lcd.h>
31+
#include <linux/spi/pxa2xx_spi.h>
3132
#include <linux/mtd/sharpsl.h>
3233
#include <linux/input/matrix_keypad.h>
3334
#include <video/w100fb.h>
@@ -48,7 +49,6 @@
4849
#include <mach/irda.h>
4950
#include <mach/mmc.h>
5051
#include <mach/udc.h>
51-
#include <mach/pxa2xx_spi.h>
5252
#include <mach/corgi.h>
5353
#include <mach/sharpsl_pm.h>
5454

arch/arm/mach-pxa/devices.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
#include <linux/init.h>
44
#include <linux/platform_device.h>
55
#include <linux/dma-mapping.h>
6+
#include <linux/spi/pxa2xx_spi.h>
67

78
#include <asm/pmu.h>
89
#include <mach/udc.h>
@@ -12,7 +13,6 @@
1213
#include <mach/irda.h>
1314
#include <mach/ohci.h>
1415
#include <plat/pxa27x_keypad.h>
15-
#include <mach/pxa2xx_spi.h>
1616
#include <mach/camera.h>
1717
#include <mach/audio.h>
1818
#include <mach/hardware.h>

arch/arm/mach-pxa/em-x270.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
#include <linux/spi/spi.h>
2727
#include <linux/spi/tdo24m.h>
2828
#include <linux/spi/libertas_spi.h>
29+
#include <linux/spi/pxa2xx_spi.h>
2930
#include <linux/power_supply.h>
3031
#include <linux/apm-emulation.h>
3132
#include <linux/i2c.h>
@@ -46,7 +47,6 @@
4647
#include <plat/pxa27x_keypad.h>
4748
#include <plat/i2c.h>
4849
#include <mach/camera.h>
49-
#include <mach/pxa2xx_spi.h>
5050

5151
#include "generic.h"
5252
#include "devices.h"

arch/arm/mach-pxa/hx4700.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@
3333
#include <linux/regulator/max1586.h>
3434
#include <linux/spi/ads7846.h>
3535
#include <linux/spi/spi.h>
36+
#include <linux/spi/pxa2xx_spi.h>
3637
#include <linux/usb/gpio_vbus.h>
3738

3839
#include <mach/hardware.h>
@@ -43,7 +44,6 @@
4344
#include <mach/hx4700.h>
4445
#include <plat/i2c.h>
4546
#include <mach/irda.h>
46-
#include <mach/pxa2xx_spi.h>
4747

4848
#include <video/platform_lcd.h>
4949
#include <video/w100fb.h>

arch/arm/mach-pxa/icontrol.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
#include <mach/mxm8x10.h>
2525

2626
#include <linux/spi/spi.h>
27-
#include <mach/pxa2xx_spi.h>
27+
#include <linux/spi/pxa2xx_spi.h>
2828
#include <linux/can/platform/mcp251x.h>
2929

3030
#include "generic.h"

arch/arm/mach-pxa/include/mach/pxa2xx_spi.h

Lines changed: 0 additions & 47 deletions
This file was deleted.

arch/arm/mach-pxa/littleton.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
#include <linux/clk.h>
2323
#include <linux/gpio.h>
2424
#include <linux/spi/spi.h>
25+
#include <linux/spi/pxa2xx_spi.h>
2526
#include <linux/smc91x.h>
2627
#include <linux/i2c.h>
2728
#include <linux/leds.h>
@@ -42,7 +43,6 @@
4243
#include <mach/pxa300.h>
4344
#include <mach/pxafb.h>
4445
#include <mach/mmc.h>
45-
#include <mach/pxa2xx_spi.h>
4646
#include <plat/pxa27x_keypad.h>
4747
#include <mach/littleton.h>
4848
#include <plat/i2c.h>

arch/arm/mach-pxa/lubbock.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@
2525

2626
#include <linux/spi/spi.h>
2727
#include <linux/spi/ads7846.h>
28-
#include <mach/pxa2xx_spi.h>
28+
#include <linux/spi/pxa2xx_spi.h>
2929

3030
#include <asm/setup.h>
3131
#include <asm/memory.h>

arch/arm/mach-pxa/pcm027.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,12 @@
2525
#include <linux/mtd/physmap.h>
2626
#include <linux/spi/spi.h>
2727
#include <linux/spi/max7301.h>
28+
#include <linux/spi/pxa2xx_spi.h>
2829
#include <linux/leds.h>
2930

3031
#include <asm/mach-types.h>
3132
#include <asm/mach/arch.h>
3233
#include <mach/pxa27x.h>
33-
#include <mach/pxa2xx_spi.h>
3434
#include <mach/pcm027.h>
3535
#include "generic.h"
3636

arch/arm/mach-pxa/poodle.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,6 +25,7 @@
2525
#include <linux/i2c.h>
2626
#include <linux/spi/spi.h>
2727
#include <linux/spi/ads7846.h>
28+
#include <linux/spi/pxa2xx_spi.h>
2829
#include <linux/mtd/sharpsl.h>
2930

3031
#include <mach/hardware.h>
@@ -43,7 +44,6 @@
4344
#include <mach/irda.h>
4445
#include <mach/poodle.h>
4546
#include <mach/pxafb.h>
46-
#include <mach/pxa2xx_spi.h>
4747
#include <plat/i2c.h>
4848

4949
#include <asm/hardware/scoop.h>

arch/arm/mach-pxa/spitz.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
#include <linux/spi/spi.h>
2424
#include <linux/spi/ads7846.h>
2525
#include <linux/spi/corgi_lcd.h>
26-
#include <linux/mtd/physmap.h>
26+
#include <linux/spi/pxa2xx_spi.h>
2727
#include <linux/mtd/sharpsl.h>
2828
#include <linux/input/matrix_keypad.h>
2929
#include <linux/regulator/machine.h>
@@ -42,7 +42,6 @@
4242
#include <mach/mmc.h>
4343
#include <mach/ohci.h>
4444
#include <mach/pxafb.h>
45-
#include <mach/pxa2xx_spi.h>
4645
#include <mach/spitz.h>
4746
#include <mach/sharpsl_pm.h>
4847
#include <mach/smemc.h>

arch/arm/mach-pxa/stargate2.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,11 @@
4646
#include <plat/i2c.h>
4747
#include <mach/mmc.h>
4848
#include <mach/udc.h>
49-
#include <mach/pxa2xx_spi.h>
5049
#include <mach/pxa27x-udc.h>
5150
#include <mach/smemc.h>
5251

5352
#include <linux/spi/spi.h>
53+
#include <linux/spi/pxa2xx_spi.h>
5454
#include <linux/mfd/da903x.h>
5555
#include <linux/sht15.h>
5656

arch/arm/mach-pxa/tosa.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@
3232
#include <linux/gpio.h>
3333
#include <linux/pda_power.h>
3434
#include <linux/spi/spi.h>
35+
#include <linux/spi/pxa2xx_spi.h>
3536
#include <linux/input/matrix_keypad.h>
3637

3738
#include <asm/setup.h>
@@ -44,7 +45,6 @@
4445
#include <mach/mmc.h>
4546
#include <mach/udc.h>
4647
#include <mach/tosa_bt.h>
47-
#include <mach/pxa2xx_spi.h>
4848
#include <mach/audio.h>
4949
#include <mach/smemc.h>
5050

arch/arm/mach-pxa/trizeps4.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
#include <asm/mach/flash.h>
4141

4242
#include <mach/pxa27x.h>
43-
#include <mach/pxa2xx_spi.h>
4443
#include <mach/trizeps4.h>
4544
#include <mach/audio.h>
4645
#include <mach/pxafb.h>

arch/arm/mach-pxa/z2.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
#include <linux/z2_battery.h>
2121
#include <linux/dma-mapping.h>
2222
#include <linux/spi/spi.h>
23+
#include <linux/spi/pxa2xx_spi.h>
2324
#include <linux/spi/libertas_spi.h>
2425
#include <linux/spi/lms283gf05.h>
2526
#include <linux/power_supply.h>
@@ -38,7 +39,6 @@
3839
#include <mach/pxafb.h>
3940
#include <mach/mmc.h>
4041
#include <plat/pxa27x_keypad.h>
41-
#include <mach/pxa2xx_spi.h>
4242

4343
#include <plat/i2c.h>
4444

0 commit comments

Comments
 (0)