Initial revision
diff --git a/include/cmd_i2c.h b/include/cmd_i2c.h
new file mode 100644
index 0000000..7334fd4
--- /dev/null
+++ b/include/cmd_i2c.h
@@ -0,0 +1,103 @@
+/*
+ * (C) Copyright 2001
+ * Gerald Van Baren, Custom IDEAS, vanbaren@cideas.com.
+ *
+ * See file CREDITS for list of people who contributed to this
+ * project.
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston,
+ * MA 02111-1307 USA
+ */
+
+/*
+ * I2C Functions
+ */
+#ifndef	_CMD_I2C_H
+#define _CMD_I2C_H
+
+#if (CONFIG_COMMANDS & CFG_CMD_I2C)
+#define CMD_TBL_IMD	MK_CMD_TBL_ENTRY(				\
+	"imd",		3,	4,	1,	do_i2c_md,		\
+	"imd     - i2c memory display\n",				\
+	"chip address[.0, .1, .2] [# of objects]\n    - i2c memory display\n" \
+),
+#define CMD_TBL_IMM	MK_CMD_TBL_ENTRY(				\
+ 	"imm",		3,	3,	1,	do_i2c_mm,		\
+	"imm     - i2c memory modify (auto-incrementing)\n",		\
+	"chip address[.0, .1, .2]\n"					\
+	"    - memory modify, auto increment address\n"			\
+),
+#define CMD_TBL_INM	MK_CMD_TBL_ENTRY(				\
+	"inm",		3,	3,	1,	do_i2c_nm,		\
+	"inm     - memory modify (constant address)\n",			\
+	"chip address[.0, .1, .2]\n    - memory modify, read and keep address\n" \
+),
+#define CMD_TBL_IMW	MK_CMD_TBL_ENTRY(				\
+	"imw",		3,	5,	1,	do_i2c_mw,		\
+	"imw     - memory write (fill)\n",				\
+	"chip address[.0, .1, .2] value [count]\n    - memory write (fill)\n" \
+),
+#define	CMD_TBL_ICRC	MK_CMD_TBL_ENTRY(				\
+	"icrc32",	4,	5,	1,	do_i2c_crc,		\
+	"icrc32  - checksum calculation\n",				\
+	"chip address[.0, .1, .2] count\n    - compute CRC32 checksum\n" \
+),
+#define CMD_TBL_IPROBE	MK_CMD_TBL_ENTRY(				\
+	"iprobe",	3,	1,	1,	do_i2c_probe,		\
+	"iprobe  - probe to discover valid I2C chip addresses\n",	\
+	"\n    -discover valid I2C chip addresses\n"			\
+),
+/*
+ * Require full name for "iloop" because it is an infinite loop!
+ */
+#define CMD_TBL_ILOOP	MK_CMD_TBL_ENTRY(				\
+	"iloop",	5,	5,	1,	do_i2c_loop,		\
+	"iloop   - infinite loop on address range\n",			\
+	"chip address[.0, .1, .2] [# of objects]\n"			\
+	"    - loop, reading a set of addresses\n"			\
+),
+#if (CONFIG_COMMANDS & CFG_CMD_SDRAM)
+#define CMD_TBL_ISDRAM	MK_CMD_TBL_ENTRY(				\
+	"isdram",	6,	2,	1,	do_sdram,		\
+	"isdram  - print SDRAM configuration information\n",		\
+	"chip\n    - print SDRAM configuration information\n"		\
+	"      (valid chip values 50..57)\n"				\
+),
+#else
+#define CMD_TBL_ISDRAM
+#endif
+
+
+int do_i2c_md(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_i2c_mm(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_i2c_nm(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_i2c_mw(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_i2c_crc(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_i2c_probe(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_i2c_loop(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+int do_sdram(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[]);
+
+#else
+#define CMD_TBL_IMD
+#define CMD_TBL_IMM
+#define CMD_TBL_INM
+#define CMD_TBL_IMW
+#define CMD_TBL_ICRC
+#define CMD_TBL_IPROBE
+#define CMD_TBL_ILOOP
+#define CMD_TBL_ISDRAM
+#endif	/* CFG_CMD_MEMORY */
+
+#endif	/* _CMD_I2C_H */