summaryrefslogtreecommitdiffstats
path: root/drivers/i2c
Commit message (Collapse)AuthorAgeFilesLines
* I2C: S3C2410: Add MODULE_ALIAS() for s3c2440 device.Ben Dooks2008-07-011-0/+1
| | | | | | | | 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-011-3/+3
| | | | | | | | | 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-011-11/+10
| | | | | | | | | | | | 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-181-3/+0
| | | | | | | | | | | | 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-181-1/+1
| | | | | | | 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-181-17/+5
| | | | | | | 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-181-4/+24
| | | | | | | | | | | | | 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-121-1/+1
| | | | | | | | | | | | 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-111-6/+8
| | | | | | | | | | | | 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-111-1/+1
| | | | | | | | 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-111-2/+2
| | | | | | | | | | 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-111-2/+30
| | | | | | | | | | 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-111-3/+12
| | | | | | | | | | | | | | 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-111-9/+7
| | | | | | | | | 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-295-20/+33
| | | | | | | | | | | | | | 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-295-13/+50
| | | | | | | | | | | | | | 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-291-2/+3
| | | | | | | 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-291-0/+2
| | | | | | | | | | | 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-291-10/+2
| | | | | | | | * 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-291-7/+1
| | | | | | | | * 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>
* i2c: Spelling fix (successful)Jean Delvare2008-04-293-3/+3
| | | | Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-stub: No newline in parameter descriptionJean Delvare2008-04-291-1/+1
| | | | Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Fix platform driver hotplug/coldplugKay Sievers2008-04-2217-1/+29
| | | | | | | | | | | | Since 43cc71eed1250755986da4c0f9898f9a635cb3bf, the platform modalias is prefixed with "platform:". Add MODULE_ALIAS() to the hotpluggable I2C platform drivers, to allow module auto loading. [ db: add some more drivers ] Signed-off-by: Kay Sievers <kay.sievers@vrfy.org> Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: New driver for the SuperH Mobile I2C bus controllerMagnus Damm2008-04-223-0/+511
| | | | | | | | | | This is V5 of the SuperH Mobile I2C Controller Driver. A simple Master only driver for the I2C block included in processors such as sh7343, sh7722 and sh7723. Tested on a sh7722 MigoR using a rs5c732b rtc. Signed-off-by: Magnus Damm <damm@igel.co.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c/scx200_acb: Don't use 0 as NULL pointerAdrian Bunk2008-04-221-1/+1
| | | | | | | | | Don't use 0 as NULL pointer. Spotted by sparse. Signed-off-by: Adrian Bunk <bunk@kernel.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-bfin-twi: Fix mismatch in add timer and delete timerHans Schillstrom2008-04-221-1/+2
| | | | | | | | | | Move init_completion to just before i2c transfer. http://blackfin.uclinux.org/gf/project/uclinux-dist/tracker/?action=TrackerItemEdit&tracker_item_id=3385 Signed-off-by: Hans Schillstrom <hans.schillstrom@shlsys.com> Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-bfin-twi: Just let i2c-bfin-twi driver depends on BLACKFINBryan Wu2008-04-221-2/+5
| | | | | | | | Simply use "depends on BLACKFIN" (which is technically correct) and just document which machines have the device. Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-bfin-twi: Use simpler comment headers and strip out information that is ↵Mike Frysinger2008-04-221-18/+4
| | | | | | | | maintained in the scm's log 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-bfin-twi: Cleanup driver descriptions, versions and some module useful ↵Bryan Wu2008-04-221-6/+6
| | | | | | | information Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-bfin-twi: Add missing pin mux operationBryan Wu2008-04-221-0/+15
| | | | | | | | | | Blackfin TWI controller hardware pin should be requested from GPIO port controller Before BF54x, there is no need to do this. But as long as BF54x and BF52x are supported by this generic driver, the missing pin mux operation should be added. Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-bfin-twi: Add platform_resource interface to support multi-port TWI ↵Bryan Wu2008-04-222-108/+177
| | | | | | | | | | | controllers - Dynamic alloc the resource of TWI driver data according to board information - TWI register read/write accessor based on dynamic regs_base - Support TWI0/TWI1 for BF54x Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-bfin-twi: Add repeat start feature to avoid break of a bundle of i2c ↵Sonic Zhang2008-04-221-71/+114
| | | | | | | | | | | master xfer operation - Create a new mode TWI_I2C_MODE_REPEAT. - No change to smbus operation. Signed-off-by: Sonic Zhang <sonic.zhang@analog.com> Signed-off-by: Bryan Wu <cooloney@kernel.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Remove trailing whitespaces in busses/KconfigWolfram Sang2008-04-221-15/+15
| | | | | Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Replace remaining __FUNCTION__ occurrencesHarvey Harrison2008-04-227-45/+45
| | | | | | | __FUNCTION__ is gcc-specific, use __func__. Signed-off-by: Harvey Harrison <harvey.harrison@gmail.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Renesas SH7760 I2C master driverManuel Lauss2008-04-223-0/+587
| | | | | | | Driver for I2C interfaces in master mode on SH7760. Signed-off-by: Manuel Lauss <mano@roarinelk.homelinux.net> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-dev: Split i2cdev_ioctlJean Delvare2008-04-221-161/+168
| | | | | | | | Split the handling of the I2C_RDWR and I2C_SMBUS ioctls to their own functions. This limits the stack usage, saves one level of indentation and makes the code more readable. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-ibm_iic: Support building as an of_platform driverSean MacLennan2008-04-222-2/+187
| | | | | | | | | This patch allows the i2c-ibm_iic driver to be built either as an ocp driver or an of_platform driver. This allows it to run under the powerpc arch but maintains backward compatibility with the ppc arch. Signed-off-by: Sean MacLennan <smaclennan@pikatech.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-ibm_iic: Change the log levelsSean MacLennan2008-04-221-5/+5
| | | | | | | Change the log levels based on feedback from linxppc-dev. Signed-off-by: Sean MacLennan <smaclennan@pikatech.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Add platform driver on top of the new pca-algorithmWolfram Sang2008-04-223-2/+312
| | | | | | | Tested on a blackfin. Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-algo-pca: Extend for future driversWolfram Sang2008-04-223-102/+63
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The separation between algorithm and adapter was unsharp at places. This was partly hidden by the fact, that the ISA-driver allowed just one instance and had all private data in static variables. This patch makes neccessary preparations to add a platform driver on top of the algorithm, while still supporting ISA. Note: Due to lack of hardware, the ISA-driver could not be tested except that it builds. Concerning the core struct i2c_algo_pca_data: - A private data field was added, all hardware dependant data may go here. Similar to other algorithms, now a pointer to this data is passed to the adapter's functions. In order to make as less changes as possible to the ISA-driver, it leaves the private data empty and still only uses its static variables. - A "reset_chip" function pointer was added; such a functionality must come from the adapter, not the algorithm. - use a variable "i2c_clock" instead of a function pointer "get_clock", allowing for write access to a default in case a wrong value was supplied. In the algorithm-file: - move "i2c-pca-algo.h" into "linux/i2c-algo-pca.h" - now using per_instance timeout values (i2c_adap->timeout) - error messages specify the device, not only the driver name - restructure initialization to easily support "i2c_add_numbered_adapter" - drop "retries" and "own" (i2c address) as they were unused (The state-machine for I2C-communication was not touched.) In the ISA-driver: - adapt to new algorithm Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c-algo-pca: Remove trailing whitespaces and unnecessary UTFWolfram Sang2008-04-222-23/+23
| | | | | | | | Remove trailing whitespaces to make further patches more readable. Also remove an unnecessary UTF-char for simplicity ("us" for microseconds is fine enough). Signed-off-by: Wolfram Sang <w.sang@pengutronix.de> Signed-off-by: Jean Delvare <khali@linux-fr.org>
* i2c: Remove the algorithm drivers from the config menuJean Delvare2008-04-221-34/+5
| | | | | | | | The algorithm drivers are helper drivers that are selected automatically as needed. There's no point in listing them in the config menu, it can only confuse users and waste their time. Signed-off-by: Jean Delvare <khali@linux-fr.org>
* Merge branch 'semaphore' of ↵Linus Torvalds2008-04-211-1/+1
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc * 'semaphore' of git://git.kernel.org/pub/scm/linux/kernel/git/willy/misc: Deprecate the asm/semaphore.h files in feature-removal-schedule. Convert asm/semaphore.h users to linux/semaphore.h security: Remove unnecessary inclusions of asm/semaphore.h lib: Remove unnecessary inclusions of asm/semaphore.h kernel: Remove unnecessary inclusions of asm/semaphore.h include: Remove unnecessary inclusions of asm/semaphore.h fs: Remove unnecessary inclusions of asm/semaphore.h drivers: Remove unnecessary inclusions of asm/semaphore.h net: Remove unnecessary inclusions of asm/semaphore.h arch: Remove unnecessary inclusions of asm/semaphore.h
| * Convert asm/semaphore.h users to linux/semaphore.hMatthew Wilcox2008-04-181-1/+1
| | | | | | | | Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
* | Merge branch 'omap2-upstream' into develRussell King2008-04-195-17/+116
|\ \
| * | ARM: OMAP: I2C: tps65010 driver converts to gpiolibDavid Brownell2008-04-142-1/+101
| |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make the tps65010 driver use gpiolib to expose its GPIOs. Note: This patch will get merged via omap tree instead of I2C as it will cause some board updates. This has been discussed at on the I2C list: http://lists.lm-sensors.org/pipermail/i2c/2008-March/003031.html Signed-off-by: David Brownell <dbrownell@users.sourceforge.net> Cc: i2c@lm-sensors.org Signed-off-by: Tony Lindgren <tony@atomide.com>
| * i2c-tiny-usb: New VID/PID pairTill Harbaum2008-04-111-4/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | I have recently bought some USB PIDs from EZPrototypes for my USB projects and one will be for the i2c-tiny-usb. I have not yet started to use the new one in the official i2c-tiny-usb firmware since i think it makes sense to get the change into the kernel before releasing a modified firmware. This patch adds support for the EZPrototypes USB vid/pid pair used in later i2c-tiny-usb firmware versions (avrusb v1.06 and up, usbtiny v2.06 and up). Signed-off-by: Till Harbaum <Till@Harbaum.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * i2c-davinci: Fix lost interruptTroy Kisky2008-04-111-11/+6
| | | | | | | | | | | | | | | | | | | | DAVINCI_I2C_STR_REG is a write 1 to clear register, so don't use a read/modify/write cycle. Signed-off-by: Troy Kisky <troy.kisky@boundarydevices.com> Acked-by: Dirk Behme <dirk.behme@gmail.com> Signed-off-by: Kevin Hilman <khilman@mvista.com> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| * i2c-ibm_iic: Fast mode parm desc fixupPaul Mundt2008-04-111-1/+1
| | | | | | | | | | | | | | | | | | Noticed this when grepping for fast mode module params, the i2c-ibm_iic driver was using a non-existent variable for MODULE_PARM_DESC. Fix it up to reflect what it's actually supposed to be describing. Signed-off-by: Paul Mundt <lethal@linux-sh.org> Signed-off-by: Jean Delvare <khali@linux-fr.org>
| |
| \
*-. \ Merge branches 'arm', 'at91', 'ep93xx', 'iop', 'ks8695', 'misc', 'mxc', ↵Russell King2008-04-192-1/+2
|\ \ \ | |_|/ |/| | | | | 'ns9x', 'orion', 'pxa', 'sa1100', 's3c' and 'sparsemem' into devel