diff --git a/drivers/power/mmi_qc3p_wt6670f/wt6670f.h b/drivers/power/mmi_qc3p_wt6670f/wt6670f.h index 0e594c37fc6b..b9af2502b52a 100644 --- a/drivers/power/mmi_qc3p_wt6670f/wt6670f.h +++ b/drivers/power/mmi_qc3p_wt6670f/wt6670f.h @@ -69,6 +69,7 @@ static const struct wt6670_iio_channels wt6670_iio_psy_channels[] = { wt6670_CHAN_INDEX("wt6670_battery_dp_dm", PSY_IIO_BATTERY_DP_DM) wt6670_CHAN_INDEX("wt6670_start_detection", PSY_IIO_START_DETECTION) wt6670_CHAN_INDEX("wt6670_detection_ready", PSY_IIO_DETECTION_READY) + wt6670_CHAN_INDEX("wt6670_firmware_num", PSY_IIO_QC3P_FIRMWARE_NUM) }; int wt6670f_isp_flow(struct wt6670f *chip); diff --git a/drivers/power/mmi_qc3p_wt6670f/wt6670f_qc3p.c b/drivers/power/mmi_qc3p_wt6670f/wt6670f_qc3p.c index 947ce6650184..a1f4dd0b0611 100644 --- a/drivers/power/mmi_qc3p_wt6670f/wt6670f_qc3p.c +++ b/drivers/power/mmi_qc3p_wt6670f/wt6670f_qc3p.c @@ -497,6 +497,16 @@ static int wt6670_iio_read_raw(struct iio_dev *indio_dev, pr_info("wt6670 get wt6670f_is_charger_ready status:%d\n", result); *val1 = result; break; + case PSY_IIO_QC3P_FIRMWARE_NUM: + gpio_direction_output(_wt->intb_pin,0); + usleep_range(5000,6000); + gpio_direction_output(_wt->intb_pin,1); + usleep_range(5000,6000); + result = wt6670f_get_firmware_version(); + pr_info("wt6670 get wt6670f_firmware_num:%d\n", result); + *val1 = result; + gpio_direction_input(wt6670f_int_pin); + break; default: pr_err("Unsupported wt6670 IIO chan %d\n", chan->channel); rc = -EINVAL;