Commit 40aba218 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
* 'i2c-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jdelvare/staging:
  i2c: Clearly mark ACPI drivers as such
  i2c: Add driver for SMBus Control Method Interface
  i2c-pnx: Correct use of request_region/request_mem_region
  MAINTAINERS: Add maintainer for AT24 and PCA9564/PCA9665
  i2c-piix4: Add AMD SB900 SMBus device ID
  i2c/chips: Remove deprecated pcf8574 driver
  i2c/chips: Remove deprecated pca9539 driver
  i2c/chips: Remove deprecated pcf8575 driver
  gpio/pcf857x: Copy i2c_device_id from old pcf8574 driver
  i2c/scx200_acb: Provide more information on bus errors
  i2c: Provide compatibility links for i2c adapters
  i2c: Convert i2c adapters to bus devices
  i2c: Convert i2c clients to a device type
  i2c/tsl2550: Use combined SMBus transactions
  i2c-taos-evm: Switch echo off to improve performance
  i2c: Drop unused i2c_driver.id field
parents b64ada6b cfd550ed
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -8,6 +8,8 @@ Supported adapters:
    Datasheet: Only available via NDA from ServerWorks
  * ATI IXP200, IXP300, IXP400, SB600, SB700 and SB800 southbridges
    Datasheet: Not publicly available
  * AMD SB900
    Datasheet: Not publicly available
  * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge
    Datasheet: Publicly available at the SMSC website http://www.smsc.com

Documentation/i2c/chips/pca9539

deleted100644 → 0
+0 −58
Original line number Diff line number Diff line
Kernel driver pca9539
=====================

NOTE: this driver is deprecated and will be dropped soon, use
drivers/gpio/pca9539.c instead.

Supported chips:
  * Philips PCA9539
    Prefix: 'pca9539'
    Addresses scanned: none
    Datasheet:
        http://www.semiconductors.philips.com/acrobat/datasheets/PCA9539_2.pdf

Author: Ben Gardner <bgardner@wabtec.com>


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

The Philips PCA9539 is a 16 bit low power I/O device.
All 16 lines can be individually configured as an input or output.
The input sense can also be inverted.
The 16 lines are split between two bytes.


Detection
---------

The PCA9539 is difficult to detect and not commonly found in PC machines,
so you have to pass the I2C bus and address of the installed PCA9539
devices explicitly to the driver at load time via the force=... parameter.


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

Each is a byte that maps to the 8 I/O bits.
A '0' suffix is for bits 0-7, while '1' is for bits 8-15.

input[01]     - read the current value
output[01]    - sets the output value
direction[01] - direction of each bit: 1=input, 0=output
invert[01]    - toggle the input bit sense

input reads the actual state of the line and is always available.
The direction defaults to input for all channels.


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

Note that each output, direction, and invert entry controls 8 lines.
You should use the read, modify, write sequence.
For example. to set output bit 0 of 1.
  val=$(cat output0)
  val=$(( $val | 1 ))
  echo $val > output0

Documentation/i2c/chips/pcf8574

deleted100644 → 0
+0 −65
Original line number Diff line number Diff line
Kernel driver pcf8574
=====================

Supported chips:
  * Philips PCF8574
    Prefix: 'pcf8574'
    Addresses scanned: none
    Datasheet: Publicly available at the Philips Semiconductors website
               http://www.semiconductors.philips.com/pip/PCF8574P.html

 * Philips PCF8574A
    Prefix: 'pcf8574a'
    Addresses scanned: none
    Datasheet: Publicly available at the Philips Semiconductors website
               http://www.semiconductors.philips.com/pip/PCF8574P.html

Authors:
        Frodo Looijaard <frodol@dds.nl>,
        Philip Edelbrock <phil@netroedge.com>,
        Dan Eaton <dan.eaton@rocketlogix.com>,
        Aurelien Jarno <aurelien@aurel32.net>,
        Jean Delvare <khali@linux-fr.org>,


Description
-----------
The PCF8574(A) is an 8-bit I/O expander for the I2C bus produced by Philips
Semiconductors. It is designed to provide a byte I2C interface to up to 16
separate devices (8 x PCF8574 and 8 x PCF8574A).

This device consists of a quasi-bidirectional port. Each of the eight I/Os
can be independently used as an input or output. To setup an I/O as an
input, you have to write a 1 to the corresponding output.

For more informations see the datasheet.


Accessing PCF8574(A) via /sys interface
-------------------------------------

The PCF8574(A) is plainly impossible to detect ! Stupid chip.
So, you have to pass the I2C bus and address of the installed PCF857A
and PCF8574A devices explicitly to the driver at load time via the
force=... parameter.

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

/sys/bus/i2c/devices/<0>-<1>/
where <0> is the bus the chip was detected on (e. g. i2c-0)
and <1> the chip address ([20..27] or [38..3f]):

(example: /sys/bus/i2c/devices/1-0020/)

Inside these directories, there are two files each:
read and write (and one file with chip name).

The read file is read-only. Reading gives you the current I/O input
if the corresponding output is set as 1, otherwise the current output
value, that is to say 0.

The write file is read/write. Writing a value outputs it on the I/O
port. Reading returns the last written value. As it is not possible
to read this value from the chip, you need to write at least once to
this file before you can read back from it.

Documentation/i2c/chips/pcf8575

deleted100644 → 0
+0 −69
Original line number Diff line number Diff line
About the PCF8575 chip and the pcf8575 kernel driver
====================================================

The PCF8575 chip is produced by the following manufacturers:

  * Philips NXP
    http://www.nxp.com/#/pip/cb=[type=product,path=50807/41735/41850,final=PCF8575_3]|pip=[pip=PCF8575_3][0]

  * Texas Instruments
    http://focus.ti.com/docs/prod/folders/print/pcf8575.html


Some vendors sell small PCB's with the PCF8575 mounted on it. You can connect
such a board to a Linux host via e.g. an USB to I2C interface. Examples of
PCB boards with a PCF8575:

  * SFE Breakout Board for PCF8575 I2C Expander by RobotShop
    http://www.robotshop.ca/home/products/robot-parts/electronics/adapters-converters/sfe-pcf8575-i2c-expander-board.html

  * Breakout Board for PCF8575 I2C Expander by Spark Fun Electronics
    http://www.sparkfun.com/commerce/product_info.php?products_id=8130


Description
-----------
The PCF8575 chip is a 16-bit I/O expander for the I2C bus. Up to eight of
these chips can be connected to the same I2C bus. You can find this
chip on some custom designed hardware, but you won't find it on PC
motherboards.

The PCF8575 chip consists of a 16-bit quasi-bidirectional port and an I2C-bus
interface. Each of the sixteen I/O's can be independently used as an input or
an output. To set up an I/O pin as an input, you have to write a 1 to the
corresponding output.

For more information please see the datasheet.


Detection
---------

There is no method known to detect whether a chip on a given I2C address is
a PCF8575 or whether it is any other I2C device, so you have to pass the I2C
bus and address of the installed PCF8575 devices explicitly to the driver at
load time via the force=... parameter.

/sys interface
--------------

For each address on which a PCF8575 chip was found or forced the following
files will be created under /sys:
* /sys/bus/i2c/devices/<bus>-<address>/read
* /sys/bus/i2c/devices/<bus>-<address>/write
where bus is the I2C bus number (0, 1, ...) and address is the four-digit
hexadecimal representation of the 7-bit I2C address of the PCF8575
(0020 .. 0027).

The read file is read-only. Reading it will trigger an I2C read and will hence
report the current input state for the pins configured as inputs, and the
current output value for the pins configured as outputs.

The write file is read-write. Writing a value to it will configure all pins
as output for which the corresponding bit is zero. Reading the write file will
return the value last written, or -EAGAIN if no value has yet been written to
the write file.

On module initialization the configuration of the chip is not changed -- the
chip is left in the state it was already configured in through either power-up
or through previous I2C write actions.
+16 −0
Original line number Diff line number Diff line
@@ -895,6 +895,13 @@ F: drivers/dma/
F:	include/linux/dmaengine.h
F:	include/linux/async_tx.h

AT24 EEPROM DRIVER
M:	Wolfram Sang <w.sang@pengutronix.de>
L:	linux-i2c@vger.kernel.org
S:	Maintained
F:	drivers/misc/eeprom/at24.c
F:	include/linux/i2c/at24.h

ATA OVER ETHERNET (AOE) DRIVER
M:	"Ed L. Cashin" <ecashin@coraid.com>
W:	http://www.coraid.com/support/linux
@@ -3964,6 +3971,15 @@ S: Maintained
F:	drivers/leds/leds-pca9532.c
F:	include/linux/leds-pca9532.h

PCA9564/PCA9665 I2C BUS DRIVER
M:	Wolfram Sang <w.sang@pengutronix.de>
L:	linux-i2c@vger.kernel.org
S:	Maintained
F:	drivers/i2c/algos/i2c-algo-pca.c
F:	drivers/i2c/busses/i2c-pca-*
F:	include/linux/i2c-algo-pca.h
F:	include/linux/i2c-pca-platform.h

PCI ERROR RECOVERY
M:	Linas Vepstas <linas@austin.ibm.com>
L:	linux-pci@vger.kernel.org
Loading