1. 07 9月, 2011 3 次提交
  2. 27 7月, 2011 1 次提交
  3. 28 6月, 2011 1 次提交
    • S
      i2c: tegra: Assign unused slave address · 5afa9d35
      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>
      5afa9d35
  4. 11 5月, 2011 4 次提交
  5. 31 3月, 2011 1 次提交
  6. 23 2月, 2011 1 次提交