Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v2.6.30 65 lines 2.3 kB view raw
1Kernel driver pcf8574 2===================== 3 4Supported chips: 5 * Philips PCF8574 6 Prefix: 'pcf8574' 7 Addresses scanned: none 8 Datasheet: Publicly available at the Philips Semiconductors website 9 http://www.semiconductors.philips.com/pip/PCF8574P.html 10 11 * Philips PCF8574A 12 Prefix: 'pcf8574a' 13 Addresses scanned: none 14 Datasheet: Publicly available at the Philips Semiconductors website 15 http://www.semiconductors.philips.com/pip/PCF8574P.html 16 17Authors: 18 Frodo Looijaard <frodol@dds.nl>, 19 Philip Edelbrock <phil@netroedge.com>, 20 Dan Eaton <dan.eaton@rocketlogix.com>, 21 Aurelien Jarno <aurelien@aurel32.net>, 22 Jean Delvare <khali@linux-fr.org>, 23 24 25Description 26----------- 27The PCF8574(A) is an 8-bit I/O expander for the I2C bus produced by Philips 28Semiconductors. It is designed to provide a byte I2C interface to up to 16 29separate devices (8 x PCF8574 and 8 x PCF8574A). 30 31This device consists of a quasi-bidirectional port. Each of the eight I/Os 32can be independently used as an input or output. To setup an I/O as an 33input, you have to write a 1 to the corresponding output. 34 35For more informations see the datasheet. 36 37 38Accessing PCF8574(A) via /sys interface 39------------------------------------- 40 41The PCF8574(A) is plainly impossible to detect ! Stupid chip. 42So, you have to pass the I2C bus and address of the installed PCF857A 43and PCF8574A devices explicitly to the driver at load time via the 44force=... parameter. 45 46On detection (i.e. insmod, modprobe et al.), directories are being 47created for each detected PCF8574(A): 48 49/sys/bus/i2c/devices/<0>-<1>/ 50where <0> is the bus the chip was detected on (e. g. i2c-0) 51and <1> the chip address ([20..27] or [38..3f]): 52 53(example: /sys/bus/i2c/devices/1-0020/) 54 55Inside these directories, there are two files each: 56read and write (and one file with chip name). 57 58The read file is read-only. Reading gives you the current I/O input 59if the corresponding output is set as 1, otherwise the current output 60value, that is to say 0. 61 62The write file is read/write. Writing a value outputs it on the I/O 63port. Reading returns the last written value. As it is not possible 64to read this value from the chip, you need to write at least once to 65this file before you can read back from it.