- 07 9月, 2011 3 次提交
-
-
由 Doug Anderson 提交于
In tegra_i2c_fill_tx_fifo, once we have finished pushing all the bytes to the I2C hardware controller, the interrupt might happen before we have updated i2c_dev->msg_buf_remaining at the end of the function. Then, in tegra_i2c_isr, we will call again tegra_i2c_fill_tx_fifo triggering weird behaviour. This has been shown to happen under real conditions. Signed-off-by: NDoug Anderson <dianders@chromium.org> Tested-by: NVincent Palatin <vpalatin@chromium.org> Acked-by: NRhyland Klein <rklein@nvidia.com> Acked-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-
由 Mike Rapoport 提交于
Signed-off-by: NMike Rapoport <mike@compulab.co.il> Signed-off-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-
由 John Bonesio 提交于
This patch was intended to be part of 7ca2d1a105a239e300b937e9c41a10a4bd08f569 "i2c: Tegra: Add DeviceTree support". However, an early version of that patch, which was missing a chunk, was applied to next-i2c. This change is that missing chunk. Signed-off-by: NJohn Bonesio <bones@secretlab.ca> Signed-off-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-
- 27 7月, 2011 1 次提交
-
-
由 John Bonesio 提交于
This patch modifies the tegra i2c driver so that it can be initiailized using the device tree along with the devices connected to the i2c bus. Signed-off-by: NJohn Bonesio <bones@secretlab.ca> Acked-by: NGrant Likely <grant.likely@secretlab.ca> Acked-by: NOIof Johansson <olof@lixom.net> Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-
- 28 6月, 2011 1 次提交
-
-
由 Stephen Warren 提交于
On Tegra, we should always use the "new" I2C slave controller, to avoid issues with the old controller. This was implemented in commit 65a1a0ac "i2c: tegra: Enable new slave mode." There is currently no driver for the Tegra I2C slave controller upstream. Additionally, the controller cannot be completely disabled. Instead, we need to: a) Set I2C_SL_CNFG_NACK to make the controller automatically NACK any incoming transactions. b) The controller's definition of NACK isn't identical to the I2C protocol's definition. Specifically, it will perform a standard NACK, but *also* continue to hold the clock line low in expectation of receiving more data. This can hang the bus, or at least cause transaction timeouts, if something starts a transaction that matches the controller's slave address. Since the default address is 0x00, the general call address, this does occur in practice. To avoid this, we explicitly program a slave address that is reserved for future expansion. For current boards, this guarantees the address will never be used. If a future board ever needs to use this address, we can add platform data to determine a board-specific safe address. 0xfc is picked by this patch. This patch is based on a change previously posted by: Wei Ni <wni@nvidia.com> http://www.spinics.net/lists/linux-i2c/msg05437.html In turned based on internal changes by: Bharat Nihalani <bnihalani@nvidia.com> A semantically equivalent change has been contained in the various ChromeOS kernels for a while. I tested this change on top of 3.0-rc2 on Harmony, and interacted with the WM8903 I2C-based audio codec. Signed-off-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-
- 11 5月, 2011 4 次提交
-
-
由 Jay Cheng 提交于
This enables debouncing of the I2C lines. The debounce period is 2 * the debounce register field value, in terms of the I2C block's main clock. The Tegra TRM indicates that a setting yielding >50nS is desirable. Hence, a setting of 2 => 4 clocks @ 72MHz => ~55nS. Signed-off-by: NKen Radtke <kradtke@nvidia.com> [swarren: Added commit description body, Fixed 80-column limit, Reverted file permission change] Signed-off-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-
由 Erik Gilling 提交于
A repeated start should be used for all but the last msg in an xfer. The NOSTART flag is for skipping the START frame (addr/rw) Signed-off-by: NErik Gilling <konkers@android.com> Signed-off-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-
由 Todd Poynor 提交于
Re-init the I2C controller when an IRQ arrives with no I2C_INT_STATUS bits set to indicate why the interrupt was sent. Storms of such mystery interrupts are infrequently seen. Dump some more status when these interrupts arrive. Set an error for the current request and wake up the requester (rather than timing out the request or possibly silently ignoring the interrupts). If the I2C block is inside the DVC, also ACK the DVC I2C transfer done interrupt in the ISR error return path, as is done for the normal return path. Signed-off-by: NTodd Poynor <toddpoynor@google.com> [swarren: Fix minor checkpatch whitespace issue, commit tag] Signed-off-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-
由 Kenneth Waters 提交于
For Tegra i2c controller to function properly new slave mode must be enabled. swarren notes: In particular, I found this was needed when working on enabling the Tegra audio driver on the Seaboard board. There are two different PCB layouts for this board; a "clamshell" version, which works just fine without this change, and the original non-clamshell version, which needs this change in order for I2C to operate correctly. Without it, I2C probing fails for some devices, e.g. with: wm8903 0-001a: Device with ID register 0 is not a WM8903 wm8903 0-001a: asoc: failed to probe CODEC wm8903.0-001a: -19 asoc: failed to instantiate card tegra-wm8903: -19 ALSA device list: No soundcards found. Signed-off-by: NRakesh Iyer <riyer@nvidia.com> Cc: stable <stable@kernel.org> Signed-off-by: NStephen Warren <swarren@nvidia.com> Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-
- 31 3月, 2011 1 次提交
-
-
由 Lucas De Marchi 提交于
Fixes generated by 'codespell' and manually reviewed. Signed-off-by: NLucas De Marchi <lucas.demarchi@profusion.mobi>
-
- 23 2月, 2011 1 次提交
-
-
由 Colin Cross 提交于
Adds I2C bus driver for nVidia Tegra SoCs. Tegra includes 4 I2C controllers, one of which is inside the Dynamic Voltage Controller and has a slightly different register map. Signed-off-by: NColin Cross <ccross@android.com> Signed-off-by: NBen Dooks <ben-linux@fluff.org>
-