All of lore.kernel.org
 help / color / mirror / Atom feed
From: Peter Tyser <ptyser@xes-inc.com>
To: u-boot@lists.denx.de
Subject: [U-Boot] [PATCH 2/7] i2c: Create common default i2c_[set|get]_bus_speed() functions
Date: Thu, 16 Apr 2009 14:41:22 -0500	[thread overview]
Message-ID: <7ef937438f1ac94c64a2e8869c0847f39c0eac67.1239909546.git.ptyser@xes-inc.com> (raw)
In-Reply-To: <cover.1239909546.git.ptyser@xes-inc.com>

New default, weak i2c_get_bus_speed() and i2c_set_bus_speed() functions
replace a number of architecture-specific implementations.

Also, providing default functions will allow all boards to enable
CONFIG_I2C_CMD_TREE.  This was previously not possible since the
tree-form of the i2c command provides the ability to display and modify
the i2c bus speed which requires i2c_[set|get]_bus_speed() to be
present.

Signed-off-by: Peter Tyser <ptyser@xes-inc.com>
---
 common/cmd_i2c.c             |   18 ++++++++++++++++++
 cpu/arm920t/at91rm9200/i2c.c |   10 ----------
 cpu/mpc512x/i2c.c            |   14 --------------
 cpu/mpc8260/i2c.c            |   13 -------------
 cpu/ppc4xx/i2c.c             |   14 --------------
 drivers/i2c/soft_i2c.c       |   14 --------------
 6 files changed, 18 insertions(+), 65 deletions(-)

diff --git a/common/cmd_i2c.c b/common/cmd_i2c.c
index 16439ac..29baadd 100644
--- a/common/cmd_i2c.c
+++ b/common/cmd_i2c.c
@@ -138,6 +138,24 @@ DECLARE_GLOBAL_DATA_PTR;
 static int
 mod_i2c_mem(cmd_tbl_t *cmdtp, int incrflag, int flag, int argc, char *argv[]);
 
+/* TODO: Implement architecture-specific get/set functions */
+unsigned int __def_i2c_get_bus_speed(void)
+{
+	return CONFIG_SYS_I2C_SPEED;
+}
+unsigned int i2c_get_bus_speed(void)
+	__attribute((weak, alias("__def_i2c_get_bus_speed")));
+
+int __def_i2c_set_bus_speed(unsigned int speed)
+{
+	if (speed != CONFIG_SYS_I2C_SPEED)
+		return -1;
+
+	return 0;
+}
+int i2c_set_bus_speed(unsigned int)
+	__attribute((weak, alias("__def_i2c_set_bus_speed")));
+
 /*
  * Syntax:
  *	imd {i2c_chip} {addr}{.0, .1, .2} {len}
diff --git a/cpu/arm920t/at91rm9200/i2c.c b/cpu/arm920t/at91rm9200/i2c.c
index 9fd72d3..1711088 100644
--- a/cpu/arm920t/at91rm9200/i2c.c
+++ b/cpu/arm920t/at91rm9200/i2c.c
@@ -189,14 +189,4 @@ i2c_init(int speed, int slaveaddr)
 	return;
 }
 
-int i2c_set_bus_speed(unsigned int speed)
-{
-	return -1;
-}
-
-unsigned int i2c_get_bus_speed(void)
-{
-	return CONFIG_SYS_I2C_SPEED;
-}
-
 #endif /* CONFIG_HARD_I2C */
diff --git a/cpu/mpc512x/i2c.c b/cpu/mpc512x/i2c.c
index 4f6bc86..0da906a 100644
--- a/cpu/mpc512x/i2c.c
+++ b/cpu/mpc512x/i2c.c
@@ -397,18 +397,4 @@ unsigned int i2c_get_bus_num (void)
 	return bus_num;
 }
 
-/* TODO */
-unsigned int i2c_get_bus_speed (void)
-{
-	return -1;
-}
-
-int i2c_set_bus_speed (unsigned int speed)
-{
-	if (speed != CONFIG_SYS_I2C_SPEED)
-		return -1;
-
-	return 0;
-}
-
 #endif	/* CONFIG_HARD_I2C */
diff --git a/cpu/mpc8260/i2c.c b/cpu/mpc8260/i2c.c
index 35cf8f1..7fcd00f 100644
--- a/cpu/mpc8260/i2c.c
+++ b/cpu/mpc8260/i2c.c
@@ -783,19 +783,6 @@ int i2c_set_bus_num(unsigned int bus)
 #endif
 	return 0;
 }
-/* TODO: add 100/400k switching */
-unsigned int i2c_get_bus_speed(void)
-{
-	return CONFIG_SYS_I2C_SPEED;
-}
-
-int i2c_set_bus_speed(unsigned int speed)
-{
-	if (speed != CONFIG_SYS_I2C_SPEED)
-		return -1;
-
-	return 0;
-}
 
 #endif	/* CONFIG_I2C_MULTI_BUS */
 #endif	/* CONFIG_HARD_I2C */
diff --git a/cpu/ppc4xx/i2c.c b/cpu/ppc4xx/i2c.c
index 9d416ca..e3e1bab 100644
--- a/cpu/ppc4xx/i2c.c
+++ b/cpu/ppc4xx/i2c.c
@@ -438,18 +438,4 @@ int i2c_set_bus_num(unsigned int bus)
 	return 0;
 }
 #endif	/* CONFIG_I2C_MULTI_BUS */
-
-/* TODO: add 100/400k switching */
-unsigned int i2c_get_bus_speed(void)
-{
-	return CONFIG_SYS_I2C_SPEED;
-}
-
-int i2c_set_bus_speed(unsigned int speed)
-{
-	if (speed != CONFIG_SYS_I2C_SPEED)
-		return -1;
-
-	return 0;
-}
 #endif	/* CONFIG_HARD_I2C */
diff --git a/drivers/i2c/soft_i2c.c b/drivers/i2c/soft_i2c.c
index 185634d..59883a5 100644
--- a/drivers/i2c/soft_i2c.c
+++ b/drivers/i2c/soft_i2c.c
@@ -244,20 +244,6 @@ int i2c_set_bus_num(unsigned int bus)
 }
 #endif
 
-/* TODO: add 100/400k switching */
-unsigned int i2c_get_bus_speed(void)
-{
-	return CONFIG_SYS_I2C_SPEED;
-}
-
-int i2c_set_bus_speed(unsigned int speed)
-{
-	if (speed != CONFIG_SYS_I2C_SPEED)
-		return -1;
-
-	return 0;
-}
-
 /*-----------------------------------------------------------------------
  * if ack == I2C_ACK, ACK the byte so can continue reading, else
  * send I2C_NOACK to end the read.
-- 
1.6.2.1

  parent reply	other threads:[~2009-04-16 19:41 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-16 19:41 [U-Boot] [PATCH 0/7] Remove individual I2C commands and cleanup Peter Tyser
2009-04-16 19:41 ` [U-Boot] [PATCH 1/7] cm5200: Make function test command names more unique Peter Tyser
2009-04-16 19:41 ` Peter Tyser [this message]
2009-04-18 18:23   ` [U-Boot] [PATCH 2/7] i2c: Create common default i2c_[set|get]_bus_speed() functions Mike Frysinger
2009-04-19  3:13     ` Peter Tyser
2009-04-20  4:54       ` Mike Frysinger
2009-04-16 19:41 ` [U-Boot] [PATCH 3/7] i2c: Remove deprecated individual i2c commands Peter Tyser
2009-04-16 19:41 ` [U-Boot] [PATCH 4/7] i2c: Update references to " Peter Tyser
2009-04-16 19:41 ` [U-Boot] [PATCH 5/7] cmd_i2c: Clean up i2c command argument parsing Peter Tyser
2009-04-16 19:41 ` [U-Boot] [PATCH 6/7] cmd_i2c: Clean up trivial helper functions Peter Tyser
2009-04-16 19:41 ` [U-Boot] [PATCH 7/7] cmd_i2c: Fix i2c help command output when CONFIG_I2C_MUX Peter Tyser
2009-04-16 22:08 ` [U-Boot] [PATCH 0/7] Remove individual I2C commands and cleanup Timur Tabi
2009-04-17  6:20 ` Heiko Schocher
2009-04-17 13:32   ` Jerry Van Baren
2009-04-18  7:11     ` Heiko Schocher
2009-04-17 16:43   ` Peter Tyser
2009-04-18  7:14     ` Heiko Schocher
2009-04-23  6:18 ` [U-Boot] [PATCH v2 " Heiko Schocher
2009-04-23  7:02   ` Heiko Schocher
2009-04-23 23:06     ` Peter Tyser

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7ef937438f1ac94c64a2e8869c0847f39c0eac67.1239909546.git.ptyser@xes-inc.com \
    --to=ptyser@xes-inc.com \
    --cc=u-boot@lists.denx.de \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.