About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog

Documentation / i2c / chips / pcf8575


Based on kernel version 2.6.31. Page generated on 2009-09-16 22:26 EST.

1	About the PCF8575 chip and the pcf8575 kernel driver
2	====================================================
3	
4	The PCF8575 chip is produced by the following manufacturers:
5	
6	  * Philips NXP
7	    http://www.nxp.com/#/pip/cb=[type=product,path=50807/41735/41850,final=PCF8575_3]|pip=[pip=PCF8575_3][0]
8	
9	  * Texas Instruments
10	    http://focus.ti.com/docs/prod/folders/print/pcf8575.html
11	
12	
13	Some vendors sell small PCB's with the PCF8575 mounted on it. You can connect
14	such a board to a Linux host via e.g. an USB to I2C interface. Examples of
15	PCB boards with a PCF8575:
16	
17	  * SFE Breakout Board for PCF8575 I2C Expander by RobotShop
18	    http://www.robotshop.ca/home/products/robot-parts/electronics/adapters-converters/sfe-pcf8575-i2c-expander-board.html
19	
20	  * Breakout Board for PCF8575 I2C Expander by Spark Fun Electronics
21	    http://www.sparkfun.com/commerce/product_info.php?products_id=8130
22	
23	
24	Description
25	-----------
26	The PCF8575 chip is a 16-bit I/O expander for the I2C bus. Up to eight of
27	these chips can be connected to the same I2C bus. You can find this
28	chip on some custom designed hardware, but you won't find it on PC
29	motherboards.
30	
31	The PCF8575 chip consists of a 16-bit quasi-bidirectional port and an I2C-bus
32	interface. Each of the sixteen I/O's can be independently used as an input or
33	an output. To set up an I/O pin as an input, you have to write a 1 to the
34	corresponding output.
35	
36	For more information please see the datasheet.
37	
38	
39	Detection
40	---------
41	
42	There is no method known to detect whether a chip on a given I2C address is
43	a PCF8575 or whether it is any other I2C device, so you have to pass the I2C
44	bus and address of the installed PCF8575 devices explicitly to the driver at
45	load time via the force=... parameter.
46	
47	/sys interface
48	--------------
49	
50	For each address on which a PCF8575 chip was found or forced the following
51	files will be created under /sys:
52	* /sys/bus/i2c/devices/<bus>-<address>/read
53	* /sys/bus/i2c/devices/<bus>-<address>/write
54	where bus is the I2C bus number (0, 1, ...) and address is the four-digit
55	hexadecimal representation of the 7-bit I2C address of the PCF8575
56	(0020 .. 0027).
57	
58	The read file is read-only. Reading it will trigger an I2C read and will hence
59	report the current input state for the pins configured as inputs, and the
60	current output value for the pins configured as outputs.
61	
62	The write file is read-write. Writing a value to it will configure all pins
63	as output for which the corresponding bit is zero. Reading the write file will
64	return the value last written, or -EAGAIN if no value has yet been written to
65	the write file.
66	
67	On module initialization the configuration of the chip is not changed -- the
68	chip is left in the state it was already configured in through either power-up
69	or through previous I2C write actions.
Hide Line Numbers


About Kernel Documentation Linux Kernel Contact Linux Resources Linux Blog