summaryrefslogtreecommitdiffstats
path: root/Documentation/i2c
Commit message (Collapse)AuthorAgeFilesLines
* i2c-ocores: Can add I2C devices to the busRichard Röjfors2009-06-131-0/+17
| | | | | | | | | | | | | | | | | | There is sometimes a need for the ocores driver to add devices to the bus when installed. i2c_register_board_info can not always be used, because the I2C devices are not known at an early state, they could for instance be connected on a I2C bus on a PCI device which has the Open Cores IP. i2c_new_device can not be used in all cases either since the resulting bus nummer might be unknown. The solution is the pass a list of I2C devices in the platform data to the Open Cores driver. This is useful for MFD drivers. Signed-off-by: Richard Röjfors <richard.rojfors.ext@mocean-labs.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* Move the pcf8591 driver to hwmonJean Delvare2009-03-301-90/+0
| | | | | | | | | | | | | | Directory drivers/i2c/chips is going away, so drivers there must find new homes. For the pcf8591 driver, the best choice seems to be the hwmon subsystem. While the Philips PCF8591 device isn't a typical hardware monitoring chip, its DAC interface is compatible with the hwmon one, so it fits somewhat. If a better subsystem is ever created for ADC/DAC chips, the driver could be moved there. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Aurelien Jarno <aurelien@aurel32.net>
* i2c-piix4: Add support for the Broadcom HT1100 chipsetFlavio Leitner2009-03-281-1/+1
| | | | | | | Add support for the Broadcom HT1100 LD chipset (SMBus function.) Signed-off-by: Flavio Leitner <fbl@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-nforce2: Add support for MCP67, MCP73, MCP78S and MCP79Jean Delvare2009-03-281-4/+8
| | | | | | | | | | | | The MCP78S and MCP79 appear to be compatible with the previous nForce chips as far as the SMBus controller is concerned. The MCP67 and MCP73 were not tested yet but I'd be very surprised if they weren't compatible too. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Oleg Ryjkov <olegr@olegr.ca> Cc: Malcolm Lalkaka <mlalkaka@gmail.com> Cc: Zbigniew Luszpinski <zbiggy@o2.pl>
* i2c: Document the different ways to instantiate i2c devicesJean Delvare2009-03-282-4/+182
| | | | | | | | | | | | | | On popular demand, here comes some documentation about how to instantiate i2c devices in the new (standard) i2c device driver binding model. I have also clarified how the class bitfield lets driver authors control which buses are probed in the auto-detect case, and warned more loudly against the abuse of this method. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Michael Lawnick <nospam_lawnick@gmx.de> Acked-by: Hans Verkuil <hverkuil@xs4all.nl>
* i2c: The i2c mailing list is movingJean Delvare2008-10-301-1/+1
| | | | | | Replace all references to the old i2c mailing list. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Update and clean up writing-clients documentJean Delvare2008-10-221-129/+97
| | | | | | | | | | | * Strip trailing white space. * Remove out-of-date or irrelevant parts. * Insist on the fact that command is deprecated. * Fix spelling mistakes and typos. * Reformat code examples and function prototypes to comply with the kernel coding style. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Delete legacy model documentationJean Delvare2008-10-221-241/+14
| | | | | | | The legacy i2c binding model is deprecated and will be removed soon, so we no longer need to document it. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Constify i2c_get_clientdata's parameterJean Delvare2008-10-221-1/+1
| | | | | | | i2c_get_clientdata doesn't change the i2c_client it is passed as a parameter, so it can be constified. Same for i2c_get_adapdata. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Delete outdated client porting guideJean Delvare2008-10-221-160/+0
| | | | | | | | | The document describing how to port i2c chip drivers from Linux 2.4 to Linux 2.6 is outdated. As I suspect that most drivers that had to be ported have already been by now, I do not want to spend time updating it. Let's just delete it instead. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-i801: Add support for Intel Ibex PeakSeth Heasley2008-10-221-3/+4
| | | | | | | Adds the Intel Ibex Peak (PCH) SMBus Controller Device IDs. Signed-off-by: Seth Heasley <seth.heasley@intel.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Restore i2c_smbus_process_call functionPrakash Mortha2008-10-142-4/+4
| | | | | | | | | | Restore the i2c_smbus_process_call() as one driver (for the Micronas MAP5401) will need it soon. [JD: Update documentation accordingly.] Signed-off-by: Prakash Mortha <pmortha@escient.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Document the implementation details of the /dev interfaceJean Delvare2008-10-141-0/+45
| | | | | | | I wrote this explanation to answer a question on the i2c mailing list, and thought it would be good to have in the kernel documentation. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Improve dev-interface documentationJean Delvare2008-10-141-25/+40
| | | | | | | | * Clarify some points. * Point developers to i2c-tools instead of lm_sensors. * Fix coding style in code examples. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-viapro: Add VX800/VX820 supportRudolf Marek2008-10-141-2/+6
| | | | | | | | Thanks to new datasheets published on http://linux.via.com.tw we can now add support for VX800/VX820 chipsets. Signed-off-by: Rudolf Marek <r.marek@assembler.cz> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Documentation: upgrading clients HOWTOBen Dooks2008-07-281-0/+281
| | | | | | | Add a document describing how i2c clients on Linux 2.6 can be moved from the old to the new driver model. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* i2c: Convert the max6875 driver to a new-style i2c driverJean Delvare2008-07-161-1/+1
| | | | | | | | The new-style max6875 driver implements the optional detect() callback to cover the use cases of the legacy driver. I'm curious if anyone really needs this though, so it might be removed in the feature. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Convert the pca9539 driver to a new-style i2c driverJean Delvare2008-07-161-1/+9
| | | | | | | | | | | | | | The new-style pca9539 driver implements the optional detect() callback to cover the use cases of the legacy driver. Warning: users will now have to use the force module parameter to get the driver to attach to their device. That's not a bad thing as these devices can't be detected anyway. Note that this doesn't change the fact that this driver is deprecated in favor of gpio/pca953x. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Convert the pcf8575 driver to a new-style i2c driverJean Delvare2008-07-161-6/+3
| | | | | | | | | | | | | | The new-style pcf8575 driver implements the optional detect() callback to cover the use cases of the legacy driver. Warning: users will now have to use the force module parameter to get the driver to attach to their device. That's not a bad thing as these devices can't be detected anyway. Note that this doesn't change the fact that this driver is deprecated in favor of gpio/pcf857x. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Convert the pcf8574 driver to a new-style i2c driverJean Delvare2008-07-161-7/+5
| | | | | | | | | | | | | | The new-style pcf8574 driver implements the optional detect() callback to cover the use cases of the legacy driver. Warning: users will now have to use the force module parameter to get the driver to attach to their device. That's not a bad thing as these devices can't be detected anyway. Note that this doesn't change the fact that this driver is deprecated in favor of gpio/pcf857x. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Add detection capability to new-style driversJean Delvare2008-07-141-0/+29
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Add a mechanism to let new-style i2c drivers optionally autodetect devices they would support on selected buses and ask i2c-core to instantiate them. This is a replacement for legacy i2c drivers, much cleaner. Where drivers had to implement both a legacy i2c_driver and a new-style i2c_driver so far, this mechanism makes it possible to get rid of the legacy i2c_driver and implement both enumerated and detected device support with just one (new-style) i2c_driver. Here is a quick conversion guide for these drivers, step by step: * Delete the legacy driver definition, registration and removal. Delete the attach_adapter and detach_client methods of the legacy driver. * Change the prototype of the legacy detect function from static int foo_detect(struct i2c_adapter *adapter, int address, int kind); to static int foo_detect(struct i2c_client *client, int kind, struct i2c_board_info *info); * Set the new-style driver detect callback to this new function, and set its address_data to &addr_data (addr_data is generally provided by I2C_CLIENT_INSMOD.) * Add the appropriate class to the new-style driver. This is typically the class the legacy attach_adapter method was checking for. Class checking is now mandatory (done by i2c-core.) See <linux/i2c.h> for the list of available classes. * Remove the i2c_client allocation and freeing from the detect function. A pre-allocated client is now handed to you by i2c-core, and is freed automatically. * Make the detect function fill the type field of the i2c_board_info structure it was passed as a parameter, and return 0, on success. If the detection fails, return -ENODEV. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Delete unused function i2c_smbus_write_quickJean Delvare2008-07-142-9/+9
| | | | | | | | | Function i2c_smbus_write_quick has no users left, so we can delete it. Also update the list of these helper functions which are gone but could be added back if needed. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-core: Return -Errno, not -1David Brownell2008-07-141-4/+4
| | | | | | | | | | | More updates to the I2C stack's fault reporting: make the core stop returning "-1" (usually "-EPERM") for all faults. Instead, pass lower level fault code up the stack, or return some appropriate errno. This patch happens to touch almost exclusively SMBus calls. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Document standard fault codesDavid Brownell2008-07-141-0/+127
| | | | | | | | | Create Documentation/i2c/fault-codes to help standardize fault/error code usage in the I2C stack. It turns out that returning -1 (-EPERM) for everything was not at all helpful. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Remove 3 deprecated bus driversAdrian Bunk2008-07-143-96/+0
| | | | | | | | This patch contains the scheduled removal of i2c-i810, i2c-prosavage and i2c-savage4. Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Documentation: fix device matching descriptionBen Dooks2008-07-011-4/+14
| | | | | | | | | | The matching process described for new style clients in Documentation/i2c/writing-clients is classed as out-of-date as it requires the presence of an .id_table entry in the driver's i2c_driver entry. Signed-off-by: Ben Dooks <ben-linux@fluff.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Improve the functionality documentationJean Delvare2008-05-111-43/+52
| | | | | | | Attempt to make the documentation about the I2C/SMBus functionality checking API clearer. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Improve smbus-protocol documentationDavid Brownell2008-05-111-35/+46
| | | | | | | | | | | | | | | | | | | Improve the smbus-protocol documentation file somewhat: - Use the names of the SMBus protocol operations (from the 2.0 specification), not made-up-for-Linux names. - Add the name of the call used to execute each operation ... and point out that there are mismatches, where functions execute different protocol operations than their names specify. The most confusing examples are that "Read Byte" isn't executed by i2c_smbus_read_byte(), and that "Write Byte" isn't executed by i2c_smbus_write_byte(). When coding, that's not as bad as it may seem; but that case would seem to be worth fixing. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Add support for device alias namesJean Delvare2008-04-291-1/+2
| | | | | | | | | | | | | | Based on earlier work by Jon Smirl and Jochen Friedrich. This patch allows new-style i2c chip drivers to have alias names using the official kernel aliasing system and MODULE_DEVICE_TABLE(). At this point, the old i2c driver binding scheme (driver_name/type) is still supported. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Jochen Friedrich <jochen@scram.de> Cc: Jon Smirl <jonsmirl@gmail.com> Cc: Kay Sievers <kay.sievers@vrfy.org>
* i2c-i801: Add support for the ICH10Gaston, Jason D2008-02-241-1/+2
| | | | | | | | Add the Intel ICH10 SMBus Controller DeviceID's and updates Tolapai support. Signed-off-by: Jason Gaston <jason.d.gaston@intel.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* hwmon: Update the lm-sensors website addressJean Delvare2008-02-071-1/+1
| | | | | | | | It's about time to reflect the move of the lm-sensors project to lm-sensors.org. Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Mark M. Hoffman <mhoffman@lightlink.com>
* deprecate obsolete pca9539 drivereric miao2008-02-051-0/+3
| | | | | | | | | | | | | | | Use drivers/gpio/pca9539.c instead. Signed-off-by: eric miao <eric.miao@marvell.com> Acked-by: Ben Gardner <bgardner@wabtec.com> Acked-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: Haavard Skinnemoen <hskinnemoen@atmel.com> Cc: Philipp Zabel <philipp.zabel@gmail.com> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* i2c-viapro: Add support for the VT8237SJean Delvare2008-01-271-1/+2
| | | | | | | Add support for another variant of the VT8237. I couldn't test I2C block support but I assume it is present as well. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-i801: Implement I2C block read supportJean Delvare2008-01-271-3/+2
| | | | | | | | | | | | I2C block read is supported since the ICH5. I couldn't get it to work using the block buffer, so it's using the old-style byte-by-byte mode for now. Note: I'm also updating the driver author... The i2c-i801 driver was really written by Mark Studebaker, even though he based his work on the i2c-piix4 driver which was written by Philip Edelbrock. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: normal_i2c can be made const (remaining drivers)Jean Delvare2008-01-271-3/+3
| | | | Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-stub: Use a single array for byte and word operationsJean Delvare2008-01-271-3/+0
| | | | | | | This mimics the behavior of actual SMBus chips better. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Mark M. Hoffman <mhoffman@lightlink.com>
* i2c-stub: Mention the existence of an helper scriptJean Delvare2008-01-271-0/+3
| | | | | | | There's a new script named i2c-stub-from-dump that can be very helpful when working with the i2c-stub driver. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Add support for the PCF8575 chipBart Van Assche2008-01-271-0/+72
| | | | | Signed-off-by: Bart Van Assche <bart.vanassche@gmail.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Delete an outdated piece of documentationJean Delvare2007-12-121-41/+4
| | | | | | | I'm amazed that this old piece of documentation managed to survive until today. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* more UTF-8 conversionsMarcin Garski2007-10-191-1/+1
| | | | Signed-off-by: Adrian Bunk <bunk@kernel.org>
* i2c: Rename the PEC functionality bitDavid Brownell2007-10-131-3/+8
| | | | | | | | | | | | Rename I2C_FUNC_SMBUS_HWPEC_CALC as I2C_FUNC_SMBUS_PEC, and list that functionality as always available through the software implementation. Update documentation accordingly (and list similar requirements). The way it's currently packaged doesn't present the capability in a useful way. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-stub: Support multiple chipsJean Delvare2007-10-131-10/+8
| | | | | | | | | Add support for multiple chips to i2c-stub. I've changed the memory allocation scheme from static to dynamic, so that we don't waste too much memory. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Mark M. Hoffman <mhoffman@lightlink.com>
* i2c-i801: Add support for the Intel Tolapai SMBusJason Gaston2007-10-131-1/+2
| | | | | | | Add the Intel Tolapai SMBus Controller DID. Signed-off-by: Jason Gaston <jason.d.gaston@intel.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c/pcf8574: No arbitrary initializationJean Delvare2007-10-131-5/+3
| | | | | | | | Do not initialize the PCF8574 with an arbitrary value. Users will have to write the initial value to sysfs themselves. Signed-off-by: Jean Delvare <khali@linux-fr.org> Acked-by: Aurelien Jarno <aurelien@aurel32.net>
* i2c-piix4: Fix SB700 PCI device IDShane Huang2007-08-311-1/+1
| | | | | | | | | | | | | | We find that SB700 and SB800 use the same SMBus device ID as SB600, which is 0x4385, instead of the already submitted 0x4395. Besides removing the wrong SB700 device ID, add SB800 support to kernel, by renaming the PCI_DEVICE_ID_ATI_IXP600_SMBUS into PCI_DEVICE_ID_ATI_SBX00_SMBUS. Signed-off-by: Shane Huang <shane.huang@amd.com> Signed-off-by: Jean Delvare <khali@linux-fr.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
* i2c-rpx: RemoveJean Delvare2007-07-121-2/+0
| | | | | | | This driver has been broken forever. It depends on i2c-algo-8xx which has never been in the mainline kernel. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: New bus driver for the TAOS evaluation modulesJean Delvare2007-07-121-0/+46
| | | | | | | This is a new I2C bus driver for the TAOS evaluation modules. Developped and tested on the TAOS TSL2550 EVM. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-i801: Use the internal 32-byte buffer on ICH4+Oleg Ryjkov2007-07-121-2/+2
| | | | | | | | | | | | | | | | Add an ability to utilize the internal SRAM buffer on ICH4 and newer host controllers to speed up execution of block operations. I've split the code so that it is more clear which block transaction is performed. First of all the host controller's type is identified. isich4 is set when we think that the controller has the internal buffer. Then, before every block transaction, if isich4 is set, we attempt to enable the E32B bit in SMBAUXCTL register. Signed-off-by: Oleg Ryjkov <olegr@google.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-piix4: Add support for the ATI SB700Henry Su2007-07-121-1/+1
| | | | | | | Add the SMBus device ID for ATI SB700. Signed-off-by: Henry Su <Henry.su@amd.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Fix the i2c_smbus_read_i2c_block_data() prototypeJean Delvare2007-07-122-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | Let the drivers specify how many bytes they want to read with i2c_smbus_read_i2c_block_data(). So far, the block count was hard-coded to I2C_SMBUS_BLOCK_MAX (32), which did not make much sense. Many driver authors complained about this before, and I believe it's about time to fix it. Right now, authors have to do technically stupid things, such as individual byte reads or full-fledged I2C messaging, to work around the problem. We do not want to encourage that. I even found that some bus drivers (e.g. i2c-amd8111) already implemented I2C block read the "right" way, that is, they didn't follow the old, broken standard. The fact that it was never noticed before just shows how little i2c_smbus_read_i2c_block_data() was used, which isn't that surprising given how broken its prototype was so far. There are some obvious compatiblity considerations: * This changes the i2c_smbus_read_i2c_block_data() prototype. Users outside the kernel tree will notice at compilation time, and will have to update their code. * User-space has access to i2c_smbus_xfer() directly using i2c-dev, so the changed expectations would affect tools such as i2cdump. In order to preserve binary compatibility, we give I2C_SMBUS_I2C_BLOCK_DATA a new numeric value, and define I2C_SMBUS_I2C_BLOCK_BROKEN with the old numeric value. When i2c-dev receives a transaction with the old value, it can convert it to the new format on the fly. Signed-off-by: Jean Delvare <khali@linux-fr.org>
OpenPOWER on IntegriCloud