1. 16 7月, 2014 1 次提交
  2. 29 4月, 2014 1 次提交
    • S
      drivers/i2c/fsl_i2c: modify i2c_read to handle multi-byte write · a405764c
      Shaveta Leekha 提交于
      Most of the I2C slaves support accesses in the typical style
      that is : read/write series of bytes at particular address offset.
      These transactions look like:"
      (1) START:Address:Tx:Offset:RESTART:Address[0..4]:Tx/Rx:data[0..n]:STOP"
      
      However there are certain devices which support accesses in
      terms of the transactions as follows:
      (2) "START:Address:Tx:Txdata[0..n1]:Clock_stretching:
              RESTART:Address:Rx:data[0..n2]"
      Here Txdata is typically a command and some associated data,
      similarly Rxdata could be command status plus some data received
      as a response to the command sent.
      
      Type (1) transactions are currently supportd in the
      i2c driver using i2c_read and i2c_write APIs. I2C EEPROMs,
      RTC, etc fall in this category.
      
      To handle type (2) along with type (1) transactions,
      i2c_read() function has been modified.
      Signed-off-by: NShaveta Leekha <shaveta@freescale.com>
      Signed-off-by: NPoonam Aggrwal <poonam.aggrwal@freescale.com>
      a405764c
  3. 20 8月, 2013 2 次提交
    • C
      fsl_i2c: add workaround for the erratum I2C A004447 · 9c3f77eb
      Chunhe Lan 提交于
      This workaround is for the erratum I2C A004447. Device reference
      manual provides a scheme that allows the I2C master controller
      to generate nine SCL pulses, which enable an I2C slave device
      that held SDA low to release SDA. However, due to this erratum,
      this scheme no longer works. In addition, when I2C is used as
      a source of the PBL, the state machine is not able to recover.
      
      At the same time, delete the reduplicative definition of SVR_VER
      and SVR_REV. The SVR_REV is the low 8 bits rather than the low 16
      bits of svr. And we use the CONFIG_SYS_FSL_A004447_SVR_REV macro
      instead of hard-code value 0x10, 0x11 and 0x20.
      
      The CONFIG_SYS_FSL_A004447_SVR_REV = 0x00 represents that one
      version of platform has this I2C errata. So enable this errata
      by IS_SVR_REV(svr, maj, min) function.
      Signed-off-by: NZhao Chenhui <chenhui.zhao@freescale.com>
      Signed-off-by: NChunhe Lan <Chunhe.Lan@freescale.com>
      Cc: Scott Wood <scottwood@freescale.com>
      Cc: Heiko Schocher <hs@denx.de>
      9c3f77eb
    • C
      fsl_i2c: generate nine pulses on SCL if the I2C bus is hung · b8ce3343
      Chunhe Lan 提交于
      When the code detected that the bus is hung (e.g. SDA stuck low),
      send 9 pulses on SCL to try to fixup the bus.
      Signed-off-by: NZhao Chenhui <chenhui.zhao@freescale.com>
      Signed-off-by: NChunhe Lan <Chunhe.Lan@freescale.com>
      Cc: Scott Wood <scottwood@freescale.com>
      Cc: Heiko Schocher <hs@denx.de>
      b8ce3343
  4. 23 7月, 2013 1 次提交
  5. 17 7月, 2013 1 次提交
  6. 04 2月, 2013 1 次提交
  7. 26 10月, 2012 1 次提交
  8. 09 11月, 2011 1 次提交
  9. 04 11月, 2011 1 次提交
  10. 19 4月, 2010 1 次提交
    • R
      fsl_i2c: Added a callpoint for i2c_board_late_init · 26a33504
      Richard Retanubun 提交于
      This patch adds a callpoint in i2c_init that allows board specific
      i2c board initialization (typically for i2c bus reset) that is called
      after i2c_init operations, allowing the i2c_board_late_init function
      to use the pre-configured i2c bus speed and slave address.
      26a33504
  11. 03 10月, 2009 1 次提交
  12. 28 9月, 2009 4 次提交
  13. 06 9月, 2009 1 次提交
  14. 21 7月, 2009 1 次提交
    • H
      i2c, mpc83xx: add CONFIG_SYS_I2C_INIT_BOARD for fsl_i2c · 39df00d9
      Heiko Schocher 提交于
      This patch adds the possibility to call a board specific
      i2c bus reset routine for the fsl_i2c bus driver, and adds
      this option for the keymile kmeter1 board.
      
      The deblock sequence for this board is implemented and
      tested in the following way:
      
      CR = 0x20 (release SDA and SCL pin)
      CR = 0xa0 (start read)
      dummy read
      dummy read
      if 2. dummy read == 0x00
      	3. dummy read
      
      CR = 0x80 (SDA and SCL now 1 SR = 0x86)
      CR = 0x00 (Modul reset SR=0x81)
      CR = 0x80 (SDA and SCL = 1, SR = 0x81)
      Signed-off-by: NHeiko Schocher <hs@denx.de>
      39df00d9
  15. 06 3月, 2009 1 次提交
  16. 16 12月, 2008 1 次提交
  17. 09 12月, 2008 1 次提交
  18. 19 10月, 2008 1 次提交
  19. 28 8月, 2008 1 次提交
  20. 19 8月, 2008 1 次提交
  21. 06 8月, 2008 1 次提交
  22. 30 7月, 2008 2 次提交
    • K
      fsl_i2c: Use timebase timer functions instead of get_timer() · 09d318a8
      Kumar Gala 提交于
      The current implementation of get_timer() is only really useful after we
      have relocated u-boot to memory.  The i2c code is used before that as part
      of the SPD DDR setup.
      
      We actually have a bug when using the get_timer() code before relocation
      because the .bss hasn't been setup and thus we could be reading/writing
      a random location (probably in flash).
      Signed-off-by: NKumar Gala <galak@kernel.crashing.org>
      09d318a8
    • T
      fsl-i2c: fix writes to data segment before relocation · e4dafff8
      Timur Tabi 提交于
      Prevent i2c_init() in fsl_i2c.c from writing to the data segment before
      relocation.  Commit d8c82db4 added the ability for i2c_init() to program the
      I2C bus speed and save the value in i2c_bus_speed[], which is a global
      variable.  It is an error to write to the data segment before relocation,
      which is what i2c_init() does when it stores the bus speed in i2c_bus_speed[].
      Signed-off-by: NTimur Tabi <timur@freescale.com>
      e4dafff8
  23. 14 4月, 2008 1 次提交
  24. 27 3月, 2008 1 次提交
  25. 21 11月, 2007 1 次提交
  26. 10 8月, 2007 1 次提交
  27. 03 3月, 2007 1 次提交
  28. 29 11月, 2006 2 次提交
  29. 04 11月, 2006 1 次提交
  30. 21 10月, 2006 1 次提交
  31. 20 10月, 2006 2 次提交
  32. 23 8月, 2006 1 次提交
  33. 01 6月, 2006 1 次提交