dev: pmic: pm8x41: Enable lnbb clock using rpm-smd
ln_bb clock required for usb should be enable by voting
to RPM instead of direct register writes.
Change-Id: If3bbaec74c5a5e8cdeb211fd85d67d32765748c3
diff --git a/dev/pmic/pm8x41/pm8x41.c b/dev/pmic/pm8x41/pm8x41.c
index 9315f72..c30c6b6 100644
--- a/dev/pmic/pm8x41/pm8x41.c
+++ b/dev/pmic/pm8x41/pm8x41.c
@@ -33,8 +33,24 @@
#include <string.h>
#include <pm8x41_hw.h>
#include <pm8x41.h>
+#include <rpm-smd.h>
+#include <regulator.h>
#include <platform/timer.h>
+/* Enable LN BB CLK */
+static uint32_t ln_bb_clk[][8] = {
+ {
+ RPM_CLK_BUFFER_A_REQ, LNBB_CLK_ID,
+ KEY_SOFTWARE_ENABLE, 4, GENERIC_DISABLE,
+ RPM_KEY_PIN_CTRL_CLK_BUFFER_ENABLE_KEY, 4, RPM_CLK_BUFFER_PIN_CONTROL_ENABLE_NONE,
+ },
+ {
+ RPM_CLK_BUFFER_A_REQ, LNBB_CLK_ID,
+ KEY_SOFTWARE_ENABLE, 4, GENERIC_ENABLE,
+ RPM_KEY_PIN_CTRL_CLK_BUFFER_ENABLE_KEY, 4, RPM_CLK_BUFFER_PIN_CONTROL_ENABLE_NONE,
+ },
+};
+
static uint8_t mpp_slave_id;
uint8_t pmi8994_config_mpp_slave_id(uint8_t slave_id)
@@ -527,20 +543,14 @@
/* api to control lnbb clock */
void pm8x41_lnbb_clock_ctrl(uint8_t enable)
{
- uint8_t reg;
-
- reg = REG_READ(LNBB_CLK_EN_CTL);
-
if (enable)
{
- reg |= BIT(LNBB_CLK_EN_BIT);
+ rpm_clk_enable(&ln_bb_clk[GENERIC_ENABLE][0], 24);
}
else
{
- reg &= ~BIT(LNBB_CLK_EN_BIT);
+ rpm_clk_enable(&ln_bb_clk[GENERIC_DISABLE][0], 24);
}
-
- REG_WRITE(LNBB_CLK_EN_CTL, reg);
}
/* api to control diff clock */