From 830f40ebdd7db329dd56f2444186606a301ecd84 Mon Sep 17 00:00:00 2001 From: Rikard Olsson Date: Wed, 3 Aug 2011 11:01:34 +0200 Subject: u8500: Add commands to read and write into ab8500 Added commands: ab8500_read ab8500_write (type help in U-Boot shell for help) ST-Ericsson FOSS-OUT ID: Trivial ST-Ericsson ID: -- Change-Id: I8fe7c1d2c2ac9dea17990784ea87fdb45279c630 Signed-off-by: Rikard Olsson Reviewed-on: http://gerrit.lud.stericsson.com/gerrit/28207 Reviewed-by: QATEST Reviewed-by: Michael BRANDT --- board/st-ericsson/u8500/Makefile | 1 + board/st-ericsson/u8500/cmd_ab8500.c | 84 ++++++++++++++++++++++++++++++++++++ 2 files changed, 85 insertions(+) create mode 100644 board/st-ericsson/u8500/cmd_ab8500.c 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 for ST-Ericsson. + * License terms: GNU General Public License (GPL) version 2 + * + */ + +/* cmd_ab8500.c - read and write register in the ab8500 */ + +#include +#include +#include + +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" +); -- cgit v1.2.3