max77779_fwupdate: Call pmic read/write functions based on device
external read/write functions are bus type agnostic
Bug: 313925418
Test: firmware update
Change-Id: Ic30ad2a9f523e00a3814ec3939bdc4eddb4c51e9
Signed-off-by: Daniel Okazaki <[email protected]>
diff --git a/max77779_fwupdate.c b/max77779_fwupdate.c
index 6f288df..eca3cd4 100644
--- a/max77779_fwupdate.c
+++ b/max77779_fwupdate.c
@@ -118,7 +118,7 @@
struct delayed_work update_work;
- struct i2c_client *pmic;
+ struct device *pmic;
struct i2c_client *fg;
struct i2c_client *vimon;
struct i2c_client *chg;
@@ -162,14 +162,10 @@
fwu->debug_image.data = NULL;
fwu->debug_image.size = 0;
+ fwu->pmic = max77779_get_dev(fwu->dev, MAX77779_PMIC_OF_NAME);
if (!fwu->pmic) {
- dn = of_parse_phandle(dev->of_node, "max77779,pmic", 0);
- if (!dn)
- return -ENXIO;
-
- fwu->pmic = of_find_i2c_device_by_node(dn);
- if (!fwu->pmic)
- return -EPROBE_DEFER;
+ dev_err(dev, "Error finding pmic\n");
+ return -EPROBE_DEFER;
}
if (!fwu->fg) {
@@ -232,7 +228,7 @@
{
int ret;
int cnt = 0;
- unsigned int val;
+ uint8_t val;
dev_info(fwu->dev, "waiting for cpu reset\n");
@@ -258,7 +254,7 @@
{
int ret;
int cnt = 0;
- unsigned int val;
+ uint8_t val;
dev_info(fwu->dev, "waiting for firmware update\n");
@@ -377,8 +373,7 @@
{
int ret;
- ret = max77779_external_pmic_reg_write(fwu->pmic, MAX77779_FG_AP_DATAOUT_OPCODE,
- (unsigned int)intr);
+ ret = max77779_external_pmic_reg_write(fwu->pmic, MAX77779_FG_AP_DATAOUT_OPCODE, intr);
if (ret)
dev_err(fwu->dev, "failed to write pmic reg %02x (%d) in trigger_interrupt\n",
MAX77779_FG_AP_DATAOUT_OPCODE, ret);
@@ -390,7 +385,7 @@
struct max77779_version_info *ver)
{
int ret;
- unsigned int major, minor;
+ uint8_t major, minor;
ret = max77779_external_pmic_reg_read(fwu->pmic, MAX77779_FG_FW_REV, &major);
if (ret) {
@@ -404,8 +399,8 @@
dev_err(fwu->dev, "failed to read pmic reg %02x (%d) in read firmware version\n",
MAX77779_FG_FW_SUB_REV, ret);
- ver->major = (u8)major;
- ver->minor = (u8)minor;
+ ver->major = major;
+ ver->minor = minor;
max77779_get_firmware_version_done:
return ret;
@@ -692,7 +687,7 @@
u32 size, u32 *written)
{
int ret;
- unsigned int val;
+ uint8_t val;
dev_info(fwu->dev, "perform firmware update\n");