Commit 4ebf2d00 authored by Pavel Machek's avatar Pavel Machek Committed by Russell King
Browse files

[ARM] 3357/1: enable frontlight on collie



Patch from Pavel Machek

Enable frontlight during collie bootup, so that display is actually
readable in anything other than bright sunlight.

Signed-off-by: default avatarPavel Machek <pavel@suse.cz>
Signed-off-by: default avatarRichard Purdie <rpurdie@rpsys.net>
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent 17320a96
Loading
Loading
Loading
Loading
+21 −0
Original line number Diff line number Diff line
@@ -629,6 +629,22 @@ static int locomo_resume(struct platform_device *dev)
}
#endif


#define LCM_ALC_EN	0x8000

void frontlight_set(struct locomo *lchip, int duty, int vr, int bpwf)
{
	unsigned long flags;

	spin_lock_irqsave(&lchip->lock, flags);
	locomo_writel(bpwf, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS);
	udelay(100);
	locomo_writel(duty, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALD);
	locomo_writel(bpwf | LCM_ALC_EN, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS);
	spin_unlock_irqrestore(&lchip->lock, flags);
}


/**
 *	locomo_probe - probe for a single LoCoMo chip.
 *	@phys_addr: physical address of device.
@@ -688,6 +704,11 @@ __locomo_probe(struct device *me, struct resource *mem, int irq)
	/* FrontLight */
	locomo_writel(0, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALS);
	locomo_writel(0, lchip->base + LOCOMO_FRONTLIGHT + LOCOMO_ALD);

	/* Same constants can be used for collie and poodle
	   (depending on CONFIG options in original sharp code)? */
	frontlight_set(lchip, 163, 0, 148);

	/* Longtime timer */
	locomo_writel(0, lchip->base + LOCOMO_LTINT);
	/* SPI */