dev: pm8xxx: Add support for spmi read/write APIs
Add support for spmi read, write APIs for weak battery charging support
Change-Id: I71245af744910f76bdc4b6b364178499c8c2c268
diff --git a/dev/pmic/pm8x41/pm8x41.c b/dev/pmic/pm8x41/pm8x41.c
index 6733656..939e169 100644
--- a/dev/pmic/pm8x41/pm8x41.c
+++ b/dev/pmic/pm8x41/pm8x41.c
@@ -77,6 +77,40 @@
return val;
}
+uint32_t spmi_reg_read(uint32_t slave_id, uint16_t addr, uint8_t *data, uint8_t priority)
+{
+ struct pmic_arb_cmd cmd;
+ struct pmic_arb_param param;
+
+ cmd.address = PERIPH_ID(addr);
+ cmd.offset = REG_OFFSET(addr);
+ cmd.slave_id = slave_id;
+
+ cmd.priority = priority;
+
+ param.buffer = data;
+ param.size = 1;
+
+ return pmic_arb_read_cmd(&cmd, ¶m);
+}
+
+uint32_t spmi_reg_write(uint32_t slave_id, uint16_t addr, uint8_t *data, uint8_t priority)
+{
+ struct pmic_arb_cmd cmd;
+ struct pmic_arb_param param;
+
+ cmd.address = PERIPH_ID(addr);
+ cmd.offset = REG_OFFSET(addr);
+ cmd.slave_id = slave_id;
+
+ cmd.priority = priority;
+
+ param.buffer = data;
+ param.size = 1;
+
+ return pmic_arb_write_cmd(&cmd, ¶m);
+}
+
/* SPMI helper function which takes slave id as the i/p */
void pm8xxx_reg_write(uint8_t slave_id, uint32_t addr, uint8_t val)
{