30 Nov, 2011
2 commits
-
dvfs.h is required by omap cpufreq driver that
lives in drivers folder, so move it to plat/
directory. Also move voltage.h, vc.h & vp.h
similarly to have clean header file inclusionsSigned-off-by: Afzal Mohammed
-
There could be dependencies between various voltage domains for
maintaining system performance or hardware limitation reasons
like VDD should be at voltage v1 when VDD is at voltage v2.
This patch introduce dependent vdd information structures in the
voltage layer which can be used to populate these dependencies
for a voltage domain.Based on original patch from Thara.
NOTE: OMAP4460 dependency table is not frozen yet, hence not added.
[nm@ti.com: cleanups and squash for OMAP3,4 data]
Signed-off-by: Vishwanath BS
Cc: Thara Gopinath
[vaibhav.bedia@ti.com: Pull in for AM33xx]
Signed-off-by: Vaibhav Bedia
16 Sep, 2011
13 commits
-
Remove last remaining member (volt_data) from omap_vdd_info into
struct voltagedomain and removal remaining usage and reference to
omap_vdd_info.Signed-off-by: Kevin Hilman
-
Add sys clock name and rate to struct voltage domain. SoC specific
voltagedomain init code initializes sys clock name. After clock
framework is initialized, voltage late init will then use use the
sys_clk rate to calculate the various timing that depend on that rate.Signed-off-by: Kevin Hilman
-
- move VP instance struct from vdd_info into struct voltage domain
- remove _data suffix from structure name
- rename vp_ prefix from vp_common field: accesses are now vp->common
- move vp_enabled bool from vdd_info into VP instance
- remove remaining references to omap_vdd_infoNo functional changes.
Signed-off-by: Kevin Hilman
-
- add setup_time field to struct omap_vc_channel (init'd from PMIC data)
- use VC/VP register access helper for read/modify/write
- move VFSM structure from omap_vdd_info into struct voltagedomain
- remove redunant _data suffix from VFSM structures and variables
- remove voltsetup_shift, use ffs() on the mask value to find the shiftSigned-off-by: Kevin Hilman
-
Convert VC/VP register access to use PRM VC/VP accessor functions. In
the process, move the read/write function pointers from vdd_info into
struct voltagedomain.No functional changes.
Additional cleanup:
- remove prm_mod field from VC/VP data structures, the PRM register
access functions know which PRM module to use.Signed-off-by: Kevin Hilman
-
Replace the VP tranxdone check/clear with helper functions from the
PRM layer.In the process, remove prm_irqst_* voltage structure fields for IRQ
status checking which are no longer needed.Since these reads/writes of the IRQ status bits were the only PRM
accesses that were not to VC/VP registers, this allows the rest of the
register accesses in the VC/VP code to use VC/VP specific register
access functions (done in the following patch.)Signed-off-by: Kevin Hilman
-
Move the VC instance struct from omap_vdd_info into struct voltagedomain.
While moving, perform some misc. renames for readability.No functional changes.
Summary of renames:
- rename omap_vc_instance to omap_vc_channel, since there is only
one instance of the VC IP and this actually represents channels
using TRM terminology.
- rename 'vc_common' field of VC channel which led to:
s/vc->vc_common/vc->common/
- remove redundant '_data' suffix
- OMAP3: vc1 --> vc_mpu, vc2 --> vc_core
- omap_vc_bypass_scale_voltage() -> omap_vc_bypass_scale()Signed-off-by: Kevin Hilman
merge
-
Add a 'bool scalable' flag to the struct powerdomain and set it for
the scalable domains on OMAP3 and OMAP4.Signed-off-by: Kevin Hilman
-
Add wakeup voltage domain so that the wakeup powerdomain can have an
associated powerdomain. Note that the scalable flat is not set for
the this voltagedomain, so it will not be fully initialized like
scalable voltage domains.Signed-off-by: Kevin Hilman
-
This voltage domain (a.k.a. VDD1) contains both the MPU and the IVA, so
rename appropriately.Also fixup any users of the "mpu" name to use "mpu_iva"
Signed-off-by: Kevin Hilman
-
Start cleaning up the voltage layer to have a voltage domain layer
that resembles the structure of the existing clock and power domain
layers. To that end:- move the 'struct voltagedomain' out of 'struct omap_vdd_info' to
become the primary data structure.- convert any functions taking a pointer to struct omap_vdd_info into
functions taking a struct voltagedomain pointer.- convert the register & initialize of voltage domains to look like
that of powerdomains- convert omap_voltage_domain_lookup() to voltdm_lookup(), modeled
after the current powerdomain and clockdomain lookup functions.- omap_voltage_late_init(): only configure VDD info when
the vdd_info struct is non-NULLSigned-off-by: Kevin Hilman
-
The prm_irqst_reg is not part of the VP. Move it up into the common
voltage domain struct.Signed-off-by: Kevin Hilman
-
Eliminate need for global variables for the various PRM module offsets by
making them part of the VP/VC common structuresEventually, these will likely be moved again, or more likely removed
when VP/VC code is isolated, but for now just getting rid of them as
global variabes so that the voltage domain initialization can be
cleaned up.Signed-off-by: Kevin Hilman
11 Mar, 2011
1 commit
-
This is a first pass at reorganizing mach-omap2/voltage.c:
- Separate almost all of the data from the code of mach-omap2/voltage.c.
The code remains in mach-omap2/voltage.c. The data goes into one
of several places, depending on what type of data it is:- Silicon process/validation data: mach-omap2/opp*_data.c
- VC (Voltage Controller) data: mach-omap2/vc*_data.c
- VP (Voltage Processor) data: mach-omap2/vp*_data.c
- Voltage domain data: mach-omap2/voltagedomains*_data.cThe ultimate goal is for all this data to be autogenerated, the same
way we autogenerate the rest of our data.- Separate VC and VP common data from VDD-specific VC and VP data.
- Separate common voltage.c code from SoC-specific code; reuse common code.
- Reorganize structures to avoid unnecessary memory loss due to unpacked
fields.There is much left to be done. VC code and VP code should be separated out
into vc*.c and vp*.c files. Many fields in the existing structures are
superfluous, and should be removed. Some code in voltage.c seems to be
duplicated; that code should be moved into functions of its own. Proper
voltage domain code should be created, as was done with the powerdomain
and clockdomains, and powerdomains should reference voltagedomains.Thanks to Shweta Gulati for comments. Thanks
to Rajendra Nayak for finding and fixing some bugs
that prevented OMAP4 from booting:https://patchwork.kernel.org/patch/587311/
His patch has been folded into this one to avoid breaking OMAP4
between patches. Thanks also to Kevin Hilman for
finding and fixing a compile problem when !CONFIG_PM:http://www.spinics.net/lists/arm-kernel/msg118067.html
His patch has also been folded into this one to avoid breaking
!CONFIG_PM builds.Signed-off-by: Paul Walmsley
Cc: Shweta Gulati
Cc: Rajendra Nayak
Cc: Kevin Hilman