aboutsummaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorSean McNeil <sean@mcneil.com>2008-11-19 17:11:00 +0000
committerAndy Green <agreen@pads.home.warmcat.com>2008-11-19 17:11:00 +0000
commitdd819f74c1d26b270b38b8757c1d8ea3c61792dc (patch)
treef84cc920bcf7e64dcde7e03eb052ec03150abec7 /arch
parent6ace15281cc7c8ab74d34ec392d02ed413685c47 (diff)
fix-lis302dl-issues.patch
Move to level from edge, fix local_save... to local_irq... simplify bitbang sequence Signed-off-by: Sean McNeil <sean@mcneil.com>
Diffstat (limited to 'arch')
-rw-r--r--arch/arm/mach-s3c2440/mach-gta02.c16
1 files changed, 1 insertions, 15 deletions
diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c
index 87acd6c3cf2..47d863bc7eb 100644
--- a/arch/arm/mach-s3c2440/mach-gta02.c
+++ b/arch/arm/mach-s3c2440/mach-gta02.c
@@ -1067,7 +1067,6 @@ void gta02_lis302dl_bitbang_read(struct lis302dl_info *lis)
struct lis302dl_platform_data *pdata = lis->pdata;
u8 shifter = 0xc0 | LIS302DL_REG_OUT_X; /* read, autoincrement */
int n, n1;
- unsigned long other_cs;
unsigned long flags;
#ifdef DEBUG_SPEW_MS
s8 x, y, z;
@@ -1085,33 +1084,21 @@ void gta02_lis302dl_bitbang_read(struct lis302dl_info *lis)
* ensure this is never issued.
*/
- if (&lis302_pdata[0] == pdata)
- other_cs = lis302_pdata[1].pin_chip_select;
- else
- other_cs = lis302_pdata[0].pin_chip_select;
-
- s3c2410_gpio_setpin(other_cs, 1);
- s3c2410_gpio_setpin(pdata->pin_chip_select, 1);
s3c2410_gpio_setpin(pdata->pin_clk, 1);
s3c2410_gpio_setpin(pdata->pin_chip_select, 0);
for (n = 0; n < 8; n++) { /* write the r/w, inc and address */
s3c2410_gpio_setpin(pdata->pin_clk, 0);
- s3c2410_gpio_setpin(pdata->pin_mosi, (shifter >> 7) & 1);
- s3c2410_gpio_setpin(pdata->pin_clk, 0);
+ s3c2410_gpio_setpin(pdata->pin_mosi, (shifter >> (7 - n)) & 1);
s3c2410_gpio_setpin(pdata->pin_clk, 1);
- s3c2410_gpio_setpin(pdata->pin_clk, 1);
- shifter <<= 1;
}
for (n = 0; n < 5; n++) { /* 5 consequetive registers */
for (n1 = 0; n1 < 8; n1++) { /* 8 bits each */
s3c2410_gpio_setpin(pdata->pin_clk, 0);
- s3c2410_gpio_setpin(pdata->pin_clk, 0);
shifter <<= 1;
if (s3c2410_gpio_getpin(pdata->pin_miso))
shifter |= 1;
s3c2410_gpio_setpin(pdata->pin_clk, 1);
- s3c2410_gpio_setpin(pdata->pin_clk, 1);
}
switch (n) {
case 0:
@@ -1135,7 +1122,6 @@ void gta02_lis302dl_bitbang_read(struct lis302dl_info *lis)
}
}
s3c2410_gpio_setpin(pdata->pin_chip_select, 1);
- s3c2410_gpio_setpin(other_cs, 1);
local_irq_restore(flags);
input_sync(lis->input_dev);