From 7d403f2e1cfbec712b832e8f6e285a3ccf613c26 Mon Sep 17 00:00:00 2001 From: Samu Onkalo Date: Mon, 24 May 2010 14:33:35 -0700 Subject: [PATCH] --- yaml --- r: 198319 b: refs/heads/master c: 342c5f128140d54961c435d1702eadcaba97a37a h: refs/heads/master i: 198317: 7eec12866b6f61c2d212d2562f07493de737e32f 198315: 7763748c46f288f50ba4166aed2928e5a78f2829 198311: 5a50895028243b6eb4edcd18ce3dd4ce378e2736 198303: 72850b246c64df3552729f264330dd47382fea12 v: v3 --- [refs] | 2 +- trunk/drivers/hwmon/lis3lv02d.c | 15 +++++++++++++-- trunk/include/linux/lis3lv02d.h | 9 +++++++++ 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 3515c852106f..04a91379412a 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ecc437aeee65afeea2e1bed963ccf6c384c555ea +refs/heads/master: 342c5f128140d54961c435d1702eadcaba97a37a diff --git a/trunk/drivers/hwmon/lis3lv02d.c b/trunk/drivers/hwmon/lis3lv02d.c index 99fd45deda41..50f312339608 100644 --- a/trunk/drivers/hwmon/lis3lv02d.c +++ b/trunk/drivers/hwmon/lis3lv02d.c @@ -524,6 +524,8 @@ EXPORT_SYMBOL_GPL(lis3lv02d_remove_fs); static void lis3lv02d_8b_configure(struct lis3lv02d *dev, struct lis3lv02d_platform_data *p) { + int ctrl2 = p->hipass_ctrl; + if (p->click_flags) { dev->write(dev, CLICK_CFG, p->click_flags); dev->write(dev, CLICK_TIMELIMIT, p->click_time_limit); @@ -540,9 +542,18 @@ static void lis3lv02d_8b_configure(struct lis3lv02d *dev, dev->write(dev, FF_WU_THS_1, p->wakeup_thresh & 0x7f); /* default to 2.5ms for now */ dev->write(dev, FF_WU_DURATION_1, 1); - /* enable high pass filter for both free-fall units */ - dev->write(dev, CTRL_REG2, HP_FF_WU1 | HP_FF_WU2); + ctrl2 ^= HP_FF_WU1; /* Xor to keep compatible with old pdata*/ + } + + if (p->wakeup_flags2) { + dev->write(dev, FF_WU_CFG_2, p->wakeup_flags2); + dev->write(dev, FF_WU_THS_2, p->wakeup_thresh2 & 0x7f); + /* default to 2.5ms for now */ + dev->write(dev, FF_WU_DURATION_2, 1); + ctrl2 ^= HP_FF_WU2; /* Xor to keep compatible with old pdata*/ } + /* Configure hipass filters */ + dev->write(dev, CTRL_REG2, ctrl2); } /* diff --git a/trunk/include/linux/lis3lv02d.h b/trunk/include/linux/lis3lv02d.h index f1ca0dcc1628..d6251995c042 100644 --- a/trunk/include/linux/lis3lv02d.h +++ b/trunk/include/linux/lis3lv02d.h @@ -43,6 +43,15 @@ struct lis3lv02d_platform_data { #define LIS3_WAKEUP_Z_HI (1 << 5) unsigned char wakeup_flags; unsigned char wakeup_thresh; + unsigned char wakeup_flags2; + unsigned char wakeup_thresh2; +#define LIS3_HIPASS_CUTFF_8HZ 0 +#define LIS3_HIPASS_CUTFF_4HZ 1 +#define LIS3_HIPASS_CUTFF_2HZ 2 +#define LIS3_HIPASS_CUTFF_1HZ 3 +#define LIS3_HIPASS1_DISABLE (1 << 2) +#define LIS3_HIPASS2_DISABLE (1 << 3) + unsigned char hipass_ctrl; #define LIS3_NO_MAP 0 #define LIS3_DEV_X 1 #define LIS3_DEV_Y 2