armbian_build/patch/kernel/archive/sunxi-5.10/megous/iio-adc-axp20x_adc-allow-to-set-TS-pin-to-GPADC-mode.patch
The-going 7964a578f5
Patches megous 5.10 (#3293)
* Add a series of patches for sunxi 5.10

Patches from the repository
https://github.com/megous/linux branches of orange-pi-5.10

* Patches adapted to the kernel version v5.10.81

* Remove unnecessary patches 5.10.19-5.10.75

* Kernel switch tag=v5.10.81 for the current sunxi

* Adjust broken patches, build tested on sunxi and sunxi64

* Remove patch added by mistake

Co-authored-by: Igor Pecovnik <igor.pecovnik@gmail.com>
2021-11-27 00:48:30 +01:00

44 lines
1.5 KiB
Diff

From de0f0307c4f891462472cdca53d639baee646acb Mon Sep 17 00:00:00 2001
From: Icenowy Zheng <icenowy@aosc.io>
Date: Tue, 10 Sep 2019 12:03:32 +0800
Subject: [PATCH 262/351] iio: adc: axp20x_adc: allow to set TS pin to GPADC
mode
The TS pin of AXP PMICs can be set to GPADC mode. In this situation, it
doesn't affect battery charging.
Add the code to do the mode setting.
Signed-off-by: Icenowy Zheng <icenowy@aosc.io>
---
drivers/iio/adc/axp20x_adc.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/iio/adc/axp20x_adc.c b/drivers/iio/adc/axp20x_adc.c
index 3e0c0233b431..31d5658cc6f0 100644
--- a/drivers/iio/adc/axp20x_adc.c
+++ b/drivers/iio/adc/axp20x_adc.c
@@ -39,6 +39,7 @@
#define AXP813_TS_GPIO0_ADC_RATE_HZ(x) AXP20X_ADC_RATE_HZ(x)
#define AXP813_V_I_ADC_RATE_HZ(x) ((ilog2((x) / 100) << 4) & AXP813_V_I_ADC_RATE_MASK)
#define AXP813_ADC_RATE_HZ(x) (AXP20X_ADC_RATE_HZ(x) | AXP813_V_I_ADC_RATE_HZ(x))
+#define AXP20X_TS_FUNCTION_GPADC BIT(2)
#define AXP20X_ADC_CHANNEL(_channel, _name, _type, _reg) \
{ \
@@ -694,6 +695,11 @@ static int axp20x_probe(struct platform_device *pdev)
regmap_update_bits(info->regmap, AXP20X_ADC_EN2,
AXP20X_ADC_EN2_MASK, AXP20X_ADC_EN2_MASK);
+ if (of_property_read_bool(pdev->dev.of_node, "x-powers,ts-as-gpadc"))
+ regmap_update_bits(info->regmap, AXP20X_ADC_RATE,
+ AXP20X_TS_FUNCTION_GPADC,
+ AXP20X_TS_FUNCTION_GPADC);
+
/* Configure ADCs rate */
info->data->adc_rate(info, 100);
--
2.34.0