diff options
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpio/Kconfig | 6 | ||||
-rw-r--r-- | drivers/gpio/Makefile | 1 | ||||
-rw-r--r-- | drivers/hwmon/Kconfig | 10 | ||||
-rw-r--r-- | drivers/hwmon/Makefile | 1 | ||||
-rw-r--r-- | drivers/input/touchscreen/Kconfig | 7 | ||||
-rw-r--r-- | drivers/input/touchscreen/Makefile | 1 | ||||
-rw-r--r-- | drivers/input/touchscreen/da9052_tsi.c | 6 | ||||
-rw-r--r-- | drivers/leds/Kconfig | 10 | ||||
-rw-r--r-- | drivers/leds/Makefile | 1 | ||||
-rw-r--r-- | drivers/mfd/Kconfig | 11 | ||||
-rw-r--r-- | drivers/mfd/Makefile | 6 | ||||
-rw-r--r-- | drivers/mfd/da9052-core.c | 31 | ||||
-rw-r--r-- | drivers/mfd/da9052-i2c.c | 3 | ||||
-rw-r--r-- | drivers/power/Kconfig | 9 | ||||
-rw-r--r-- | drivers/power/Makefile | 1 | ||||
-rw-r--r-- | drivers/regulator/Kconfig | 6 | ||||
-rw-r--r-- | drivers/regulator/Makefile | 2 | ||||
-rw-r--r-- | drivers/regulator/da9052-regulator.c | 3 | ||||
-rw-r--r-- | drivers/rtc/Kconfig | 8 | ||||
-rw-r--r-- | drivers/rtc/Makefile | 2 | ||||
-rw-r--r-- | drivers/rtc/rtc-da9052.c | 8 | ||||
-rw-r--r-- | drivers/video/backlight/Kconfig | 8 | ||||
-rw-r--r-- | drivers/video/backlight/Makefile | 1 | ||||
-rw-r--r-- | drivers/video/backlight/da9052_bl.c | 24 | ||||
-rw-r--r-- | drivers/watchdog/Kconfig | 8 | ||||
-rw-r--r-- | drivers/watchdog/Makefile | 1 |
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 |