Re: Hook collie frontlight into sysfs

From: Pavel Machek
Date: Fri Mar 31 2006 - 03:21:05 EST


Hi!

> During our test with Richard, we've been thinking can you implement the
> full range of brightness intensity values? For example for the others
> Zaurus, I think the range is between 0 and 63. So the userspace can

Well, I'm not sure if other values are "legal". They could damage
frontlight long-term or just eat too much power...

> adjust a wider range of levels for the backlight. Another thing, I
> didn't see anything different visually between the value 3 and 4.

You are right, the code to go brightness 4 is attached. It probably
needs to be converted to writel/readl...

diff --git a/arch/arm/common/locomo.c b/arch/arm/common/locomo.c
index 8c53ebc..bcce028 100644
--- a/arch/arm/common/locomo.c
+++ b/arch/arm/common/locomo.c
@@ -1046,13 +1046,46 @@ void locomo_m62332_senddata(struct locom
* Frontlight control
*/

+#define LOCOMO_GPIO9 (1<<9)
+
+#ifdef DONE
+/* Should be same for collie and poodle */
+static int poodlefl_enable_accel(void)
+{
+ if (!(LOCOMO_GPO & LOCOMO_GPIO9)) {
+ LOCOMO_GPD &= ~LOCOMO_GPIO9;
+ LOCOMO_GPE &= ~LOCOMO_GPIO9;
+ LOCOMO_GPO |= LOCOMO_GPIO9;
+ }
+ return 0;
+}
+
+/* Should be same for collie and poodle */
+static int poodlefl_disable_accel(void)
+{
+ if (LOCOMO_GPO & LOCOMO_GPIO9) {
+ LOCOMO_GPD &= ~LOCOMO_GPIO9;
+ LOCOMO_GPE &= ~LOCOMO_GPIO9;
+ LOCOMO_GPO &= ~LOCOMO_GPIO9;
+ }
+ return 0;
+}
+#endif
+
static struct locomo *locomo_chip_driver(struct locomo_dev *ldev);

+#define LOCOMO_ALC_EN 0x8000
+
void locomo_frontlight_set(struct locomo_dev *dev, int duty, int vr, int bpwf)
{
unsigned long flags;
struct locomo *lchip = locomo_chip_driver(dev);

+#ifdef DONE
+ if (vr) poodlefl_enable_accel();
+ else poodlefl_disable_accel();
+#endif
+
spin_lock_irqsave(&lchip->lock, flags);
locomo_writel(bpwf, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS);
udelay(100);

Pavel
--
Picture of sleeping (Linux) penguin wanted...
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/