Skip to contentSkip to conversation

arm: socfpga: Add I2C support to SoCFPGA

PATCH New Stefan Roese 3 participants 3 messages Oct 30, 2014

lore
Share & tools
lore
#0 lore raw

PATCH v2 1/1 arm: socfpga: Add I2C support to SoCFPGA

This patch adds I2C support for the SoCFPGA. Using the designware I2C controller driver. It supports all 4 I2C busses on the SoCFPGA.

The designware I2C driver has now been converted to the CONFIG_SYS_I2C framework. So lets enable it on SoCFPGA.

Tested on SoCrates.

Cc Marek Vasut <[email protected]>
Cc Chin Liang See <[email protected]>
Cc Dinh Nguyen <[email protected]>
Cc Vince Bridgers <[email protected]>
Cc Pavel Machek <[email protected]>
Cc Heiko Schocher <[email protected]>

---
v2:
- The designware I2C driver now has been converted to the CONFIG_SYS_I2C framework. Use the correct defines to enable it.

 include/configs/socfpga_common.h | 27 +++++++++++++++++++++++++++
 1 file changed, 27 insertions(+)
include/configs/socfpga_common.h +27 -0
index 83a1bcd..f7b314d 100644
@@ -141,6 +141,33 @@
 #define CONFIG_SYS_MMC_MAX_BLK_COUNT	256	/* FIXME -- SPL only? */
 #endif
 
+ /*
+ * I2C support
+ */
+#define CONFIG_SYS_I2C
+#define CONFIG_SYS_I2C_DW
+#define CONFIG_SYS_I2C_BUS_MAX		4
+#define CONFIG_SYS_I2C_BASE		SOCFPGA_I2C0_ADDRESS
+#define CONFIG_SYS_I2C_BASE1		SOCFPGA_I2C1_ADDRESS
+#define CONFIG_SYS_I2C_BASE2		SOCFPGA_I2C2_ADDRESS
+#define CONFIG_SYS_I2C_BASE3		SOCFPGA_I2C3_ADDRESS
+/* Using standard mode which the speed up to 100Kb/s */
+#define CONFIG_SYS_I2C_SPEED		100000
+#define CONFIG_SYS_I2C_SPEED1		100000
+#define CONFIG_SYS_I2C_SPEED2		100000
+#define CONFIG_SYS_I2C_SPEED3		100000
+/* Address of device when used as slave */
+#define CONFIG_SYS_I2C_SLAVE		0x02
+#define CONFIG_SYS_I2C_SLAVE1		0x02
+#define CONFIG_SYS_I2C_SLAVE2		0x02
+#define CONFIG_SYS_I2C_SLAVE3		0x02
+#ifndef __ASSEMBLY__
+/* Clock supplied to I2C controller in unit of MHz */
+unsigned int cm_get_l4_sp_clk_hz(void);
+#define IC_CLK				(cm_get_l4_sp_clk_hz() / 1000000)
+#endif
+#define CONFIG_CMD_I2C
+
 /*
  * Serial Driver
  */
Signature · 1 line
2.1.3
#1 lore raw

PATCH v2 1/1 arm: socfpga: Add I2C support to SoCFPGA

Hello Stefan,

Am 30.10.2014 09:33, schrieb Stefan Roese:

Quoted 15 lines

This patch adds I2C support for the SoCFPGA. Using the designware I2C controller driver. It supports all 4 I2C busses on the SoCFPGA.

The designware I2C driver has now been converted to the CONFIG_SYS_I2C framework. So lets enable it on SoCFPGA.

Tested on SoCrates.

Cc Marek Vasut<[email protected]>
Cc Chin Liang See<[email protected]>
Cc Dinh Nguyen<[email protected]>
Cc Vince Bridgers<[email protected]>
Cc Pavel Machek<[email protected]>
Cc Heiko Schocher<[email protected]>
Quoted 7 lines

---
v2:
- The designware I2C driver now has been converted to the CONFIG_SYS_I2C framework. Use the correct defines to enable it.

  include/configs/socfpga_common.h | 27 +++++++++++++++++++++++++++
  1 file changed, 27 insertions(+)

As the socfpga custodian should pick up this patch, I only Ack this patch:

bye,
Heiko

Quoted 39 lines
include/configs/socfpga_common.h +27 -0
index 83a1bcd..f7b314d 100644
@@ -141,6 +141,33 @@
  #define CONFIG_SYS_MMC_MAX_BLK_COUNT	256	/* FIXME -- SPL only? */
  #endif
 
+ /*
+ * I2C support
+ */
+#define CONFIG_SYS_I2C
+#define CONFIG_SYS_I2C_DW
+#define CONFIG_SYS_I2C_BUS_MAX		4
+#define CONFIG_SYS_I2C_BASE		SOCFPGA_I2C0_ADDRESS
+#define CONFIG_SYS_I2C_BASE1		SOCFPGA_I2C1_ADDRESS
+#define CONFIG_SYS_I2C_BASE2		SOCFPGA_I2C2_ADDRESS
+#define CONFIG_SYS_I2C_BASE3		SOCFPGA_I2C3_ADDRESS
+/* Using standard mode which the speed up to 100Kb/s */
+#define CONFIG_SYS_I2C_SPEED		100000
+#define CONFIG_SYS_I2C_SPEED1		100000
+#define CONFIG_SYS_I2C_SPEED2		100000
+#define CONFIG_SYS_I2C_SPEED3		100000
+/* Address of device when used as slave */
+#define CONFIG_SYS_I2C_SLAVE		0x02
+#define CONFIG_SYS_I2C_SLAVE1		0x02
+#define CONFIG_SYS_I2C_SLAVE2		0x02
+#define CONFIG_SYS_I2C_SLAVE3		0x02
+#ifndef __ASSEMBLY__
+/* Clock supplied to I2C controller in unit of MHz */
+unsigned int cm_get_l4_sp_clk_hz(void);
+#define IC_CLK				(cm_get_l4_sp_clk_hz() / 1000000)
+#endif
+#define CONFIG_CMD_I2C
+
  /*
   * Serial Driver
   */
Signature · 2 lines
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Applied
#2 lore raw

PATCH v2 1/1 arm: socfpga: Add I2C support to SoCFPGA

In reply to Stefan Roese
Quoted 8 lines · Stefan Roese

This patch adds I2C support for the SoCFPGA. Using the designware I2C controller driver. It supports all 4 I2C busses on the SoCFPGA.

The designware I2C driver has now been converted to the CONFIG_SYS_I2C framework. So lets enable it on SoCFPGA.

Tested on SoCrates.

Quoted 7 lines
Cc Marek Vasut <[email protected]>
Cc Chin Liang See <[email protected]>
Cc Dinh Nguyen <[email protected]>
Cc Vince Bridgers <[email protected]>
Cc Pavel Machek <[email protected]>
Cc Heiko Schocher <[email protected]>

Applied, thanks!

Best regards,
Marek Vasut