]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
iio: adc: mt6359: Move reference voltage to platform data
authorAngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Thu, 3 Jul 2025 14:11:44 +0000 (16:11 +0200)
committerJonathan Cameron <Jonathan.Cameron@huawei.com>
Sun, 13 Jul 2025 14:36:26 +0000 (15:36 +0100)
In preparation to add support for new PMICs, add a `vref_mv`
member to struct mtk_pmic_auxadc_info and use it in place of
the AUXADC_VOLT_FULL definition.

As a consequence, the definition was also removed.

Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Reviewed-by: Nuno Sá <nuno.sa@analog.com>
Link: https://patch.msgid.link/20250703141146.171431-5-angelogioacchino.delregno@collabora.com
Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
drivers/iio/adc/mt6359-auxadc.c

index 2ccc64e6c126653731fbb02c3c8fbf78abb2e4e5..1faf08611327981eef14c48e62fa14755e52ecf7 100644 (file)
@@ -28,7 +28,6 @@
 #define AUXADC_AVG_TIME_US             10
 #define AUXADC_POLL_DELAY_US           100
 #define AUXADC_TIMEOUT_US              32000
-#define AUXADC_VOLT_FULL               1800
 #define IMP_STOP_DELAY_US              150
 #define IMP_POLL_DELAY_US              1000
 
@@ -123,6 +122,7 @@ struct mtk_pmic_auxadc_chan {
  * @desc:           PMIC AUXADC channel data
  * @regs:           List of PMIC specific registers
  * @sec_unlock_key: Security unlock key for HK_TOP writes
+ * @vref_mV:        AUXADC Reference Voltage (VREF) in millivolts
  * @imp_adc_num:    ADC channel for battery impedance readings
  * @read_imp:       Callback to read impedance channels
  */
@@ -133,6 +133,7 @@ struct mtk_pmic_auxadc_info {
        const struct mtk_pmic_auxadc_chan *desc;
        const u16 *regs;
        u16 sec_unlock_key;
+       u32 vref_mV;
        u8 imp_adc_num;
        int (*read_imp)(struct mt6359_auxadc *adc_dev,
                        const struct iio_chan_spec *chan, int *vbat, int *ibat);
@@ -416,6 +417,7 @@ static const struct mtk_pmic_auxadc_info mt6357_chip_info = {
        .regs = mt6357_auxadc_regs,
        .imp_adc_num = MT6357_IMP_ADC_NUM,
        .read_imp = mt6358_read_imp,
+       .vref_mV = 1800,
 };
 
 static const struct mtk_pmic_auxadc_info mt6358_chip_info = {
@@ -426,6 +428,7 @@ static const struct mtk_pmic_auxadc_info mt6358_chip_info = {
        .regs = mt6358_auxadc_regs,
        .imp_adc_num = MT6358_IMP_ADC_NUM,
        .read_imp = mt6358_read_imp,
+       .vref_mV = 1800,
 };
 
 static const struct mtk_pmic_auxadc_info mt6359_chip_info = {
@@ -436,6 +439,7 @@ static const struct mtk_pmic_auxadc_info mt6359_chip_info = {
        .regs = mt6359_auxadc_regs,
        .sec_unlock_key = 0x6359,
        .read_imp = mt6359_read_imp,
+       .vref_mV = 1800,
 };
 
 static void mt6359_auxadc_reset(struct mt6359_auxadc *adc_dev)
@@ -505,7 +509,7 @@ static int mt6359_auxadc_read_raw(struct iio_dev *indio_dev,
        int ret;
 
        if (mask == IIO_CHAN_INFO_SCALE) {
-               *val = desc->r_ratio.numerator * AUXADC_VOLT_FULL;
+               *val = desc->r_ratio.numerator * cinfo->vref_mV;
 
                if (desc->r_ratio.denominator > 1) {
                        *val2 = desc->r_ratio.denominator;