summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* twl6030: regulator: Configure STATE register instead of REMAPRajendra Nayak2010-03-031-10/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | This is no REMAP register on twl6030, instead there is a STATE register to drive a resource to a given state. The state register can be used to specify what state the resource should enter when its associated with a GRP. Register Bit field description is as below. The patch programmes the corresponding STATE registers for all LDO's to turn ON when assocaited with GRP_P1. STATE REG: Bit7 |Bit6 |Bit5 |Bit4 |Bit3 |Bit2 |Bit1 |Bit0 P3_GRP |P2_GRP |P1_GRP |RES |RES |RES |State1 |State0 State can be specified as below 00: OFF 01: ON 10: OFF 11: SLEEP Signed-off-by: Rajendra Nayak <rnayak@ti.com> Cc: Liam Girdwood <lrg@slimlogic.co.uk> Cc: Samuel Ortiz <sameo@linux.intel.com> Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
* regulator: Provide optional dummy regulator for consumersMark Brown2010-03-035-1/+135
| | | | | | | | | | | | | | | | | | | | | | | | In order to ease transitions with drivers are boards start using regulators provide an option to cause all regulator_get() calls to succeed, with a dummy always on regulator being supplied where one has not been configured. A warning is printed whenever the dummy regulator is used to aid system development. This regulator does not implement any regulator operations but will allow simple consumers which only do enable() and disable() calls to run. It is kept separate from the fixed voltage regulator to avoid Kconfig confusion on the part of users when it is extended to allow boards to explicitly use the dummy regulator to simplify cases where the majority of supplies are from fixed regulators without software control. This option is currently only effective for systems which do not specify full constriants. If required an override could also be provided to allow these systems to use the dummy regulator, though it is likely that unconfigured supplies on such systems will lead to error due to regulators being powered down more aggressively when not in use. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
* regulator: Assume regulators are enabled if they don't report anythingMark Brown2010-03-031-2/+2
| | | | | | | | | If a regulator driver does not provide a way to query if the driver is enabled then assume that it is enabled. This is very likely to reflect the actual state is more useful for callers than reporting an error. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
* regulator: Convert fixed voltage regulator to use enable_time()Mark Brown2010-03-031-2/+8
| | | | | | | It had an open coded version in enable(). Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
* regulator: Add WM8994 regulator supportMark Brown2010-03-033-0/+312
| | | | | | | | | The WM8994 contains two LDOs with mixed hardware/software control to minimise the number of external supplies required while delivering optimal voltages to minimise power consumption. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
* regulator: enable max8649 regulator driverHaojian Zhuang2010-03-034-0/+460
| | | | | | Signed-off-by: Haojian Zhuang <haojian.zhuang@marvell.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
* regulator: trivial: fix typos in user-visible Kconfig textAlex Chiang2010-03-031-2/+2
| | | | | | | | | Fix Kconfig text for some Wolfson Micro devices. Cc: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Alex Chiang <achiang@hp.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
* regulator: mc13783: consider Power Gates as digital regulators.Alberto Panizzo2010-03-032-6/+128
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | GPO regulators are digital outputs that can be enabled or disabled by a dedicated bit in mc13783 POWERMISC register. In this family can be count in also Power Gates (PWGT1 and 2): enabled by a dedicated pin a Power Gate is an hardware driven supply where the output (PWGTnDRV) follow this law: Bit PWGTxSPIEN | Pin PWGTxEN | PWGTxDRV | Read Back 0 = default | | | PWGTxSPIEN ---------------+-------------+----------+------------ 1 | x | Low | 0 0 | 0 | High | 1 0 | 1 | Low | 0 As read back value of control bit reflects the PWGTxDRV state (not the control value previously written) and mc13783 POWERMISC register contain only regulator related bits, a dedicated function to manage these bits is created here with the aim of tracing the real value of PWGTxSPIEN bits and reproduce it on next writes. All POWERMISC users _must_ use the new function to not accidentally disable Power Gates supplies. v2 changes: -Better utilization of abstraction layers. -Voltage query support. GPO's and PWGTxDRV are fixed voltage regulator with voltage value of 3.1V and 5.5V respectively. Signed-off-by: Alberto Panizzo <maramaopercheseimorto@gmail.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
* regulator: Add 'start-up time' to fixed voltage regulatorsAdrian Hunter2010-03-032-0/+7
| | | | | | | | | Add a field to specify a delay for the start-up time of a fixed voltage regulator. Signed-off-by: Adrian Hunter <adrian.hunter@nokia.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
* regulator: Implement enable_time() for WM835x ISINKsMark Brown2010-03-031-0/+46
| | | | Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* regulator: Allow regulators to specify the time taken to ramp on enableMark Brown2010-03-032-6/+41
| | | | | | | | | | | | | | | | | Regulators may sometimes take longer to enable than the control operation used to do so, either because the regulator has ramp rate control used to limit inrush current or because the control operation is very fast (GPIO being the most common example of this). In order to ensure that consumers do not rely on the regulator before it is enabled provide an enable_time() operation and have the core delay for that time before returning to the caller. This is implemented as a function since the ramp rate may be specified in voltage per unit time and therefore the time depend on the configuration. In future it would be desirable to allow the bulk operations to run the delays for multiple enables in parallel but this is not currently supported. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* regulator: Add notifier event on regulator disableMark Brown2010-03-032-3/+8
| | | | | | | | | | | The intended use case is for drivers which disable regulators to save power but need to do some work to restore the hardware state when restarting. If the supplies are not actually disabled due to board limits or sharing with other active devices this notifier allows the driver to avoid unneeded reinitialisation, particularly when used with runtime PM. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
* regulator/lp3971: Storage class should be before const qualifierTobias Klauser2010-03-031-5/+5
| | | | | | | | | | | | The C99 specification states in section 6.11.5: The placement of a storage-class specifier other than at the beginning of the declaration specifiers in a declaration is an obsolescent feature. Signed-off-by: Tobias Klauser <tklauser@distanz.ch> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
* regulator: add voltage selection capability to mc13783 regulators v2 .Alberto Panizzo2010-03-031-30/+315
| | | | | | | | | | | | | | | | This patch, complete the mc13783 regulator subsystem driver with voltage selecting capability. Main Switches (SW1AB, SW2AB) are not supported yet. version 2 diffs: - delete the "Switchers PLL" enable and multiplication factor value selecting capability because it is not a voltage or current regulator. This will be a part of Main switcher supporting task. - Correct many coding style problems pointed me out. Signed-off-by: Alberto Panizzo <maramaopercheseimorto@gmail.com> Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Liam Girdwood <lrg@slimlogic.co.uk>
* Merge branch 'for-linus' of git://gitorious.org/linux-omap-dss2/linuxLinus Torvalds2010-03-0231-1840/+2186
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'for-linus' of git://gitorious.org/linux-omap-dss2/linux: (49 commits) OMAP: DSS2: Taal: Fix TE when resuming OMAP: DSS2: Taal: Fix ESD check OMAP: DSS2: OMAPFB: Constify some function parameters OMAP: DSS2: OMAPFB: install omapfb.h OMAP: DSS2: DSI: add error prints OMAP: DSS2: TPO-TD03MTEA1: fix function names OMAP: DSS2: DSI: add dsi_vc_dcs_read_2() helper OMAP: DSS2: OMAPFB: Remove FB_OMAP2_FORCE_AUTO_UPDATE OMAP: DSS2: DSI: remove external TE support OMAP: DSS2: move timing functions OMAP: DSS2: move set/get_wss() OMAP: DSS2: move enable/disable/suspend/resume OMAP: DSS2: move update() and sync() OMAP: DSS2: move set/get_update_mode() OMAP: DSS2: move enable/get_te() OMAP: DSS2: move get_recommended_bpp() OMAP: DSS2: move get_resolution() OMAP: DSS2: move enable/disable_channel to overlay manager OMAP: DSS2: move wait_vsync() OMAP: DSS2: move get/set_rotate() ...
| * OMAP: DSS2: Taal: Fix TE when resumingTomi Valkeinen2010-03-021-3/+18
| | | | | | | | | | | | | | TE was not initialized properly on power on, which broke TE when resuming from suspend. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: Taal: Fix ESD checkTomi Valkeinen2010-03-011-2/+5
| | | | | | | | | | | | Using taal_enable_te() when DSI bus was locked caused a deadlock. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: OMAPFB: Constify some function parametersVille Syrjälä2010-03-011-9/+9
| | | | | | | | | | Signed-off-by: Ville Syrjälä <ville.syrjala@nokia.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: OMAPFB: install omapfb.hVille Syrjälä2010-03-011-0/+1
| | | | | | | | | | | | | | | | omapfb has several custom ioctls so user space needs the header in order to utilize them. Signed-off-by: Ville Syrjälä <ville.syrjala@nokia.com> Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: DSI: add error printsTomi Valkeinen2010-02-261-13/+34
| | | | | | | | | | | | Add error printing for dsi_vc_dcs_write() and dsi_vc_dcs_read(). Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: TPO-TD03MTEA1: fix function namesTomi Valkeinen2010-02-261-6/+6
| | | | | | | | | | | | | | Copy/paste had resulted in wrong function names in TPO TD043MTEA1 panel driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: DSI: add dsi_vc_dcs_read_2() helperTomi Valkeinen2010-02-252-0/+17
| | | | | | | | | | | | | | Add dsi_vc_dcs_read_2() helper function to read two bytes from the DSI peripheral. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: OMAPFB: Remove FB_OMAP2_FORCE_AUTO_UPDATETomi Valkeinen2010-02-242-23/+3
| | | | | | | | | | | | | | | | Remove the option for forcing auto-update. Auto-update for manual update displays is no more a DSS feature, so if a particular display devices does have auto-update mode, it should be in display's custom settings. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: DSI: remove external TE supportTomi Valkeinen2010-02-241-16/+4
| | | | | | | | | | | | | | | | With the reworked model, DSI driver doesn't need to know anything about external TE lines. Thus we can remove ext_te support, and only leave the DSI TE trigger support. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move timing functionsTomi Valkeinen2010-02-247-80/+68
| | | | | | | | | | | | | | | | | | Move check/set/get_timings() from omap_dss_device to omap_dss_driver. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move set/get_wss()Tomi Valkeinen2010-02-243-40/+41
| | | | | | | | | | | | | | | | | | Move set/get_wss() from omap_dss_device to omap_dss_driver. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move enable/disable/suspend/resumeTomi Valkeinen2010-02-2415-538/+465
| | | | | | | | | | | | | | | | | | | | Move enable/disable/suspend/resume from omap_dss_device to omap_dss_driver. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move update() and sync()Tomi Valkeinen2010-02-246-506/+226
| | | | | | | | | | | | | | | | | | | | | | | | Move update() and sync() from omap_dss_device to omap_dss_driver. Also, update was hardcoded to use virtual channel 0. This patch adds a parameter that specifies the VC. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move set/get_update_mode()Tomi Valkeinen2010-02-2410-199/+84
| | | | | | | | | | | | | | | | | | Move set/get_update_mode() from omap_dss_device to omap_dss_driver. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move enable/get_te()Tomi Valkeinen2010-02-247-69/+34
| | | | | | | | | | | | | | | | | | Move enable/get_te() from omap_dss_device to omap_dss_driver. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move get_recommended_bpp()Tomi Valkeinen2010-02-247-15/+43
| | | | | | | | | | | | | | | | | | Move get_recommended_bpp() from omap_dss_device to omap_dss_driver. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move get_resolution()Tomi Valkeinen2010-02-249-14/+24
| | | | | | | | | | | | | | | | | | Move get_resolution() from omap_dss_device to omap_dss_driver. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move enable/disable_channel to overlay managerTomi Valkeinen2010-02-249-23/+61
| | | | | | | | | | | | | | | | | | Move enable/disable_channel() from omap_dss_device to overlay manager. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move wait_vsync()Tomi Valkeinen2010-02-244-16/+16
| | | | | | | | | | | | | | | | | | Move wait_vsync() from omap_dss_device to overlay manager. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move get/set_rotate()Tomi Valkeinen2010-02-244-42/+11
| | | | | | | | | | | | | | | | | | Move get/set_rotate() from omap_dss_device to omap_dss_driver. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move set/get_mirror()Tomi Valkeinen2010-02-244-34/+10
| | | | | | | | | | | | | | | | | | Move set/get_mirror() from omap_dss_device to omap_dss_driver. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move memory_read()Tomi Valkeinen2010-02-244-39/+12
| | | | | | | | | | | | | | | | | | Move memory_read() from omap_dss_device to omap_dss_driver. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: move run_test()Tomi Valkeinen2010-02-244-46/+13
| | | | | | | | | | | | | | | | | | Move run_test() from omap_dss_device to omap_dss_driver. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: DSI: remove auto-update perf measurementTomi Valkeinen2010-02-241-72/+9
| | | | | | | | | | | | | | | | | | | | | | Remove performance measurement for auto-update. Auto-update and thus performance measurement cannot be supported after the driver change where the control is moved to display drivers. This is part of a larger patch-set, which moves the control from omapdss driver to the display driver. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: DSI: change DSI bus_lock to semaphoreTomi Valkeinen2010-02-241-14/+6
| | | | | | | | | | | | | | | | | | | | | | | | Physical DSI bus is protected by a mutex. This patch changed the mutex to a semaphore, so that we can lock and unlock the bus_lock from different threads. This is needed as the update process is started by user space program, and thus the lock is acquired in that context, but the lock can be released in different context, a work thread via irq. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: fix get_dsi/dispc_clk_source() usageTomi Valkeinen2010-02-232-6/+8
| | | | | | | | | | | | | | After changing the selection of DSI and DISPC clock source the users of get_dsi/dispc_clk_source() functions were left unchanged. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: OMAPFB: fix cleanup on dssdev enable errorTomi Valkeinen2010-02-181-1/+3
| | | | | | | | | | | | If enabling a dss device failed, omapfb didn't exit, leading to crash. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: OMAPFB: fix dssdev cleanup on errorTomi Valkeinen2010-02-181-2/+7
| | | | | | | | | | | | | | If there was a dss device without a driver and thus omapfb probe failed, ref counts could be left to dss devices. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: fix driver probe error handlingTomi Valkeinen2010-02-181-0/+1
| | | | | | | | | | | | If driver's probe failed, the uninit was not called. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: remove sub-panel systemTomi Valkeinen2010-02-183-65/+5
| | | | | | | | | | | | | | | | | | | | | | | | The system to allow panel drivers to exists as attached to ctrl drivers did never work very well. It is not useed, and this patch removes it to make the driver cleaner. For now, controller drivers need to include also the panel driver code. In the future a proper mechanism for this should be developed, perhaps by creating busses for controllers. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: Check ctx loss count only when starting the first clockTomi Valkeinen2010-02-151-1/+3
| | | | | | | | | | | | | | | | | | | | | | | | When OMAP PM layer is no-op/debug, the PM layer will increment context loss count with every call. This resulted DSS2 to restore context whenever a clock was enabled. This commit checks the context loss count only when the context actually could have been lost, ie. when enabling a clock when no clocks had been previously enabled. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: DSI: remove dsi_vc_print_status()Tomi Valkeinen2010-02-151-21/+0
| | | | | | | | | | | | It was not used. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: DSI: configure all DSI VCsTomi Valkeinen2010-02-151-22/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | | Instead of configuring only VC0 to be usable, configure all four VCs similarly. This is needed to utilize the other VCs. Setting the FIFO sizes evenly for all VCs, regardless of how many VCs are actually used, is not optimal. However, this affects only cases when larger amounts of data are written or read via L4, meaning that normal use cases are not affected. At some point this could be optimized better to suit different use cases. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: DSI: export dsi_vc_enable_hs()Tomi Valkeinen2010-02-152-5/+10
| | | | | | | | | | | | | | Rename and export dsi_vc_enable_hs() so that the display drivers can control the mode of the DSI link. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>
| * OMAP: DSS2: DSI: add helpers for DCS read/writeTomi Valkeinen2010-02-152-0/+33
| | | | | | | | | | | | Add helper functions for most common DCS read and write operations. Signed-off-by: Tomi Valkeinen <tomi.valkeinen@nokia.com>