diff options
author | Rikard Olsson <rikard.p.olsson@stericsson.com> | 2011-08-03 11:01:34 +0200 |
---|---|---|
committer | Michael BRANDT <michael.brandt@stericsson.com> | 2011-08-08 15:41:59 +0200 |
commit | 830f40ebdd7db329dd56f2444186606a301ecd84 (patch) | |
tree | d883b541b2a5085ac5e5fa7671ade770b9b900e8 | |
parent | b7679dc6293fc7d0be3192e88732fa43890f8646 (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/Makefile | 1 | ||||
-rw-r--r-- | board/st-ericsson/u8500/cmd_ab8500.c | 84 |
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" +); |