Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 609121b9 authored by Jishnu Prakash's avatar Jishnu Prakash Committed by Gerrit - the friendly Code Review server
Browse files

iio: adc: Add support to read parallel charger current channel



Add support to read ADC channel 0xA5 for parallel charger
current.

Some PMICs (PMI632) the max supported current is 5A, hence
define a new config data and compatible string for it.

Change-Id: I973dfdf81ee955d322da7e2c328d8b1472d33013
Signed-off-by: default avatarJishnu Prakash <jprakash@codeaurora.org>
Signed-off-by: default avatarAnirudh Ghayal <aghayal@codeaurora.org>
parent f8856bd4
Loading
Loading
Loading
Loading
+23 −5
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0-only
/*
 * Copyright (c) 2012-2019, The Linux Foundation. All rights reserved.
 * Copyright (c) 2012-2020, The Linux Foundation. All rights reserved.
 */

#include <linux/bitops.h>
@@ -746,11 +746,15 @@ static const struct adc_channels adc_chans_pmic5[ADC_MAX_CHANNEL] = {
					SCALE_HW_CALIB_THERM_100K_PULLUP)
	[ADC_AMUX_THM4_PU2]	= ADC_CHAN_TEMP("amux_thm4_pu2", 1,
					SCALE_HW_CALIB_THERM_100K_PULLUP)
	[ADC_INT_EXT_ISENSE_VBAT_VDATA]	= ADC_CHAN_POWER("int_ext_isense", 1,
	[ADC_PARALLEL_ISENSE]	= ADC_CHAN_VOLT("parallel_isense", 1,
					SCALE_HW_CALIB_CUR)
	[ADC_EXT_ISENSE_VBAT_VDATA]	= ADC_CHAN_POWER("ext_isense", 1,
	[ADC_INT_EXT_ISENSE_VBAT_VDATA]	= ADC_CHAN_POWER(
					"int_ext_vbat_isense", 1,
						SCALE_HW_CALIB_CUR)
	[ADC_PARALLEL_ISENSE_VBAT_VDATA] = ADC_CHAN_POWER("parallel_isense", 1,
	[ADC_EXT_ISENSE_VBAT_VDATA]	= ADC_CHAN_POWER("ext_vbat_isense", 1,
					SCALE_HW_CALIB_CUR)
	[ADC_PARALLEL_ISENSE_VBAT_VDATA] = ADC_CHAN_POWER(
					"parallel_vbat_isense", 1,
						SCALE_HW_CALIB_CUR)
	[ADC_AMUX_THM2]			= ADC_CHAN_TEMP("amux_thm2", 1,
					SCALE_HW_CALIB_PM5_SMB_TEMP)
@@ -907,6 +911,16 @@ const struct adc_data data_pmic5 = {
					800, 900, 1, 2, 4, 6, 8, 10},
};

const struct adc_data data_pmic5_lite = {
	.full_scale_code_volt = 0x70e4,
	/* On PMI632, IBAT LSB = 5A/32767 */
	.full_scale_code_cur = 5000,
	.adc_chans = adc_chans_pmic5,
	.decimation = (unsigned int []) {250, 420, 840},
	.hw_settle = (unsigned int []) {15, 100, 200, 300, 400, 500, 600, 700,
					800, 900, 1, 2, 4, 6, 8, 10},
};

const struct adc_data data_pmic_rev2 = {
	.full_scale_code_volt = 0x4000,
	.full_scale_code_cur = 0x1800,
@@ -925,6 +939,10 @@ static const struct of_device_id adc_match_table[] = {
		.compatible = "qcom,spmi-adc-rev2",
		.data = &data_pmic_rev2,
	},
	{
		.compatible = "qcom,spmi-adc5-lite",
		.data = &data_pmic5_lite,
	},
	{ }
};