Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cad719d8 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight

* 'for-linus' of git://git.o-hand.com/linux-rpurdie-backlight:
  gta02: Use pcf50633 backlight driver instead of platform backlight driver.
  backlight: pcf50633: Register a pcf50633-backlight device in pcf50633 core driver.
  backlight: Add pcf50633 backlight driver
  backlight: 88pm860x_bl: fix error handling in pm860x_backlight_probe
  backlight: max8925_bl: Fix error handling path
  backlight: l4f00242t03: fix error handling in l4f00242t03_probe
  backlight: add S6E63M0 AMOLED LCD Panel driver
  backlight: adp8860: add support for ADP8861 & ADP8863
  backlight: mbp_nvidia_bl - Fix DMI_SYS_VENDOR for MacBook1,1
  backlight: Add Cirrus EP93xx backlight driver
  backlight: l4f00242t03: Fix regulators handling code in remove function
  backlight: fix adp8860_bl build errors
  backlight: new driver for the ADP8860 backlight parts
  backlight: 88pm860x_bl - potential memory leak
  backlight: mbp_nvidia_bl - add support for older MacBookPro and MacBook 6,1.
  backlight: Kconfig cleanup
  backlight: backlight_device_register() return ERR_PTR()
parents 3ddab478 67e67df8
Loading
Loading
Loading
Loading
+9 −67
Original line number Diff line number Diff line
@@ -49,7 +49,6 @@
#include <linux/io.h>

#include <linux/i2c.h>
#include <linux/backlight.h>
#include <linux/regulator/machine.h>

#include <linux/mfd/pcf50633/core.h>
@@ -57,6 +56,7 @@
#include <linux/mfd/pcf50633/adc.h>
#include <linux/mfd/pcf50633/gpio.h>
#include <linux/mfd/pcf50633/pmic.h>
#include <linux/mfd/pcf50633/backlight.h>

#include <asm/mach/arch.h>
#include <asm/mach/map.h>
@@ -254,6 +254,12 @@ static char *gta02_batteries[] = {
	"battery",
};

static struct pcf50633_bl_platform_data gta02_backlight_data = {
	.default_brightness = 0x3f,
	.default_brightness_limit = 0,
	.ramp_time = 5,
};

struct pcf50633_platform_data gta02_pcf_pdata = {
	.resumers = {
		[0] =	PCF50633_INT1_USBINS |
@@ -271,6 +277,8 @@ struct pcf50633_platform_data gta02_pcf_pdata = {

	.charger_reference_current_ma = 1000,

	.backlight_data = &gta02_backlight_data,

	.reg_init_data = {
		[PCF50633_REGULATOR_AUTO] = {
			.constraints = {
@@ -478,71 +486,6 @@ static struct s3c2410_udc_mach_info gta02_udc_cfg = {

};



static void gta02_bl_set_intensity(int intensity)
{
	struct pcf50633 *pcf = gta02_pcf;
	int old_intensity = pcf50633_reg_read(pcf, PCF50633_REG_LEDOUT);

	/* We map 8-bit intensity to 6-bit intensity in hardware. */
	intensity >>= 2;

	/*
	 * This can happen during, eg, print of panic on blanked console,
	 * but we can't service i2c without interrupts active, so abort.
	 */
	if (in_atomic()) {
		printk(KERN_ERR "gta02_bl_set_intensity called while atomic\n");
		return;
	}

	old_intensity = pcf50633_reg_read(pcf, PCF50633_REG_LEDOUT);
	if (intensity == old_intensity)
		return;

	/* We can't do this anywhere else. */
	pcf50633_reg_write(pcf, PCF50633_REG_LEDDIM, 5);

	if (!(pcf50633_reg_read(pcf, PCF50633_REG_LEDENA) & 3))
		old_intensity = 0;

	/*
	 * The PCF50633 cannot handle LEDOUT = 0 (datasheet p60)
	 * if seen, you have to re-enable the LED unit.
	 */
	if (!intensity || !old_intensity)
		pcf50633_reg_write(pcf, PCF50633_REG_LEDENA, 0);

	/* Illegal to set LEDOUT to 0. */
	if (!intensity)
		pcf50633_reg_set_bit_mask(pcf, PCF50633_REG_LEDOUT, 0x3f, 2);
	else
		pcf50633_reg_set_bit_mask(pcf, PCF50633_REG_LEDOUT, 0x3f,
					  intensity);

	if (intensity)
		pcf50633_reg_write(pcf, PCF50633_REG_LEDENA, 2);

}

static struct generic_bl_info gta02_bl_info = {
	.name			= "gta02-bl",
	.max_intensity		= 0xff,
	.default_intensity	= 0xff,
	.set_bl_intensity	= gta02_bl_set_intensity,
};

static struct platform_device gta02_bl_dev = {
	.name			= "generic-bl",
	.id			= 1,
	.dev = {
		.platform_data = &gta02_bl_info,
	},
};



/* USB */
static struct s3c2410_hcd_info gta02_usb_info __initdata = {
	.port[0]	= {
@@ -579,7 +522,6 @@ static struct platform_device *gta02_devices[] __initdata = {
/* These guys DO need to be children of PMU. */

static struct platform_device *gta02_devices_pmu_children[] = {
	&gta02_bl_dev,
};


+3 −0
Original line number Diff line number Diff line
@@ -620,6 +620,9 @@ static int __devinit pcf50633_probe(struct i2c_client *client,
						&pcf->mbc_pdev);
	pcf50633_client_dev_register(pcf, "pcf50633-adc",
						&pcf->adc_pdev);
	pcf50633_client_dev_register(pcf, "pcf50633-backlight",
						&pcf->bl_pdev);


	for (i = 0; i < PCF50633_NUM_REGULATORS; i++) {
		struct platform_device *pdev;
+2 −0
Original line number Diff line number Diff line
@@ -222,6 +222,7 @@ static int pm860x_backlight_probe(struct platform_device *pdev)
	data->port = __check_device(pdata, name);
	if (data->port < 0) {
		dev_err(&pdev->dev, "wrong platform data is assigned");
		kfree(data);
		return -EINVAL;
	}

@@ -266,6 +267,7 @@ static int pm860x_backlight_probe(struct platform_device *pdev)
	backlight_update_status(bl);
	return 0;
out:
	backlight_device_unregister(bl);
	kfree(data);
	return ret;
}
+72 −44
Original line number Diff line number Diff line
@@ -8,12 +8,13 @@ menuconfig BACKLIGHT_LCD_SUPPORT
	  Enable this to be able to choose the drivers for controlling the
	  backlight and the LCD panel on some platforms, for example on PDAs.

if BACKLIGHT_LCD_SUPPORT

#
# LCD
#
config LCD_CLASS_DEVICE
        tristate "Lowlevel LCD controls"
	depends on BACKLIGHT_LCD_SUPPORT
	default m
	help
	  This framework adds support for low-level control of LCD.
@@ -24,31 +25,32 @@ config LCD_CLASS_DEVICE
	  To have support for your specific LCD panel you will have to
	  select the proper drivers which depend on this option.

if LCD_CLASS_DEVICE

config LCD_CORGI
	tristate "LCD Panel support for SHARP corgi/spitz model"
	depends on LCD_CLASS_DEVICE && SPI_MASTER && PXA_SHARPSL
	depends on SPI_MASTER && PXA_SHARPSL
	help
	  Say y here to support the LCD panels usually found on SHARP
	  corgi (C7x0) and spitz (Cxx00) models.

config LCD_L4F00242T03
	tristate "Epson L4F00242T03 LCD"
	depends on LCD_CLASS_DEVICE && SPI_MASTER && GENERIC_GPIO
	depends on SPI_MASTER && GENERIC_GPIO
	help
	  SPI driver for Epson L4F00242T03. This provides basic support
	  for init and powering the LCD up/down through a sysfs interface.

config LCD_LMS283GF05
	tristate "Samsung LMS283GF05 LCD"
	depends on LCD_CLASS_DEVICE && SPI_MASTER && GENERIC_GPIO
	depends on SPI_MASTER && GENERIC_GPIO
	help
	  SPI driver for Samsung LMS283GF05. This provides basic support
	  for powering the LCD up/down through a sysfs interface.

config LCD_LTV350QV
	tristate "Samsung LTV350QV LCD Panel"
	depends on LCD_CLASS_DEVICE && SPI_MASTER
	default n
	depends on SPI_MASTER
	help
	  If you have a Samsung LTV350QV LCD panel, say y to include a
	  power control driver for it.  The panel starts up in power
@@ -59,60 +61,61 @@ config LCD_LTV350QV

config LCD_ILI9320
	tristate
	depends on LCD_CLASS_DEVICE && BACKLIGHT_LCD_SUPPORT
	default n
	help
	  If you have a panel based on the ILI9320 controller chip
	  then say y to include a power driver for it.

config LCD_TDO24M
	tristate "Toppoly TDO24M  and TDO35S LCD Panels support"
	depends on LCD_CLASS_DEVICE && SPI_MASTER
	default n
	depends on SPI_MASTER
	help
	  If you have a Toppoly TDO24M/TDO35S series LCD panel, say y here to
	  include the support for it.

config LCD_VGG2432A4
	tristate "VGG2432A4 LCM device support"
	depends on BACKLIGHT_LCD_SUPPORT && LCD_CLASS_DEVICE && SPI_MASTER
	depends on SPI_MASTER
	select LCD_ILI9320
	default n
	help
	  If you have a VGG2432A4 panel based on the ILI9320 controller chip
	  then say y to include a power driver for it.

config LCD_PLATFORM
	tristate "Platform LCD controls"
	depends on LCD_CLASS_DEVICE
	help
	  This driver provides a platform-device registered LCD power
	  control interface.

config LCD_TOSA
	tristate "Sharp SL-6000 LCD Driver"
	depends on LCD_CLASS_DEVICE && SPI
	depends on MACH_TOSA
	default n
	depends on SPI && MACH_TOSA
	help
	  If you have an Sharp SL-6000 Zaurus say Y to enable a driver
	  for its LCD.

config LCD_HP700
	tristate "HP Jornada 700 series LCD Driver"
	depends on LCD_CLASS_DEVICE
	depends on SA1100_JORNADA720_SSP && !PREEMPT
	default y
	help
	  If you have an HP Jornada 700 series handheld (710/720/728)
	  say Y to enable LCD control driver.

config LCD_S6E63M0
	tristate "S6E63M0 AMOLED LCD Driver"
	depends on SPI && BACKLIGHT_CLASS_DEVICE
	default n
	help
	  If you have an S6E63M0 LCD Panel, say Y to enable its
	  LCD control driver.

endif # LCD_CLASS_DEVICE

#
# Backlight
#
config BACKLIGHT_CLASS_DEVICE
        tristate "Lowlevel Backlight controls"
	depends on BACKLIGHT_LCD_SUPPORT
	default m
	help
	  This framework adds support for low-level control of the LCD
@@ -121,9 +124,11 @@ config BACKLIGHT_CLASS_DEVICE
	  To have support for your specific LCD panel you will have to
	  select the proper drivers which depend on this option.

if BACKLIGHT_CLASS_DEVICE

config BACKLIGHT_ATMEL_LCDC
	bool "Atmel LCDC Contrast-as-Backlight control"
	depends on BACKLIGHT_CLASS_DEVICE && FB_ATMEL
	depends on FB_ATMEL
	default y if MACH_SAM9261EK || MACH_SAM9G10EK || MACH_SAM9263EK
	help
	  This provides a backlight control internal to the Atmel LCDC
@@ -136,8 +141,7 @@ config BACKLIGHT_ATMEL_LCDC

config BACKLIGHT_ATMEL_PWM
	tristate "Atmel PWM backlight control"
	depends on BACKLIGHT_CLASS_DEVICE && ATMEL_PWM
	default n
	depends on ATMEL_PWM
	help
	  Say Y here if you want to use the PWM peripheral in Atmel AT91 and
	  AVR32 devices. This driver will need additional platform data to know
@@ -146,9 +150,18 @@ config BACKLIGHT_ATMEL_PWM
	  To compile this driver as a module, choose M here: the module will be
	  called atmel-pwm-bl.

config BACKLIGHT_EP93XX
	tristate "Cirrus EP93xx Backlight Driver"
	depends on FB_EP93XX
	help
	  If you have a LCD backlight connected to the BRIGHT output of
	  the EP93xx, say Y here to enable this driver.

	  To compile this driver as a module, choose M here: the module will
	  be called ep93xx_bl.

config BACKLIGHT_GENERIC
	tristate "Generic (aka Sharp Corgi) Backlight Driver"
	depends on BACKLIGHT_CLASS_DEVICE
	default y
	help
	  Say y to enable the generic platform backlight driver previously
@@ -157,7 +170,7 @@ config BACKLIGHT_GENERIC

config BACKLIGHT_LOCOMO
	tristate "Sharp LOCOMO LCD/Backlight Driver"
	depends on BACKLIGHT_CLASS_DEVICE && SHARP_LOCOMO
	depends on SHARP_LOCOMO
	default y
	help
	  If you have a Sharp Zaurus SL-5500 (Collie) or SL-5600 (Poodle) say y to
@@ -165,7 +178,7 @@ config BACKLIGHT_LOCOMO

config BACKLIGHT_OMAP1
	tristate "OMAP1 PWL-based LCD Backlight"
	depends on BACKLIGHT_CLASS_DEVICE && ARCH_OMAP1
	depends on ARCH_OMAP1
	default y
	help
	  This driver controls the LCD backlight level and power for
@@ -174,7 +187,7 @@ config BACKLIGHT_OMAP1

config BACKLIGHT_HP680
	tristate "HP Jornada 680 Backlight Driver"
	depends on BACKLIGHT_CLASS_DEVICE && SH_HP6XX
	depends on SH_HP6XX
	default y
	help
	  If you have a HP Jornada 680, say y to enable the
@@ -182,7 +195,6 @@ config BACKLIGHT_HP680

config BACKLIGHT_HP700
	tristate "HP Jornada 700 series Backlight Driver"
	depends on BACKLIGHT_CLASS_DEVICE
	depends on SA1100_JORNADA720_SSP && !PREEMPT
	default y
	help
@@ -191,76 +203,70 @@ config BACKLIGHT_HP700

config BACKLIGHT_PROGEAR
	tristate "Frontpath ProGear Backlight Driver"
	depends on BACKLIGHT_CLASS_DEVICE && PCI && X86
	default n
	depends on PCI && X86
	help
	  If you have a Frontpath ProGear say Y to enable the
	  backlight driver.

config BACKLIGHT_CARILLO_RANCH
	tristate "Intel Carillo Ranch Backlight Driver"
	depends on BACKLIGHT_CLASS_DEVICE && LCD_CLASS_DEVICE && PCI && X86 && FB_LE80578
	default n
	depends on LCD_CLASS_DEVICE && PCI && X86 && FB_LE80578
	help
	  If you have a Intel LE80578 (Carillo Ranch) say Y to enable the
	  backlight driver.

config BACKLIGHT_PWM
	tristate "Generic PWM based Backlight Driver"
	depends on BACKLIGHT_CLASS_DEVICE && HAVE_PWM
	depends on HAVE_PWM
	help
	  If you have a LCD backlight adjustable by PWM, say Y to enable
	  this driver.

config BACKLIGHT_DA903X
	tristate "Backlight Driver for DA9030/DA9034 using WLED"
	depends on BACKLIGHT_CLASS_DEVICE && PMIC_DA903X
	depends on PMIC_DA903X
	help
	  If you have a LCD backlight connected to the WLED output of DA9030
	  or DA9034 WLED output, say Y here to enable this driver.

config BACKLIGHT_MAX8925
	tristate "Backlight driver for MAX8925"
	depends on BACKLIGHT_CLASS_DEVICE && MFD_MAX8925
	depends on MFD_MAX8925
	help
	  If you have a LCD backlight connected to the WLED output of MAX8925
	  WLED output, say Y here to enable this driver.

config BACKLIGHT_MBP_NVIDIA
       tristate "MacBook Pro Nvidia Backlight Driver"
       depends on BACKLIGHT_CLASS_DEVICE && X86
       default n
       depends on X86
       help
         If you have an Apple Macbook Pro with Nvidia graphics hardware say Y
	 to enable a driver for its backlight

config BACKLIGHT_TOSA
	tristate "Sharp SL-6000 Backlight Driver"
	depends on BACKLIGHT_CLASS_DEVICE && I2C
	depends on MACH_TOSA && LCD_TOSA
	default n
	depends on I2C && MACH_TOSA && LCD_TOSA
	help
	  If you have an Sharp SL-6000 Zaurus say Y to enable a driver
	  for its backlight

config BACKLIGHT_SAHARA
	tristate "Tabletkiosk Sahara Touch-iT Backlight Driver"
	depends on BACKLIGHT_CLASS_DEVICE && X86
	default n
	depends on X86
	help
	  If you have a Tabletkiosk Sahara Touch-iT, say y to enable the
	  backlight driver.

config BACKLIGHT_WM831X
	tristate "WM831x PMIC Backlight Driver"
	depends on BACKLIGHT_CLASS_DEVICE && MFD_WM831X
	depends on MFD_WM831X
	help
	  If you have a backlight driven by the ISINK and DCDC of a
	  WM831x PMIC say y to enable the backlight driver for it.

config BACKLIGHT_ADX
	tristate "Avionic Design Xanthos Backlight Driver"
	depends on BACKLIGHT_CLASS_DEVICE && ARCH_PXA_ADX
	depends on ARCH_PXA_ADX
	default y
	help
	  Say Y to enable the backlight driver on Avionic Design Xanthos-based
@@ -268,7 +274,7 @@ config BACKLIGHT_ADX

config BACKLIGHT_ADP5520
	tristate "Backlight Driver for ADP5520/ADP5501 using WLED"
	depends on BACKLIGHT_CLASS_DEVICE && PMIC_ADP5520
	depends on PMIC_ADP5520
	help
	  If you have a LCD backlight connected to the BST/BL_SNK output of
	  ADP5520 or ADP5501, say Y here to enable this driver.
@@ -276,9 +282,31 @@ config BACKLIGHT_ADP5520
	  To compile this driver as a module, choose M here: the module will
	  be called adp5520_bl.

config BACKLIGHT_ADP8860
	tristate "Backlight Driver for ADP8860/ADP8861/ADP8863 using WLED"
	depends on BACKLIGHT_CLASS_DEVICE && I2C
	select NEW_LEDS
	select LEDS_CLASS
	help
	  If you have a LCD backlight connected to the ADP8860, ADP8861 or
	  ADP8863 say Y here to enable this driver.

	  To compile this driver as a module, choose M here: the module will
	  be called adp8860_bl.

config BACKLIGHT_88PM860X
	tristate "Backlight Driver for 88PM8606 using WLED"
	depends on BACKLIGHT_CLASS_DEVICE && MFD_88PM860X
	depends on MFD_88PM860X
	help
	  Say Y to enable the backlight driver for Marvell 88PM8606.

config BACKLIGHT_PCF50633
	tristate "Backlight driver for NXP PCF50633 MFD"
	depends on BACKLIGHT_CLASS_DEVICE && MFD_PCF50633
	help
	  If you have a backlight driven by a NXP PCF50633 MFD, say Y here to
	  enable its driver.

endif # BACKLIGHT_CLASS_DEVICE

endif # BACKLIGHT_LCD_SUPPORT
+4 −0
Original line number Diff line number Diff line
@@ -11,9 +11,11 @@ obj-$(CONFIG_LCD_PLATFORM) += platform_lcd.o
obj-$(CONFIG_LCD_VGG2432A4)	   += vgg2432a4.o
obj-$(CONFIG_LCD_TDO24M)	   += tdo24m.o
obj-$(CONFIG_LCD_TOSA)		   += tosa_lcd.o
obj-$(CONFIG_LCD_S6E63M0)	+= s6e63m0.o

obj-$(CONFIG_BACKLIGHT_CLASS_DEVICE) += backlight.o
obj-$(CONFIG_BACKLIGHT_ATMEL_PWM)    += atmel-pwm-bl.o
obj-$(CONFIG_BACKLIGHT_EP93XX)	+= ep93xx_bl.o
obj-$(CONFIG_BACKLIGHT_GENERIC)	+= generic_bl.o
obj-$(CONFIG_BACKLIGHT_HP700)	+= jornada720_bl.o
obj-$(CONFIG_BACKLIGHT_HP680)	+= hp680_bl.o
@@ -30,5 +32,7 @@ obj-$(CONFIG_BACKLIGHT_SAHARA) += kb3886_bl.o
obj-$(CONFIG_BACKLIGHT_WM831X)	+= wm831x_bl.o
obj-$(CONFIG_BACKLIGHT_ADX)    += adx_bl.o
obj-$(CONFIG_BACKLIGHT_ADP5520)	+= adp5520_bl.o
obj-$(CONFIG_BACKLIGHT_ADP8860)	+= adp8860_bl.o
obj-$(CONFIG_BACKLIGHT_88PM860X) += 88pm860x_bl.o
obj-$(CONFIG_BACKLIGHT_PCF50633)	+= pcf50633-backlight.o
Loading