Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

Kernel driver max197
====================

Author:

  * Vivien Didelot <vivien.didelot@savoirfairelinux.com>

Supported chips:

  * Maxim MAX197

    Prefix: 'max197'

    Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX197.pdf

  * Maxim MAX199

    Prefix: 'max199'

    Datasheet: http://datasheets.maxim-ic.com/en/ds/MAX199.pdf

Description
-----------

The A/D converters MAX197, and MAX199 are both 8-Channel, Multi-Range, 5V,
12-Bit DAS with 8+4 Bus Interface and Fault Protection.

The available ranges for the MAX197 are {0,-5V} to 5V, and {0,-10V} to 10V,
while they are {0,-2V} to 2V, and {0,-4V} to 4V on the MAX199.

Platform data
-------------

The MAX197 platform data (defined in linux/platform_data/max197.h) should be
filled with a pointer to a conversion function, defined like::

    int convert(u8 ctrl);

ctrl is the control byte to write to start a new conversion.
On success, the function must return the 12-bit raw value read from the chip,
or a negative error code otherwise.

Control byte format:

======= ========== ============================================
Bit     Name       Description
7,6     PD1,PD0    Clock and Power-Down modes
5       ACQMOD     Internal or External Controlled Acquisition
4       RNG        Full-scale voltage magnitude at the input
3       BIP        Unipolar or Bipolar conversion mode
2,1,0   A2,A1,A0   Channel
======= ========== ============================================

Sysfs interface
---------------

  ============== ==============================================================
  in[0-7]_input  The conversion value for the corresponding channel.
		 RO

  in[0-7]_min    The lower limit (in mV) for the corresponding channel.
		 For the MAX197, it will be adjusted to -10000, -5000, or 0.
		 For the MAX199, it will be adjusted to -4000, -2000, or 0.
		 RW

  in[0-7]_max    The higher limit (in mV) for the corresponding channel.
		 For the MAX197, it will be adjusted to 0, 5000, or 10000.
		 For the MAX199, it will be adjusted to 0, 2000, or 4000.
		 RW
  ============== ==============================================================