Skip to content
Snippets Groups Projects
Select Git revision
4 results

processor.h

Blame
  • Forked from Reform / reform-boundary-uboot
    Loading
    • Chunhe Lan's avatar
      9c3f77eb
      fsl_i2c: add workaround for the erratum I2C A004447 · 9c3f77eb
      Chunhe Lan authored
      
      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: default avatarZhao Chenhui <chenhui.zhao@freescale.com>
      Signed-off-by: default avatarChunhe Lan <Chunhe.Lan@freescale.com>
      Cc: Scott Wood <scottwood@freescale.com>
      Cc: Heiko Schocher <hs@denx.de>
      9c3f77eb
      History
      fsl_i2c: add workaround for the erratum I2C A004447
      Chunhe Lan authored
      
      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: default avatarZhao Chenhui <chenhui.zhao@freescale.com>
      Signed-off-by: default avatarChunhe Lan <Chunhe.Lan@freescale.com>
      Cc: Scott Wood <scottwood@freescale.com>
      Cc: Heiko Schocher <hs@denx.de>