Hello Stefan,

Am 27.04.2016 um 09:02 schrieb Stefan Roese:
Some platforms don't implement the enable status register at offset 0x9c.
The SPEAr600 platform is one of them. The recently added check to this
status register can't be performend on these platforms.

This patch introduces a new config option that can be enabled on such
platforms not supporting this register.

Signed-off-by: Stefan Roese <s...@denx.de>
Cc: Heiko Schocher <h...@denx.de>
---
  drivers/i2c/designware_i2c.c | 9 +++++++++
  1 file changed, 9 insertions(+)

No objections, but I miss an entry in drivers/i2c/Kconfig or at least an
entry in README. Please add this, thanks!

bye,
Heiko

diff --git a/drivers/i2c/designware_i2c.c b/drivers/i2c/designware_i2c.c
index 0c7cd0b..e60fd0a 100644
--- a/drivers/i2c/designware_i2c.c
+++ b/drivers/i2c/designware_i2c.c
@@ -36,6 +36,14 @@ struct dw_i2c {
        struct dw_scl_sda_cfg *scl_sda_cfg;
  };

+#ifdef CONFIG_SYS_I2C_DW_ENABLE_STATUS_UNSUPPORTED
+static void dw_i2c_enable(struct i2c_regs *i2c_base, bool enable)
+{
+       u32 ena = enable ? IC_ENABLE_0B : 0;
+
+       writel(ena, &i2c_base->ic_enable);
+}
+#else
  static void dw_i2c_enable(struct i2c_regs *i2c_base, bool enable)
  {
        u32 ena = enable ? IC_ENABLE_0B : 0;
@@ -56,6 +64,7 @@ static void dw_i2c_enable(struct i2c_regs *i2c_base, bool 
enable)

        printf("timeout in %sabling I2C adapter\n", enable ? "en" : "dis");
  }
+#endif

  /*
   * i2c_set_bus_speed - Set the i2c speed


--
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to