ARM OMAP2+ PM: Centralize PM Initialization

ARM OMAP2+ PM: Centralize PM Initialization

Currently different PM layers  are initialized in different
places and there is no specific order or order depends on the
link order in makefile or it will depend on __initcall. This is an attempt
to initialize all PM layers from a single place so that dependencies are
properly taken care. Now PM init is done as a late init call so that all
dependencies are initialized before PM get initialized.
If driver tries to use PM APIs before PM Init, it would fail. So drivers
are expected to wait till PM init is done before PM APIs can be used.

Also omap cpufreq driver initialization is moved to lateinit_sync stage
so that omap cpufreq is initialized only after OMAP PM initialization.

Change-Id: Ib524428496538e2f41cd7e01445be0932a1f5b9a
Signed-off-by: Vishwanath BS <vishwanath.bs@ti.com>
[grygorii.strashko@ti.com: rebased, move PM initialization on
subsys_initcall_sync layer to allow PMIC be initialized before]
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
ARM OMAP2+ OPP: Perform OPP registration as part of device build

ARM OMAP2+ OPP: Perform OPP registration as part of device build

Currently an OPP is registered as part of OPP Init and
an opp is not added if the corresponding device for that OPP is not
available. It's quite possible that by the time OPP init is called,
many of the devices may not be available. This will lead to those OPPs
not registered with DVFS layer.
It is better to register an OPP for a device when the device is built.
This will avoid dependency on device creation sequence with OPP layer.
As part of this change, based OPP init is moved as part of early init so
that OPP table information is available when devices are getting built.

Change-Id: Id9a085f21f21d1371f86d18e591350fd6c520b98
Signed-off-by: Vishwanath BS <vishwanath.bs@ti.com>
[ivan.khoronzhuk@ti.com: moved omap_init_opp_table to __init]
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
ARM OMAP2+ OPP: Set clock rate for missing devices

ARM OMAP2+ OPP: Set clock rate for missing devices

Currently OPP layer simply skips the OPP for devices which are
not available. This might lead invalid OPP configuration. So
device clocks for all those devices that not available should
be set to minimum rate so that system will always be in sane
OPP configuration.

Change-Id: I30938a4aae89b6fc5057d467a0f9edcb33d2d2bc
Signed-off-by: Vishwanath BS <vishwanath.bs@ti.com>
[ivan.khoronzhuk@ti.com: move set_device_opp to __init]
Signed-off-by: Ivan Khoronzhuk <ivan.khoronzhuk@ti.com>
[grygorii.strashko@ti.com: move omap_opp_set_min_rate to __init]
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
I2C: OMAP: correct usage of the interrupt enable register

I2C: OMAP: correct usage of the interrupt enable register

Starting from the OMAP4 chips there are 2 registers (I2C_IRQENABLE_SET
and I2C_IRQENABLE_CLR) to manage interrupts instead of the older OMAP
chips which have only one register (I2C_IE). Now for enabling
interrupts we must use I2C_IRQENABLE_SET register and for disabling
interrupts we must use I2C_IRQENABLE_CLR register.

Because the registers I2C_IRQENABLE_SET and I2C_IE have the same
addresses, the interrupt enabling procedure is unchanged.

Change-Id: I6901f57c4c17379ec4d32ee9b54b496e47928f92
Signed-off-by: Oleksandr Dmytryshyn <oleksandr.dmytryshyn@ti.com>
ARM: OMAP4460: ksp5012: tps6236x: Do not reset GPIO1 bank at HWMOD init

Modified from original patch by Grygorii Strashko:
	http://review.omapzoom.org/#/c/31754/

Signed-off-by: Russell Robinson <rrobinson@phytec.com>
panel-generic-dpi: ft5x06_ts: support for nhd-4.3-480x272ef display

Signed-off-by: Russell Robinson <rrobinson@phytec.com>