Currently, the initial voltage as well as the CPR ceiling and floor
voltages for each voltage corner are defined using these four device tree
properties: qcom,pvs-init-voltage, qcom,pvs-corner-ceiling-slow,
qcom,pvs-corner-ceiling-nom, and qcom,pvs-corner-ceiling-fast.
Unfortunately, since qcom,pvs-init-voltage only defines the initial
voltage for the turbo voltage corner for each PVS bin value, the initial
voltage used for the SVS and nominal corners must be calculated using a
complicated and potentially error prone algorithm using the four properties
mentioned earlier. Furthermore, the coarse slow/nom/fast binning leads to
wasted power for parts with intermediate PVS bin defined initial voltage
requirements when the CPR controller is disabled.
Therefore, replace the four properties listed above with the following
three properties: qcom,pvs-voltage-table, qcom,cpr-voltage-ceiling and
qcom,cpr-voltage-floor. The property qcom,pvs-voltage-table specifies a
mapping from a PVS bin value to the initial voltage for each voltage
corner. The properties qcom,cpr-voltage-ceiling and qcom,cpr-voltage-floor
specify the ceiling and floor for each voltage corner respectively.
Also, remove all usage of 'process' from inside of the cpr-regulator driver
since it has no meaning without the qcom,pvs-corner-ceiling-slow/nom/fast
properties.
CRs-Fixed: 606213
Change-Id: I7996074b39e1f80f6dc10e25428e09d7cb364192
Signed-off-by: Ke Liu <keliu@codeaurora.org>
Add support to choose VDD_MX voltage according to VDD_APC fuse corner.
CRs-Fixed: 607899
Change-Id: If3d5dd4c919d50736c4eaa5449f835b2e8f38d3f
Signed-off-by: Ke Liu <keliu@codeaurora.org>
Add device tree support. Add support for restoring voltage select register
from back up register. Add support for setting vsel pin by gpio output
according to device tree information. Add option to disable regulator
suspend method. Add set_voltage_time_sel to regulator_ops. Add support for
option 13's voltage range.
Change-Id: Iab9b160ff83c66f59cccedbd23d4aed7acb7d7a3
Signed-off-by: Ke Liu <keliu@codeaurora.org>
Add device tree support. Add support for restoring working register
from back up register. Add support for setting vsel pin by gpio output
according to device tree flag. Change ncp6335d_regulator_init into a
global function.
Change-Id: I5ce861dd307b28e0782d051b105956b10eb1afab
Signed-off-by: Ke Liu <keliu@codeaurora.org>
This driver supports Fairchild FAN53555 Digitally Programmable
TinyBuck Regulator. The FAN53555 is a step-down switching voltage
regulator that delivers a digitally programmable output from an
input voltage supply of 2.5V to 5.5V. The output voltage is
programmed through an I2C interface.
Change-Id: I9b79deee1a3f10fe58598efa68ace7f9882bf53d
Signed-off-by: Yunfan Zhang <yfzhang@marvell.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Git-commit: 49d8c59927e7887ea168a040e41c22937e10c30b
Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
[keliu@codeaurora.org: resolve merge conflicts]
Signed-off-by: Ke Liu <keliu@codeaurora.org>
New policy requires changing device tree vendor prefix from 'qti'
to 'qcom'. Also change device tree files for msm8610, msm8226 and msm8926.
Change-Id: I0b00127a698e10c2d937b515cd7e55ae3b0ba569
Signed-off-by: Ke Liu <keliu@codeaurora.org>
Some devices need to adjust their CPR quotient value according to the cpu
frequency. The existing configuration uses the same fuse target quotient
for each frequency in a given corner. This configuration is not power
efficient as some corners have a large range of frequencies. Hence use a
virtual corner for each frequency for power saving purposes.
CRs-Fixed: 583719
Change-Id: I90113c4ad26c792c849378ec192bfde4ff2ec199
Signed-off-by: Ke Liu <keliu@codeaurora.org>
New changes introduce virtual corner concept as opposed to cpr_corner.
Cpr corners in existing code are all cpr fuse corners. Hence change them
to distinguish cpr fuse corner from cpr virtual corner.
Change-Id: I086b29cadb23edfdff583f21f29efad4b35be5e1
Signed-off-by: Ke Liu <keliu@codeaurora.org>
New policy requires changing device tree vendor prefix from 'qcom'
to 'qti'. Also change device tree files for msm8610, msm8226 and msm8926.
Change-Id: I57c8c9d14ffa3ddd3671f406cfa2011eb23e66e4
Signed-off-by: Ke Liu <keliu@codeaurora.org>
KPSS version 2.1 introduces a hardware sequencer which executes
the necessary steps to switch between BHS and LDO krait power modes.
The driver has to set the APC_PWR_GATE_MODE register to initiate a
switch between LDO and BHS Krait power modes. Modify the driver to
use this hardware sequencer.
Also, switch to the V2 SPM sequence with the delays added for
HW sequencer to idle.
Also, with the V2 sequences, it is expected that APC_PWR_GATE_CTL
register be configured once before using the APC_PWR_GATE_MODE register to
switch between LDO and BHS.
Update the code such that for secondary cpus APC_PWR_GATE_MODE is
written to after configuring APC_PWR_GATE_CTL in the
secondary_cpu_hs_init() function. Note that secondary_cpu_hs_init() is
guaranteed to run only once for each secondary cpu when that core is
brought up for the first time. Subsequent hotplug in/out of that core
do not take this code execution path.
For boot cpu, since it is up and running, its APC_PWR_GATE_CTL
should already be initialized. So for boot cpu configure its
APC_PWR_GATE_MODE register right at probe time. secondary_cpu_hs_init()
isn't invoked for boot cpu.
Change-Id: Ie5584c12f47283cad8834ccdb3d4d44c66305a22
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Add RB-CPR (Rapid Bridge core power reduction) code in cpr-regulator
driver, which reads both eFuse and device tree for configuration
parameters and programs CPR registers accordingly. The driver
will scale the voltage up or down based on the CPR hardware's
suggestion. It also changes CPR mode when Apps cpu clock changes
corner voltage. If any part doesn't have efuse at all, assume it's
a slow part and do not use CPR.
Change-Id: Ia3dc5a6ec013647f2a21577c0fe0f2b30a93cd73
Signed-off-by: Willie Ruan <wruan@codeaurora.org>
Add support for a voltage switch OCP interrupt handler which
toggles the switch off and back on after an overcurrent event
takes place. This toggling should only be performed for a
specified maximum number of times with a specified delay between
subsequent retries. Disabling a voltage switch is the only way
to clear the latched over-current state.
Change-Id: I8dbc54ff7bc54c1309ee59c1a282d5e4af2f0ec6
CRs-Fixed: 469134
Signed-off-by: David Collins <collinsd@codeaurora.org>
Correct the register values used to override and not override
voltage switch over current protection (OCP). Also update
documentation to explain exactly how OCP enablement works.
Remove the OCP enable time delay property since it cannot be used
effectively to avoid OCP triggering due to high in-rush current.
Change-Id: I046dd3a42d3f8ec7f3b9689a958b617fbca35254
CRs-Fixed: 469134
Signed-off-by: David Collins <collinsd@codeaurora.org>
Add support for a device tree property, qcom,hpm-enable, which
can be used to configure a voltage switch type regulator to be in
high power mode (HPM). When a switch is in HPM, over current
protection and soft start are enabled at all times.
The new property can also be used for other types of regulators.
However, this will likely not have the intended result as the
mode of non-voltage switch regulators is controlled at runtime
via regulator framework APIs.
Change-Id: Id3fca7ebbe3eb13b557e6d483494f218989cd64c
CRs-Fixed: 469134
Signed-off-by: David Collins <collinsd@codeaurora.org>
It could be required for the memory power (MX) to be equal or
higher than VDD APC voltage in certain way. Add code to
handle this voltage dependency with the support for several
possible methods of dependencies. If no such requirement on
certain target, don't specify the MX regulator in device tree.
Change-Id: Iabc8abe3eda881a92304aeb8e1f98394c8938c67
Signed-off-by: Willie Ruan <wruan@codeaurora.org>
RBCPR (RapidBridge Core Power Reduction) is a technology to reduce
core power on a cpu or a core. It takes voltage suggestions in efuse
from product test process as initial settings. It supports "corner"
vote mechanism and converts corner value to voltage before writing
to a voltage regulator API, such as that provided by spm-regulator
driver.
This patch only adds basic code as a regulator driver and to support
efuse reading and initial voltage settings for corners. CPR support
will be added in a separate patch.
Change-Id: I98896fb00e9864d849498d0446cd2aae4af95f58
Signed-off-by: Willie Ruan <wruan@codeaurora.org>
Currently the code enables/disables MDD as the core goes to/comes out of
retention. The problem with this approach is that if that core switches
to BHS (likely because another core changes its frequency) the driver
turns off its MDD completely oblivious of the fact that that core is
running in retention and needs its MDD on.
This causes retention on that cpu to crash.
Its best if the driver keeps the MDD on always while a core is online
regardless of whether it is operating in LDO or BHS mode. MDD would then
be turned off when the core goes offline. This way we keep the MDD on
throughout idle power collapses and associated retention modes.
Also when the system goes to suspend, secondary cpus are offlined. This
will result in their MDD turned off. However for boot cpu, hook in to
the syscore ops callbacks to turn on/off the MDD.
Change-Id: I9ff5826fd87782ce1b407bd3702f791751bc60fd
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
The PMIC 8841 v2 that comes with msm8974 v2 is capable of doing
phase switching on ganged regulators. Enable this feature for
v2.
Change-Id: I21826f4cf7be332f5ab7621325fa6cbe6aa2ea95
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
The MDD (master droop detector) unit consumes around 300uA per core.
It is required only when the LDO is being used by the cpu. It can
be safely turned off while in BHS mode. This will save upto 1.2mA
of rock bottom current.
Note that if the cpu is entering retention mode, we turn on the MDD
so the spm can turn on LDO safely when retention is activated. Since
we have to call a out of band api to turn on/off MDD for a given core
associate a cpu number with a krait regulator node. This helps us to get
the necessary data structure quickly and access that core's registers
to turn its MDD on/off.
Change-Id: I03ab80bd979bef05c6c3d39f43788e6ec9f02510
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
These regulator functions are only defined for ARCH_MSM8974. This
causes compilation errors when these sysmbols are referenced with
in the kernel even though they are not in the code execution path.
Stub out these functions for other ARCHs.
Change-Id: I433b1161bc91063bb7a76d506d73f203266153e8
Signed-off-by: Syed Rameez Mustafa <rameezmustafa@codeaurora.org>
Sleep mode configures the regulator to enter into a sleep
state when both EN and VSEL are low. There is a significant
reduction in the leakage current in this mode.
Enable the same for 8x25q.
Change-Id: I7377bf9d702633b9eddcea8f3503cc270bb95c95
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
Add support into the stub-regulator driver so that stub-regulator
devices may be specified via device tree.
Change-Id: Ib72ef7c8caacb50955cd7c182e790300daf152ce
Signed-off-by: David Collins <collinsd@codeaurora.org>
This driver supports OnSemi NCP6335D synchronous buck converter.
The NCP6335D is a step-down switching voltage regulator which
provides a voltage range from 0.6 to 1.4V. The regulator is
controlled via the I2C interface.
Change-Id: I237fe781d5c54d2b3ffc65096b9e83c387d3b6f5
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>
Create a function to be called very early (before the krait-regulator
driver probes) to switch a cpu in BHS mode. Since we have not yet
probed yet, use the base address passed in to do the necessary writes.
Change-Id: I1cb1659f1e31e52b9d209427887230ee922aef80
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
Badger kraits have a single voltage supply coming from the pmic. This
supply is provided by multiple switching regulators operating in
ganged mode.
There is a LDO and a HS (Head Switch) per core that further control the
voltage supply to that core.
This driver manages the ganged supply by calling upon the spm driver to
set phases and voltage.
Change-Id: Idc0a0ae3242729a7e0ede5962974c09b61d8d39c
Signed-off-by: Abhijeet Dharmapurikar <adharmap@codeaurora.org>
* commit 'AU_LINUX_ANDROID_ICS.04.00.04.00.130': (39 commits)
msm: vidc: Add support for DIVX 4/5/6
msm_fb: display: Set the minimal sleep time for DSI PHY Initialisation
board: 8930: add debounce interval for gpio-keys
regulator: Extend of_get_regulator_init_data to support non-DT consumers
regulator: pm8xxx-regulator: Add slew_rate platform data parameter
crypto: Fix initialization of array variable.
arm: free all .init memory when CONFIG_STRICT_MEMORY_RWX is set
msm: clock-copper: Remove block reset ability from most clocks
msm: clock-local2: Fix local_vote_clk_reset to use right to_*_clk macro
EHCI: HSIC: Add support for suspend, resume and URB logging
arm/dt: msm-pm8941: Change boost regulator register address to 0xA000
msm: camera: Move server code into seperate file.
msm: camera: Close camera gracefully in case of userspace crash
media: dvb: mpq: Support getting decoder's buffer status
Bluetooth: Wait for wcnss to be ready after SSR
msm: msm_sdcc: Add device tree support for SDCC controllers
msm: display: Change DSI escape clock to byte clock
msm: clock-8960: Change source of DSI escape clock to byte clock
ASOC: msm: Enable mpq8064 machine driver.
EHCI: HSIC: Set the interrupt threshold control value to 8ms
...
Signed-off-by: Steve Muckle <smuckle@codeaurora.org>
AU_LINUX_ANDROID_ICS.04.00.04.00.126 from msm-3.0.
First parent is from google/android-3.4.
* commit 'AU_LINUX_ANDROID_ICS.04.00.04.00.126': (8712 commits)
PRNG: Device tree entry for qrng device.
vidc:1080p: Set video core timeout value for Thumbnail mode
msm: sps: improve the debugging support in SPS driver
board-8064 msm: Overlap secure and non secure video firmware heaps.
msm: clock: Add handoff ops for 7x30 and copper XO clocks
msm_fb: display: Wait for external vsync before DTV IOMMU unmap
msm: Fix ciruclar dependency in debug UART settings
msm: gdsc: Add GDSC regulator driver for msm-copper
defconfig: Enable Mobicore Driver.
mobicore: Add mobicore driver.
mobicore: rename variable to lower case.
mobicore: rename folder.
mobicore: add makefiles
mobicore: initial import of kernel driver
ASoC: msm: Add SLIMBUS_2_RX CPU DAI
board-8064-gpio: Update FUNC for EPM SPI CS
msm_fb: display: Remove chicken bit config during video playback
mmc: msm_sdcc: enable the sanitize capability
msm-fb: display: lm2 writeback support on mpq platfroms
msm_fb: display: Disable LVDS phy & pll during panel off
...
Signed-off-by: Steve Muckle <smuckle@codeaurora.org>
Add a slew_rate platform data parameter which can be used to
specify the worst case board dependent voltage slew rate of a
given regulator.
regulator_set_voltage calls will be delayed based on the
slew_rate parameter when voltage is stepping up. The delay is
calculated as (new_uV - old_uV) / slew_rate.
If no slew_rate is specified for a given regulator (i.e.
slew_rate == 0), then slew_rate will default to
max_uV / enable_time.
Change-Id: I7a9be300945d90941040b3a26d8a4199338bf9c4
Signed-off-by: David Collins <collinsd@codeaurora.org>
Add the qpnp-regulator driver to support regulators found in
Qualcomm plug-and-play (QPNP) PMIC chips. QPNP chips make use of
Qualcomm's SPMI register convention. The particular hardware
characteristics of a given regulator can be derived from the
values present in the type and subtype registers.
The qpnp-regulator driver supports probing with either device tree
device specification or with board file specified platform data.
Change-Id: I4f74431a50949763d651faf992b5d2567d05758e
Signed-off-by: David Collins <collinsd@codeaurora.org>
Pull regulator fixes from Mark Brown:
"A bunch of smallish fixes that came up during the merge window as
things got more testing - even more fixes from Axel, a fix for error
handling in more complex systems using -EPROBE_DEFER and a couple of
small fixes for the new dummy regulators."
* tag 'regulator-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/regulator:
regulator: Remove non-existent parameter from fixed-helper.c kernel doc
regulator: Fix setting new voltage in s5m8767_set_voltage
regulator: fix sysfs name collision between dummy and fixed dummy regulator
regulator: Fix deadlock on removal of regulators with supplies
regulator: Fix comments in include/linux/regulator/machine.h
regulator: Only update [LDOx|DCx]_HIB_MODE bits in wm8350_[ldo|dcdc]_set_suspend_disable
regulator: Fix setting low power mode for wm831x aldo
regulator: Return microamps in wm8350_isink_get_current
regulator: wm8350: Fix the logic to choose best current limit setting
regulator: wm831x-isink: Fix the logic to choose best current limit setting
regulator: wm831x-dcdc: Fix the logic to choose best current limit setting
regulator: anatop: patching to device-tree property "reg".
regulator: Do proper shift to set correct bit for DC[2|5]_HIB_MODE setting
regulator: Fix restoring pmic.dcdcx_hib_mode settings in wm8350_dcdc_set_suspend_enable
regulator: Fix unbalanced lock/unlock in mc13892_regulator_probe error path
regulator: Fix set and get current limit for wm831x_buckv
regulator: tps6586x: Fix list minimal voltage setting for LDO0
Some usecases of stub-regulator require the regulator devices to
be probed early on. As a consequence, allow for stub-regulator
to be added at a custom time by the platform code. Simply
changing the init level of this driver is not enough. We must
allow for other drivers added at the same init level to be
dependencies or dependents of this driver.
Change-Id: Ifd57d0e77e25f73dfb16c45c6774a382873ec44a
Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
Pull MFD changes from Samuel Ortiz:
- 4 new drivers: Freescale i.MX on-chip Anatop, Ricoh's RC5T583 and
TI's TPS65090 and TPS65217.
- New variants support (8420, 8520 ab9540), cleanups and bug fixes for
the abx500 and db8500 ST-E chipsets.
- Some minor fixes and update for the wm8994 from Mark.
- The beginning of a long term TWL cleanup effort coming from the TI
folks.
- Various fixes and cleanups for the s5m, TPS659xx, pm860x, and MAX8997
drivers.
Fix up trivial conflicts due to duplicate patches and header file
cleanups (<linux/device.h> removal etc).
* tag 'mfd_3.4-1' of git://git.kernel.org/pub/scm/linux/kernel/git/sameo/mfd-2.6: (97 commits)
gpio/twl: Add DT support to gpio-twl4030 driver
gpio/twl: Allocate irq_desc dynamically for SPARSE_IRQ support
mfd: Detach twl6040 from the pmic mfd driver
mfd: Replace twl-* pr_ macros by the dev_ equivalent and do various cleanups
mfd: Micro-optimization on twl4030 IRQ handler
mfd: Make twl4030 SIH SPARSE_IRQ capable
mfd: Move twl-core IRQ allocation into twl[4030|6030]-irq files
mfd: Remove references already defineid in header file from twl-core
mfd: Remove unneeded header from twl-core
mfd: Make twl-core not depend on pdata->irq_base/end
ARM: OMAP2+: board-omap4-*: Do not use anymore TWL6030_IRQ_BASE in board files
mfd: Return twl6030_mmc_card_detect IRQ for board setup
Revert "mfd: Add platform data for MAX8997 haptic driver"
mfd: Add support for TPS65090
mfd: Add some da9052-i2c section annotations
mfd: Build rtc5t583 only if I2C config is selected to y.
mfd: Add anatop mfd driver
mfd: Fix compilation error in tps65910.h
mfd: Add 8420 variant to db8500-prcmu
mfd: Add 8520 PRCMU variant to db8500-prcmu
...
Device nodes in DT can associate themselves with one or more
regulators/supply by providing a list of phandles (to regulator nodes)
and corresponding supply names.
For Example:
devicenode: node@0x0 {
...
...
vmmc-supply = <®ulator1>;
vpll-supply = <®ulator2>;
};
The driver would then do a regulator_get(dev, "vmmc"); to get
regulator1 and do a regulator_get(dev, "vpll"); to get
regulator2.
of_get_regulator() extracts the regulator node for a given
device, based on the supply name.
Use it to look up the regulator for a given consumer from device tree, during
a regulator_get(). If not found fallback and lookup through
the regulator_map_list instead.
Also, since the regulator dt nodes can use the same binding to
associate with a parent regulator/supply, allow the drivers to
specify a supply_name, which can then be used to lookup dt
to find the parent phandle.
Change-Id: I124a4ba1a64c1145bdd016d91b9814c29eefeb36
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Acked-by: Grant Likely <grant.likely@secretlab.ca>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
[mbohan: resolve conflict in drivers/regulator/core.c]
Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
With device tree support for regulators, its needed that the
regulator_dev->dev device has the right of_node attached.
To be able to do this add an additional parameter to the
regulator_register() api, wherein the dt-adapted driver can
then pass this additional info onto the regulator core.
Change-Id: Idf7c4e532cc06fd00b8182b635d15dcfafb2cef9
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
[mbohan: Update regulator_register for msm regulator drivers]
Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
The helper routine is meant to be used by the regulator drivers
to extract the regulator_init_data structure from the data
that is passed from device tree.
'consumer_supplies' which is part of regulator_init_data is not extracted
as the regulator consumer mappings are passed through DT differently,
implemented in subsequent patches.
Similarly the regulator<-->parent/supply mapping is handled in
subsequent patches.
Also add documentation for regulator bindings to be used to pass
regulator_init_data struct information from device tree.
Some of the regulator properties which are linux and board specific,
are left out since its not clear if they can
be in someway embedded into the kernel or passed in from DT.
They will be revisited later.
Change-Id: I4f270a41687199032499cd923854a871c4d58ca2
Signed-off-by: Rajendra Nayak <rnayak@ti.com>
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
There's no need for the API to modify it and having it const makes it
easier to use with random strings the board code has.
Change-Id: Icd7e600291f281e80f60ef857c22f22cba08bfc1
Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
[mbohan: port MSM regulator drivers to new const type]
Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
Pull "ARM: driver specific updates" from Arnd Bergmann:
"These are all specific to some driver. They are typically the
platform side of a change in the drivers directory, such as adding a
new driver or extending the interface to the platform. In cases where
there is no maintainer for the driver, or the maintainer prefers to
have the platform changes in the same branch as the driver changes,
the patches to the drivers are included as well.
A much smaller set of driver updates that depend on other branches
getting merged first will be sent later.
The new export of tegra_chip_uid conflicts with other changes in
fuse.c. In rtc-sa1100.c, the global removal of IRQF_DISABLED
conflicts with the cleanup of the interrupt handling of that driver.
Signed-off-by: Arnd Bergmann <arnd@arndb.de>"
Fixed up aforementioned trivial conflicts.
* tag 'drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (94 commits)
ARM: SAMSUNG: change the name from s3c-sdhci to exynos4-sdhci
mmc: sdhci-s3c: add platform data for the second capability
ARM: SAMSUNG: support the second capability for samsung-soc
ARM: EXYNOS: add support DMA for EXYNOS4X12 SoC
ARM: EXYNOS: Add apb_pclk clkdev entry for mdma1
ARM: EXYNOS: Enable MDMA driver
regulator: Remove bq24022 regulator driver
rtc: sa1100: add OF support
pxa: magician/hx4700: Convert to gpio-regulator from bq24022
ARM: OMAP3+: SmartReflex: fix error handling
ARM: OMAP3+: SmartReflex: fix the use of debugfs_create_* API
ARM: OMAP3+: SmartReflex: micro-optimization for sanity check
ARM: OMAP3+: SmartReflex: misc cleanups
ARM: OMAP3+: SmartReflex: move late_initcall() closer to its argument
ARM: OMAP3+: SmartReflex: add missing platform_set_drvdata()
ARM: OMAP3+: hwmod: add SmartReflex IRQs
ARM: OMAP3+: SmartReflex: clear ERRCONFIG_VPBOUNDINTST only on a need
ARM: OMAP3+: SmartReflex: Fix status masking in ERRCONFIG register
ARM: OMAP3+: SmartReflex: Add a shutdown hook
ARM: OMAP3+: SmartReflex Class3: disable errorgen before disable VP
...
Conflicts:
arch/arm/mach-tegra/Makefile
arch/arm/mach-tegra/fuse.c
drivers/rtc/rtc-sa1100.c
Pull <linux/device.h> avoidance patches from Paul Gortmaker:
"Nearly every subsystem has some kind of header with a proto like:
void foo(struct device *dev);
and yet there is no reason for most of these guys to care about the
sub fields within the device struct. This allows us to significantly
reduce the scope of headers including headers. For this instance, a
reduction of about 40% is achieved by replacing the include with the
simple fact that the device is some kind of a struct.
Unlike the much larger module.h cleanup, this one is simply two
commits. One to fix the implicit <linux/device.h> users, and then one
to delete the device.h includes from the linux/include/ dir wherever
possible."
* tag 'device-for-3.4' of git://git.kernel.org/pub/scm/linux/kernel/git/paulg/linux:
device.h: audit and cleanup users in main include dir
device.h: cleanup users outside of linux/include (C files)
The pxa regulator branch removes the bq24022 driver, while a lot of
other regulator drivers got added in the regulator tree. This
resolves the trivial conflicts by merging in the regulator patches
that are already merged into v3.4.
Conflicts:
drivers/regulator/Kconfig
drivers/regulator/Makefile
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
The <linux/device.h> header includes a lot of stuff, and
it in turn gets a lot of use just for the basic "struct device"
which appears so often.
Clean up the users as follows:
1) For those headers only needing "struct device" as a pointer
in fcn args, replace the include with exactly that.
2) For headers not really using anything from device.h, simply
delete the include altogether.
3) For headers relying on getting device.h implicitly before
being included themselves, now explicitly include device.h
4) For files in which doing #1 or #2 uncovers an implicit
dependency on some other header, fix by explicitly adding
the required header(s).
Any C files that were implicitly relying on device.h to be
present have already been dealt with in advance.
Total removals from #1 and #2: 51. Total additions coming
from #3: 9. Total other implicit dependencies from #4: 7.
As of 3.3-rc1, there were 110, so a net removal of 42 gives
about a 38% reduction in device.h presence in include/*
Signed-off-by: Paul Gortmaker <paul.gortmaker@windriver.com>
Add support for a dummy driver that has an implementation
connected to no real hardware devices. Its purpose is to aid
bringup scenarios by providing clients a regulator interface
that they expect. This driver shouldn't be enabled if a real
device implementation for a particular platform already exists.
Change-Id: Ib83027b4e599ebbc3cb153b2f346bb03495bb746
Signed-off-by: Michael Bohan <mbohan@codeaurora.org>
The bq24022 driver is just a specialised form of a gpio-regulator.
As all former users of it now use the gpio-regulator directly, there
is no need to keep it around.
Signed-off-by: Heiko Stuebner <heiko@sntech.de>
Acked-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
Signed-off-by: Haojian Zhuang <haojian.zhuang@gmail.com>