Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8d41f0e8 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6

* 'i2c-for-linus' of git://jdelvare.pck.nerim.net/jdelvare-2.6

: (44 commits)
  i2c-s3c2410: Fix bug in releasing driver
  i2c-s3c2410: Fix I2C SDA to SCL setup time
  i2c: New i2c-tiny-usb bus driver
  i2c: Documentation update
  i2c: SPIN_LOCK_UNLOCKED cleanup
  i2c: Obsolete i2c-ixp2000, i2c-ixp4xx and scx200_i2c
  i2c: New Simtec I2C bus driver
  i2c: Bitbanging I2C bus driver using the GPIO API
  Use menuconfig objects - I2C
  i2c: Restore i2c_smbus_read_block_data
  i2c-pxa: Clean transaction stop
  i2c-algo-bit: Improve debugging
  i2c-algo-bit: Implement a 50/50 SCL duty cycle
  i2c-omap: Switch to static adapter numbering
  i2c: Blackfin Two Wire Interface driver
  i2c-algo-sgi: Comment and whitespace cleanups
  i2c: Make i2c_del_driver a void function
  i2c: Move i2c-isa-only exported symbol declarations
  i2c: Document i2c_new_device()
  i2c: Add i2c_new_probed_device()
  ...

Fixed trivial conflict in Documentation/feature-removal-schedule.txt manually.

Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parents 8bc84930 5b68790c
Loading
Loading
Loading
Loading
+10 −11
Original line number Diff line number Diff line
@@ -190,18 +190,10 @@ Who: Jean Delvare <khali@linux-fr.org>

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

What:	i2c_adapter.dev
	i2c_adapter.list
What:	i2c_adapter.list
When:	July 2007
Why:	Superfluous, given i2c_adapter.class_dev:
	  * The "dev" was a stand-in for the physical device node that legacy
	    drivers would not have; but now it's almost always present.  Any
	    remaining legacy drivers must upgrade (they now trigger warnings).
	  * The "list" duplicates class device children.
	The delay in removing this is so upgraded lm_sensors and libsensors
	can get deployed.  (Removal causes minor changes in the sysfs layout,
	notably the location of the adapter type name and parenting the i2c
	client hardware directly from their controller.)
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>

@@ -331,3 +323,10 @@ Who: Cornelia Huck <cornelia.huck@de.ibm.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>

---------------------------
+2 −0
Original line number Diff line number Diff line
@@ -9,6 +9,8 @@ Supported adapters:
  * nForce4 MCP-04             10de:0034
  * nForce4 MCP51              10de:0264
  * nForce4 MCP55              10de:0368
  * nForce4 MCP61              10de:03EB
  * nForce4 MCP65              10de:0446

Datasheet: not publicly available, but seems to be similar to the
           AMD-8111 SMBus 2.0 adapter.
+8 −10
Original line number Diff line number Diff line
Revision 6, 2005-11-20
Revision 7, 2007-04-19
Jean Delvare <khali@linux-fr.org>
Greg KH <greg@kroah.com>

@@ -20,6 +20,10 @@ yours for best results.

Technical changes:

* [Driver type] Any driver that was relying on i2c-isa has to be
  converted to a proper isa, platform or pci driver. This is not
  covered by this guide.

* [Includes] Get rid of "version.h" and <linux/i2c-proc.h>.
  Includes typically look like that:
  #include <linux/module.h>
@@ -27,12 +31,10 @@ Technical changes:
  #include <linux/slab.h>
  #include <linux/jiffies.h>
  #include <linux/i2c.h>
  #include <linux/i2c-isa.h>	/* for ISA drivers */
  #include <linux/hwmon.h>	/* for hardware monitoring drivers */
  #include <linux/hwmon-sysfs.h>
  #include <linux/hwmon-vid.h>	/* if you need VRM support */
  #include <linux/err.h>	/* for class registration */
  #include <asm/io.h>		/* if you have I/O operations */
  Please respect this inclusion order. Some extra headers may be
  required for a given driver (e.g. "lm75.h").

@@ -69,20 +71,16 @@ Technical changes:
  sensors mailing list <lm-sensors@lm-sensors.org> by providing a
  patch to the Documentation/hwmon/sysfs-interface file.

* [Attach] For I2C drivers, the attach function should make sure
  that the adapter's class has I2C_CLASS_HWMON (or whatever class is
  suitable for your driver), using the following construct:
* [Attach] The attach function should make sure that the adapter's
  class has I2C_CLASS_HWMON (or whatever class is suitable for your
  driver), using the following construct:
  if (!(adapter->class & I2C_CLASS_HWMON))
          return 0;
  ISA-only drivers of course don't need this.
  Call i2c_probe() instead of i2c_detect().

* [Detect] As mentioned earlier, the flags parameter is gone.
  The type_name and client_name strings are replaced by a single
  name string, which will be filled with a lowercase, short string.
  In i2c-only drivers, drop the i2c_is_isa_adapter check, it's
  useless. Same for isa-only drivers, as the test would always be
  true. Only hybrid drivers (which are quite rare) still need it.
  The labels used for error paths are reduced to the number needed.
  It is advised that the labels are given descriptive names such as
  exit and exit_free. Don't forget to properly set err before
+20 −9
Original line number Diff line number Diff line
@@ -4,17 +4,23 @@ I2C and SMBus
=============

I2C (pronounce: I squared C) is a protocol developed by Philips. It is a 
slow two-wire protocol (10-400 kHz), but it suffices for many types of 
devices.
slow two-wire protocol (variable speed, up to 400 kHz), with a high speed
extension (3.4 MHz).  It provides an inexpensive bus for connecting many
types of devices with infrequent or low bandwidth communications needs.
I2C is widely used with embedded systems.  Some systems use variants that
don't meet branding requirements, and so are not advertised as being I2C.

SMBus (System Management Bus) is a subset of the I2C protocol. Many
modern mainboards have a System Management Bus. There are a lot of 
devices which can be connected to a SMBus; the most notable are modern 
memory chips with EEPROM memories and chips for hardware monitoring.
SMBus (System Management Bus) is based on the I2C protocol, and is mostly
a subset of I2C protocols and signaling.  Many I2C devices will work on an
SMBus, but some SMBus protocols add semantics beyond what is required to
achieve I2C branding.  Modern PC mainboards rely on SMBus.  The most common
devices connected through SMBus are RAM modules configured using I2C EEPROMs,
and hardware monitoring chips.

Because the SMBus is just a special case of the generalized I2C bus, we
can simulate the SMBus protocol on plain I2C busses. The reverse is
regretfully impossible.
Because the SMBus is mostly a subset of the generalized I2C bus, we can
use its protocols on many I2C systems.  However, there are systems that don't
meet both SMBus and I2C electrical constraints; and others which can't
implement all the common SMBus protocol semantics or messages.


Terminology
@@ -29,6 +35,7 @@ When we talk about I2C, we use the following terms:
An Algorithm driver contains general code that can be used for a whole class
of I2C adapters. Each specific adapter driver depends on one algorithm
driver.

A Driver driver (yes, this sounds ridiculous, sorry) contains the general
code to access some type of device. Each detected device gets its own
data in the Client structure. Usually, Driver and Client are more closely
@@ -40,6 +47,10 @@ a separate Adapter and Algorithm driver), and drivers for your I2C devices
in this package. See the lm_sensors project http://www.lm-sensors.nu
for device drivers.

At this time, Linux only operates I2C (or SMBus) in master mode; you can't
use these APIs to make a Linux system behave as a slave/device, either to
speak a custom protocol or to emulate some other device.


Included Bus Drivers
====================
+141 −274

File changed.

Preview size limit exceeded, changes collapsed.

Loading