summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2012-03-22gpio/twl: Allocate irq_desc dynamically for SPARSE_IRQ supportBenoit Cousson1-16/+17
Do not use the board pdata for irq_base, but allocate them dynamically to allow a proper support of SPARSE_IRQ. Fix an unneeded line wrap. Signed-off-by: Benoit Cousson <b-cousson@ti.com> Acked-by: Felipe Balbi <balbi@ti.com> Acked-by: Grant Likely <grant.likely@secretlab.ca> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-22mfd: Detach twl6040 from the pmic mfd driverPeter Ujfalusi1-26/+33
On OMAP4 platform audio has separate IC, it is no longer part of the pmic chip. Prevent twl-core to claim the 0x4b address, which belongs to the twl6040 audio IC. Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Acked-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Benoit Cousson <b-cousson@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-22mfd: Replace twl-* pr_ macros by the dev_ equivalent and do various cleanupsBenoit Cousson3-45/+46
Since a structure device is available now, use the dev_ macros instead of the pr_ ones. Clean some badly formatted comments. Remove some unused variables. Move some variable to the place they belong. Clean some badly wrapped lines. Align variable definition Add missing braces in if-then-else block. Add blank line for better readability. Move stuff here and there... Conflicts: drivers/mfd/twl-core.c Signed-off-by: Benoit Cousson <b-cousson@ti.com> Cc: Felipe Balbi <balbi@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-22mfd: Micro-optimization on twl4030 IRQ handlerFelipe Balbi1-7/+7
__ffs() will be far faster than the for loop used. Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-22mfd: Make twl4030 SIH SPARSE_IRQ capableBenoit Cousson3-19/+9
twl4030 is using a two level irq controllers infrastruture. So far, only the first level was using dynamic irq_desc allocation to be able to have irq_domain support for device tree. There is a need to allocate separate irq_descs for the SIH too to avoid hacking the first level with interrupts from the second level. Add an irq_base parameter to allow the caller to provide the base from pdata or from dynamic allocation. Affect TWL4030_NR_IRQS to the twl-core IRQs only. Moreover that will allow the extraction of the of_node pointer for further Device Tree conversion. Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Benoit Cousson <b-cousson@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-22mfd: Move twl-core IRQ allocation into twl[4030|6030]-irq filesBenoit Cousson4-37/+56
During DT adaptation, the irq_alloc_desc was added into twl-core, but due to the rather different and weird IRQ management required by the twl4030, it is much better to have a different approach for it. The issue is that twl4030 uses a two level IRQ mechanism but handles all the PWR interrupts as part of the twl-core interrupt range. It ends up with a range of 16 interrupts total for CORE and PWR. The other twl4030 functionalities already have a dedicated driver and thus their IRQs and irqdomain can and should be defined localy. twl6030 is using a single level IRQ controller and thus does not require any trick. Move the irq_alloc_desc and irq_domain_add_legacy in twl4030-irq and twl6030-irq. Allocate together CORE and PWR IRQs for twl4030-irq. Conflicts: drivers/mfd/twl-core.c Signed-off-by: Benoit Cousson <b-cousson@ti.com> Acked-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-22mfd: Remove references already defineid in header file from twl-coreBenoit Cousson1-5/+2
The twl-core exported functions are already declared in twl-core.h Include the header file instead or re-declaring the functions. Signed-off-by: Benoit Cousson <b-cousson@ti.com> Acked-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-22mfd: Remove unneeded header from twl-coreFelipe Balbi1-4/+0
This driver doesn't really need <plat/cpu.h>, so remove it. Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-22mfd: Make twl-core not depend on pdata->irq_base/endFelipe Balbi1-34/+27
With sparse IRQs the driver shouldn't depend at all on any IRQ values coming from board-file. Remove every occurences of pdata->irq_base/end. Signed-off-by: Felipe Balbi <balbi@ti.com> Signed-off-by: Benoit Cousson <b-cousson@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-22ARM: OMAP2+: board-omap4-*: Do not use anymore TWL6030_IRQ_BASE in board filesBenoit Cousson2-13/+15
With the introduction of dynamically allocated IRQ in the twl6030 driver, the board files can no longer rely of static IRQ defines like before. Retrieve the value dynamically allocated from the mmc -> twl6030 init callback. Note: The Panda board does not seems to use the card detect IRQ. Signed-off-by: Benoit Cousson <b-cousson@ti.com> Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-22mfd: Return twl6030_mmc_card_detect IRQ for board setupBenoit Cousson1-1/+2
Card detect IRQ from the TWL6030 used to be provided to the MMC controller code using a statically allocated IRQ scheme: card_detect_irq = TWL6030_IRQ_BASE + MMCDETECT_INTR_OFFSET; This is no longer valid in a SPARSE_IRQ context since there is no more pre-defined TWL6030_IRQ_BASE. Return the proper card detect IRQ value in the twl6030_mmc_card_detect_config that will be called from the MMC controller. Signed-off-by: Benoit Cousson <b-cousson@ti.com> Cc: Felipe Balbi <balbi@ti.com> Cc: Tony Lindgren <tony@atomide.com> Cc: Rajendra Nayak <rnayak@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-21Revert "mfd: Add platform data for MAX8997 haptic driver"Samuel Ortiz1-52/+1
This reverts commit 02b09703e7a411f80e5ec037b3abf14061a61933. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-20mfd: Add support for TPS65090Venu Byravarasu4-0/+446
TPS65090 is a Texas Instrument PMIC. It contains 3 Step-Down converters, 2 always on LDO's and 7 current limited load switches. Signed-off-by: Venu Byravarasu <vbyravarasu@nvidia.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-20mfd: Add some da9052-i2c section annotationsDmitry Torokhov1-2/+2
da9052_i2c_remove() can and should be marked as __devexit. Signed-off-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-20mfd: Build rtc5t583 only if I2C config is selected to y.Laxman Dewangan1-1/+1
Fixing build error reported by Stephen Rothwell: drivers/built-in.o: In function `rc5t583_i2c_init': rc5t583.c:(.init.text+0xb3db): undefined reference to `i2c_register_driver' drivers/built-in.o: In function `rc5t583_i2c_probe': rc5t583.c:(.devinit.text+0x8fa0): undefined reference to `regmap_init_i2c' drivers/built-in.o: In function `rc5t583_i2c_exit': rc5t583.c:(.exit.text+0x708): undefined reference to `i2c_del_driver' Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Add anatop mfd driverYing-Chun Liu (PaulLiu)4-0/+186
Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org> Acked-by: Shawn Guo <shawn.guo@linaro.org> Reviewed-by: Arnd Bergmann <arnd@arndb.de> Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Cc: Venu Byravarasu <vbyravarasu@nvidia.com> Cc: Peter Korsgaard <jacmet@sunsite.dk> Cc: Rob Lee <rob.lee@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Fix compilation error in tps65910.hVenu Byravarasu1-0/+2
'struct gpio_chip' is declared in include/asm-generic/gpio.h which is included by include/linux/gpio.h. However without including gpio.h, TPS65910.h declares a member of this type as part of 'struct tps65910' declaration. This causes compilation error, if gpio.h is not included before including tps65910.h, in source files. Signed-off-by: Venu Byravarasu <vbyravarasu@nvidia.com> Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Add 8420 variant to db8500-prcmuBengt Jonsson2-0/+3
Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Add 8520 PRCMU variant to db8500-prcmuBengt Jonsson2-0/+3
Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Reviewed-by: Mattias Nilssson <mattias.i.nilsson@stericsson.com> Reviewed-by: Jonas Aberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Remove obsolete hwacc implementation for db8500-prmcuMattias Nilsson2-198/+0
This patch removes the obsolete hwacc implementation in the DB8500 PRCMU driver. Signed-off-by: Mattias Nilsson <mattias.i.nilsson@stericsson.com> Reviewed-by: Jonas Aberg <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Use DIV_ROUND_CLOSEST for sm501 clockAxel Lin1-9/+1
Use DIV_ROUND_CLOSEST to replace sm501fb_round_div function. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Add support for RICOH PMIC RC5T583Laxman Dewangan5-0/+1104
Ricoh power management IC RC5T583 contains is multi functional device having multiple sub devices inside this. This device has multiple dcdc/ldo regulators, gpios, interrupt controllers, on-key, RTCs, ADCs. This device have 4 DCDCs, 8 LDOs, 8 GPIOs, 6 ADCs, 3 RTCs etc. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Make use of the ab8500 firmware read-modify-write serviceMattias Nilsson3-17/+41
This patch updates the AB8500 driver to make use of the I2C read-modify-write service in the PRCMU firmware. Signed-off-by: Mattias Nilsson <mattias.i.nilsson@stericsson.com> Reviewed-by: Mattias Wallin <mattias.wallin@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Add a prcmu_abb_write_masked routine to db8500-prcmuMattias Nilsson2-3/+32
This patch adds driver support for the I2C read-modify-write service in the U8500 PRCMU firmware. Signed-off-by: Mattias Nilsson <mattias.i.nilsson@stericsson.com> Reviewed-by: Jonas ABERG <jonas.aberg@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Support for the AB8500 AB8505 variantBengt Jonsson2-59/+72
This builds upon the changes done to support AB9540 so as also to support the AB8505 derivative of the AB8500 circuit. Signed-off-by: Bengt Jonsson <bengt.g.jonsson@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Don't use mutex_lock_interruptible in ab8500-coreRabin Vincent1-9/+3
This disadvantage of having it interruptible is that it would appear to work OK in most situations, but in the rare case that this call does fail, it can lead to misconfiguration of the AB, such as a regulator not being turned off and leading to a platform power consumption increase. There's no real benefit to having this interruptible. Make it a plain mutex_lock. The non-interruptability matches other low-level I/O functions such as SPI and I2C. Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16ARM: S3C64XX: Hook up supply for WM8994 LDOs on LittlemillMark Brown1-2/+10
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Remove unused LDO supply field from WM8994 pdataMark Brown2-3/+4
It's causing confusion with the regulator level field of the same name and serves no useful function. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Use correct variable name for tps65910 regmap configLaxman Dewangan1-2/+2
This was the copy-paste issue in reg cache support code where variable name for regmap config was not really starting from the device name, it was starting from some other device name. Fixing this so that variable name contains actual device name. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: Add platform data for MAX8997 haptic driverChanwoo Choi1-1/+52
MAX8997 device does not support haptic function of it. This patch adds platform data for for MAX8997 haptic driver. Signed-off-by: Donggeun Kim <dg77.kim@samsung.com> Signed-off-by: Myungjoo Ham <myungjoo.ham@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: wm8994: Fix register default for WM1811 AntiPOP2Mark Brown1-1/+1
Should be all bits clear. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-16mfd: wm8994: Remove defaults for volatile registersMark Brown1-17/+0
Some volatile registers accidentally had defaults added, though there were no harmful side effects other than increased memory consumption. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd: Fix pm8606 build failureSamuel Ortiz1-0/+2
Reported by Andrew Morton <akpm@linux-foundation.org>, with i386 allmodconfig: ERROR: "pm8606_osc_disable" [drivers/video/backlight/88pm860x_bl.ko] undefined! ERROR: "pm8606_osc_enable" [drivers/video/backlight/88pm860x_bl.ko] undefined! ERROR: "pm8606_osc_disable" [drivers/leds/leds-88pm860x.ko] undefined! ERROR: "pm8606_osc_enable" [drivers/leds/leds-88pm860x.ko] undefined! Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd: Fix a typo in MFD_MAX8997 Kconfig entryAxel Lin1-1/+1
Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd : Check if the other db8500 core is in WFIDaniel Lezcano4-0/+23
This patch allows to check if the other core is in WFI mode. It is the last check the idle routine has to do before entering into the retention state. Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd : Check if the db8500 prcmu has pending irqDaniel Lezcano3-0/+29
This patch allows to check if there are some pending irqs on the prcmu. Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd : Copy the db8500 gic setting to the prcmuDaniel Lezcano3-0/+29
In the case we go to the retention mode, we decoupled the gic in order to have the A9 core to reach a stable WFI state. But we want the prcmu to wake up the A9 when the gic has a pending irq which is done by copying the gic settings to the to the prcmu. Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd : Check if there are pending irq on the db8500 gicDaniel Lezcano3-0/+42
This patch introduces a routine to check if there are some irqs pending on the gic. Usually this check is not relevant because it appears racy (an irq can arrive right after this check), but in the ux500 it makes sense because the prcmu decouples the gic from the A9 cores. Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd : Cleanup duplicate db8500 definitionsDaniel Lezcano1-10/+7
I missed in my previous patch the A9_MASK_REQ[_MASK] were already defined. Let's remove the duplicate definitions. The PRCMU_GIC_DELAY macro could be removed as it is not really useful here. Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd: Return proper error if s5m-core regmap_init_i2c failsAxel Lin1-5/+4
Also remove a redundant semicolon from return statement. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06led: Modified power control of pm860x ledJett.Zhou1-0/+23
Since several sub modules such as backlight, leds and vibrator depend on the refernce group and internal oscillator in pm8606, so modified the power control of led in pm8606 by unified interface. Signed-off-by: Jett.Zhou <jtzhou@marvell.com> Cc: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06backlight: Modified power control of pm860x backlightJett.Zhou1-21/+28
Since several sub modules such as backlight, leds and vibrator depend on the refernce group and internal oscillator in pm8606, so modified the power control of backlight in pm8606 by unified interface. Signed-off-by: Jett.Zhou <jtzhou@marvell.com> Cc: Richard Purdie <rpurdie@rpsys.net> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd: Code cleanup for pm8606 sub-dev initializationJett.Zhou1-6/+11
Collect all the sub-devices of pm8606 initialization into device_pm8606_init() for code clean up. Signed-off-by: Jett.Zhou <jtzhou@marvell.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd: Add power control interface for pm8606 chipJett.Zhou2-0/+117
The reference group and internal oscillator are shared by sub-devs like led, backlight and vibrator in PM8606 chip. Now introduce a voting mechanism to enable/disable it. Add pm8606_osc_enable() and pm8606_osc_disable() interface and related defines to support this. This interface will be called by vibrator led and backlight driver.The refernce group and internal oscillator are enabled only when at least one of it's clients holds it on or disabled only all the clients don't use it any more based on the above mechanism. Signed-off-by: Jett.Zhou <jtzhou@marvell.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd: Fix wm831x-spi table id name typo in MODULE_DEVICE_TABLE macroHai Dong1-1/+1
Signed-off-by: Hai Dong <hai.dong@polycom.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd: Include linux/mfd/pcf50633/mbc.h in pcf50633-irq.cAxel Lin1-6/+1
Include linux/mfd/pcf50633/mbc.h instead of duplicating the same defines. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd: Include linux/mfd/pcf50633/pmic.h in pcf50633-gpio.cAxel Lin1-26/+1
Include linux/mfd/pcf50633/pmic.h instead of duplicating the same defines. Signed-off-by: Axel Lin <axel.lin@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd: Correct readability of WM8994 DC servo 4E registerMark Brown1-0/+1
It should be marked as readable but wasn't, breaking DC servo operation. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd: Use regmap for tps65910 register access.Laxman Dewangan3-77/+48
Using regmap apis for accessing the device registers and using RBTREE caching mechanims for caching registers. Enabling caching of the registers which is used for voltage controls. By doing this, the modify_bits operation is faster as it does not involve the i2c register read from device, just read from cache. This results faster set voltage operation. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
2012-03-06mfd: Add ability to wake the system for 88pm860xJett.Zhou4-0/+79
For 88pm860x pmic, it can wake the system from low power mode by irq, its sub-devs like RTC and onkey can be enabled for this usage. Signed-off-by: Jett.Zhou <jtzhou@marvell.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>