aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd
Commit message (Collapse)AuthorAgeFilesLines
...
* | MFD: twl6040-codec: Add register cacheMisael Lopez Cruz2014-10-011-18/+93
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Add register cache and define register operations (read, write, set_bits, clear_bits) on cache only. So register operations performed on I2C registers are now differentiated. Register operations APIs exported by TWL6040 MFD are a wrapper to its I2C counterparts at the moment. Change-Id: I76137099e6264de9ac3213c596f662a50299aa82 Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com> Signed-off-by: Gabriel M. Beddingfield <gabrbedd@ti.com> Signed-off-by: Chris Kelly <c-kelly@ti.com>
* | MFD: twl6040-codec: Add uEvent based event notificationChris Kelly2014-10-011-3/+36
| | | | | | | | | | | | | | | | | | | | | | | | | | Add initial support for a kobject event based notification mechanism to inform userspace about TWL6040 events like handsfree overcurrent, vibrator overcurrent, thermal event. Since the events can be handled in other drivers apart from the MFD, a new API (twl6040_report_event) is created so that MFD clients can notify their events using a single kobject. Change-Id: I07f71d1693a6eb189ca07fffeb3ebc12e539d4ae Signed-off-by: Chris Kelly <c-kelly@ti.com>
* | OMAP4: Regulator: Correct LDOs state in STATE_MEMOleksandr Dmytryshyn2014-10-011-5/+8
| | | | | | | | | | | | | | | | | | | | | | | | All regulators have state_mem settings with flags 'enabled' and 'disabled'. If both flags have the same value (true or false) LDOs have incorrect setting and there are some warnings before entering the device to the sleep-mode. This patch correct settings for the LDO6, LDOLN and SYSEN for the TWL6032. Change-Id: I50b29ae503954826363279225b13967139106507 Signed-off-by: Oleksandr Dmytryshyn <oleksandr.dmytryshyn@ti.com>
* | MFD: TWL: Regulator: Add support for SYSENOleksandr Dmytryshyn2014-10-011-0/+5
| | | | | | | | | | | | | | | | | | | | Previously SYSEN pin was configured only for the OMAP4460. SYSEN is added to platform data, so that it can be modelled as an regulator and the state of it can be controlled through drivers and board file. Change-Id: I7ec8d690f94d0143563b904844ef9155eef20a17 Signed-off-by: Oleksandr Dmytryshyn <oleksandr.dmytryshyn@ti.com>
* | TWL: Make CLK32KG and CLK32KAUDIO shared between TWL6030/TWL6032Volodymyr Riazantsev2014-10-011-10/+10
| | | | | | | | | | | | | | | | Resources CLK32KG and CLK32KAUDIO are common for TWL6030/6032 and should be shared between them. Change-Id: I5a6f6c2896953b0620b75bb79ce4ea1d87c860bd Signed-off-by: Volodymyr Riazantsev <v.riazantsev@ti.com>
* | MFD: TWL: 6030: Regulator: Add support for VCORE1 and VCORE2Ambresh K2014-10-011-0/+10
| | | | | | | | | | | | | | | | | | VCORE1 and VCORE2 are added to platform data, so that it can be modelled as an SMPS adjustable regulator and the state of it can be controlled through drivers and board file. Change-Id: I070f7196879c4e989e401044761b02c9d4a067f3 Signed-off-by: Ambresh K <ambresh@ti.com>
* | OMAP4: Regulator: Perform additional check for some LDOsOleksandr Dmytryshyn2014-10-011-0/+35
| | | | | | | | | | | | | | | | | | | | | | | | For TWL6032 revision < ES1.1 with EEPROM revision < rev56.0 LDO6 and LDOLN must be always ON because of the hardware bug in the TWL6032. For TWL6032 revision >= ES1.1 with EEPROM revision >= rev56.0 those LDOs can be off in sleep-mode. If LDO6 or LDOLN is always on then SYSEN must be always on. This patch performs additional checks. Change-Id: I81e8e1a9dfdb628849277f4c3b4363bd0146cac4 Signed-off-by: Oleksandr Dmytryshyn <oleksandr.dmytryshyn@ti.com>
* | MFD: TWL: Regulator: Link USB LDO with USB OTGSergii Postulga2014-10-011-14/+9
| | | | | | | | | | | | | | | | | | | | By unknown reason, USB LDO regulator not linked to USB OTG, it just defined in board file. This patch adds this, that give possibility to control USB LDO by regulators framework. Change-Id: I73dfe3c7944dc46e25bf9bf053b2db36eeae2301 Signed-off-by: Sergii Postulga <x0153364@ti.com>
* | Regulator: TWL6030: Unmask PREQ in MASK_TRANSITION.Ambresh K2014-10-011-0/+21
| | | | | | | | | | | | | | | | | | | | | | | | Based on board configuration, unmask PREQ so that on de-assertion or assertion on PREQ{1,2,3} transition Executes ACT2SLP and SLP2ACT sleep sequence. By default APPs process group is unmasked, but can be overridden through board file using struct twl4030_power_data. Change-Id: Ib9f561c64210e5997865a4bf7a2203dca9a1d695 Signed-off-by: Ambresh K <ambresh@ti.com>
* | MFD: twl6040-codec: Reinitialize completion in automatic power-upSivakumar Pothireddy2014-10-011-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TWL6040 automatic power-up sequence uses the completion interface. The completion is marked when CODEC driver receives the READYINT which indicates automatic sequence has finished. When the system is highly loaded it has been seen that the CODEC threaded interrupt handler (and complete() call) runs after timeout has expired. If the retry condition is met, then the call to wait_for_completion_timeout() will immediately return because of the previous completion. Therefore it's required to reinitialize the completion structure. Change-Id: I6bb0c3149a1e2d03f67063cd1664147aff044f89 Signed-off-by: Sivakumar Pothireddy <sivakumar.pothireddy@ti.com> Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
* | omap-hsmmc: Fix issue during SD card disconnectViswanath Puttagunta2014-10-011-0/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Turning off IO & PBIAS cells and then SD card VMMC as soon as we get disconnect interrupt. Failure to do so is causing current spikes (latch-up issue)which can potentially burn the I/O cells. Enabled Debounce logic in TWL6030 so that erroneous disconnect/connect interrupts will be suppressed. This will also fix issue where SD card disconnect event was not getting detected when SD card is very slowly plugged out. Change-Id: I13f55451718b8cce3448245395b8d1344d4a2790 Signed-off-by: Viswanath Puttagunta <vishp@ti.com>
* | MFD: twl6040-codec: Add platform init/exitMisael Lopez Cruz2014-10-011-0/+15
| | | | | | | | | | | | | | | | | | Add init/exit to TWL6040 MFD platform data in order to provide a mechanism to allow platform level initializations (e.g. pin muxing). Change-Id: Ifea3af2ba94196e4b7d1ccd14ebcc541443cfe73 Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
* | MFD: twl6040-codec: Implement PDMCLK cold temp errataMisael Lopez Cruz2014-10-011-0/+14
| | | | | | | | | | | | | | | | | | | | No PDM clock output is generated when operating in cold temperatures. The suggested workaround consists of resetting LPPLL and HPPLL after Sleep/Deep-Sleep mode transitions, before entering in application mode. Change-Id: I30453def9de5636fb9b9201c945b1115d11ffe6e Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
* | MFD: Change TWL6025 references to TWL6032Graeme Gregory2014-10-011-24/+35
| | | | | | | | | | | | | | | | | | | | | | The TWL6025 was never released beyond sample form and was replaced by the PhoenixLite range of chips - TWL6032. Change the references to reference the TWL6032 class and name the registers to twl6032 in line with an actual released chip name to avoid confusion. Change-Id: Idef654724fcb174bcfc59a10dea600eea80ea1f0 Signed-off-by: Graeme Gregory <gg@slimlogic.co.uk> Signed-off-by: Volodymyr Riazantsev <v.riazantsev@ti.com>
* | MFD: twl6040-codec: Allow passing flags to IRQ requestMisael Lopez Cruz2014-09-301-2/+2
| | | | | | | | | | | | | | Allow passing irqflags to TWL6040 IRQ request API (twl6040_request_irq). Change-Id: I731931c4f8fc9aee57bb3707c94f7b763e140c0a Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
* | Merge branch 'android-omap-3.0' into android-omap-tuna-3.0Todd Poynor2013-03-131-2/+13
|\ \
| * | Merge branch 'android-3.0' into android-omap-3.0Todd Poynor2013-03-131-2/+13
| |\|
| | * mfd: Only unregister platform devices allocated by the mfd coreCharles Keepax2013-01-171-2/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit b9fbb62eb61452d728c39b2e5020739c575aac53 upstream. mfd_remove_devices would iterate over all devices sharing a parent with an mfd device regardless of whether they were allocated by the mfd core or not. This especially caused problems when the device structure was not contained within a platform_device, because to_platform_device is used on each device pointer. This patch defines a device_type for mfd devices and checks this is present from mfd_remove_devices_fn before processing the device. Signed-off-by: Charles Keepax <ckeepax@opensource.wolfsonmicro.com> Tested-by: Peter Tyser <ptyser@xes-inc.com> Reviewed-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* | | Merge branch 'android-omap-3.0' into android-omap-tuna-3.0Todd Poynor2013-01-164-8/+9
|\| |
| * | Merge branch 'android-3.0' into android-omap-3.0Todd Poynor2013-01-164-8/+9
| |\| | | | | | | | | | | | | | | | | | | Fixup incompatible code in opp.c: omap_init_opp_table() Change-Id: Iac7d60b814a539285d00e0a3dbb6e3f0060cb683 Signed-off-by: Todd Poynor <toddpoynor@google.com>
| | * ARM: pxa: remove irq_to_gpio from ezx-pcap driverArnd Bergmann2012-08-151-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 59ee93a528b94ef4e81a08db252b0326feff171f upstream. The irq_to_gpio function was removed from the pxa platform in linux-3.2, and this driver has been broken since. There is actually no in-tree user of this driver that adds this platform device, but the driver can and does get enabled on some platforms. Without this patch, building ezx_defconfig results in: drivers/mfd/ezx-pcap.c: In function 'pcap_isr_work': drivers/mfd/ezx-pcap.c:205:2: error: implicit declaration of function 'irq_to_gpio' [-Werror=implicit-function-declaration] Signed-off-by: Arnd Bergmann <arnd@arndb.de> Acked-by: Haojian Zhuang <haojian.zhuang@gmail.com> Cc: Samuel Ortiz <sameo@linux.intel.com> Cc: Daniel Ribeiro <drwyrm@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| | * random: remove rand_initialize_irq()Theodore Ts'o2012-08-152-5/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit c5857ccf293968348e5eb4ebedc68074de3dcda6 upstream. With the new interrupt sampling system, we are no longer using the timer_rand_state structure in the irq descriptor, so we can stop initializing it now. [ Merged in fixes from Sedat to find some last missing references to rand_initialize_irq() ] Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Sedat Dilek <sedat.dilek@gmail.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| | * mfd: wm831x: Feed the device UUID into device_add_randomness()Mark Brown2012-08-151-0/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 27130f0cc3ab97560384da437e4621fc4e94f21c upstream. wm831x devices contain a unique ID value. Feed this into the newly added device_add_randomness() to add some per device seed data to the pool. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| | * random: make 'add_interrupt_randomness()' do something saneTheodore Ts'o2012-08-151-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 775f4b297b780601e61787b766f306ed3e1d23eb upstream. We've been moving away from add_interrupt_randomness() for various reasons: it's too expensive to do on every interrupt, and flooding the CPU with interrupts could theoretically cause bogus floods of entropy from a somewhat externally controllable source. This solves both problems by limiting the actual randomness addition to just once a second or after 64 interrupts, whicever comes first. During that time, the interrupt cycle data is buffered up in a per-cpu pool. Also, we make sure the the nonblocking pool used by urandom is initialized before we start feeding the normal input pool. This assures that /dev/urandom is returning unpredictable data as soon as possible. (Based on an original patch by Linus, but significantly modified by tytso.) Tested-by: Eric Wustrow <ewust@umich.edu> Reported-by: Eric Wustrow <ewust@umich.edu> Reported-by: Nadia Heninger <nadiah@cs.ucsd.edu> Reported-by: Zakir Durumeric <zakir@umich.edu> Reported-by: J. Alex Halderman <jhalderm@umich.edu> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
* | | Merge branch 'android-omap-3.0' into android-omap-tuna-3.0Todd Poynor2012-04-194-17/+42
|\| | | | | | | | | | | | | | Change-Id: I336ba4d61beba035ecc237ccc68b012e48702a87 Signed-off-by: Todd Poynor <toddpoynor@google.com>
| * | Merge linux-omap-3.0 into android-omap-3.0Todd Poynor2012-04-194-17/+42
| |\ \ | | | | | | | | | | | | | | | | Change-Id: I86dcae86b15baab2cb26e2c53faafb57c606a2b5 Signed-off-by: Todd Poynor <toddpoynor@google.com>
| | * | Merge linux-stable 3.0.28 into linux-omap-3.0Todd Poynor2012-04-194-17/+42
| | |\| | | | | | | | | | | | | | | | | Change-Id: I76904a60370e2cb9cc29ccde5d526d9183ff4f8e Signed-off-by: Todd Poynor <toddpoynor@google.com>
| | | * mfd: Clear twl6030 IRQ status register only onceNishanth Menon2012-04-131-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 3f8349e6e98ba0455437724589072523865eae5e upstream. TWL6030 family of PMIC use a shadow interrupt status register while kernel processes the current interrupt event. However, any write(0 or 1) to register INT_STS_A, INT_STS_B or INT_STS_C clears all 3 interrupt status registers. Since clear of the interrupt is done on 32k clk, depending on I2C bus speed, we could in-adverently clear the status of a interrupt status pending on shadow register in the current implementation. This is due to the fact that multi-byte i2c write operation into three seperate status register could result in multiple load and clear of status and result in lost interrupts. Instead, doing a single byte write to INT_STS_A register with 0x0 will clear all three interrupt status registers without the related risk. Acked-by: Santosh Shilimkar <santosh.shilimkar@ti.com> Signed-off-by: Nishanth Menon <nm@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| | | * mfd: Fix cs5535 section mismatchChristian Gmeiner2012-03-121-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 97e43c983c721a47546e6db3b7711dcd912a6481 upstream. Silence following warnings: WARNING: drivers/mfd/cs5535-mfd.o(.data+0x20): Section mismatch in reference from the variable cs5535_mfd_drv to the function .devinit.text:cs5535_mfd_probe() The variable cs5535_mfd_drv references the function __devinit cs5535_mfd_probe() If the reference is valid then annotate the variable with __init* or __refdata (see linux/init.h) or name the variable: *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console WARNING: drivers/mfd/cs5535-mfd.o(.data+0x28): Section mismatch in reference from the variable cs5535_mfd_drv to the function .devexit.text:cs5535_mfd_remove() The variable cs5535_mfd_drv references the function __devexit cs5535_mfd_remove() If the reference is valid then annotate the variable with __exit* (see linux/init.h) or name the variable: *driver, *_template, *_timer, *_sht, *_ops, *_probe, *_probe_one, *_console Rename the variable from *_drv to *_driver so modpost ignore the OK references to __devinit/__devexit functions. Signed-off-by: Christian Gmeiner <christian.gmeiner@gmail.com> Acked-by: Andres Salomon <dilinger@queued.net> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| | | * mfd: Fix ACPI conflict checkJean Delvare2012-03-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 81b5482c32769abb6dfb979560dab2f952ba86fa upstream. The code is currently always checking the first resource of every device only (several times.) This has been broken since the ACPI check was added in February 2010 in commit 91fedede0338eb6203cdd618d8ece873fdb7c22c. Fix the check to run on each resource individually, once. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
| | | * mfd: Turn on the twl4030-madc MADC clockKyle Manna2012-01-061-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 3d6271f92e98094584fd1e609a9969cd33e61122 upstream. Without turning the MADC clock on, no MADC conversions occur. $ cat /sys/class/hwmon/hwmon0/device/in8_input [ 53.428436] twl4030_madc twl4030_madc: conversion timeout! cat: read error: Resource temporarily unavailable Signed-off-by: Kyle Manna <kyle@kylemanna.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| | | * mfd: Check for twl4030-madc NULL pointerKyle Manna2012-01-061-1/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit d0e84caeb4cd535923884735906e5730329505b4 upstream. If the twl4030-madc device wasn't registered, and another device, such as twl4030-madc-hwmon, calls twl4030_madc_conversion() a NULL pointer is dereferenced. Signed-off-by: Kyle Manna <kyle@kylemanna.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| | | * mfd: Copy the device pointer to the twl4030-madc structureKyle Manna2012-01-061-0/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 66cc5b8e50af87b0bbd0f179d76d2826f4549c13 upstream. Worst case this fixes the following error: [ 72.086212] (NULL device *): conversion timeout! Best case it prevents a crash Signed-off-by: Kyle Manna <kyle@kylemanna.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com>
| | | * mfd: Fix mismatch in twl4030 mutex lock-unlockSanjeev Premi2012-01-061-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit e178ccb33569da17dc897a08a3865441b813bdfb upstream. A mutex is locked on entry into twl4030_madc_conversion(). Immediate return on some error conditions leaves the mutex locked. This patch ensures that mutex is always unlocked before leaving the function. Signed-off-by: Sanjeev Premi <premi@ti.com> Cc: Keerthy <j-keerthy@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| | | * mfd: Fix twl-core oops while calling twl_i2c_* for unbound driverIlya Yanok2012-01-061-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit 8653be1afd60d6e8c36139b487e375b70357d9ef upstream. Check inuse variable before trying to access twl_map to prevent dereferencing of uninitialized variable. Signed-off-by: Ilya Yanok <yanok@emcraft.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| | | * revert "mfd: Fix twl4030 dependencies for audio codec"Greg Kroah-Hartman2011-12-091-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit 11b8fc6ae54bf18a48c94e181c37ca135b858b42, which was commit f09ee0451a44a4e913a7c3cec3805508f7de6c54 upstream. Koen Kooi <koen@dominion.thruhere.net> reports that this shouldn't have been applied to the 3.0 kernel as it isn't relevant there, only 3.1. Reported-by: Koen Kooi <koen@dominion.thruhere.net> Cc: Thomas Weber <weber@corscience.de> Cc: Peter Ujfalusi <peter.ujfalusi@ti.com> Cc: Samuel Ortiz <sameo@linux.intel.com> Cc: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
| | | * mfd: Fix twl4030 dependencies for audio codecThomas Weber2011-11-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | commit f09ee0451a44a4e913a7c3cec3805508f7de6c54 upstream. The codec for Devkit8000 (TWL4030) was not detected except when build with CONFIG_SND_SOC_ALL_CODECS. twl-core.c still uses the CONFIG_TWL4030_CODEC for twl_has_codec(). In commit 57fe7251f5bfc4332f24479376de48a1e8ca6211 the CONFIG_TWL4030_CODEC was renamed into CONFIG_MFD_TWL4030_AUDIO, thatswhy the codec was not detected. This patch renames the CONFIG_ TWL4030_CODEC into CONFIG_MFD_TWL4030_AUDIO in twl-core.c. Signed-off-by: Thomas Weber <weber@corscience.de> Acked-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: Samuel Ortiz <sameo@linux.intel.com> Cc: Jarkko Nikula <jarkko.nikula@bitmer.com> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
* | | | Merge branch 'android-omap-3.0' into android-omap-tuna-3.0Todd Poynor2012-02-221-2/+11
|\| | |
| * | | Merge branch 'linux-omap-3.0' into android-omap-3.0Todd Poynor2012-02-221-2/+11
| |\| |
| | * | MFD: TWL 6030: clear IRQ status register only onceNishanth Menon2012-02-221-2/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TWL6030 family of PMIC use a shadow interrupt status register while kernel processes the current interrupt event. However, any write(0 or 1) to register INT_STS_A, INT_STS_B or INT_STS_C clears all 3 interrupt status registers. Since clear of the interrupt is done on 32k clk, depending on I2C bus speed, we could in-adverently clear the status of a interrupt status pending on shadow register in the current implementation. This is due to the fact that multi-byte i2c write operation into three seperate status register could result in multiple load and clear of status and result in lost interrupts. Instead, doing a single byte write to INT_STS_A register with 0x0 will clear all three interrupt status registers without the related risk. Change-Id: Iba62dd1caeabf8c2db21d1b6c9fd62455f73205e Signed-off-by: Nishanth Menon <nm@ti.com>
* | | | HACK: mfd: twl6030: Don't disable BAT_VLOW interrupt after fired onceTodd Poynor2011-11-171-3/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | We can get 3-4 of these in a row, but no need to disable it. Change-Id: I9226d7b5af5922e764d167bbab12da9871e8f509 Signed-off-by: Todd Poynor <toddpoynor@google.com>
* | | | mfd: twl6040: HACK: Increase automatic power-up timeoutSimon Wilson2011-11-111-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | During suspend/resume, TWL6040 is taking longer to complete automatic power-up sequence, so the timeout value is increased. This patch is to be reverted once the issue is root caused. Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com> Signed-off-by: Simon Wilson <simonwilson@google.com>
* | | | Merge branch 'android-omap-3.0' into android-omap-tuna-3.0Erik Gilling2011-11-111-10/+69
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: drivers/mfd/twl6040-codec.c Change-Id: Ieb38108b8918870f5f8c0d29d2d1b0521d78706c
| * | | Merge branch 'linux-omap-3.0' into android-omap-3.0Erik Gilling2011-11-111-10/+69
| |\| |
| | * | MFD: twl6040-codec: Automatic power on failure checkPeter Ujfalusi2011-11-111-10/+69
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Check the following registers after we received the READYINT interrupt (init ready) from twl6040 to be sure that the boot sequence has been really completed: reg 0x05 must be 0x81 <- NCPCTL reg 0x06 must be 0x45 <- LDOCTL reg ox08 must be 0x01 <- LPPLLCTL Try to boot up using the automatic power on, if it still fails revert back to manual power control, and execute the sequence by hand. Change-Id: I91119f38d3258bd485647dc9dc9f901a57f67204 Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com> Signed-off-by: PankajJindal <pankajjindal@ti.com> Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
* | | | Merge branch 'android-omap-3.0' into android-omap-tuna-3.0Dima Zavin2011-11-101-14/+55
|\| | |
| * | | Merge branch 'linux-omap-3.0' into android-omap-3.0Dima Zavin2011-11-101-14/+55
| |\| |
| | * | MFD: twl6040: Enable/disable external 32kHz clockMisael Lopez Cruz2011-11-101-0/+46
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Allow TWL6040 MFD to make explicit use of external 32kHz clock. It's required for Power-On state, and can be disabled during Sleep state. Since external clocks might not be handled through clock framework, it's up to platforms/boards to implement the appropriate method as needed. Change-Id: I027bb51ec6263d8c1b04b6bc50d24077674be255 Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
| | * | MFD: twl6040: Remove unnecessary pdev local variableMisael Lopez Cruz2011-11-101-14/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | TWL6040 platform device is used only for error message prints, it can be removed as the twl6040 device pointer can be retrieved from main twl6040 struct. Change-Id: I1fb06020ffb6df2af7884ce3304844c8c52e0dc1 Signed-off-by: Misael Lopez Cruz <misael.lopez@ti.com>
* | | | Merge branch 'android-omap-3.0' into android-omap-tuna-3.0Colin Cross2011-11-032-3/+152
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: arch/arm/mach-omap2/dpll3xxx.c Change-Id: Ie53daed5cabbadef73d18969263ff2f7b77b3dc7