tscadc: Couple of fixes
Subsystems (2)
v2 cover tscadc: Couple of fixes
Couple of fixes for tscadc drivers that I found while adding support for new SoC.
Vignesh R (2):
mfd: ti_am335x_tscadc: Use PLATFORM_DEVID_AUTO while registering mfd
cells
iio: adc: ti_am335x_tscadc: Improve accuracy of measurement
drivers/iio/adc/ti_am335x_adc.c | 5 ++++- drivers/mfd/ti_am335x_tscadc.c | 5 +++-- include/linux/mfd/ti_am335x_tscadc.h | 4 ++++ 3 files changed, 11 insertions(+), 3 deletions(-)
Signature · 1 line
2.19.2
PATCH v2 1/2 mfd: ti_am335x_tscadc: Use PLATFORM_DEVID_AUTO while registering mfd cells
Use PLATFORM_DEVID_AUTO to number mfd cells while registering, so that different instances are uniquely identified. This is required in order to support registering of multiple instances of same ti_am335x_tscadc IP.
---
v2: use PLATFORM_DEVID_AUTO as suggested by Lee Jones
drivers/mfd/ti_am335x_tscadc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
drivers/mfd/ti_am335x_tscadc.c +3 -2
@@ -264,8 +264,9 @@ static int ti_tscadc_probe(struct platform_device *pdev) cell->pdata_size =sizeof (tscadc); } - err =mfd_add_devices (&pdev->dev, pdev->id, tscadc->cells, - tscadc->used_cells,NULL ,0 ,NULL ); + err =mfd_add_devices (&pdev->dev,PLATFORM_DEVID_AUTO , + tscadc->cells, tscadc->used_cells,NULL , +0 ,NULL );if (err <0 ) goto err_disable_clk;
Signature · 1 line
2.19.2
Lee Jones
AppliedRe: [PATCH v2 1/2] mfd: ti_am335x_tscadc: Use PLATFORM_DEVID_AUTO while registering mfd cells
Quoted 10 lines · Vignesh R
Use
PLATFORM_DEVID_AUTOto number mfd cells while registering, so that different instances are uniquely identified. This is required in order to support registering of multiple instances of sameti_am335x_tscadcIP.Signed-off-by Vignesh R <[email protected]>---
v2: usePLATFORM_DEVID_AUTOas suggested by Lee Jonesdrivers/mfd/ti_am335x_tscadc.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
Applied, thanks.
Signature · 4 lines
Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog
PATCH v2 2/2 iio: adc: ti_am335x_tscadc: Improve accuracy of measurement
In reply to Vignesh RWhen performing single ended measurements with TSCADC, its recommended to set negative input (SEL_INM_SWC_3_0) of ADC step to ADC's VREFN in the corresponding STEP_CONFIGx register.
Also, the positive(SEL_RFP_SWC_2_0) and negative(SEL_RFM_SWC_1_0) reference voltage for ADC step needs to be set to VREFP and VREFN respectively in STEP_CONFIGx register.
Without these changes, there may be variation of as much as ~2% in the ADC's digital output which is bad for precise measurement.
---
v2: No change
drivers/iio/adc/ti_am335x_adc.c | 5 ++++- include/linux/mfd/ti_am335x_tscadc.h | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-)
drivers/iio/adc/ti_am335x_adc.c +4 -1
@@ -142,7 +142,10 @@ static void tiadc_step_config(struct iio_dev *indio_dev) stepconfig |=STEPCONFIG_MODE_SWCNT ;tiadc_writel (adc_dev,REG_STEPCONFIG (steps), - stepconfig |STEPCONFIG_INP (chan)); + stepconfig |STEPCONFIG_INP (chan) | +STEPCONFIG_INM_ADCREFM | +STEPCONFIG_RFP_VREFP | +STEPCONFIG_RFM_VREFN );if (adc_dev->open_delay[i] >STEPDELAY_OPEN_MASK ) { dev_warn(dev, "chan %d open delay truncating to 0x3FFFF\n",
include/linux/mfd/ti_am335x_tscadc.h +4 -0
@@ -78,6 +78,8 @@#define STEPCONFIG_YNN BIT(8)#define STEPCONFIG_XNP BIT(9)#define STEPCONFIG_YPN BIT(10) +#define STEPCONFIG_RFP (val) ((val) << 12) +#define STEPCONFIG_RFP_VREFP (0x3 << 12)#define STEPCONFIG_INM_MASK (0xF << 15)#define STEPCONFIG_INM (val) ((val) << 15)#define STEPCONFIG_INM_ADCREFM STEPCONFIG_INM(8)
@@ -86,6 +88,8 @@#define STEPCONFIG_INP_AN4 STEPCONFIG_INP(4)#define STEPCONFIG_INP_ADCREFM STEPCONFIG_INP(8)#define STEPCONFIG_FIFO1 BIT(26) +#define STEPCONFIG_RFM (val) ((val) << 23) +#define STEPCONFIG_RFM_VREFN (0x3 << 23)/* Delay register */ #define STEPDELAY_OPEN_MASK (0x3FFFF << 0)
Signature · 1 line
2.19.2
[GIT PULL] Immutable branch between MFD and IIO due for the v4.21 merge window
In reply to Vignesh REnjoy!
The following changes since commit 651022382c7f8da46cb4872a545ee1da6d097d2a:
Linux 4.20-rc1 (2018-11-04 15:37:52 -0800)
are available in the Git repository at:
git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd.git ib-mfd-iio-v4.21
for you to fetch changes up to 4b3ab9372ffa569827c8f7b7ffc7b69ba544a3bd:
iio: adc: ti_am335x_tscadc: Improve accuracy of measurement (2018-12-03 11:33:20 +0000)
----------------------------------------------------------------
Immutable branch between MFD and IIO due for the v4.21 merge window
----------------------------------------------------------------
Vignesh R (2):
mfd: ti_am335x_tscadc: Use PLATFORM_DEVID_AUTO while registering mfd cells
iio: adc: ti_am335x_tscadc: Improve accuracy of measurement
drivers/iio/adc/ti_am335x_adc.c | 5 ++++- drivers/mfd/ti_am335x_tscadc.c | 5 +++-- include/linux/mfd/ti_am335x_tscadc.h | 4 ++++ 3 files changed, 11 insertions(+), 3 deletions(-)
Signature · 4 lines
Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog