aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRikard Olsson <rikard.p.olsson@stericsson.com>2011-08-03 11:01:34 +0200
committerMichael BRANDT <michael.brandt@stericsson.com>2011-08-08 15:41:59 +0200
commit830f40ebdd7db329dd56f2444186606a301ecd84 (patch)
treed883b541b2a5085ac5e5fa7671ade770b9b900e8
parentb7679dc6293fc7d0be3192e88732fa43890f8646 (diff)
u8500: Add commands to read and write into ab8500
Added commands: ab8500_read ab8500_write (type help <command> in U-Boot shell for help) ST-Ericsson FOSS-OUT ID: Trivial ST-Ericsson ID: -- Change-Id: I8fe7c1d2c2ac9dea17990784ea87fdb45279c630 Signed-off-by: Rikard Olsson <rikard.p.olsson@stericsson.com> Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/28207 Reviewed-by: QATEST Reviewed-by: Michael BRANDT <michael.brandt@stericsson.com>
-rw-r--r--board/st-ericsson/u8500/Makefile1
-rw-r--r--board/st-ericsson/u8500/cmd_ab8500.c84
2 files changed, 85 insertions, 0 deletions
diff --git a/board/st-ericsson/u8500/Makefile b/board/st-ericsson/u8500/Makefile
index 8ebf840e8..b22a50f57 100644
--- a/board/st-ericsson/u8500/Makefile
+++ b/board/st-ericsson/u8500/Makefile
@@ -35,6 +35,7 @@ COBJS += cmd_cdump.o
COBJS += cmd_hats.o
COBJS += u8500.o
COBJS += u8500_i2c.o
+COBJS += cmd_ab8500.o
COBJS-$(CONFIG_VIDEO_LOGO) += mcde_display.o
COBJS-$(CONFIG_VIDEO_LOGO) += mcde_display_dpi.o
diff --git a/board/st-ericsson/u8500/cmd_ab8500.c b/board/st-ericsson/u8500/cmd_ab8500.c
new file mode 100644
index 000000000..63a02559a
--- /dev/null
+++ b/board/st-ericsson/u8500/cmd_ab8500.c
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) ST-Ericsson SA 2011
+ *
+ * Author: Rikard Olsson <rikard.p.olsson@stericsson.com> for ST-Ericsson.
+ * License terms: GNU General Public License (GPL) version 2
+ *
+ */
+
+/* cmd_ab8500.c - read and write register in the ab8500 */
+
+#include <common.h>
+#include <command.h>
+#include <asm/arch/ab8500.h>
+
+static int do_ab8500_read(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+ ulong bankaddress;
+ ulong offset;
+ int ret;
+
+ if (argc != 3) {
+ cmd_usage(cmdtp);
+ return 1;
+ }
+
+ /* Get bank and offset */
+ bankaddress = simple_strtoul(argv[1], NULL, 16);
+ offset = simple_strtoul(argv[2], NULL, 16);
+
+ ret = ab8500_read(bankaddress, offset);
+ if (ret < 0) {
+ printf("ab8500 read failed at address 0x%lx,0x%lx\n",
+ bankaddress, offset);
+ return 1;
+ }
+
+ /* Print the result */
+ printf("ab8500_read(0x%lx,0x%lx) = 0x%x\n", bankaddress, offset, ret);
+
+ return 0;
+}
+
+static int do_ab8500_write(cmd_tbl_t *cmdtp, int flag, int argc, char *argv[])
+{
+ ulong bankaddress;
+ ulong offset;
+ ulong value;
+ int ret;
+
+ if (argc != 4) {
+ cmd_usage(cmdtp);
+ return 1;
+ }
+
+ /* Get bank,offset and value */
+ bankaddress = simple_strtoul(argv[1], NULL, 16);
+ offset = simple_strtoul(argv[2], NULL, 16);
+ value = simple_strtoul(argv[3], NULL, 16);
+
+ /* Write the reg value */
+ ret = ab8500_write(bankaddress, offset, value);
+ if (ret < 0) {
+ printf("ab8500 write failed at address 0x%lx,0x%lx\n",
+ bankaddress, offset);
+ return 1;
+ }
+
+ /* Print the result */
+ printf("ab8500_write(0x%lx,0x%lx,0x%lx)\n", bankaddress, offset, value);
+
+ return 0;
+}
+
+U_BOOT_CMD(
+ ab8500_read, 3, 1, do_ab8500_read,
+ "read ab8500 register",
+ "ab8500_read bankadress offset"
+);
+
+U_BOOT_CMD(
+ ab8500_write, 4, 1, do_ab8500_write,
+ "write XX value into ab8500 register",
+ "ab8500_write bankadress offset value"
+);