dev: pmic: Add support for enabling pmic usb clock
USB3.0 needs LNBB clock line to be enabled from pmic
CRs-Fixed: 610350
Change-Id: I45b61573959a2e8e1ba06f95e392f40633572312
diff --git a/dev/pmic/pm8x41/include/pm8x41.h b/dev/pmic/pm8x41/include/pm8x41.h
index 56ae327..e9580fd 100644
--- a/dev/pmic/pm8x41/include/pm8x41.h
+++ b/dev/pmic/pm8x41/include/pm8x41.h
@@ -208,4 +208,5 @@
uint8_t pm8x41_get_is_cold_boot();
void pm8x41_diff_clock_ctrl(uint8_t enable);
void pm8x41_clear_pmic_watchdog(void);
+void pm8x41_lnbb_clock_ctrl(uint8_t enable);
#endif
diff --git a/dev/pmic/pm8x41/include/pm8x41_hw.h b/dev/pmic/pm8x41/include/pm8x41_hw.h
index a1c2e6d..4a0d803 100644
--- a/dev/pmic/pm8x41/include/pm8x41_hw.h
+++ b/dev/pmic/pm8x41/include/pm8x41_hw.h
@@ -117,6 +117,9 @@
#define DIFF_CLK1_EN_CTL 0x5746
#define DIFF_CLK1_EN_BIT 7
+#define LNBB_CLK_EN_CTL 0x5246
+#define LNBB_CLK_EN_BIT 7
+
/* SMBB registers */
#define PM8XXX_IBAT_ATC_A 0x1054
#define PM8XXX_VBAT_DET 0x105D
diff --git a/dev/pmic/pm8x41/pm8x41.c b/dev/pmic/pm8x41/pm8x41.c
index 8268ed2..5f874ae 100644
--- a/dev/pmic/pm8x41/pm8x41.c
+++ b/dev/pmic/pm8x41/pm8x41.c
@@ -410,6 +410,25 @@
return 1;
}
+/* 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);
+ }
+ else
+ {
+ reg &= ~BIT(LNBB_CLK_EN_BIT);
+ }
+
+ REG_WRITE(LNBB_CLK_EN_CTL, reg);
+}
+
/* api to control diff clock */
void pm8x41_diff_clock_ctrl(uint8_t enable)
{