summaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2015-04-10i2c: change input parameter to i2c_adapter for prepare/unprepare_recoveryGrygorii Strashko2-4/+4
This patch changes type of input parameter for prepare/unprepare_recovery() callbacks from struct i2c_bus_recovery_info * to struct i2c_adapter *. This allows to simplify implementation of these callbacks and avoid type conversations from i2c_bus_recovery_info to i2c_adapter. The i2c_bus_recovery_info can be simply retrieved from struct i2c_adapter which contains pointer on it. There are no users currently, so this is safe to do. Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Alexander Sverdlin <alexander.sverdlin@nokia.com> Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-04-03i2c: i2c-mux-gpio: remove error messages for probe deferralsIoan Nicu1-7/+3
Probe deferral is not an error case. It happens only when the necessary dependencies are not there yet. The driver core is already printing a message when a driver requests probe deferral, so this can be traced in the logs without these error prints. This patch removes the error messages for these deferral cases. Signed-off-by: Ionut Nicu <ioan.nicu.ext@nokia.com> Acked-by: Alexander Sverdlin <alexander.sverdlin@nokia.com> Acked-by: Peter Korsgaard <peter.korsgaard@barco.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-04-03i2c: jz4780: Add i2c bus controller driver for Ingenic JZ4780Zubair Lutfullah Kakakhel4-0/+877
Adds the i2c bus controller driver for the Ingenic JZ4780 SoC. Signed-off-by: Zubair Lutfullah Kakakhel <Zubair.Kakakhel@imgtec.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-27i2c: dln2: set the device tree node of the adapterOctavian Purdila1-0/+1
This patch makes sure the platform device tree node is inherited by the adapter device. This allows the DLN2 bus to work with i2c devices defined in the device tree. Signed-off-by: Octavian Purdila <octavian.purdila@intel.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-27i2c: davinci: fixup wait_for_completion_timeout handlingNicholas Mc Guire1-10/+7
wait_for_completion_timeout return 0 (timeout) or >=1 (completion) so the check for >= 0 is always true and can be dropped implying that r==-EREMOTEIO and thus the return of -EREMOTEIO can be done in the if (dev->buf_len) branch. As wait_for_completion_timeout returns unsigned long not int, and int r is exclusively used for wait_for_completion_timeout it is renamed and the type changed to unsigned long. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Acked-by: Alexander Sverdlin <alexander.sverdlin@nokia.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-27i2c: mpc: Fix ISR return valueAmit Tomar1-1/+2
ISR should not return IRQ_HANDLED for not handling anything. This patch fixes the return value of ISR for the same case. Signed-off-by: Amit Singh Tomar <amit.tomar@freescale.com> Acked-by: Danielle Costantino <danielle.costantino@gmail.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-27i2c: slave-eeprom: add more info when to increase the pointerWolfram Sang1-0/+6
It is a bit subtle when to correctly increase the buffer index when reading. Make this clearer by adding some more comments and pointers to the docs. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-27i2c: slave: add documentation for i2c-slave-eepromWolfram Sang1-0/+14
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Acked-by: Geert Uytterhoeven <geert+renesas@glider.be> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-27Documentation: i2c: describe the new slave modeWolfram Sang2-4/+179
Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-27i2c: slave: rework the slave APIWolfram Sang3-16/+14
After more discussion, brave users, and additional datasheet evaluation, some API updates for the new I2C slave framework became imminent. The slave events now get some easier to understand naming. Also, the event handling has been simplified to only need a single call to the slave callback when an action by the backend is required. Reported-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Acked-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-22i2c: add support for the Digicolor I2C controllerBaruch Siach4-0/+420
The CX92755 is an SoC in the Conexant Digicolor series. The devicetree binding document describes the I2C controller on the CX92755 SoC, that is also shared by some other SoCs in the Digicolor series. The driver adds support. Signed-off-by: Baruch Siach <baruch@tkos.co.il> [wsa: fixed spaces around operators] Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-18i2c: busses with dynamic ids should start after fixed ids for DTWolfram Sang1-0/+7
Make sure dynamic ids do not interfere with fixed ones and let them start after the highest fixed id. This patch might cause different bus-numbers than before for dynamic ids, however it fixes a bug. Assume: - fixed id0 defers probe - fixed id1 succeeds and registers a muxed bus with dynamic id - muxed bus gets id0 - fixed id0 wants to probe again, but its fixed id is gone now - fixed id0 probe fails With this patch, the fixed ids are always reserved in the DT case. For legacy board init, we already have a mechanism like this in i2c_register_board_info(). Reported-by: Bob Feretich <bob.feretich@rafresearch.com> Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-18of: base: add function to get highest id of an alias stemWolfram Sang2-0/+32
I2C supports adding adapters using either a dynamic or fixed id. The latter is provided by aliases in the DT case. To prevent id collisions of those two types, install this function which gives us the highest fixed id, so we can then let the dynamically created ones come after this highest number. Signed-off-by: Wolfram Sang <wsa+renesas@sang-engineering.com> Acked-by: Rob Herring <robh@kernel.org> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: designware: Suppress error message if platform_get_irq() < 0Alexey Brodkin1-4/+2
With -EPROBE_DEFER, this message is confusing and we hope for a centralized printout in the future anyhow. Signed-off-by: Alexey Brodkin <abrodkin@synopsys.com> Acked-by: Mika Westerberg <mika.westerberg@linux.intel.com> Acked-by: Christian Ruppert <christian.ruppert@alitech.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: mpc: assign the correct prescaler from SVRValentin Longchamp1-1/+29
For the 85xx platforms, the source clock for the i2c-mpc can change from one SoC to another. This is documented in the AN2919 "Determining the I2C Frequency Divider Ratio for SCL" by Freescale. Not taking this into account can lead to the output SCL frequency to by off by an offset. It was observed on the P2041 from the QorIQ family. This patch fixes this problem by setting the prescaler value to the appropriate value when required. The SoCs that required a different prescaler than 1 are identified by reading out the SVR as discussed in http://thread.gmane.org/gmane.linux.drivers.devicetree/94247/focus=20556 Signed-off-by: Valentin Longchamp <valentin.longchamp@keymile.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: img-scb: fixup of wait_for_completion_timeout return handlingNicholas Mc Guire1-6/+8
Return type of wait_for_completion_timeout is unsigned long not int. Appropriately typed/named variable are added and assignment fixed up. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Acked-by: James Hogan <james.hogan@imgtec.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: at91: fixup return type of wait_for_completion_timeoutNicholas Mc Guire1-3/+4
Return type of wait_for_completion_timeout is unsigned long not int. This patch adds a timeout variable of appropriate type and fixes up the assignment. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Acked-by: Ludovic Desroches <ludovic.desroches@atmel.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: axxia: fixup return type of wait_for_completion_timeoutNicholas Mc Guire1-8/+8
return type of wait_for_completion_timeout is unsigned long not int. The return variable is renamed to reflect its use and the type adjusted to unsigned long. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: nomadik: match status to return type of read_i2cNicholas Mc Guire1-1/+1
return type of read_i2c() is int not u32. As the assignments to status are consistent with int here its type is changed to int. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: nomadik: match return type of wait_for_completion_timeoutNicholas Mc Guire1-2/+2
return type of wait_for_completion_timeout is unsigned long not int. as timeout is used for wait_for_completion_timeout exclusively here its type is simply changed to unsigned long. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Acked-by: Linus Walleij <linus.walleij@linaro.org> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: imx: match return type of wait_for_completion_timeoutNicholas Mc Guire1-4/+6
return type of wait_for_completion_timeout is unsigned long not int. An appropriate variable of type unsigned long is introduced and the assignments fixed up. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: ismt: fix type of return var of wait_for_completion_timeoutNicholas Mc Guire1-2/+3
return type of wait_for_completion_timeout is unsigned long not int. As ret is in used for other calls a new appropriately typed variable timeout is added to handle wait_for_completion_timeout Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Acked-by: Neil Horman <nhorman@tuxdriver.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: wmt: match return type of wait_for_completion_timeoutNicholas Mc Guire1-2/+4
return type of wait_for_completion_timeout is unsigned long not int. as wait_result is only used for wait_for_completion_timeout here the type is simply changed to unsigned long. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: i2c-bcm2835: match return type of wait_for_completion_timeoutNicholas Mc Guire1-1/+1
return type of wait_for_completion_timeout is unsigned long not int. as time_left is used for wait_for_completion_timeout exclusively here its type is simply changed to unsigned long. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Acked-by: Lee Jones <lee.jones@linaro.org> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: designware: fixup return handling of wait_for_completion_timeoutNicholas Mc Guire1-2/+1
return type of wait_for_completion_timeout is unsigned long not int, rather than introducing a new variable the wait_for_completion_timeout is moved into the if condition as the return value is only used to detect timeout. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Reviewed-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: cadence: fixup wait_for_completion_timeout return handlingNicholas Mc Guire1-3/+3
return type of wait_for_completion_timeout is unsigned long not int. The return variable is renamed to make the timeout condition clearly readable and the type adjusted to unsigned long. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: wmt: use msecs_to_jiffies for time conversionsNicholas Mc Guire1-2/+2
This is only an API consolidation and should make things more readable it replaces var * HZ / 1000 by msecs_to_jiffies(var). Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: tegra: match return type of wait_for_completion_timeoutNicholas Mc Guire1-5/+7
return type of wait_for_completion_timeout is unsigned long not int. As ret was only used for wait_for_completion_timeout here it is renamed to time_left the type changed to unsigned long and references fixed up. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Reviewed-by: Alexandre Courbot <acourbot@nvidia.com> Acked-by: Thierry Reding <treding@nvidia.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-15i2c: mxs: match wait_for_completion_timeout return typeNicholas Mc Guire1-2/+3
Return type of wait_for_completion_timeout is unsigned long not int. An appropriately named unsigned long is added and the assignment fixed up. Signed-off-by: Nicholas Mc Guire <hofrat@osadl.org> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-14Merge branch 'i2c/quirks' into i2c/for-4.1Wolfram Sang12-110/+192
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-14i2c: opal: Update quirk flags to do write-then-anythingNeelesh Gupta1-6/+6
Hardware can do write-then-anything. Activate that. Signed-off-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com> [wsa: cosmetic updates] Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-13i2c: bcm-iproc: make use of the new infrastructure for quirksWolfram Sang1-8/+7
Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Tested-by: Ray Jui <rjui@broadcom.com>
2015-03-13i2c: pmcmsp: make use of the new infrastructure for quirksWolfram Sang1-26/+16
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-13i2c: viperboard: make use of the new infrastructure for quirksWolfram Sang1-4/+6
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-13i2c: powermac: make use of the new infrastructure for quirksWolfram Sang1-6/+4
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-13i2c: dln2: make use of the new infrastructure for quirksWolfram Sang1-6/+6
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-13i2c: axxia: make use of the new infrastructure for quirksWolfram Sang1-5/+6
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-13i2c: cpm: make use of the new infrastructure for quirksWolfram Sang1-11/+9
Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-13i2c: qup: make use of the new infrastructure for quirksWolfram Sang1-11/+10
Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Tested-by: Ivan T. Ivanov <iivanov@mm-sol.com>
2015-03-13i2c: opal: make use of the new infrastructure for quirksWolfram Sang1-11/+11
Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Tested-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com>
2015-03-13i2c: at91: make use of the new infrastructure for quirksWolfram Sang1-21/+11
Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Tested-By: Ludovic Desroches <ludovic.desroches@atmel.com>
2015-03-13i2c: add quirk checks to coreWolfram Sang1-0/+62
Let the core do the checks if HW quirks prevent a transfer. Saves code from drivers and adds consistency. Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Tested-by: Ray Jui <rjui@broadcom.com> Tested-by: Ivan T. Ivanov <iivanov@mm-sol.com> Tested-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com> Tested-By: Ludovic Desroches <ludovic.desroches@atmel.com>
2015-03-13i2c: add quirk structure to describe adapter flawsWolfram Sang1-0/+43
The number of I2C adapters which are not fully I2C compatible is rising, sadly. Drivers usually do handle the flaws, still the user receives only some errno for a transfer which normally can be expected to work. This patch introduces a formal description of flaws. One advantage is that the core can check before the actual transfer if the messages could be transferred at all. This is done in the next patch. Another advantage is that we can pass this information to the user so the restrictions are exactly known and further actions can be based on that. This will be done later after some stabilization period for this description. Signed-off-by: Wolfram Sang <wsa@the-dreams.de> Tested-by: Ray Jui <rjui@broadcom.com> Tested-by: Ivan T. Ivanov <iivanov@mm-sol.com> Tested-by: Neelesh Gupta <neelegup@linux.vnet.ibm.com> Tested-By: Ludovic Desroches <ludovic.desroches@atmel.com>
2015-03-09i2c: pca954x: improve usage of gpiod APIUwe Kleine-König1-3/+3
Since 39b2bbe3d715 (gpio: add flags argument to gpiod_get*() functions) which appeared in v3.17-rc1, the gpiod_get* functions take an additional parameter that allows to specify direction and initial value for outputs. Also there is an *_optional variant that serves well here. The sematics is slightly changed here by using it. Now if a reset gpio is specified and getting hold on it fails, pca954x_probe fails, too. Signed-off-by: Uwe Kleine-König <u.kleine-koenig@pengutronix.de> Acked-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-09i2c: i801: Use managed pcim_* PCI device initialization and reservationJarkko Nikula1-16/+9
Simplifies the code a bit and makes easier to disable PCI device on driver detach by removing the pcim_pin_device() call in the future if needed. Reason why i2c-i801.c doesn't ever call pci_disable_device() was because it made some systems to hang during power-off. See commit d6fcb3b9cf77 ("[PATCH] i2c-i801.c: don't pci_disable_device() after it was just enabled") and http://marc.info/?l=linux-kernel&m=115160053309535&w=2 Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Reviewed-by: Jean Delvare <jdelvare@suse.de> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-09i2c: i801: Remove pci_enable_device() call from i801_resume()Jarkko Nikula1-1/+1
Since pci_disable_device() is not called from i801_suspend() and power state is set already it means that subsequent pci_enable_device() calls do practically nothing but monotonically increase struct pci_dev enable_cnt. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Reviewed-by: Jean Delvare <jdelvare@suse.de> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-09i2c: i801: Use managed devm_* memory and irq allocationJarkko Nikula1-11/+6
This simplifies the error and remove paths. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Reviewed-by: Jean Delvare <jdelvare@suse.de> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-09i2c: i801: Remove i801_driver forward declarationJarkko Nikula1-4/+2
struct pci_driver i801_driver forward declaration is needed only for accessing the name field. Remove it and use dev_driver_string() instead. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Reviewed-by: Jean Delvare <jdelvare@suse.de> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-09i2c: i801: Don't break user-visible stringsJarkko Nikula1-4/+5
It makes more difficult to grep these error prints from sources if they are split to multiple source lines. Signed-off-by: Jarkko Nikula <jarkko.nikula@linux.intel.com> Reviewed-by: Jean Delvare <jdelvare@suse.de> Signed-off-by: Wolfram Sang <wsa@the-dreams.de>
2015-03-08Linux 4.0-rc3v4.0-rc3Linus Torvalds1-1/+1