Linux on ARM based TI OMAP SoCs
 help / color / mirror / Atom feed
* [PATCH v1 0/2] TWL6030, TWL6032 GPADC driver
@ 2013-06-27 10:43 Oleksandr Kozaruk
  2013-06-27 10:43 ` [PATCH v1 1/2] ARM: dts: twl: Add GPADC data to device tree Oleksandr Kozaruk
                   ` (2 more replies)
  0 siblings, 3 replies; 8+ messages in thread
From: Oleksandr Kozaruk @ 2013-06-27 10:43 UTC (permalink / raw)
  To: rob, sameo, grant.likely, rob.herring, balajitk, gg
  Cc: linux-doc, linux-kernel, linux-omap

Hello

TWL603[02] GPADC is used to measure battery voltage,
battery temperature, battery presence ID, and could
be used to measure twl603[02] die temperature.
This is used on TI blaze, blaze tablet platforms.

The TWL6030 and TWL6032 have GPADC with 17 and 19
channels respectively. Some channels have current
source and are used for measuring voltage drop
on resistive load for detecting battery ID resistance,
or measuring voltage drop on NTC resistors for external
temperature measurements. Some channels measure voltage,
(i.e. battery voltage), and have inbuilt voltage dividers,
thus, capable to scale voltage. Some channels are dedicated
for measuring die temperature.

Some channels could be calibrated in 2 points, having
offsets from ideal values in trim registers.

The difference between GPADC in TWL6030 and TWL6032:
- 10 bit vs 12 bit ADC;
- 17 vs 19 channels;
- channels have different purpose(i. e. battery voltage
  channel 8 vs channel 18);
- trim values are interpreted differently.

The driver exports function returning converted value for
requested channels: raw code, corrected code, and converted
to mV result.

Sysfs entries are added to start and read conversion result
in millivolts for channel if it has calibration data, or
ADC code(for temperature and test network channels).

The driver is derived from git://git.omapzoom.org/kernel/omap.git
The original driver's authors and contributors are Balaji T K,
Graeme Gregory, Ambresh K, Girish S Ghongdemath.

The changes to the original driver:
- device tree adaptation;
- drop ioctl support - never been used;
- unified measurement method for both devices;
- get rid of "if (device == X)" code style to data driven;
- drop polling end of conversion and use interrupt instead;
- simplified (hopefully) exported external function interface to the driver.

Tested with on blaze tablet 2 with OMAP4430(twl6030), and
OMAP4470(twl6032) SOMs.

The patches were tested against 3.10-rc7

Oleksandr Kozaruk (2):
  ARM: dts: twl: Add GPADC data to device tree
  mfd: twl6030-gpadc: TWL6030, TWL6032 GPADC driver

 .../testing/sysfs-devices-platform-twl6030_gpadc   |    5 +
 arch/arm/boot/dts/twl6030.dtsi                     |    5 +
 drivers/mfd/Kconfig                                |    8 +
 drivers/mfd/Makefile                               |    1 +
 drivers/mfd/twl6030-gpadc.c                        | 1053 ++++++++++++++++++++
 include/linux/i2c/twl6030-gpadc.h                  |   51 +
 6 files changed, 1123 insertions(+)
 create mode 100644 Documentation/ABI/testing/sysfs-devices-platform-twl6030_gpadc
 create mode 100644 drivers/mfd/twl6030-gpadc.c
 create mode 100644 include/linux/i2c/twl6030-gpadc.h

-- 
1.7.9.5


^ permalink raw reply	[flat|nested] 8+ messages in thread

end of thread, other threads:[~2013-07-13 11:42 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-06-27 10:43 [PATCH v1 0/2] TWL6030, TWL6032 GPADC driver Oleksandr Kozaruk
2013-06-27 10:43 ` [PATCH v1 1/2] ARM: dts: twl: Add GPADC data to device tree Oleksandr Kozaruk
2013-06-27 10:43 ` [PATCH v1 2/2] mfd: twl6030-gpadc: TWL6030, TWL6032 GPADC driver Oleksandr Kozaruk
2013-07-13 10:03   ` Lee Jones
2013-07-13 10:33     ` Kozaruk, Oleksandr
2013-07-13 10:54       ` Lee Jones
2013-07-13 11:42         ` Kozaruk, Oleksandr
2013-06-27 10:53 ` [PATCH v1 0/2] " Graeme Gregory

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox