Kernel driver pcf8591
=====================

Supported chips:
  * Philips PCF8591
    Prefix: 'pcf8591'
    Addresses scanned: I2C 0x48 - 0x4f
    Datasheet: Publicly available at the Philips Semiconductor website
               http://www.semiconductors.philips.com/pip/PCF8591P.html

Authors:
        Aurelien Jarno <aurelien@aurel32.net>
        valuable contributions by Jan M. Sendler <sendler@sendler.de>,
        Jean Delvare <khali@linux-fr.org>


Description
-----------
The PCF8591 is an 8-bit A/D and D/A converter (4 analog inputs and one
analog output) for the I2C bus produced by Philips Semiconductors. It
is designed to provide a byte I2C interface to up to 4 separate devices.

The PCF8591 has 4 analog inputs programmable as single-ended or
differential inputs :
- mode 0 : four single ended inputs
        Pins AIN0 to AIN3 are single ended inputs for channels 0 to 3

- mode 1 : three differential inputs
        Pins AIN3 is the common negative differential input
        Pins AIN0 to AIN2 are positive differential inputs for channels 0 to 2

- mode 2 : single ended and differential mixed
        Pins AIN0 and AIN1 are single ended inputs for channels 0 and 1
        Pins AIN2 is the positive differential input for channel 3
        Pins AIN3 is the negative differential input for channel 3

- mode 3 : two differential inputs
        Pins AIN0 is the positive differential input for channel 0
        Pins AIN1 is the negative differential input for channel 0
        Pins AIN2 is the positive differential input for channel 1
        Pins AIN3 is the negative differential input for channel 1

See the datasheet for details.

Module parameters
-----------------

* input_mode int

    Analog input mode:
         0 = four single ended inputs
         1 = three differential inputs
         2 = single ended and differential mixed
         3 = two differential inputs


Accessing PCF8591 via /sys interface
-------------------------------------

! Be careful !
The PCF8591 is plainly impossible to detect ! Stupid chip.
So every chip with address in the interval [48..4f] is
detected as PCF8591. If you have other chips in this address
range, the workaround is to load this module after the one
for your others chips.

On detection (i.e. insmod, modprobe et al.), directories are being
created for each detected PCF8591:

/sys/bus/devices/<0>-<1>/
where <0> is the bus the chip was detected on (e. g. i2c-0)
and <1> the chip address ([48..4f])

Inside these directories, there are such files:
in0, in1, in2, in3, out0_enable, out0_output, name

Name contains chip name.

The in0, in1, in2 and in3 files are RO. Reading gives the value of the
corresponding channel. Depending on the current analog inputs configuration,
files in2 and/or in3 do not exist. Values range are from 0 to 255 for single
ended inputs and -128 to +127 for differential inputs (8-bit ADC).

The out0_enable file is RW. Reading gives "1" for analog output enabled and
"0" for analog output disabled. Writing accepts "0" and "1" accordingly.

The out0_output file is RW. Writing a number between 0 and 255 (8-bit DAC), send
the value to the digital-to-analog converter. Note that a voltage will
only appears on AOUT pin if aout0_enable equals 1. Reading returns the last
value written.
