On Fri, May 22, 2020 at 5:25 PM Jishnu Prakash <jprakash@xxxxxxxxxxxxxx> wrote:I'll make the change in a patch before this one in the next post.
The ADC architecture on PMIC7 is changed as compared to PMIC5. TheBelow should be in a separate patch, but it's a bikeshedding. So, I
major change from PMIC5 is that all SW communication to ADC goes through
PMK8350, which communicates with other PMICs through PBS when the ADC
on PMK8350 works in master mode. The SID register is used to identify the
PMICs with which the PBS needs to communicate. Add support for the same.
left it to maintainers to decide.
Fine with me
Reviewed-by: Andy Shevchenko <andy.shevchenko@xxxxxxxxx>
...
@@ -285,7 +304,7 @@ static int adc5_configure(struct adc5_chip *adc,...
/* Read registers 0x42 through 0x46 */
ret = adc5_read(adc, ADC5_USR_DIG_PARAM, buf, sizeof(buf));
- if (ret < 0)
+ if (ret)
return ret;
/* Digital param selection */
@@ -331,7 +391,7 @@ static int adc5_do_conversion(struct adc5_chip *adc,...
if (adc->poll_eoc) {
ret = adc5_poll_wait_eoc(adc);
- if (ret < 0) {
+ if (ret) {
pr_err("EOC bit not set\n");
goto unlock;
}
@@ -341,7 +401,7 @@ static int adc5_do_conversion(struct adc5_chip *adc,
if (!ret) {
pr_debug("Did not get completion timeout.\n");
ret = adc5_poll_wait_eoc(adc);
- if (ret < 0) {
+ if (ret) {
pr_err("EOC bit not set\n");
goto unlock;
}
@@ -406,8 +519,38 @@ static int adc5_read_raw(struct iio_dev *indio_dev,(this one looks like standalone change from above)
default:
return -EINVAL;
}
+}
- return 0;
...
@@ -570,7 +762,7 @@ static int adc5_get_dt_channel_data(struct adc5_chip *adc,...
ret = adc5_read(adc, ADC5_USR_REVISION1, dig_version,
sizeof(dig_version));
- if (ret < 0) {
+ if (ret) {
dev_err(dev, "Invalid dig version read %d\n", ret);
return ret;
}
+ if (of_device_is_compatible(node, "qcom,spmi-adc7"))Can we use driver_data?
+ indio_dev->info = &adc7_info;
+ else
+ indio_dev->info = &adc5_info;
I'll add the change in the next post.
...
+ if (adcmap7_die_temp[0].x > voltage) {As per previous comment, redundant 'else' and please use value of i
+ *result_mdec = DIE_TEMP_ADC7_SCALE_1;
+ return 0;
+ } else if (adcmap7_die_temp[i].x <= voltage) {
directly here.