summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpio/Kconfig6
-rw-r--r--drivers/gpio/Makefile1
-rw-r--r--drivers/hwmon/Kconfig10
-rw-r--r--drivers/hwmon/Makefile1
-rw-r--r--drivers/input/touchscreen/Kconfig7
-rw-r--r--drivers/input/touchscreen/Makefile1
-rw-r--r--drivers/input/touchscreen/da9052_tsi.c6
-rw-r--r--drivers/leds/Kconfig10
-rw-r--r--drivers/leds/Makefile1
-rw-r--r--drivers/mfd/Kconfig11
-rw-r--r--drivers/mfd/Makefile6
-rw-r--r--drivers/mfd/da9052-core.c31
-rw-r--r--drivers/mfd/da9052-i2c.c3
-rw-r--r--drivers/power/Kconfig9
-rw-r--r--drivers/power/Makefile1
-rw-r--r--drivers/regulator/Kconfig6
-rw-r--r--drivers/regulator/Makefile2
-rw-r--r--drivers/regulator/da9052-regulator.c3
-rw-r--r--drivers/rtc/Kconfig8
-rw-r--r--drivers/rtc/Makefile2
-rw-r--r--drivers/rtc/rtc-da9052.c8
-rw-r--r--drivers/video/backlight/Kconfig8
-rw-r--r--drivers/video/backlight/Makefile1
-rw-r--r--drivers/video/backlight/da9052_bl.c24
-rw-r--r--drivers/watchdog/Kconfig8
-rw-r--r--drivers/watchdog/Makefile1
26 files changed, 132 insertions, 43 deletions
diff --git a/drivers/gpio/Kconfig b/drivers/gpio/Kconfig
index 7face915b963..66dd4c3801a8 100644
--- a/drivers/gpio/Kconfig
+++ b/drivers/gpio/Kconfig
@@ -343,4 +343,10 @@ config GPIO_JANZ_TTL
This driver provides support for driving the pins in output
mode only. Input mode is not supported.
+config DA9052_GPIO_ENABLE
+ bool "Dialog DA9052 GPIO"
+ depends on PMIC_DA9052
+ help
+ Say Y to enable the GPIO driver for the DA9052 chip
+
endif
diff --git a/drivers/gpio/Makefile b/drivers/gpio/Makefile
index e53dcff49b4f..7f2963bd7c77 100644
--- a/drivers/gpio/Makefile
+++ b/drivers/gpio/Makefile
@@ -35,3 +35,4 @@ obj-$(CONFIG_GPIO_WM8994) += wm8994-gpio.o
obj-$(CONFIG_GPIO_SCH) += sch_gpio.o
obj-$(CONFIG_GPIO_RDC321X) += rdc321x-gpio.o
obj-$(CONFIG_GPIO_JANZ_TTL) += janz-ttl.o
+obj-$(CONFIG_DA9052_GPIO_ENABLE)+= da9052-gpio.o
diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
index 0c8cefcbc6c2..b0fdae27b74c 100644
--- a/drivers/hwmon/Kconfig
+++ b/drivers/hwmon/Kconfig
@@ -300,6 +300,16 @@ config SENSORS_ATXP1
This driver can also be built as a module. If so, the module
will be called atxp1.
+config SENSORS_DA9052
+ tristate "Dialog DA9052 HWMon"
+ depends on PMIC_DA9052
+ help
+ Say y here to support the ADC found on
+ Dialog Semiconductor DA9052 PMIC.
+
+ This driver can also be built as a module. If so, the module
+ will be called da9052_hwmon.
+
config SENSORS_DS1621
tristate "Dallas Semiconductor DS1621 and DS1625"
depends on I2C
diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile
index 4fbb330f4f29..0dfdc7826dfa 100644
--- a/drivers/hwmon/Makefile
+++ b/drivers/hwmon/Makefile
@@ -39,6 +39,7 @@ obj-$(CONFIG_SENSORS_AMS) += ams/
obj-$(CONFIG_SENSORS_ASC7621) += asc7621.o
obj-$(CONFIG_SENSORS_ATXP1) += atxp1.o
obj-$(CONFIG_SENSORS_CORETEMP) += coretemp.o
+obj-$(CONFIG_SENSORS_DA9052) += da9052-adc.o
obj-$(CONFIG_SENSORS_DME1737) += dme1737.o
obj-$(CONFIG_SENSORS_DS1621) += ds1621.o
obj-$(CONFIG_SENSORS_EMC1403) += emc1403.o
diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
index 50d66ee066d0..7537ffd26164 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -643,4 +643,11 @@ config TOUCHSCREEN_TPS6507X
To compile this driver as a module, choose M here: the
module will be called tps6507x_ts.
+config TOUCHSCREEN_DA9052
+ tristate "Dialog DA9052 TSI"
+ depends on PMIC_DA9052
+ help
+ Say y here to support the touchscreen found on
+ Dialog Semiconductor DA9052 PMIC
+
endif
diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
index 7be6e778578e..154dbcb7220d 100644
--- a/drivers/input/touchscreen/Makefile
+++ b/drivers/input/touchscreen/Makefile
@@ -51,3 +51,4 @@ obj-$(CONFIG_TOUCHSCREEN_WM97XX_MAINSTONE) += mainstone-wm97xx.o
obj-$(CONFIG_TOUCHSCREEN_WM97XX_ZYLONITE) += zylonite-wm97xx.o
obj-$(CONFIG_TOUCHSCREEN_W90X900) += w90p910_ts.o
obj-$(CONFIG_TOUCHSCREEN_TPS6507X) += tps6507x-ts.o
+obj-$(CONFIG_TOUCHSCREEN_DA9052) += da9052_tsi.o da9052_tsi_filter.o da9052_tsi_calibrate.o
diff --git a/drivers/input/touchscreen/da9052_tsi.c b/drivers/input/touchscreen/da9052_tsi.c
index 0f52e7493140..a0c7aa9a1de9 100644
--- a/drivers/input/touchscreen/da9052_tsi.c
+++ b/drivers/input/touchscreen/da9052_tsi.c
@@ -66,7 +66,7 @@ static ssize_t da9052_tsi_reg_proc_thread(void *ptr);
static ssize_t da9052_tsi_resume(struct platform_device *dev);
static ssize_t da9052_tsi_suspend(struct platform_device *dev,
pm_message_t state);
-//void tsi_reg_proc_work(struct work_struct *work);
+/* void tsi_reg_proc_work(struct work_struct *work); */
struct da9052_tsi tsi_reg;
struct da9052_tsi_info gda9052_tsi_info;
@@ -80,8 +80,8 @@ static ssize_t write_da9052_reg(struct da9052 *da9052, u8 reg_addr, u8 data)
ssc_msg.data = data;
ret = da9052->write(da9052, &ssc_msg);
if (ret) {
- DA9052_DEBUG("%s: ",__FUNCTION__);
- DA9052_DEBUG("da9052_ssc_write Failed %d\n",ret );
+ DA9052_DEBUG("%s: ", __func__);
+ DA9052_DEBUG("da9052_ssc_write Failed %d\n", ret);
}
return ret;
diff --git a/drivers/leds/Kconfig b/drivers/leds/Kconfig
index 50590c770691..196270d08960 100644
--- a/drivers/leds/Kconfig
+++ b/drivers/leds/Kconfig
@@ -246,6 +246,16 @@ config LEDS_DA903X
This option enables support for on-chip LED drivers found
on Dialog Semiconductor DA9030/DA9034 PMICs.
+config LEDS_DA9052
+ tristate "Dialog DA9052 LEDS"
+ depends on PMIC_DA9052
+ help
+ This option enables support for on-chip LED drivers found
+ on Dialog Semiconductor DA9052 PMICs.
+
+ To compile this driver as a module, choose M here: the
+ module will be called leds-da9052.
+
config LEDS_DAC124S085
tristate "LED Support for DAC124S085 SPI DAC"
depends on SPI
diff --git a/drivers/leds/Makefile b/drivers/leds/Makefile
index fd8042e113e2..8285efc54a03 100644
--- a/drivers/leds/Makefile
+++ b/drivers/leds/Makefile
@@ -29,6 +29,7 @@ obj-$(CONFIG_LEDS_HP6XX) += leds-hp6xx.o
obj-$(CONFIG_LEDS_FSG) += leds-fsg.o
obj-$(CONFIG_LEDS_PCA955X) += leds-pca955x.o
obj-$(CONFIG_LEDS_DA903X) += leds-da903x.o
+obj-$(CONFIG_LEDS_DA9052) += leds-da9052.o
obj-$(CONFIG_LEDS_WM831X_STATUS) += leds-wm831x-status.o
obj-$(CONFIG_LEDS_WM8350) += leds-wm8350.o
obj-$(CONFIG_LEDS_PWM) += leds-pwm.o
diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig
index 410497d638a3..0da643fe59f6 100644
--- a/drivers/mfd/Kconfig
+++ b/drivers/mfd/Kconfig
@@ -375,6 +375,17 @@ config MFD_MC13783
additional drivers must be enabled in order to use the
functionality of the device.
+config PMIC_DA9052
+ tristate "Dialog DA9052 with SPI/I2C"
+ depends on SPI_MASTER=y
+ depends on I2C=y
+ select MFD_CORE
+ help
+ SPI/I2C Support for the Dialog semiconductor DA9052 PMIC.
+ This driver provides common support for accessing the device,
+ additional drivers must be enabled in order to use the
+ functionality of the device.
+
config PCF50633_ADC
tristate "Support for NXP PCF50633 ADC"
depends on MFD_PCF50633
diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile
index 292123173bb9..36919bd16e85 100644
--- a/drivers/mfd/Makefile
+++ b/drivers/mfd/Makefile
@@ -74,3 +74,9 @@ obj-$(CONFIG_LPC_SCH) += lpc_sch.o
obj-$(CONFIG_MFD_RDC321X) += rdc321x-southbridge.o
obj-$(CONFIG_MFD_JANZ_CMODIO) += janz-cmodio.o
obj-$(CONFIG_MFD_MAX17135) += max17135-core.o
+
+#ifeq ($(CONFIG_PMIC_DA9052),y)
+da9052-objs := da9052-spi.o da9052-i2c.o da9052-core.o
+obj-$(CONFIG_PMIC_DA9052) += da9052.o
+#endif
+
diff --git a/drivers/mfd/da9052-core.c b/drivers/mfd/da9052-core.c
index 5dcbacb30077..7f6c049aa4c0 100644
--- a/drivers/mfd/da9052-core.c
+++ b/drivers/mfd/da9052-core.c
@@ -22,6 +22,7 @@
#include <linux/mfd/core.h>
#include <linux/spi/spi.h>
#include <linux/i2c.h>
+#include <linux/semaphore.h>
#include <linux/mfd/da9052/da9052.h>
#include <linux/mfd/da9052/adc.h>
@@ -171,7 +172,7 @@ static irqreturn_t da9052_eh_isr(int irq, void *dev_id)
/* Schedule work to be done */
schedule_work(&da9052->eh_isr_work);
/* Disable IRQ */
- disable_irq_nosync(DA9052_IRQ);
+ disable_irq_nosync(da9052->irq);
return IRQ_HANDLED;
}
@@ -302,7 +303,7 @@ void eh_workqueue_isr(struct work_struct *work)
ret = da9052_ssc_read_many(da9052, eve_data, 4);
if (ret) {
- enable_irq(DA9052_IRQ);
+ enable_irq(da9052->irq);
da9052_unlock(da9052);
return;
}
@@ -313,7 +314,7 @@ void eh_workqueue_isr(struct work_struct *work)
/* Check if we really got any event */
if (events_sts == 0) {
- enable_irq(DA9052_IRQ);
+ enable_irq(da9052->irq);
da9052_unlock(da9052);
return;
}
@@ -328,7 +329,7 @@ void eh_workqueue_isr(struct work_struct *work)
if (eve_data[cnt].data) {
ret = da9052_ssc_write(da9052, &eve_data[cnt]);
if (ret) {
- enable_irq(DA9052_IRQ);
+ enable_irq(da9052->irq);
da9052_unlock(da9052);
return;
}
@@ -342,13 +343,13 @@ void eh_workqueue_isr(struct work_struct *work)
*/
udelay(50);
/* Enable HOST interrupt */
- enable_irq(DA9052_IRQ);
+ enable_irq(da9052->irq);
}
-static void da9052_eh_restore_irq(void)
+static void da9052_eh_restore_irq(struct da9052 *da9052)
{
/* Put your platform and board specific code here */
- free_irq(DA9052_IRQ, NULL);
+ free_irq(da9052->irq, NULL);
}
static int da9052_add_subdevice_pdata(struct da9052 *da9052,
@@ -387,8 +388,7 @@ static int add_da9052_devices(struct da9052 *da9052)
if (ret != 0)
return ret;
} else
- printk(KERN_CRIT "No platform initialisation supplied \n");
-
+ pr_err("No platform initialisation supplied\n");
ret = da9052_add_subdevice(da9052, "da9052-rtc");
if (ret)
return ret;
@@ -416,11 +416,6 @@ static int add_da9052_devices(struct da9052 *da9052)
if (ret)
return ret;
- ret = da9052_add_subdevice_pdata(da9052, "da9052-gpio",
- pdata, sizeof(*pdata));
- if (ret)
- return ret;
-
ret = da9052_add_subdevice_pdata(da9052, "da9052-leds",
&leds_data, sizeof(leds_data));
if (ret)
@@ -493,9 +488,9 @@ int da9052_ssc_init(struct da9052 *da9052)
INIT_WORK(&da9052->eh_isr_work, eh_workqueue_isr);
- if (request_irq(DA9052_IRQ, da9052_eh_isr, IRQ_TYPE_LEVEL_LOW,
+ if (request_irq(da9052->irq, da9052_eh_isr, IRQ_TYPE_LEVEL_LOW,
DA9052_EH_DEVICE_NAME, da9052))
- return -EIO;
+ return -EIO;
return 0;
}
@@ -505,8 +500,8 @@ void da9052_ssc_exit(struct da9052 *da9052)
printk(KERN_INFO "DA9052: Unregistering SSC device.\n");
mutex_destroy(&manconv_lock);
/* Restore IRQ line */
- da9052_eh_restore_irq();
- free_irq(DA9052_IRQ, NULL);
+ da9052_eh_restore_irq(da9052);
+ free_irq(da9052->irq, NULL);
mutex_destroy(&da9052->ssc_lock);
mutex_destroy(&da9052->eve_nb_lock);
return;
diff --git a/drivers/mfd/da9052-i2c.c b/drivers/mfd/da9052-i2c.c
index 5828b6db4585..4f050896d962 100644
--- a/drivers/mfd/da9052-i2c.c
+++ b/drivers/mfd/da9052-i2c.c
@@ -63,6 +63,7 @@ static int __devinit da9052_i2c_probe(struct i2c_client *client,
/* Store handle to i2c client */
da9052_i2c->i2c_client = client;
+ da9052_i2c->irq = client->irq;
da9052_i2c->dev = &client->dev;
@@ -362,7 +363,7 @@ static int __init da9052_i2c_init(void)
}
return 0;
}
-module_init(da9052_i2c_init);
+subsys_initcall(da9052_i2c_init);
static void __exit da9052_i2c_exit(void)
{
diff --git a/drivers/power/Kconfig b/drivers/power/Kconfig
index d9426933f63a..20d0cd22f606 100644
--- a/drivers/power/Kconfig
+++ b/drivers/power/Kconfig
@@ -122,6 +122,15 @@ config BATTERY_DA9030
Say Y here to enable support for batteries charger integrated into
DA9030 PMIC.
+config BATTERY_DA9052
+ tristate "Dialog DA9052 Battery"
+ depends on PMIC_DA9052
+ help
+ Say Y here to enable support for batteries charger integrated into
+ DA9052 PMIC.
+
+ To compile this driver as a module, choose M here.
+
config BATTERY_MAX17040
tristate "Maxim MAX17040 Fuel Gauge"
depends on I2C
diff --git a/drivers/power/Makefile b/drivers/power/Makefile
index a02b76f11909..d20c49bd29ff 100644
--- a/drivers/power/Makefile
+++ b/drivers/power/Makefile
@@ -24,6 +24,7 @@ obj-$(CONFIG_TEST_POWER) += test_power.o
obj-$(CONFIG_BATTERY_DS2760) += ds2760_battery.o
obj-$(CONFIG_BATTERY_DS2782) += ds2782_battery.o
+obj-$(CONFIG_BATTERY_DA9052) += da9052-battery.o
obj-$(CONFIG_BATTERY_PMU) += pmu_battery.o
obj-$(CONFIG_BATTERY_OLPC) += olpc_battery.o
obj-$(CONFIG_BATTERY_TOSA) += tosa_battery.o
diff --git a/drivers/regulator/Kconfig b/drivers/regulator/Kconfig
index 73bd4e548b19..694c2e6e539d 100644
--- a/drivers/regulator/Kconfig
+++ b/drivers/regulator/Kconfig
@@ -232,5 +232,11 @@ config REGULATOR_MAX17135
depends on MFD_MAX17135
default n
+config REGULATOR_DA9052
+ tristate "Dialog DA9052 regulators"
+ depends on PMIC_DA9052
+ help
+ Say y here to support the BUCKs and LDOs regulators found on
+ Dialog Semiconductor DA9052 PMIC.
endif
diff --git a/drivers/regulator/Makefile b/drivers/regulator/Makefile
index f5933980b9cc..850fdd8d45fa 100644
--- a/drivers/regulator/Makefile
+++ b/drivers/regulator/Makefile
@@ -31,6 +31,8 @@ obj-$(CONFIG_REGULATOR_TPS65023) += tps65023-regulator.o
obj-$(CONFIG_REGULATOR_TPS6507X) += tps6507x-regulator.o
obj-$(CONFIG_REGULATOR_88PM8607) += 88pm8607.o
+obj-$(CONFIG_REGULATOR_DA9052) += da9052-regulator.o
+
obj-$(CONFIG_REGULATOR_MAX17135) += max17135-regulator.o
obj-$(CONFIG_REGULATOR_MC13892) += reg-mc13892.o
diff --git a/drivers/regulator/da9052-regulator.c b/drivers/regulator/da9052-regulator.c
index af1311660ffa..fa6aae506708 100644
--- a/drivers/regulator/da9052-regulator.c
+++ b/drivers/regulator/da9052-regulator.c
@@ -415,7 +415,8 @@ static int __devinit da9052_regulator_probe(struct platform_device *pdev)
pdev->dev.platform_data = init_data;
priv->regulators[i] = regulator_register(
&da9052_regulators[i].reg_desc,
- &pdev->dev, priv);
+ &pdev->dev, init_data,
+ priv);
if (IS_ERR(priv->regulators[i])) {
ret = PTR_ERR(priv->regulators[i]);
goto err;
diff --git a/drivers/rtc/Kconfig b/drivers/rtc/Kconfig
index 76d846a7039e..9987e3765989 100644
--- a/drivers/rtc/Kconfig
+++ b/drivers/rtc/Kconfig
@@ -433,6 +433,14 @@ config RTC_DRV_CMOS
This driver can also be built as a module. If so, the module
will be called rtc-cmos.
+config RTC_DRV_DA9052
+ tristate "Dialog DA9052 RTC"
+ depends on PMIC_DA9052
+ help
+ Say y here to support the RTC found on
+ Dialog Semiconductor DA9052 PMIC.
+
+
config RTC_DRV_DS1216
tristate "Dallas DS1216"
depends on SNI_RM
diff --git a/drivers/rtc/Makefile b/drivers/rtc/Makefile
index 6d06d258419e..e58c0868eb7e 100644
--- a/drivers/rtc/Makefile
+++ b/drivers/rtc/Makefile
@@ -99,3 +99,5 @@ obj-$(CONFIG_RTC_DRV_MXC_V2) += rtc-mxc_v2.o
obj-$(CONFIG_RTC_DRV_IMXDI) += rtc-imxdi.o
obj-$(CONFIG_RTC_MC13892) += rtc-mc13892.o
obj-$(CONFIG_RTC_DRV_MXS) += rtc-mxs.o
+obj-$(CONFIG_RTC_DRV_DA9052) += rtc-da9052.o
+
diff --git a/drivers/rtc/rtc-da9052.c b/drivers/rtc/rtc-da9052.c
index 5bf55ee7632b..8f4d26fbc23b 100644
--- a/drivers/rtc/rtc-da9052.c
+++ b/drivers/rtc/rtc-da9052.c
@@ -440,7 +440,7 @@ static int da9052_rtc_class_ops_gettime
(struct device *dev, struct rtc_time *rtc_tm)
{
int ret;
- struct da9052 *da9052 = dev->parent->driver_data;
+ struct da9052 *da9052 = dev_get_drvdata(dev->parent);
ret = da9052_rtc_gettime(da9052, rtc_tm);
if (ret)
return ret;
@@ -451,7 +451,7 @@ static int da9052_rtc_class_ops_gettime
static int da9052_rtc_class_ops_settime(struct device *dev, struct rtc_time *tm)
{
int ret;
- struct da9052 *da9052 = dev->parent->driver_data;
+ struct da9052 *da9052 = dev_get_drvdata(dev->parent);
ret = da9052_rtc_settime(da9052, tm);
return ret;
@@ -461,7 +461,7 @@ static int da9052_rtc_readalarm(struct device *dev, struct rtc_wkalrm *alrm)
{
int ret;
struct rtc_time *tm = &alrm->time;
- struct da9052 *da9052 = dev->parent->driver_data;
+ struct da9052 *da9052 = dev_get_drvdata(dev->parent);
ret = da9052_alarm_gettime(da9052, tm);
if (ret)
@@ -477,7 +477,7 @@ static int da9052_rtc_setalarm(struct device *dev, struct rtc_wkalrm *alrm)
{
int ret = 0;
struct rtc_time *tm = &alrm->time;
- struct da9052 *da9052 = dev->parent->driver_data;
+ struct da9052 *da9052 = dev_get_drvdata(dev->parent);
ret = da9052_alarm_settime(da9052, tm);
diff --git a/drivers/video/backlight/Kconfig b/drivers/video/backlight/Kconfig
index 2f5ed05b6ffa..78c4649a48f8 100644
--- a/drivers/video/backlight/Kconfig
+++ b/drivers/video/backlight/Kconfig
@@ -168,6 +168,14 @@ config BACKLIGHT_GENERIC
known as the Corgi backlight driver. If you have a Sharp Zaurus
SL-C7xx, SL-Cxx00 or SL-6000x say y.
+config BACKLIGHT_DA9052
+ tristate "Dialog DA9052 WLED"
+ depends on PMIC_DA9052
+ help
+ Enable the DA9052 Backlight Driver
+
+ To compile this driver as a module, choose M here.
+
config BACKLIGHT_LOCOMO
tristate "Sharp LOCOMO LCD/Backlight Driver"
depends on SHARP_LOCOMO
diff --git a/drivers/video/backlight/Makefile b/drivers/video/backlight/Makefile
index 97c87cb5ad02..1c67fdedc17e 100644
--- a/drivers/video/backlight/Makefile
+++ b/drivers/video/backlight/Makefile
@@ -2,6 +2,7 @@
obj-$(CONFIG_LCD_CLASS_DEVICE) += lcd.o
obj-$(CONFIG_LCD_CORGI) += corgi_lcd.o
+obj-$(CONFIG_BACKLIGHT_DA9052) += da9052_bl.o
obj-$(CONFIG_LCD_HP700) += jornada720_lcd.o
obj-$(CONFIG_LCD_L4F00242T03) += l4f00242t03.o
obj-$(CONFIG_LCD_LMS283GF05) += lms283gf05.o
diff --git a/drivers/video/backlight/da9052_bl.c b/drivers/video/backlight/da9052_bl.c
index 56c4bf235013..5cfcb471d337 100644
--- a/drivers/video/backlight/da9052_bl.c
+++ b/drivers/video/backlight/da9052_bl.c
@@ -229,9 +229,7 @@ static int da9052_backlight_probe1(struct platform_device *pdev)
{
struct da9052_backlight_data *data;
struct backlight_device *bl;
-#if 0 /* Commented to be integrated with 2.6.34 kernel */
struct backlight_properties props;
-#endif
struct da9052 *da9052 = dev_get_drvdata(pdev->dev.parent);
data = kzalloc(sizeof(*data), GFP_KERNEL);
@@ -243,12 +241,12 @@ static int da9052_backlight_probe1(struct platform_device *pdev)
data->is_led1_present = DA9052_LED1_PRESENT;
-#if 0 /* Commented to be integrated with 2.6.34 kernel */
bl = backlight_device_register(pdev->name, data->da9052_dev,
data, &da9052_backlight_ops, &props);
-#endif
+#if 0 /* Commented to be integrated with 2.6.28 kernel */
bl = backlight_device_register(pdev->name, data->da9052_dev,
data, &da9052_backlight_ops);
+#endif
if (IS_ERR(bl)) {
dev_err(&pdev->dev, "failed to register backlight\n");
kfree(data);
@@ -257,6 +255,8 @@ static int da9052_backlight_probe1(struct platform_device *pdev)
bl->props.max_brightness = DA9052_MAX_BRIGHTNESS;
bl->props.brightness = 0;
+ bl->props.power = FB_BLANK_UNBLANK;
+ bl->props.fb_blank = FB_BLANK_UNBLANK;
platform_set_drvdata(pdev, bl);
backlight_update_status(bl);
@@ -274,9 +274,7 @@ static int da9052_backlight_probe2(struct platform_device *pdev)
{
struct da9052_backlight_data *data;
struct backlight_device *bl;
-#if 0 /* Commented to be integrated with 2.6.34 kernel */
struct backlight_properties props;
-#endif
struct da9052 *da9052 = dev_get_drvdata(pdev->dev.parent);
data = kzalloc(sizeof(*data), GFP_KERNEL);
@@ -287,12 +285,8 @@ static int da9052_backlight_probe2(struct platform_device *pdev)
data->current_brightness = 0;
data->is_led2_present = DA9052_LED2_PRESENT;
-#if 0 /* Commented to be integrated with 2.6.34 kernel */
bl = backlight_device_register(pdev->name, data->da9052_dev,
data, &da9052_backlight_ops, &props);
-#endif
- bl = backlight_device_register(pdev->name, data->da9052_dev,
- data, &da9052_backlight_ops);
if (IS_ERR(bl)) {
dev_err(&pdev->dev, "failed to register backlight\n");
kfree(data);
@@ -301,6 +295,8 @@ static int da9052_backlight_probe2(struct platform_device *pdev)
bl->props.max_brightness = DA9052_MAX_BRIGHTNESS;
bl->props.brightness = 0;
+ bl->props.power = FB_BLANK_UNBLANK;
+ bl->props.fb_blank = FB_BLANK_UNBLANK;
platform_set_drvdata(pdev, bl);
backlight_update_status(bl);
@@ -318,9 +314,7 @@ static int da9052_backlight_probe3(struct platform_device *pdev)
{
struct da9052_backlight_data *data;
struct backlight_device *bl;
-#if 0 /* Commented to be integrated with 2.6.34 kernel */
struct backlight_properties props;
-#endif
struct da9052 *da9052 = dev_get_drvdata(pdev->dev.parent);
@@ -332,12 +326,8 @@ static int da9052_backlight_probe3(struct platform_device *pdev)
data->current_brightness = 0;
data->is_led3_present = DA9052_LED3_PRESENT;
-#if 0 /* Commented to be integrated with 2.6.34 kernel */
bl = backlight_device_register(pdev->name, data->da9052_dev,
data, &da9052_backlight_ops, &props);
-#endif
- bl = backlight_device_register(pdev->name, data->da9052_dev,
- data, &da9052_backlight_ops);
if (IS_ERR(bl)) {
dev_err(&pdev->dev, "failed to register backlight\n");
kfree(data);
@@ -346,6 +336,8 @@ static int da9052_backlight_probe3(struct platform_device *pdev)
bl->props.max_brightness = DA9052_MAX_BRIGHTNESS;
bl->props.brightness = 0;
+ bl->props.power = FB_BLANK_UNBLANK;
+ bl->props.fb_blank = FB_BLANK_UNBLANK;
platform_set_drvdata(pdev, bl);
backlight_update_status(bl);
diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
index ffa00c2698d1..653d7a8783fa 100644
--- a/drivers/watchdog/Kconfig
+++ b/drivers/watchdog/Kconfig
@@ -45,6 +45,14 @@ comment "Watchdog Device Drivers"
# Architecture Independent
+config DA9052_WATCHDOG
+ tristate "Dialog DA9052 Watchdog"
+ depends on PMIC_DA9052
+ help
+ Support for the watchdog in the DA9052 PMIC.
+
+ To compile this driver as a module, choose M here.
+
config SOFT_WATCHDOG
tristate "Software watchdog"
help
diff --git a/drivers/watchdog/Makefile b/drivers/watchdog/Makefile
index 702b297e2cb7..30c9ffa83589 100644
--- a/drivers/watchdog/Makefile
+++ b/drivers/watchdog/Makefile
@@ -144,6 +144,7 @@ obj-$(CONFIG_WATCHDOG_CP1XXX) += cpwd.o
# XTENSA Architecture
# Architecture Independant
+obj-$(CONFIG_DA9052_WATCHDOG) += da9052_wdt.o
obj-$(CONFIG_WM831X_WATCHDOG) += wm831x_wdt.o
obj-$(CONFIG_WM8350_WATCHDOG) += wm8350_wdt.o
obj-$(CONFIG_MAX63XX_WATCHDOG) += max63xx_wdt.o