summaryrefslogtreecommitdiffstats
path: root/drivers/mfd
Commit message (Collapse)AuthorAgeFilesLines
* mfd: twl4030-madc: Remove __exit_p annotationArnd Bergmann2013-03-151-1/+1
| | | | | | | | | | | | | | | 4740f73fe5 "mfd: remove use of __devexit" removed the __devexit annotation on the twl4030_madc_remove function, but left an __exit_p() present on the pointer to this function. Using __exit_p was as wrong with the devexit in place as it is now, but now we get a gcc warning about an unused function. In order for the twl4030_madc_remove to work correctly in built-in code, we have to remove the __exit_p. Cc: Bill Pemberton <wfp5p@virginia.edu> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Signed-off-by: Arnd Bergmann <arnd@arndb.de> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: ab8500-gpadc: Complain if we fail to enable vtvout LDOAxel Lin2013-03-121-4/+13
| | | | | | | | | | | | | | | | | | Since commit c8801a8e "regulator: core: Mark all get and enable calls as __must_check", we must check return value of regulator_enable() to silence below build warning. CC drivers/mfd/ab8500-gpadc.o drivers/mfd/ab8500-gpadc.c: In function 'ab8500_gpadc_runtime_resume': drivers/mfd/ab8500-gpadc.c:598:18: warning: ignoring return value of 'regulator_enable', declared with attribute warn_unused_result [-Wunused-result] drivers/mfd/ab8500-gpadc.c: In function 'ab8500_gpadc_probe': drivers/mfd/ab8500-gpadc.c:655:18: warning: ignoring return value of 'regulator_enable', declared with attribute warn_unused_result [-Wunused-result] Also convert to devm_regulator_get(), this fixes a missing regulator_put() call in ab8500_gpadc_remove(). Signed-off-by: Axel Lin <axel.lin@ingics.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: twl4030-audio: Fix argument type for twl4030_audio_disable_resource()Mark Brown2013-03-121-1/+1
| | | | | | | | | Looks like the conversion to enum was missed for the definition of this function, the declaration has been updated. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: tps65912: Declare and use tps65912_irq_exit()Mark Brown2013-03-121-0/+1
| | | | | | | | Clean up interrupts on exit, silencing a sparse warning caused by tps65912_irq_exit() being defined but not prototyped as we go. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: palmas: Provide irq flags through DT/platform dataLaxman Dewangan2013-03-121-3/+33
| | | | | | | | | | | | | | | | | Currently driver sets the irq type to IRQF_TRIGGER_LOW which is causing interrupt registration failure in ARM based SoCs as: [ 0.208479] genirq: Setting trigger mode 8 for irq 118 failed (gic_set_type+0x0/0xf0) [ 0.208513] dummy 0-0059: Failed to request IRQ 118: -22 Provide the irq flags through platform data if device is registered through board file or get the irq type from DT node property in place of hardcoding the irq flag in driver to support multiple platforms. Also configure the device to generate the interrupt signal according to flag type. Signed-off-by: Laxman Dewangan <ldewangan@nvidia.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: Make AB8500_CORE select POWER_SUPPLY to fix build errorAxel Lin2013-03-121-0/+1
| | | | | | | | | | | | | This patch fixes below build error when CONFIG_POWER_SUPPLY is not set. drivers/built-in.o: In function `ab8500_power_off': drivers/mfd/ab8500-sysctrl.c:37: undefined reference to `power_supply_get_by_name' drivers/mfd/ab8500-sysctrl.c:53: undefined reference to `power_supply_get_by_name' make: *** [vmlinux] Error 1 Signed-off-by: Axel Lin <axel.lin@ingics.com> Acked-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: omap-usb-host: Actually update hostconfigRoger Quadros2013-03-121-3/+3
| | | | | | | | | | The helper functions omap_usbhs_rev1_hostconfig() and omap_usbhs_rev2_hostconfig() don't write into the hostconfig register. Make sure that we write the return value into the hostconfig register. Signed-off-by: Roger Quadros <rogerq@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
* mfd: convert to idr_alloc()Tejun Heo2013-02-271-7/+6
| | | | | | | | | Convert to the much saner new idr interface. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* Merge tag 'mfd-3.9-1' of ↵Linus Torvalds2013-02-2433-997/+2941
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6 Pull MFS updates from Samuel Ortiz: "This is the MFD pull request for the 3.9 merge window. No new drivers this time, but a bunch of fairly big cleanups: - Roger Quadros worked on a OMAP USBHS and TLL platform data consolidation, OMAP5 support and clock management code cleanup. - The first step of a major sync for the ab8500 driver from Lee Jones. In particular, the debugfs and the sysct interfaces got extended and improved. - Peter Ujfalusi sent a nice patchset for cleaning and fixing the twl-core driver, with a much needed module id lookup code improvement. - The regular wm5102 and arizona cleanups and fixes from Mark Brown. - Laxman Dewangan extended the palmas APIs in order to implement the palmas GPIO and rt drivers. - Laxman also added DT support for the tps65090 driver. - The Intel SCH and ICH drivers got a couple fixes from Aaron Sierra and Darren Hart. - Linus Walleij patchset for the ab8500 driver allowed ab8500 and ab9540 based devices to switch to the new abx500 pin-ctrl driver. - The max8925 now has device tree and irqdomain support thanks to Qing Xu. - The recently added rtsx driver got a few cleanups and fixes for a better card detection code path and now also supports the RTS5227 chipset, thanks to Wei Wang and Roger Tseng." * tag 'mfd-3.9-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (109 commits) mfd: lpc_ich: Use devres API to allocate private data mfd: lpc_ich: Add Device IDs for Intel Wellsburg PCH mfd: lpc_sch: Accomodate partial population of the MFD devices mfd: da9052-i2c: Staticize da9052_i2c_fix() mfd: syscon: Fix sparse warning mfd: twl-core: Fix kernel panic on boot mfd: rtsx: Fix issue that booting OS with SD card inserted mfd: ab8500: Fix compile error mfd: Add missing GENERIC_HARDIRQS dependecies Documentation: Add docs for max8925 dt mfd: max8925: Add dts mfd: max8925: Support dt for backlight mfd: max8925: Fix onkey driver irq base mfd: max8925: Fix mfd device register failure mfd: max8925: Add irqdomain for dt mfd: vexpress: Allow vexpress-sysreg to self-initialise mfd: rtsx: Support RTS5227 mfd: rtsx: Implement driving adjustment to device-dependent callbacks mfd: vexpress: Add pseudo-GPIO based LEDs mfd: ab8500: Rename ab8500 to abx500 for hwmon driver ...
| * mfd: lpc_ich: Use devres API to allocate private dataAaron Sierra2013-02-151-5/+2
| | | | | | | | | | | | | | And fix a kzalloc argument inversion bug while converting to devres. Signed-off-by: Aaron Sierra <asierra@xes-inc.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
| * Merge branch 'usbhost17-for-mfd' of git://github.com/rogerq/linux into for-nextSamuel Ortiz2013-02-142-335/+466
| |\ | | | | | | | | | Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
| | * mfd: omap-usb-host: get rid of build warningRoger Quadros2013-02-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixes the below build warning when driver is built-in. drivers/mfd/omap-usb-host.c:750:12: warning: ‘usbhs_omap_remove’ defined but not used [-Wunused-function] Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-host: Don't spam console on clk_set_parent failureRoger Quadros2013-02-131-9/+9
| | | | | | | | | | | | | | | | | | | | | | | | clk_set_parent is expected to fail on OMAP3 platforms. We don't consider that as fatal so don't spam console. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-host: clean up omap_usbhs_init()Roger Quadros2013-02-131-48/+81
| | | | | | | | | | | | | | | | | | | | | | | | | | | We split initializing revision 1 and revision 2 into different functions. Initialization is now done dynamically so that only the number of ports available on the system are initialized. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-host: Get rid of unnecessary spinlockRoger Quadros2013-02-131-16/+0
| | | | | | | | | | | | | | | | | | | | | | | | The driver does not have an interrupt handler and we don't really need a spinlock, so get rid of it. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-host: Manage HSIC clocks for HSIC modeRoger Quadros2013-02-131-14/+83
| | | | | | | | | | | | | | | | | | | | | | | | Enable the optional HSIC clocks (60MHz and 480MHz) for the ports that are configured in HSIC mode. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-host: cleanup clock management codeRoger Quadros2013-02-131-80/+106
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | All ports have similarly named port clocks so we can bunch them into a port data structure and use for loop to enable/disable the clocks. Dynamically allocate and get clocks based on number of ports available on the platform Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-host: override number of ports from platform dataRoger Quadros2013-02-131-13/+21
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both OMAP4 and 5 exhibit the same revision ID in the REVISION register but they have different number of ports i.e. 2 and 3 respectively. So we can't rely on REVISION register for number of ports on OMAP5 and depend on platform data (or device tree) instead. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-host: know about number of ports from revision registerRoger Quadros2013-02-131-5/+28
| | | | | | | | | | | | | | | | | | | | | The revision register should tell us how many ports are present. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-host: Use devm_kzalloc() and devm_request_and_ioremap()Roger Quadros2013-02-131-27/+11
| | | | | | | | | | | | | | | | | | | | | Use devm_ variants of kzalloc and ioremap. Also clean up error path. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap_usb_host: Avoid missing platform data checks in suspend/resumeRoger Quadros2013-02-131-10/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | Get rid of the unnecessary missing platform data checks in runtime_suspend/resume. We are already checking for missing platform data in probe. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-tll: Add OMAP5 revision and HSIC supportRoger Quadros2013-02-131-0/+14
| | | | | | | | | | | | | | | | | | | | | | | | The TLL module on OMAP5 has 3 channels. HSIC mode requires the TLL channel to be in Transparent UTMI mode. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-tll: serialize access to TLL deviceRoger Quadros2013-02-131-26/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | Get rid of the unnecessary spin_lock_irqsave/restore() as there is no interrupt handler for this driver. Instead we serialize access to tll_dev using a global spinlock. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-tll: Fix error messageRoger Quadros2013-02-131-9/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | omap_enable/disable_tll() can fail if TLL device is not initialized. It could be due to multiple reasons and not only due to missing platform data. Also make local variables static and use 'struct device *' instead of 'struct platform_device *' for global reference. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-tll: Check for missing platform data in probeRoger Quadros2013-02-131-10/+5
| | | | | | | | | | | | | | | | | | | | | | | | No need to check for missing platform data in runtime_suspend/resume as it makes more sense to do it in the probe function. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-tll: introduce and use mode_needs_tll()Roger Quadros2013-02-131-8/+12
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is a handy macro to check if the port requires the USB TLL module or not. Use it to Enable the TLL module and manage the clocks. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-tll: Clean up clock handlingRoger Quadros2013-02-131-33/+54
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Every channel has a functional clock that is similarly named. It makes sense to use a for loop to manage these clocks as OMAPs can come with up to 3 channels. Dynamically allocate and get channel clocks depending on the number of clocks avaiable on the platform. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com> Acked-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | * mfd: omap-usb-tll: Use devm_kzalloc/ioremap and clean up error pathRoger Quadros2013-02-131-26/+12
| | | | | | | | | | | | | | | | | | | | | Use devm_ variants of kzalloc() and ioremap(). Simplify the error path. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-tll: Fix channel count detectionRoger Quadros2013-02-131-9/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | Fix channel count detecion for REV2. Also, don't give up if we don't recognize the IP Revision. We assume the default number of channels (i.e. 3) for unrecognized IPs. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com>
| | * mfd: omap-usb-host: Consolidate OMAP USB-HS platform data (part 2/3)Roger Quadros2013-02-132-43/+31
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let's have a single platform data structure for the OMAP's High-Speed USB host subsystem instead of having 3 separate ones i.e. one for board data, one for USB Host (UHH) module and one for USB-TLL module. This makes the code much simpler and avoids creating multiple copies of platform data. Signed-off-by: Roger Quadros <rogerq@ti.com> Reviewed-by: Felipe Balbi <balbi@ti.com> For the ehci-omap.c part: Acked-by: Alan Stern <stern@rowland.harvard.edu>
| * | mfd: lpc_ich: Add Device IDs for Intel Wellsburg PCHJames Ralston2013-02-141-0/+38
| | | | | | | | | | | | | | | | | | | | | | | | This patch adds the Watchdog Timer Device IDs for the Intel Wellsburg PCH Signed-off-by: James Ralston <james.d.ralston@intel.com> Acked-by: Peter Tyser <ptyser@xes-inc.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
| * | mfd: lpc_sch: Accomodate partial population of the MFD devicesDarren Hart2013-02-141-76/+71
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The current probe aborts if any of the 3 base address registers are disabled. On a TunnelCreek system I am working on, this resulted in the SMBIOS and GPIO devices being removed when it couldn't read the base address for the watchdog timer. This patch accommodates partial population of the lpc_sch_cells array and only aborts if all the base address registers are disabled. A max size array is allocated and the individual device cells are added to it after their base addresses are successfully determined. This simplifies the code a bit by removing the need for the separate tunnelcreek cells array and combining some of the add/remove logic. Cc: Grant Likely <grant.likely@secretlab.ca>, Cc: Denis Turischev <denis@compulab.co.il>, Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>, Cc: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Darren Hart <dvhart@linux.intel.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
| * | mfd: da9052-i2c: Staticize da9052_i2c_fix()Fabio Estevam2013-02-141-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | da9052_i2c_fix() is only used locally, so let it be static. Fix the following sparse warning: drivers/mfd/da9052-i2c.c:63:5: warning: symbol 'da9052_i2c_fix' was not declared. Should it be static? Cc: Ashish Jangam <ashish.jangam@kpitcummins.com> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
| * | mfd: syscon: Fix sparse warningFabio Estevam2013-02-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fix the following sparse warnings: drivers/mfd/syscon.c:40:15: warning: symbol 'syscon_node_to_regmap' was not declared. Should it be static? drivers/mfd/syscon.c:56:15: warning: symbol 'syscon_regmap_lookup_by_compatible' was not declared. Should it be static? drivers/mfd/syscon.c:72:15: warning: symbol 'syscon_regmap_lookup_by_phandle' was not declared. Should it be static? Cc: Dong Aisheng <dong.aisheng@linaro.org> Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
| * | mfd: twl-core: Fix kernel panic on bootJon Hunter2013-02-141-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Commit 8a6aaa3 (mfd: twl-core: Collect global variables behind one private structure (global)) removed the variable "inuse" that is used to determine if the device has been initialised and now use the twl_priv structure instead. This is causing the kernel to panic on OMAP3+ devices using the twl driver, because we try to access the twl_priv->ready member before checking if twl_priv is initialised. Fix this and move this test to the beginning of the twl_i2c_read/write function because twl_get_last_module() also uses the twl_priv structure. Signed-off-by: Jon Hunter <jon-hunter@ti.com> Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
| * | Merge branch 'abx500-pinctrl-for-mfd' of ↵Samuel Ortiz2013-02-141-3/+50
| |\ \ | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl into for-next Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
| | * | mfd: ab8500: allow AB9540 based devices to use ABX500 pinctrlLee Jones2013-02-081-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old AB8500 GPIO driver has been un-BROKEN and converted into a multi-platform pinctrl driver. If any AB9540 based devices wish to request any GPIO pins that it offers, they can after this patch. Cc: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| | * | mfd: ab8500: ensure new AB8500 pinctrl driver is probed correctlyLee Jones2013-02-081-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The old, BROKEN AB8500 GPIO driver has been revamped as a shiny new pinctrl driver and has been renamed as such. So, if we would like to make use of it, we need to register it via its new name. Cc: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| | * | mfd: ab8500: provide a irq_set_type() functionLee Jones2013-02-081-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In the AB8500 IRQ mask and unmask functions, we rely on testing for IRQ_TYPE_EDGE_RISING and IRQ_TYPE_EDGE_FALLING interrupts to physically mask and unmask the correct interrupt lines. In order for us to do that, the trigger needs to be set in the associated flags. However, unless a irq_set_type() function pointer is passed when registering the IRQ chip, the IRQ subsystem will refuse to do it. For that reason, we're providing one. Cc: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| | * | mfd: ab8500: actually handle the AB8500 GPIO IRQs correctlyLinus Walleij2013-02-081-3/+19
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The patch: "mfd: ab8500: prepare to handle AB8500 GPIO's IRQs correctly" altered the AB8500 IRQ mask/unmask functions such that they would handle masking on/off the falling edge IRQ if this was requested by the consumer. However the bit mask for hwirqs 43 and 44 was shifting the bit mask incorrectly, resulting in the wrong IRQ being mased/unmasked. Further while the patch would mask/unmask the correct line, when the interrupt actually came in, it would still be treated as a valid hwirq. The offsetting applied when masking/unmasking was not applied when handling the IRQ, i.e. the falling edge lines were not routed back to the rising edge lines. This fixes both cases. The end result has been tested with the SIM detect IRQ, GPIO12, hwirq 46 and 62. Cc: Samuel Ortiz <sameo@linux.intel.com> Cc: Lee Jones <lee.jones@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@stericsson.com>
| | * | mfd: ab8500: prepare to handle AB8500 GPIO's IRQs correctlyLee Jones2013-02-081-1/+25
| | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In an upcoming patch, the gpio-ab8500 driver will relinquish all IRQ handling capability and pass it back into the AB8500 core driver. This will aid in reducing massive code duplication within the kernel. Also, most of the functionality is already in the AB8500 core driver, as the GPIO IRQs are actually sandwiched between lots of other IRQs which the core driver already handles. All we're doing here is providing the core driver with knowledge that each GPIO has two IRQs assigned to it; one for rising and a separate one for falling. Cc: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
| * | mfd: rtsx: Fix issue that booting OS with SD card insertedWei WANG2013-02-141-0/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Realtek card reader supports both SD and MS card. According to the settings of rtsx MFD driver, SD host will be probed before MS host. If we boot/reboot Linux with SD card inserted, the resetting flow of SD card will succeed, and the following resetting flow of MS is sure to fail. Then MS upper-level driver will ask rtsx driver to turn power off. This request leads to the result that the following SD commands fail and SD card can't be accessed again. In this commit, Realtek's SD and MS host driver will check whether the card that upper driver requesting is the one existing in the slot. If not, Realtek's host driver will refuse the operation to make sure the exlusive accessing at the same time. Signed-off-by: Wei WANG <wei_wang@realsil.com.cn> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
| * | mfd: ab8500: Fix compile errorLinus Walleij2013-02-141-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When compiling the AB8500 core driver in the latest MFD tree the following happens: CC drivers/mfd/ab8500-debugfs.o /home/elinwal/linux-next/drivers/mfd/ab8500-debugfs.c:157:3: error: 'AB8500_SYS_CTRL1_BLOCK' undeclared here (not in a function) /home/elinwal/linux-next/drivers/mfd/ab8500-debugfs.c:157:2: error: array index in initializer not of integer type /home/elinwal/linux-next/drivers/mfd/ab8500-debugfs.c:157:2: error: (near initialization for 'debug_ranges') (...) This is due to a missing include statement, so fix it up. Cc: Lee Jones <lee.jones@linaro.org> Signed-off-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
| * | mfd: Add missing GENERIC_HARDIRQS dependeciesHeiko Carstens2013-02-141-34/+38
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A lot of mfd drivers select MFD_CORE which however depends on GENERIC_HARDIRQS support. So add the missing dependency to all drivers to get rid of this link error: ERROR: "irq_create_mapping" [drivers/mfd/mfd-core.ko] undefined! Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
| * | Merge branch 'for-mfd' of git://git.linaro.org/people/ljones/linux-3.0-ux500 ↵Samuel Ortiz2013-02-145-74/+1375
| |\ \ | | | | | | | | | | | | | | | | | | | | into for-next Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
| | * | mfd: ab8500-gpadc: Use new ab8500_gpadc_get() with name parameterPhilippe Langlais2013-02-041-13/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new format of ab8500_gpadc_get() accepts a device name as a parameter to specify which device to retrieve. This patch enforces the use of that new format. Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Philippe Langlais <philippe.langlais@linaro.org>
| | * | mfd: ab8500-gpadc: Remove unused 'struct ab8500_gpadc'Lee Jones2013-02-041-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The ab8500_gpadc structure carries lots of important information which most functions make good use of. The initial expectation was that ab8500_gpadc_runtime_idle() would be no exception; however, this hasn't been the case to date. Let's remove it for now and add it back in only when we have a use for it. Signed-off-by: Lee Jones <lee.jones@linaro.org>
| | * | mfd: ab8500-gpadc: Reduce conversion timeoutLee Jones2013-02-041-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Reduce the conversion timeout from 2s to 0.5s Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-by: Karl KOMIEROWSKI <karl.komierowski@stericsson.com>
| | * | mfd: ab8500-debugfs: sizeof() mismatch bugfixAshok G2013-02-041-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Simple pointer error fix to obtain the expected sizeof() result. Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Ashok G <ashok.g@stericsson.com> Reviewed-by: Mattias WALLIN <mattias.wallin@stericsson.com>
| | * | mfd: ab8500-gpadc: Add runtime pm supportLee Jones2013-02-041-6/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add runtime pm support to speed up multiple ADC reads in a row. Signed-off-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Jonas Aaberg <jonas.aberg@stericsson.com> Reviewed-by: Ulf HANSSON <ulf.hansson@stericsson.com>
OpenPOWER on IntegriCloud