Skip to contentSkip to conversation

i2c: designware_i2c: Optionally check enable status register

PATCH New Stefan Roese 2 participants 4 messages Apr 27, 2016 – Apr 28, 2016 I2C

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 i2c: designware_i2c: Optionally check enable status register

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.

Cc Heiko Schocher <[email protected]>
---
 drivers/i2c/designware_i2c.c | 9 +++++++++
 1 file changed, 9 insertions(+)
drivers/i2c/designware_i2c.c +9 -0
index 0c7cd0b..e60fd0a 100644
@@ -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
Signature · 1 line
2.8.1
#1 lore raw

PATCH 1/1 i2c: designware_i2c: Optionally check enable status register

Hello Stefan,

Am 27.04.2016 um 09:02 schrieb Stefan Roese:

Quoted 4 lines

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.

Quoted 8 lines

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

Cc Heiko Schocher <[email protected]>
---
  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

Quoted 29 lines
drivers/i2c/designware_i2c.c +9 -0
index 0c7cd0b..e60fd0a 100644
@@ -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
Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
#2 lore raw

PATCH 1/1 i2c: designware_i2c: Optionally check enable status register

Hi Heiko,

Quoted 8 lines · Heiko Schocher

Am 27.04.2016 um 09:02 schrieb Stefan Roese:

Quoted 7 lines

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.

Quoted 8 lines
Quoted 5 lines
Cc Heiko Schocher <[email protected]>
---
  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!

Yes, I am aware that this is not available via Kconfig. I hesitate to add it to the README, as this is a bit outdated. And we should move to Kconfig anyways.

I'll work on a patch to move this driver and this config option to Kconfig instead.

Thanks,
Stefan

#3 lore raw

PATCH 1/1 i2c: designware_i2c: Optionally check enable status register

Hello Stefan,

Am 28.04.2016 um 08:10 schrieb Stefan Roese:

Quoted 17 lines

Hi Heiko,

Quoted 14 lines · Heiko Schocher

Am 27.04.2016 um 09:02 schrieb Stefan Roese:

Quoted 12 lines

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.

Cc Heiko Schocher <[email protected]>
---
  drivers/i2c/designware_i2c.c | 9 +++++++++
  1 file changed, 9 insertions(+)
Quoted 6 lines
Quoted 2 lines

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

Yes, I am aware that this is not available via Kconfig. I hesitate to add it to the README, as this is a bit outdated. And we should move to Kconfig anyways.

Yes!

Quoted 2 lines

I'll work on a patch to move this driver and this config option to Kconfig instead.

Ok, thanks for the info, so I am fine with this patch:

bye,
Heiko

Signature · 2 lines
DENX Software Engineering GmbH,      Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany