Re: [-mm patch 4/5] SharpSL: Abstract model specifics from Corgi Backlight driver

From: Russell King
Date: Thu Sep 08 2005 - 07:31:19 EST


On Tue, Sep 06, 2005 at 12:53:51PM +0100, Richard Purdie wrote:
> +/*
> + * Corgi/Spitz Backlight Power
> + */
> +int corgi_bl_max(void)
> +{
> + if (machine_is_corgi() || machine_is_shepherd() || machine_is_husky())
> + return 0x2e;
> + return 0x3e;

Couldn't this be passed in cleanly via the device's platform data?

> +}
> +
> +void corgi_bl_set(int intensity)
> +{

Along with a function pointer for whatever's needed here for each
machine?

> + if ((machine_is_corgi() || machine_is_shepherd() || machine_is_husky())
> + && (intensity > 0x10))
> + intensity+=0x10;
> +
> + /* Skip 0x20 as it will blank the display */
> + if (intensity >= 0x20)
> + intensity++;
> +
> + /* Bits 0-4 are accessed via the SSP interface */
> + corgi_ssp_blduty_set(intensity & 0x1f);
> +
> + if (machine_is_corgi() || machine_is_shepherd() || machine_is_husky()) {
> +#ifdef CONFIG_PXA_SHARP_C7xx
> + /* Bit 5 is via SCOOP */
> + if (intensity & 0x0020)
> + set_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_BACKLIGHT_CONT);
> + else
> + reset_scoop_gpio(&corgiscoop_device.dev, CORGI_SCP_BACKLIGHT_CONT);
> +#endif
> + } else if (machine_is_spitz() || machine_is_borzoi()) {
> +#if defined(CONFIG_MACH_SPITZ) || defined(CONFIG_MACH_BORZOI)
> + /* Bit 5 is via SCOOP */
> + if (intensity & 0x0020)
> + reset_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_BACKLIGHT_CONT);
> + else
> + set_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_BACKLIGHT_CONT);
> +
> + if (intensity)
> + set_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_BACKLIGHT_ON);
> + else
> + reset_scoop_gpio(&spitzscoop2_device.dev, SPITZ_SCP2_BACKLIGHT_ON);
> +#endif
> + } else if (machine_is_akita()) {
> +#ifdef CONFIG_MACH_AKITA
> + /* Bit 5 is via IO-Expander */
> + if (intensity & 0x0020)
> + akita_reset_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_BACKLIGHT_CONT);
> + else
> + akita_set_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_BACKLIGHT_CONT);
> +
> + if (intensity)
> + akita_set_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_BACKLIGHT_ON);
> + else
> + akita_reset_ioexp(&akitaioexp_device.dev, AKITA_IOEXP_BACKLIGHT_ON);
> +#endif
> + }
> +}

--
Russell King
Linux kernel 2.6 ARM Linux - http://www.arm.linux.org.uk/
maintainer of: 2.6 Serial core
-
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/