msm: clock-rpm: Store the RPM clock resource keys in the rpm_clk struct

RPM clocks may have key-value pairs with differing keys.
For example, rate-settable RPM clocks have 'KHz' as a key,
and branch clocks have 'Enab' as a key. To accomodate for
this, store the relevant key in the rpm_clk structure
and pass the key in via the clock defining macros.

Change-Id: I0dc051410e161d1c3f8199d9b17e4983a55185f3
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
msm: clock-8974: Add support for QDSS RPM clocks.

Add support for the QDSS clocks on the 8974. These clocks
are controlled by the RPM; represent them as standard RPM
clocks in the 8974 clock driver, allowing the QDSS driver
to use clock APIs to control them.

Change-Id: I4737112f1e778872a2da4694956c9849c37a6afe
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
msm: clock-rpm: Have RPM handoff account for the RPM-SMD driver

The RPM-SMD driver and the correponding communication protocol
with the RPM does not currently support querying of clock rates.
Allow handoff to always succeed for RPM-SMD clocks. Previously,
the older RPM driver API stub would always return failure
causing RPM handoff to fail.

Change-Id: I357430dec06a2305cdad2af4c213a3b98965e1e1
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
msm: clock-rpm: Set the sleep vote only for sleep set clocks in handoff

The RPM clock handoff is erroneously setting last_sleep_set_khz
for clocks that only vote in the active-set. This results in an
incorrect sleep set vote to the RPM that does not go away even
when the corresponding (peer) sleep-and-active-set RPM clock is
disabled.

Set the last_sleep_set_khz value only if the clock in question
is not an active-set-only clock.

An example failure occurs as follows:

The system fabric clock is running at 192MHz on bootup. The
handoff code for the sfab_a_clk (the active set only clock)
sets last_set_khz and last_sleep_set_khz to 192MHz. Now, in
late_init, when sfab_clk is disabled, the sfab_a_clk's
last_sleep_set_khz value is sent to the RPM. This is wrong -
we are disabling the sleep-and-active-set clock, but we just
sent a rate of 192MHz to the RPM as our sleep set vote.
When the apps procesor transitions to the sleep set, if there
have been no other votes for sfab_clk and sfab_a_clk, the RPM
will figure that the apps needs 192 MHz on the system fabric
in the sleep set, even though sfab_clk on the apps side is
"disabled".

With the fix in place, sfab_a_clk's last_sleep_set_khz is 0,
and therefore when sfab_clk is disabled, the correct vote of
0 goes to the RPM.

CRs-Fixed: 392302
Change-Id: Iee47a3c4e683e335454d2485c4c4c5b1bc0d772c
Signed-off-by: Vikram Mulukutla <markivx@codeaurora.org>
(cherry picked from commit af72b71744e4c09ba210f2a68f1961dfe4d34c25)
build: Fix target smd_rpc_sym.c

This change adds smd_rpc_sym.c to the git ignore and clean list.
i2c: i2c-gpio: Add suspend/resume callbacks

Add suspend-resume callbacks and also provide
a callback to configure/un-configure hardware
resources such as gpio's.
Provide an API to configure the i2c-gpio's very
late into the power collapse sequence.

Change-Id: I5b2168ab568931cd406a92a95bdaaf9dd1526a6e
Signed-off-by: Anirudh Ghayal <aghayal@codeaurora.org>

Conflicts:
	arch/arm/mach-msm/board-qrd7627a.c

Conflicts:
	arch/arm/mach-msm/pm2.c
Revert "i2c: i2c-gpio: Add suspend/resume callbacks"

This reverts commit 22b32ad0819866fa77342fcd17a78525e888f2be.