summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* mfd: Mask and unmask wm8350 IRQs on request and freeMark Brown2009-12-135-41/+9
| | | | | | | | | | | | | | | | | | | | Bring the WM8350 IRQ API more in line with the generic IRQ API by masking and unmasking interrupts as they are requested and freed. This is mostly just a case of deleting the mask and unmask calls from the individual drivers. The RTC driver is changed to mask the periodic IRQ after requesting it rather than only unmasking the alarm IRQ. If the periodic IRQ fires in the period where it is reqested then there will be a spurious notification but there should be no serious consequences from this. The CODEC drive is changed to explicitly disable headphone jack detection prior to requesting the IRQs. This will avoid the IRQ firing with no jack set up. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Convert wm8350 IRQ handlers to irq_handler_tMark Brown2009-12-136-34/+59
| | | | | | | | | This is done as simple code transformation, the semantics of the IRQ API provided by the core are are still very different to those of genirq (mainly with regard to masking). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: ezx-pcap: Don't pass pcap pointer as subdev drvdata.Antonio Ospite2009-12-131-1/+0
| | | | | | | | | | | Abusing subdev drvdata is not needed anymore, as all pcap subdevs are now retrieving the pcap pointer from their parent device. This change removes a leftover coming from early versions of ezx-pcap and its subdevs drivers. Signed-off-by: Antonio Ospite <ospite@studenti.unina.it> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Allow configuration of VDCDC2 for tps65010Ben Dooks2009-12-132-0/+47
| | | | | | | | | | | | | | | Add function to allow the configuation fo the VDCDC2 register by external users, to allow changing of the standard and low-power running modes. This is needed, for example, for the Simtec IM2440D20 where we need to use the low-power mode to shutdown the LDO/DCDC that are not needed during suspend (saving substantial power) and the runtime use of the low-power mode to change VCore. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Simtec Linux Team <linux@simtec.co.uk> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Allow the board to choose any GPIO base for tps65010Ben Dooks2009-12-131-1/+1
| | | | | | | | | | | | | If the board does not care where the TPS turns up, then specifiying the value -1 to get gpiolib to dynamically allocate the base for the chip is valid. Change the test to look for != 0, so that any boards specifying zero will not end up with gpio that they didn't want. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Simtec Liunx Team <linux@simtec.co.uk> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Enable twl4030 32kHz oscillator low-power modeIlkka Koskinen2009-12-132-2/+12
| | | | | | | | Allows TWL's 32kHz oscillator to go in low-power mode when main battery voltage is running low. Signed-off-by: Ilkka Koskinen <ilkka.koskinen@nokia.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Allow platforms to specify an IRQ base for WM8350Mark Brown2009-12-131-0/+2
| | | | | | | | | This is currently unused by the wm8350 drivers but getting it merged now will reduce merge issues in the future when implementing wm8350 genirq support. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Fix more undefined twl4030-power resconfig value checksAmit Kucheria2009-12-131-2/+2
| | | | | | | | | | | | | | | | | Based on Aaro's previous fix, this needs to be fixed for the newly added remap_off and remap_sleep resources as well. The code tries to skip values initialized with -1, but since the values are unsigned the comparison is always true. The patch eliminates the following compiler warnings: drivers/mfd/twl4030-power.c: In function 'twl4030_configure_resource': drivers/mfd/twl4030-power.c:338: warning: comparison is always true due to limited range of data type Signed-off-by: Amit Kucheria <amit.kucheria@verdurent.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Optimised twl4030-power power scripts for the rx51Amit Kucheria2009-12-131-36/+82
| | | | | | | | | | | | | | The power scripts optimisation was mainly done by: Tero Kristo <tero.kristo@nokia.com> and Arnaud Mandy <ext-arnaud.2.mandy@nokia.com> I'm only refactoring and testing it against the mainline kernel. Signed-off-by: Amit Kucheria <amit.kucheria@verdurent.com> Cc: Tero Kristo <tero.kristo@nokia.com> Cc: linux-omap@vger.kernel.org Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Cleanup pcf50633_probe error handlingLars-Peter Clausen2009-12-131-17/+26
| | | | | | | | | | Currently the child devices were not freed if the irq could not be requested. This patch restructures the function, that in case of an error all previously allocated resources are freed. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Staticise __adp5520_ack_bits()Mark Brown2009-12-131-1/+2
| | | | | | | | The function is not exported as the __ indicates. __ Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: fix undefined twl4030-power resconfig value checksAaro Koskinen2009-12-132-3/+4
| | | | | | | | | | | | | | | | | | The code tries to skip values initialized with -1, but since the values are unsigned the comparison is always true. The patch eliminates the following compiler warnings: drivers/mfd/twl4030-power.c: In function 'twl4030_configure_resource': drivers/mfd/twl4030-power.c:338: warning: comparison is always true due to limited range of data type drivers/mfd/twl4030-power.c:358: warning: comparison is always true due to limited range of data type drivers/mfd/twl4030-power.c:363: warning: comparison is always true due to limited range of data type Signed-off-by: Aaro Koskinen <aaro.koskinen@nokia.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Add support for remapping twl4030-power power statesAmit Kucheria2009-12-132-0/+39
| | | | | | | | | | | | The <RESOURCE>_REMAP register allows configuration of the <RESOURCE> in case of a sleep or off transition. Allow this property of resources to be configured (through twl4030_resconfig) and add code to parse these values to program the registers accordingly. Signed-off-by: Amit Kucheria <amit.kucheria@verdurent.com> Cc: linux-omap@vger.kernel.org Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Add comments for the twl4030-power register and bit layoutAmit Kucheria2009-12-131-2/+10
| | | | | | | | | Describe how the resource registers are laid out and the various bit-fields in them. Signed-off-by: Amit Kucheria <amit.kucheria@verdurent.com> Cc: linux-omap@vger.kernel.org Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: twl4030-power: Rename DEVGROUP to DEV_GRPAmit Kucheria2009-12-131-8/+8
| | | | | | | | Stick to the names used in the reference manual Signed-off-by: Amit Kucheria <amit.kucheria@verdurent.com> Cc: linux-omap@vger.kernel.org Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Fix pcf50633-regulator drvdata usageLars-Peter Clausen2009-12-132-2/+4
| | | | | | | | | | | | Currently the pcf50633-regulator driver data is set to the pcf50633 core structure, but the pcf50633-regulator remove handler assumes that it is set to the regulator device. This patch fixes the issue by accessing the pcf506533 core structure through its parent device and setting the driver data to the regulator device. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Use platform_device_add_data to set pcf50633 regulator platform dataLars-Peter Clausen2009-12-131-1/+2
| | | | | | | | | | Platform devices allocated with platform_device_alloc should use platform_device_add_data to set the platform data, because kfree will be called on the platform_data when the device is released. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Fix memleak in pcf50633_client_dev_registerLars-Peter Clausen2009-12-136-28/+12
| | | | | | | | | | | | | Since platform_device_add_data copies the passed data, the allocated subdev_pdata is never freed. A simple fix would be to either free subdev_pdata or put it onto the stack. But since the pcf50633 child devices can rely on beeing children of the pcf50633 core device it's much more elegant to get access to pcf50633 core structure through that link. This allows to get completly rid of pcf5033_subdev_pdata. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Move pcf50633 messages to appropriate log levelsArnaud Patard2009-12-131-2/+2
| | | | | | | | IRQs masking/unmasking should be less verbose. Signed-off-by: Arnaud Patard <arnaud.patard@rtp-net.org> Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Make pcf50633 suspend/resume belong to i2c_driverLars-Peter Clausen2009-12-131-6/+6
| | | | | | | | | When not using the i2c suspend/resume callbacks the i2c client resumed before the i2c master. Signed-off-by: Lars-Peter Clausen <lars@metafoo.de> Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Disable unnecessary pcf50633 shutdown on lowsysPaul Fertser2009-12-131-0/+3
| | | | | | | | On gta02 hardware revision A5 it can actually bring the system down during normal operating conditions so we disable it. Signed-off-by: Paul Fertser <fercerpav@gmail.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Convert WM835x IRQ handling to use a data tableMark Brown2009-12-132-648/+387
| | | | | | | | | | | | | | Rather than open coding individual IRQs in each function which manipulates them store data for IRQs in a table which is then referenced in the users. This is a substantial code shrink and should be a performance win in cases where only a single IRQ goes off at once since instead of reading four of the second level IRQ registers for each interrupt we read only the sub-registers which have had an interrupt flagged. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Split wm8350 IRQ code into a separate fileMark Brown2009-12-134-763/+815
| | | | | | | | | | | In preparation for refactoring - it's over 700 lines of well-isolated code and having it in a file by itself makes things more managable. While we're at it make sure that we clean up the IRQ if we fail after acquiring it on init. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* input/keyboard: new driver for ADP5520 MFD PMICsMichael Hennerich2009-12-133-0/+231
| | | | | | | | Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Acked-by: Dmitry Torokhov <dtor@mail.ru> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Add ADP5520/ADP5501 driverMichael Hennerich2009-12-134-0/+688
| | | | | | | | | | | | | | | Base driver for Analog Devices ADP5520/ADP5501 MFD PMICs Subdevs: LCD Backlight : drivers/video/backlight/adp5520_bl.c LEDs : drivers/led/leds-adp5520.c GPIO : drivers/gpio/adp5520-gpio.c (ADP5520 only) Keys : drivers/input/keyboard/adp5520-keys.c (ADP5520 only) Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* gpio: adp5520: rename common defines and typosMichael Hennerich2009-12-131-16/+20
| | | | | | | | | | The common adp5520 mfd defines were namespaced to avoid collisions, so update the define used in this driver accordingly. The structs were also renamed to fix a spelling typo. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* backlight: adp5520: rename common defines and typosMichael Hennerich2009-12-131-53/+70
| | | | | | | | | | The common adp5520 mfd defines were namespaced to avoid collisions, so update the define used in this driver accordingly. The structs were also renamed to fix a spelling typo. Signed-off-by: Michael Hennerich <michael.hennerich@analog.com> Signed-off-by: Mike Frysinger <vapier@gentoo.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Fix 88PM8607 I2C dependencyHaojian Zhuang2009-12-131-1/+1
| | | | | | | | | 88PM8607 depends on I2C and MFD_CORE. Since 88PM8607 is built-in kernel, it also requires that I2C and MFD_CORE are built-in kernel also. Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Move asic3_remove to .devexit.textUwe Kleine-König2009-12-131-1/+1
| | | | | | | | | The function asic3_remove is used only wrapped by __devexit_p so define it using __devexit. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Add support for WM8320 PMICsMark Brown2009-12-133-3/+163
| | | | | | | | | | The WM8320 is an integrated power management subsystem providing voltage regulators, RTC, watchdog and other functionality. The WM8320 is derived from the WM831x and therefore shares most of the driver code with the WM831x. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* gpiolib: Make WM831x GPIO count dynamicMark Brown2009-12-133-3/+6
| | | | | | | This supports future devices with fewer GPIOs. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Refactor WM831x chip identificationMark Brown2009-12-131-40/+18
| | | | | | | | | Better support future device revisions by moving some of the output around and making the chip ID enumeration be the value expected in the ID register. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Don't abuse i2c_client.nameJean Delvare2009-12-132-5/+0
| | | | | | | | The name field of struct i2c_client is for i2c-core's use, it should never be changed by the drivers themselves. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Fix ab4500 compilation warningsSamuel Ortiz2009-12-131-1/+2
| | | | | | | When building the driver as a module, module_exit was missing, and subsys_initcall_sync() is not defined. Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: add AB4500 driverSrinidhi Kasagar2009-12-134-0/+480
| | | | | | | | | | | | | | This adds core driver support for AB4500 mixed signal multimedia & power management chip. This connects to U8500 on the SSP (pl022) and exports read/write functions for the device to get access to this chip. This also registers the client devices and sets the parent. Signed-off-by: srinidhi kasagar <srinidhi.kasagar@stericsson.com> Acked-by: Andrea Gallo <andrea.gallo@stericsson.com> Reviewed-by: Mark Brown <broonie@sirena.org.uk> Reviewed-by: Jean-Christophe <plagnioj@jcrosoft.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Add 88PM8607 driverHaojian Zhuang2009-12-134-0/+530
| | | | | | | | | | | | | This adds a core driver for 88PM8607 found in Marvell DKB development platform. This driver is a proxy for all accesses to 88PM8607 sub-drivers which will be merged on top of this one, RTC, regulators, battery and so on. This chip is manufactured by Marvell. Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com> Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* Merge branch 'ixp4xx' of ↵Linus Torvalds2009-12-1338-911/+461
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux-2.6 * 'ixp4xx' of git://git.kernel.org/pub/scm/linux/kernel/git/chris/linux-2.6: IXP4xx: GTWX5715 platform only has two PCI IRQ lines, not four. IXP4xx: Introduce IXP4XX_GPIO_IRQ(n) macro and convert IXP4xx platform files. IXP4xx: move Gemtek GTWX5715 platform macros to the platform code. IXP4xx: Remove unused Motorola PrPMC1100 platform macros. IXP4xx: move FSG platform macros to the platform code. IXP4xx: move DSM G600 platform macros to the platform code. IXP4xx: move NAS100D platform macros to the platform code. IXP4xx: move NSLU2 platform macros to the platform code. IXP4xx: move Coyote platform macros to the platform code. IXP4xx: move AVILA platform macros to the platform code. IXP4xx: move IXDP425 platform macros to the platform code. IXP4xx: Extend PCI MMIO indirect address space to 1 GB. IXP4xx: Fix compilation failure with CONFIG_IXP4XX_INDIRECT_PCI. IXP4xx: Drop "__ixp4xx_" prefix from in/out/ioread/iowrite functions for clarity. IXP4xx: Rename indirect MMIO primitives from __ixp4xx_* to __indirect_*. IXP4xx: Ensure index is positive in irq_to_gpio() and npe_request(). ARM: fix insl() and outsl() endianness on IXP4xx architecture. IXP4xx: Fix normally-disabled debugging text in drivers/net/arm/ixp4xx_eth.c. IXP4xx: change the timer base frequency to 66.666000 MHz.
| * IXP4xx: GTWX5715 platform only has two PCI IRQ lines, not four.Krzysztof Hałasa2009-12-051-21/+11
| | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: Introduce IXP4XX_GPIO_IRQ(n) macro and convert IXP4xx platform files.Krzysztof Hałasa2009-12-0510-234/+169
| | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: move Gemtek GTWX5715 platform macros to the platform code.Krzysztof Hałasa2009-12-053-121/+43
| | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: Remove unused Motorola PrPMC1100 platform macros.Krzysztof Hałasa2009-12-053-44/+0
| | | | | | | | | | | | | | PrPMC1100 is handled by IXDP425 platform code, there is no need for duplicate set of macros. Remove them. Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: move FSG platform macros to the platform code.Krzysztof Hałasa2009-12-056-60/+25
| | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: move DSM G600 platform macros to the platform code.Krzysztof Hałasa2009-12-055-64/+35
| | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: move NAS100D platform macros to the platform code.Krzysztof Hałasa2009-12-055-64/+31
| | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: move NSLU2 platform macros to the platform code.Krzysztof Hałasa2009-12-055-65/+32
| | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: move Coyote platform macros to the platform code.Krzysztof Hałasa2009-12-055-43/+19
| | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: move AVILA platform macros to the platform code.Krzysztof Hałasa2009-12-055-51/+18
| | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: move IXDP425 platform macros to the platform code.Krzysztof Hałasa2009-12-055-52/+25
| | | | | | | | Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: Extend PCI MMIO indirect address space to 1 GB.Krzysztof Hałasa2009-12-054-29/+29
| | | | | | | | | | | | | | | | | | IXP4xx CPUs can indirectly access the whole 4 GB PCI MMIO address space (using the non-prefetch registers). Previously the available space depended on the CPU variant, since one of the IXP43x platforms needed more than the usual 128 MB. 1 GB should be enough for everyone, and if not, we can trivially increase it. Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>
| * IXP4xx: Fix compilation failure with CONFIG_IXP4XX_INDIRECT_PCI.Krzysztof Hałasa2009-12-051-8/+15
| | | | | | | | | | | | | | | | Instead of including the heavy linux/mm.h for VMALLOC_START, test the addresses against PCI MIN and MAX addresses. Indirect PCI uses 1:1 mapping for MMIO space making this change possible. Signed-off-by: Krzysztof Hałasa <khc@pm.waw.pl>