Kernel driver max6875
=====================

Supported chips:
  * Maxim MAX6874, MAX6875
    Prefix: 'max6875'
    Addresses scanned: None (see below)
    Datasheet:
        http://pdfserv.maxim-ic.com/en/ds/MAX6874-MAX6875.pdf

Author: Ben Gardner <bgardner@wabtec.com>


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

The Maxim MAX6875 is an EEPROM-programmable power-supply sequencer/supervisor.
It provides timed outputs that can be used as a watchdog, if properly wired.
It also provides 512 bytes of user EEPROM.

At reset, the MAX6875 reads the configuration EEPROM into its configuration
registers.  The chip then begins to operate according to the values in the
registers.

The Maxim MAX6874 is a similar, mostly compatible device, with more inputs
and outputs:
             vin     gpi    vout
MAX6874        6       4       8
MAX6875        4       3       5

See the datasheet for more information.


Sysfs entries
-------------

eeprom        - 512 bytes of user-defined EEPROM space.


General Remarks
---------------

Valid addresses for the MAX6875 are 0x50 and 0x52.
Valid addresses for the MAX6874 are 0x50, 0x52, 0x54 and 0x56.
The driver does not probe any address, so you explicitly instantiate the
devices.

Example:
$ modprobe max6875
$ echo max6875 0x50 > /sys/bus/i2c/devices/i2c-0/new_device

The MAX6874/MAX6875 ignores address bit 0, so this driver attaches to multiple
addresses.  For example, for address 0x50, it also reserves 0x51.
The even-address instance is called 'max6875', the odd one is 'dummy'.


Programming the chip using i2c-dev
----------------------------------

Use the i2c-dev interface to access and program the chips.
Reads and writes are performed differently depending on the address range.

The configuration registers are at addresses 0x00 - 0x45.
Use i2c_smbus_write_byte_data() to write a register and
i2c_smbus_read_byte_data() to read a register.
The command is the register number.

Examples:
To write a 1 to register 0x45:
  i2c_smbus_write_byte_data(fd, 0x45, 1);

To read register 0x45:
  value = i2c_smbus_read_byte_data(fd, 0x45);


The configuration EEPROM is at addresses 0x8000 - 0x8045.
The user EEPROM is at addresses 0x8100 - 0x82ff.

Use i2c_smbus_write_word_data() to write a byte to EEPROM.

The command is the upper byte of the address: 0x80, 0x81, or 0x82.
The data word is the lower part of the address or'd with data << 8.
  cmd = address >> 8;
  val = (address & 0xff) | (data << 8);

Example:
To write 0x5a to address 0x8003:
  i2c_smbus_write_word_data(fd, 0x80, 0x5a03);


Reading data from the EEPROM is a little more complicated.
Use i2c_smbus_write_byte_data() to set the read address and then
i2c_smbus_read_byte() or i2c_smbus_read_i2c_block_data() to read the data.

Example:
To read data starting at offset 0x8100, first set the address:
  i2c_smbus_write_byte_data(fd, 0x81, 0x00);

And then read the data
  value = i2c_smbus_read_byte(fd);

  or

  count = i2c_smbus_read_i2c_block_data(fd, 0x84, 16, buffer);

The block read should read 16 bytes.
0x84 is the block read command.

See the datasheet for more details.

