Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 77410
b: refs/heads/master
c: 9152530
h: refs/heads/master
v: v3
  • Loading branch information
Linus Torvalds committed Jan 27, 2008
1 parent 9a83836 commit 61477b2
Show file tree
Hide file tree
Showing 87 changed files with 1,441 additions and 2,450 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 9c5e710bc1431f41ccdd0c294fa355aa0d45d2d7
refs/heads/master: 91525300baf162e83e923b09ca286f9205e21522
31 changes: 7 additions & 24 deletions trunk/Documentation/feature-removal-schedule.txt
Original file line number Diff line number Diff line change
Expand Up @@ -191,15 +191,6 @@ Who: Kay Sievers <kay.sievers@suse.de>

---------------------------

What: i2c_adapter.list
When: July 2007
Why: Superfluous, this list duplicates the one maintained by the driver
core.
Who: Jean Delvare <khali@linux-fr.org>,
David Brownell <dbrownell@users.sourceforge.net>

---------------------------

What: ACPI procfs interface
When: July 2008
Why: ACPI sysfs conversion should be finished by January 2008.
Expand All @@ -225,14 +216,6 @@ Who: Len Brown <len.brown@intel.com>

---------------------------

What: i2c-ixp2000, i2c-ixp4xx and scx200_i2c drivers
When: September 2007
Why: Obsolete. The new i2c-gpio driver replaces all hardware-specific
I2C-over-GPIO drivers.
Who: Jean Delvare <khali@linux-fr.org>

---------------------------

What: 'time' kernel boot parameter
When: January 2008
Why: replaced by 'printk.time=<value>' so that printk timestamps can be
Expand Down Expand Up @@ -266,13 +249,6 @@ Who: Tejun Heo <htejun@gmail.com>

---------------------------

What: Legacy RTC drivers (under drivers/i2c/chips)
When: November 2007
Why: Obsolete. We have a RTC subsystem with better drivers.
Who: Jean Delvare <khali@linux-fr.org>

---------------------------

What: iptables SAME target
When: 1.1. 2008
Files: net/ipv4/netfilter/ipt_SAME.c, include/linux/netfilter_ipv4/ipt_SAME.h
Expand Down Expand Up @@ -323,3 +299,10 @@ Why: This driver has been marked obsolete for many years.
Who: Stephen Hemminger <shemminger@linux-foundation.org>

---------------------------

What: i2c-i810, i2c-prosavage and i2c-savage4
When: May 2008
Why: These drivers are superseded by i810fb, intelfb and savagefb.
Who: Jean Delvare <khali@linux-fr.org>

---------------------------
5 changes: 2 additions & 3 deletions trunk/Documentation/i2c/busses/i2c-i801
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,8 @@ Supported adapters:
Datasheets: Publicly available at the Intel website

Authors:
Frodo Looijaard <frodol@dds.nl>,
Philip Edelbrock <phil@netroedge.com>,
Mark Studebaker <mdsxyz123@yahoo.com>
Jean Delvare <khali@linux-fr.org>


Module Parameters
Expand Down Expand Up @@ -62,7 +61,7 @@ Not supported.
I2C Block Read Support
----------------------

Not supported at the moment.
I2C block read is supported on the 82801EB (ICH5) and later chips.


SMBus 2.0 Support
Expand Down
3 changes: 2 additions & 1 deletion trunk/Documentation/i2c/busses/i2c-viapro
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Supported adapters:
* VIA Technologies, Inc. VT8231, VT8233, VT8233A
Datasheet: available on request from VIA

* VIA Technologies, Inc. VT8235, VT8237R, VT8237A, VT8251
* VIA Technologies, Inc. VT8235, VT8237R, VT8237A, VT8237S, VT8251
Datasheet: available on request and under NDA from VIA

* VIA Technologies, Inc. CX700
Expand Down Expand Up @@ -46,6 +46,7 @@ Your lspci -n listing must show one of these :
device 1106:3177 (VT8235)
device 1106:3227 (VT8237R)
device 1106:3337 (VT8237A)
device 1106:3372 (VT8237S)
device 1106:3287 (VT8251)
device 1106:8324 (CX700)

Expand Down
72 changes: 72 additions & 0 deletions trunk/Documentation/i2c/chips/pcf8575
Original file line number Diff line number Diff line change
@@ -0,0 +1,72 @@
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 there are two alternatives
to let the driver find the installed PCF8575 devices:
- Load this driver after any other I2C driver for I2C devices with addresses
in the range 0x20 .. 0x27.
- Pass the I2C bus and address of the installed PCF8575 devices explicitly to
the driver at load time via the probe=... or force=... parameters.

/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.
6 changes: 3 additions & 3 deletions trunk/Documentation/i2c/i2c-stub
Original file line number Diff line number Diff line change
Expand Up @@ -25,16 +25,16 @@ The typical use-case is like this:
3. load the target sensors chip driver module
4. observe its behavior in the kernel log

There's a script named i2c-stub-from-dump in the i2c-tools package which
can load register values automatically from a chip dump.

PARAMETERS:

int chip_addr[10]:
The SMBus addresses to emulate chips at.

CAVEATS:

There are independent arrays for byte/data and word/data commands. Depending
on if/how a target driver mixes them, you'll need to be careful.

If your target driver polls some byte or word waiting for it to change, the
stub could lock it up. Use i2cset to unlock it.

Expand Down
6 changes: 3 additions & 3 deletions trunk/Documentation/i2c/writing-clients
Original file line number Diff line number Diff line change
Expand Up @@ -267,9 +267,9 @@ insmod parameter of the form force_<kind>.
Fortunately, as a module writer, you just have to define the `normal_i2c'
parameter. The complete declaration could look like this:

/* Scan 0x37, and 0x48 to 0x4f */
static unsigned short normal_i2c[] = { 0x37, 0x48, 0x49, 0x4a, 0x4b, 0x4c,
0x4d, 0x4e, 0x4f, I2C_CLIENT_END };
/* Scan 0x4c to 0x4f */
static const unsigned short normal_i2c[] = { 0x4c, 0x4d, 0x4e, 0x4f,
I2C_CLIENT_END };

/* Magic definition of all other variables and things */
I2C_CLIENT_INSMOD;
Expand Down
14 changes: 7 additions & 7 deletions trunk/arch/arm/mach-ixp4xx/avila-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@
#include <linux/tty.h>
#include <linux/serial_8250.h>
#include <linux/slab.h>
#include <linux/i2c-gpio.h>

#include <asm/types.h>
#include <asm/setup.h>
Expand Down Expand Up @@ -47,18 +48,17 @@ static struct platform_device avila_flash = {
.resource = &avila_flash_resource,
};

static struct ixp4xx_i2c_pins avila_i2c_gpio_pins = {
static struct i2c_gpio_platform_data avila_i2c_gpio_data = {
.sda_pin = AVILA_SDA_PIN,
.scl_pin = AVILA_SCL_PIN,
};

static struct platform_device avila_i2c_controller = {
.name = "IXP4XX-I2C",
static struct platform_device avila_i2c_gpio = {
.name = "i2c-gpio",
.id = 0,
.dev = {
.platform_data = &avila_i2c_gpio_pins,
.dev = {
.platform_data = &avila_i2c_gpio_data,
},
.num_resources = 0
};

static struct resource avila_uart_resources[] = {
Expand Down Expand Up @@ -133,7 +133,7 @@ static struct platform_device avila_pata = {
};

static struct platform_device *avila_devices[] __initdata = {
&avila_i2c_controller,
&avila_i2c_gpio,
&avila_flash,
&avila_uart
};
Expand Down
13 changes: 8 additions & 5 deletions trunk/arch/arm/mach-ixp4xx/dsmg600-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
#include <linux/kernel.h>
#include <linux/serial.h>
#include <linux/serial_8250.h>
#include <linux/i2c-gpio.h>

#include <asm/mach-types.h>
#include <asm/mach/arch.h>
Expand All @@ -37,15 +38,17 @@ static struct platform_device dsmg600_flash = {
.resource = &dsmg600_flash_resource,
};

static struct ixp4xx_i2c_pins dsmg600_i2c_gpio_pins = {
static struct i2c_gpio_platform_data dsmg600_i2c_gpio_data = {
.sda_pin = DSMG600_SDA_PIN,
.scl_pin = DSMG600_SCL_PIN,
};

static struct platform_device dsmg600_i2c_controller = {
.name = "IXP4XX-I2C",
static struct platform_device dsmg600_i2c_gpio = {
.name = "i2c-gpio",
.id = 0,
.dev.platform_data = &dsmg600_i2c_gpio_pins,
.dev = {
.platform_data = &dsmg600_i2c_gpio_data,
},
};

#ifdef CONFIG_LEDS_CLASS
Expand Down Expand Up @@ -116,7 +119,7 @@ static struct platform_device dsmg600_uart = {
};

static struct platform_device *dsmg600_devices[] __initdata = {
&dsmg600_i2c_controller,
&dsmg600_i2c_gpio,
&dsmg600_flash,
};

Expand Down
14 changes: 7 additions & 7 deletions trunk/arch/arm/mach-ixp4xx/ixdp425-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
#include <linux/tty.h>
#include <linux/serial_8250.h>
#include <linux/slab.h>
#include <linux/i2c-gpio.h>
#include <linux/io.h>
#include <linux/mtd/mtd.h>
#include <linux/mtd/nand.h>
Expand Down Expand Up @@ -120,18 +121,17 @@ static struct platform_device ixdp425_flash_nand = {
};
#endif /* CONFIG_MTD_NAND_PLATFORM */

static struct ixp4xx_i2c_pins ixdp425_i2c_gpio_pins = {
static struct i2c_gpio_platform_data ixdp425_i2c_gpio_data = {
.sda_pin = IXDP425_SDA_PIN,
.scl_pin = IXDP425_SCL_PIN,
};

static struct platform_device ixdp425_i2c_controller = {
.name = "IXP4XX-I2C",
static struct platform_device ixdp425_i2c_gpio = {
.name = "i2c-gpio",
.id = 0,
.dev = {
.platform_data = &ixdp425_i2c_gpio_pins,
.dev = {
.platform_data = &ixdp425_i2c_gpio_data,
},
.num_resources = 0
};

static struct resource ixdp425_uart_resources[] = {
Expand Down Expand Up @@ -178,7 +178,7 @@ static struct platform_device ixdp425_uart = {
};

static struct platform_device *ixdp425_devices[] __initdata = {
&ixdp425_i2c_controller,
&ixdp425_i2c_gpio,
&ixdp425_flash,
#if defined(CONFIG_MTD_NAND_PLATFORM) || \
defined(CONFIG_MTD_NAND_PLATFORM_MODULE)
Expand Down
14 changes: 8 additions & 6 deletions trunk/arch/arm/mach-ixp4xx/nas100d-setup.c
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
#include <linux/serial.h>
#include <linux/serial_8250.h>
#include <linux/leds.h>
#include <linux/i2c-gpio.h>

#include <asm/mach-types.h>
#include <asm/mach/arch.h>
Expand Down Expand Up @@ -68,16 +69,17 @@ static struct platform_device nas100d_leds = {
};
#endif

static struct ixp4xx_i2c_pins nas100d_i2c_gpio_pins = {
static struct i2c_gpio_platform_data nas100d_i2c_gpio_data = {
.sda_pin = NAS100D_SDA_PIN,
.scl_pin = NAS100D_SCL_PIN,
};

static struct platform_device nas100d_i2c_controller = {
.name = "IXP4XX-I2C",
static struct platform_device nas100d_i2c_gpio = {
.name = "i2c-gpio",
.id = 0,
.dev.platform_data = &nas100d_i2c_gpio_pins,
.num_resources = 0,
.dev = {
.platform_data = &nas100d_i2c_gpio_data,
},
};

static struct resource nas100d_uart_resources[] = {
Expand Down Expand Up @@ -124,7 +126,7 @@ static struct platform_device nas100d_uart = {
};

static struct platform_device *nas100d_devices[] __initdata = {
&nas100d_i2c_controller,
&nas100d_i2c_gpio,
&nas100d_flash,
#ifdef CONFIG_LEDS_IXP4XX
&nas100d_leds,
Expand Down
Loading

0 comments on commit 61477b2

Please sign in to comment.