msm: rpm-regulator: Add support for TCXO workaround

Certain NLDO type PMIC regulators require that the CXO oscillator
input into the PMIC (either CXO or TCXO depending upon the board)
is enabled in order to turn on successfully.  The RPM is able to
handle this requirement for platforms which utilize a CXO
oscillator but not on platforms which use a TCXO oscillator.
This is because the TCXO oscillator cannot be disabled within its
4 ms warmup period.  Any TCXO hardware disable attempted during
the warmup period will be ignored and will result in the TCXO
being latched on until another disable is attempted which has
sufficient delay.

Add conditional CXO clock resource enable and disable calls
around regulator requests which are sent to the RPM for affected
regulators on systems using a TCXO.  The CXO disable calls should
be made from a delayed work queue task which is scheduled to run
4 ms after CXO is enabled.

Change-Id: I4093eeff3076bf5e6907593ed23f0bd2844f377e
Signed-off-by: David Collins <collinsd@codeaurora.org>
3 files changed