aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/i2c
Commit message (Collapse)AuthorAge
...
| | * i2c-pca-algo: Fix error codeWolfram Sang2008-07-14
| | | | | | | | | | | | | | | | | | | | | Give a more concrete error code, when the bus is not idle. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Consistently reject unsupported transactionsJean Delvare2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | Many PC SMBus host controller drivers don't properly handle the case where they are requested to achieve a transaction they do not support. Update them so that the consistently print a warning message and return a single error value in this case. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-piix4: Various cleanups and minor fixesJean Delvare2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The i2c-piix4 driver was used recently as a model to write a new SMBus host controller driver and this made me realize that the code of this old driver wasn't exactly good. So, here are many cleanups and minor fixes to this driver, so that these minor mistakes aren't duplicated again: * Delete unused structure. * Delete needless forward function declaration. * Properly announce the SMBus host controller as we find it. * Spell it SMBus not SMB. * Return -EBUSY instead of -ENODEV when the I/O region is already in use. * Drop useless masks on the 7-bit address and the R/W bit. * Reject block transaction requests with an invalid block length. * Check and report block transaction replies with an invalid block length. * Delete a useless comment. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Bus drivers return -Errno not -1David Brownell2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Tighten error paths used by various i2c adapters (mostly x86) so they return real fault/errno codes instead of a "-1" (which is most often interpreted as "-EPERM"). Build tested, with eyeball review. One minor initial goal is to have adapters consistently return the code "-ENXIO" when addressing a device doesn't get an ACK response, at least in the probe paths where they are already good at stifling related logspam. Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: i2c_use_client() defends against NULLDavid Brownell2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Defend the i2c refcount calls against NULL pointers, as is important (and conventional) for such calls. Note that none of the current callers of i2c_use_client() use its return value. [JD: I hate this but apparently all the other subsystems do it so...] Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Kerneldoc for most I/O callsDavid Brownell2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Provide kerneldoc for most of the I2C and SMBus I/O calls. Add a comment summarizing some fault reporting issues which affect the ability to provide clean fault reports through I2C master transfer calls. (Making it hard to precisely specify their return values...) Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Delete unused function i2c_smbus_write_quickJean Delvare2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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: Group bus drivers by typeJean Delvare2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | The list of I2C/SMBus bus drivers is growing and it is sometimes difficult for the users to figure out what drivers they should enable. By grouping the drivers by type, I hope to make the selection easier. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-core: Return -Errno, not -1David Brownell2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-core: Remove needless includeJean Delvare2008-07-14
| | | | | | | | | | | | | | | | | | | | | i2c-core doesn't use seq files, so doesn't need to include <linux/seq_file.h>. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-bfin-twi: Update the dependenciesMike Frysinger2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | Since only a few Blackfins lack TWI, just list them in a depends statement. Signed-off-by: Mike Frysinger <vapier.adi@gmail.com> Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Remove 3 deprecated bus driversAdrian Bunk2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | 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-nforce2: Add support for multiplexing on the Tyan S4985Jean Delvare2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Just like the Tyan S4882, the S4985 uses a multiplexer to give access to all 16 memory module SPD EEPROMs. This specific i2c-nforce2-s4985 driver adds support for this. It is heavily based on the older i2c-amd756-s4882 driver. As more mainboards will use multiplexer chips, we will have to find a way to support them without having to write a new specfic driver for each. The recent changes to the i2c subsystem should help us, and the new gpio subsystem might help, too. Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-davinci: Initialize cmd_complete soonerTroy Kisky2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | If an interrupt happens before an I2c master read/write, complete is called on uninitialized structure. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Kevin Hilman <khilman@mvista.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-davinci: Fix signal handling bugTroy Kisky2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | If wait_for_completion_interruptible_timeout exits due to a signal, the i2c bus was locking up. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Kevin Hilman <khilman@mvista.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-davinci: Remove useless IVR readTroy Kisky2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Interrupts are enabled at the point where the DAVINCI_I2C_IVR_REG is read, so unless an interrupt happened just at that moment, no interrupt would be pending. Even though documentation implies you should do this, I see no reason. If slave support is added, this read would cause a hard to reproduce bug. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Kevin Hilman <khilman@mvista.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-davinci: Move dev_dbg statement for more outputTroy Kisky2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | | | | Previously the dev_dbg only printed if no error. Printing also on an error is more useful Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Kevin Hilman <khilman@mvista.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c-davinci: Ensure clock between 7-12 MHzTroy Kisky2008-07-14
| | | | | | | | | | | | | | | | | | | | | | | | Ensure psc value gives a clock between 7-12 MHz Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Signed-off-by: Kevin Hilman <khilman@mvista.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| | * i2c: Use class_for_each_deviceDave Young2008-07-14
| | | | | | | | | | | | | | | | | | | | | Use class_for_each_device for iteration. Signed-off-by: Dave Young <hidave.darkstar@gmail.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* | | Merge commit '85082fd7cbe3173198aac0eb5e85ab1edcc6352c' into test-buildBenjamin Herrenschmidt2008-07-15
|\| | | | | | | | | | | | | | Manual fixup of: arch/powerpc/Kconfig
| * | Merge branch 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-armLinus Torvalds2008-07-14
| |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 'for-linus' of master.kernel.org:/home/rmk/linux-2.6-arm: (241 commits) [ARM] 5171/1: ep93xx: fix compilation of modules using clocks [ARM] 5133/2: at91sam9g20 defconfig file [ARM] 5130/4: Support for the at91sam9g20 [ARM] 5160/1: IOP3XX: gpio/gpiolib support [ARM] at91: Fix NAND FLASH timings for at91sam9x evaluation kits. [ARM] 5084/1: zylonite: Register AC97 device [ARM] 5085/2: PXA: Move AC97 over to the new central device declaration model [ARM] 5120/1: pxa: correct platform driver names for PXA25x and PXA27x UDC drivers [ARM] 5147/1: pxaficp_ir: drop pxa_gpio_mode calls, as pin setting [ARM] 5145/1: PXA2xx: provide api to control IrDA pins state [ARM] 5144/1: pxaficp_ir: cleanup includes [ARM] pxa: remove pxa_set_cken() [ARM] pxa: allow clk aliases [ARM] Feroceon: don't disable BPU on boot [ARM] Orion: LED support for HP mv2120 [ARM] Orion: add RD88F5181L-FXO support [ARM] Orion: add RD88F5181L-GE support [ARM] Orion: add Netgear WNR854T support [ARM] s3c2410_defconfig: update for current build [ARM] Acer n30: Minor style and indentation fixes. ...
| | * \ [ARM] Merge most of the PXA work for initial mergeRussell King2008-07-14
| | |\ \ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This includes PXA work up to the SPI changes for the initial merge, since e172274ccc55d20536fbdceb6131f38e288541e0 depends on the SPI tree being merged. Conflicts: arch/arm/configs/em_x270_defconfig arch/arm/configs/xm_x270_defconfig
| | | | \
| | | | \
| | | *-. \ Merge branches 'pxa-misc', 'pxa-pwm' and 'pxa-multi' into pxaRussell King2008-07-09
| | | |\ \ \
| | | | | * | [ARM] 5075/1: i2c-pxa: move i2c pin setup and PCFR_PI2CEN handling into ↵Philipp Zabel2008-06-02
| | | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | arch/arm/mach-pxa This fixes a build error introduced when the power manager register definitions were moved into pxa2xx-regs.h. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | | * / / [ARM] 5135/1: pxa: drop superfluous asm/arch/pxa2xx-gpio.h includesPhilipp Zabel2008-07-07
| | | |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both i2c-pxa.c and irq.c still include pxa2xx-gpio.h although is is not needed anymore. Signed-off-by: Philipp Zabel <philipp.zabel@gmail.com> Acked-by: Eric Miao <eric.miao@marvell.com> Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
| | * | / ARM: OMAP: USB: Change omap USB code to use omap_read/write instead of __REGTony Lindgren2008-07-03
| | | |/ | | |/| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Change omap USB code to use omap_read/write instead of __REG for multi-omap Cc: David Brownell <david-b@pacbell.net> Cc: linux-usb@vger.kernel.org Cc: i2c@lm-sensors.org Signed-off-by: Tony Lindgren <tony@atomide.com>
| * | | Merge commit 'v2.6.26' into bkl-removalJonathan Corbet2008-07-14
| |\| |
| * | | i2c: cdev lock_kernel() pushdownJonathan Corbet2008-05-18
| | |/ | |/| | | | | | | Signed-off-by: Jonathan Corbet <corbet@lwn.net>
* | | Merge commit 'gcl/gcl-next'Benjamin Herrenschmidt2008-07-14
|\ \ \ | |_|/ |/| |
| * | powerpc/i2c: Convert i2c-mpc into an of_platform driverJon Smirl2008-07-12
| |/ | | | | | | | | | | | | | | | | Convert i2c-mpc to an of_platform driver. Utilize the code in drivers/of-i2c.c to make i2c modules dynamically loadable by the device tree. Signed-off-by: Jon Smirl <jonsmirl@gmail.com> Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
* | I2C: S3C2410: Add MODULE_ALIAS() for s3c2440 device.Ben Dooks2008-07-01
| | | | | | | | | | | | | | | | Add a MODULE_ALIAS() statement for the i2c-s3c2410 controller to ensure that it can be autoloaded on the S3C2440 systems that we support. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | I2C: S3C2410: Fixup error codes returned rom a transfer.Ben Dooks2008-07-01
| | | | | | | | | | | | | | | | | | The driver should be returning -ENXIO for transfers that do not pass the initial address byte stage. Note, also small tidyups to the driver comments in the area. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* | I2C: S3C2410: Check ACK on byte transmissionBen Dooks2008-07-01
|/ | | | | | | | | | | | We should check for the reception of an ACK after transmitting each data byte. The address send has been correctly checking this, but the data write byte state should have also been checking for these failures. As part of the same fix, we remove the ACK checking from the receive path where it should not have been checking for an ACK which our hardware was sending. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
* i2c/max6875: Really prevent 24RF08 corruptionJean Delvare2008-05-18
| | | | | | | | | | | | i2c-core takes care of the possible corruption of 24RF08 chips for quite some times, so device devices no longer need to do it. And they really should not, as applying the prevention twice voids it. I thought that I had fixed all drivers long ago but apparently I had missed that one. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Ben Gardner <bgardner@wabtec.com>
* i2c-amd756: Fix functionality flagsJean Delvare2008-05-18
| | | | | | | The i2c-amd756 driver pretends to support SMBus process call transactions but actually does not. Fix it. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Kill the old driver matching schemeJean Delvare2008-05-18
| | | | | | | Remove the old driver_name/type scheme for i2c driver matching. Only the standard aliasing model will be used from now on. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-nforce2: Disable the second SMBus channel on the DFI Lanparty NF4 ExpertJean Delvare2008-05-18
| | | | | | | | | | | | | There is a strange chip at 0x2e on the second SMBus channel of the DFI Lanparty NF4 Expert motherboard. Accessing the chip reboots the system. As there's nothing interesting on this SMBus channel, the easiest and safest thing to do is to disable it on that board. This is a better fix to bug #5889 than the it87 driver update that was done originally: http://bugzilla.kernel.org/show_bug.cgi?id=5889 Signed-off-by: Jean Delvare <khali@linux-fr.org>
* [MIPS] Alchemy: SMBus resource fixSergei Shtylyov2008-05-12
| | | | | | | | | | | | The Alchemy platform code registers the SMBus device using the virtual address of its registers instead of the physical one -- fix this, taking into account that actually the whole megabyte is decoded by any of the programmable serial controllers (one of which is SMBus), and that all the Alchemy peripherals are directly mappable into KSEG1 kernel space and therefore ioremap() call would just boil down to CKSEG1ADDR() invocation. Signed-off-by: Sergei Shtylyov <sshtylyov@ru.mvista.com> Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
* i2c: Match dummy devices by typeJean Delvare2008-05-11
| | | | | | | | | | | | As the old driver_name/type matching scheme is going away soon, change the dummy device mechanism to use the new matching scheme. This has the downside that dummy i2c clients can no longer choose their name, they'll all appear as "dummy" in sysfs and in log messages. I don't think it is a problem in practice though, as there is little reason to use these i2c clients to log messages. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-sibyte: Mark i2c_sibyte_add_bus() as staticMaciej W. Rozycki2008-05-11
| | | | | | | | The i2c_sibyte_add_bus() function is not called, nor meant to, from outside, so mark it as static; fixing a sparse warning too. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-sibyte: Correct a comment about frequencyMaciej W. Rozycki2008-05-11
| | | | | | | | | | The frequency may have been once hardcoded to 100 kHz, but currently it is passed as an argument to i2c_sibyte_add_bus(), so update the comment to match code. While at it, reformat a nearby comment for consistency. No functional changes. Signed-off-by: Maciej W. Rozycki <macro@linux-mips.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-piix4: Blacklist two mainboardsJean Delvare2008-05-11
| | | | | | | | | | We had a report that running sensors-detect on a Sapphire AM2RD790 motherbord killed the CPU. While the exact cause is still unknown, I'd rather play it safe and prevent any access to the SMBus on that machine by not letting the i2c-piix4 driver attach to the SMBus host device on that machine. Also blacklist a similar board made by DFI. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-piix4: Increase the intitial delay for the ServerWorks CSB5David Milburn2008-05-11
| | | | | | | | | | | | | | Per the PIIX4 errata, there maybe a delay between setting the start bit in the Smbus Host Controller Register and the transaction actually starting. If the driver doesn't delay long enough, it may appear that the transaction is complete when actually it hasn't started, this may lead to bus collisions. While 1 ms appears to be enough for most chips, the ServerWorks CSB5 wants 2 ms. Signed-off-by: David Milburn <dmilburn@redhat.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-mpc: Compare to NO_IRQ instead of zeroJon Smirl2008-05-11
| | | | | | | | | Alter the mpc i2c driver to use the NO_IRQ symbol instead of the constant zero when checking for valid interrupts. NO_IRQ=-1 on ppc and NO_IRQ=0 on powerpc so the checks against zero are not correct. Signed-off-by: Jon Smirl <jonsmirl@gmail.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Convert most new-style drivers to use module aliasingJean Delvare2008-04-29
| | | | | | | | | | | | | | Based on earlier work by Jon Smirl and Jochen Friedrich. Update most new-style i2c drivers to use standard module aliasing instead of the old driver_name/type driver matching scheme. I've left the video drivers apart (except for SoC camera drivers) as they're a bit more diffcult to deal with, they'll have their own patch later. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: Jon Smirl <jonsmirl@gmail.com> Cc: Jochen Friedrich <jochen@scram.de>
* i2c: Add support for device alias namesJean Delvare2008-04-29
| | | | | | | | | | | | | | 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-amd756-s4882: Fix an error pathJean Delvare2008-04-29
| | | | | | | If initialization fails, we want to restore the physical bus, not delete it again. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c/tps65010: Add missing intialization of client dataJean Delvare2008-04-29
| | | | | | | | | | | tps65010_remove() calls i2c_get_clientdata(client) but the client data is never set during initialization, so it gets a NULL pointer at best. I guess it was never spotted because the tps65010 driver is typically not built modular so this function is discarded. Signed-off-by: Jean Delvare <khali@linux-fr.org> Cc: David Brownell <dbrownell@users.sourceforge.net>
* i2c-sis5595: Minor cleanups in sis5595_accessJean Delvare2008-04-29
| | | | | | | | * Remove commented-out code. * Use dev_warn instead of printk. * Remove a legacy comment. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-piix4: Minor cleanupsJean Delvare2008-04-29
| | | | | | | | * Remove a needless include. * Remove a legacy comment in piix4_access. * Minor optimization in piix4_access. Signed-off-by: Jean Delvare <khali@linux-fr.org>