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

Supported chips:
  * Philips/NXP PCF8591
    Prefix: 'pcf8591'
    Addresses scanned: none
    Datasheet: Publicly available at the NXP website
               http://www.nxp.com/pip/PCF8591_6.html

Authors:
        Aurelien Jarno <aurelien@aurel32.net>
        valuable contributions by Jan M. Sendler <sendler@sendler.de>,
        Jean Delvare <jdelvare@suse.de>


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 (now NXP).
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
-------------------------------------

The PCF8591 is plainly impossible to detect! Thus the driver won't even
try. You have to explicitly instantiate the device at the relevant
address (in the interval [0x48..0x4f]) either through platform data, or
using the sysfs interface. See Documentation/i2c/instantiating-devices
for details.

Directories are being created for each instantiated PCF8591:

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

Inside these directories, there are such files:
in0_input, in1_input, in2_input, in3_input, out0_enable, out0_output, name

Name contains chip name.

The in0_input, in1_input, in2_input and in3_input files are RO. Reading gives
the value of the corresponding channel. Depending on the current analog inputs
configuration, files in2_input and in3_input may not exist. Values range
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.
