On Sat, May 11, 2013 at 10:50:23PM +0800, Sonic Zhang wrote: > Hi Tom > > > On Wed, Feb 27, 2013 at 4:37 PM, Sonic Zhang <sonic....@gmail.com> wrote: > > From: Bob Liu <lliu...@gmail.com> > > > > Add softswitch_output command for bf609-ezkit to enable softswitches. > > > > Signed-off-by: Bob Liu <lliu...@gmail.com> > > Signed-off-by: Sonic Zhang <sonic.zh...@analog.com> > > --- > > arch/blackfin/include/asm/soft_switch.h | 18 +++++++++++++ > > board/bf609-ezkit/soft_switch.c | 11 +------- > > board/bf609-ezkit/soft_switch.h | 25 +++++++++++++------ > > common/Makefile | 1 + > > common/cmd_softswitch.c | 41 > > +++++++++++++++++++++++++++++++ > > include/configs/bf609-ezkit.h | 1 + > > 6 files changed, 79 insertions(+), 18 deletions(-) > > create mode 100644 arch/blackfin/include/asm/soft_switch.h > > create mode 100644 common/cmd_softswitch.c > > > > diff --git a/arch/blackfin/include/asm/soft_switch.h > > b/arch/blackfin/include/asm/soft_switch.h > > new file mode 100644 > > index 0000000..ff8e44d > > --- /dev/null > > +++ b/arch/blackfin/include/asm/soft_switch.h > > @@ -0,0 +1,18 @@ > > +/* > > + * U-boot - main board file > > + * > > + * Copyright (c) 2008-2012 Analog Devices Inc. > > + * > > + * Licensed under the GPL-2 or later. > > + */ > > + > > +#ifndef __SOFT_SWITCH_H__ > > +#define __SOFT_SWITCH_H__ > > + > > +#define IO_PORT_A 0 > > +#define IO_PORT_B 1 > > +#define IO_PORT_INPUT 0 > > +#define IO_PORT_OUTPUT 1 > > + > > +int config_switch_bit(int num, int port, int bit, int dir, uchar value); > > +#endif > > diff --git a/board/bf609-ezkit/soft_switch.c > > b/board/bf609-ezkit/soft_switch.c > > index 2e1404f..e0c8d93 100644 > > --- a/board/bf609-ezkit/soft_switch.c > > +++ b/board/bf609-ezkit/soft_switch.c > > @@ -12,14 +12,6 @@ > > #include <i2c.h> > > #include "soft_switch.h" > > > > -#define SWITCH_ADDR 0x21 > > - > > -#define NUM_SWITCH 3 > > -#define IODIRA 0x0 > > -#define IODIRB 0x1 > > -#define OLATA 0x14 > > -#define OLATB 0x15 > > - > > struct switch_config { > > uchar dir0; /* IODIRA */ > > uchar dir1; /* IODIRB */ > > @@ -126,9 +118,8 @@ static int setup_soft_switch(int addr, struct > > switch_config *config) > > return i2c_write(addr, IODIRB, 1, &config->dir1, 1); > > } > > > > -int config_switch_bit(int num, int port, int bit, int dir, uchar value) > > +int config_switch_bit(int addr, int port, int bit, int dir, uchar value) > > { > > - int addr = SWITCH_ADDR + num; > > int ret, data_reg, dir_reg; > > uchar tmp; > > > > diff --git a/board/bf609-ezkit/soft_switch.h > > b/board/bf609-ezkit/soft_switch.h > > index 8da0e44..d147fe1 100644 > > --- a/board/bf609-ezkit/soft_switch.h > > +++ b/board/bf609-ezkit/soft_switch.h > > @@ -6,8 +6,10 @@ > > * Licensed under the GPL-2 or later. > > */ > > > > -#ifndef __SOFT_SWITCH_H__ > > -#define __SOFT_SWITCH_H__ > > +#ifndef __BOARD_SOFT_SWITCH_H__ > > +#define __BOARD_SOFT_SWITCH_H__ > > + > > +#include <asm/soft_switch.h> > > > > /* switch 0 port A */ > > #define CAN_EN 0x1 > > @@ -61,11 +63,18 @@ > > #define PD3_SPI0MOSI_EN 0x1 > > #define PD4_SPI0CK_EN 0x2 > > > > -#define IO_PORT_A 0 > > -#define IO_PORT_B 1 > > -#define IO_PORT_INPUT 0 > > -#define IO_PORT_OUTPUT 1 > > +#ifdef CONFIG_BFIN_BOARD_VERSION_1_0 > > +#define SWITCH_ADDR 0x21 > > +#else > > +#define SWITCH_ADDR 0x20 > > +#endif > > + > > +#define NUM_SWITCH 3 > > +#define IODIRA 0x0 > > +#define IODIRB 0x1 > > +#define OLATA 0x14 > > +#define OLATB 0x15 > > > > -int config_switch_bit(int num, int port, int bit, int dir, uchar value); > > int setup_board_switches(void); > > -#endif > > + > > +#endif /* __BOARD_SOFT_SWITCH_H__ */ > > diff --git a/common/Makefile b/common/Makefile > > index 54fcc81..80fee78 100644 > > --- a/common/Makefile > > +++ b/common/Makefile > > @@ -157,6 +157,7 @@ COBJS-$(CONFIG_CMD_SF) += cmd_sf.o > > COBJS-$(CONFIG_CMD_SCSI) += cmd_scsi.o > > COBJS-$(CONFIG_CMD_SHA1SUM) += cmd_sha1sum.o > > COBJS-$(CONFIG_CMD_SETEXPR) += cmd_setexpr.o > > +COBJS-$(CONFIG_CMD_SOFTSWITCH) += cmd_softswitch.o > > COBJS-$(CONFIG_CMD_SPI) += cmd_spi.o > > COBJS-$(CONFIG_CMD_SPIBOOTLDR) += cmd_spibootldr.o > > COBJS-$(CONFIG_CMD_STRINGS) += cmd_strings.o > > diff --git a/common/cmd_softswitch.c b/common/cmd_softswitch.c > > new file mode 100644 > > index 0000000..f75d926 > > --- /dev/null > > +++ b/common/cmd_softswitch.c > > @@ -0,0 +1,41 @@ > > +/* > > + * cmd_softswitch.c - set the softswitch for bf60x > > + * > > + * Copyright (c) 2012 Analog Devices Inc. > > + * > > + * Licensed under the GPL-2 or later. > > + */ > > + > > +#include <common.h> > > +#include <command.h> > > +#include <asm/blackfin.h> > > +#include <asm/soft_switch.h> > > + > > +int do_softswitch(cmd_tbl_t *cmdtp, int flag, int argc, char * const > > argv[]) > > +{ > > + int switchaddr, value, pin, port; > > + > > + if (argc != 5) > > + return CMD_RET_USAGE; > > + > > + if (strcmp(argv[2], "GPA") == 0) > > + port = IO_PORT_A; > > + else if (strcmp(argv[2], "GPB") == 0) > > + port = IO_PORT_B; > > + else > > + return CMD_RET_USAGE; > > + > > + switchaddr = simple_strtoul(argv[1], NULL, 16); > > + pin = simple_strtoul(argv[3], NULL, 16); > > + value = simple_strtoul(argv[4], NULL, 16); > > + > > + config_switch_bit(switchaddr, port, (1 << pin), IO_PORT_OUTPUT, > > value); > > + > > + return 0; > > +} > > + > > +U_BOOT_CMD( > > + softswitch_output, 5, 1, do_softswitch, > > + "switchaddr GPA/GPB pin_offset value", > > + "" > > +); > > diff --git a/include/configs/bf609-ezkit.h b/include/configs/bf609-ezkit.h > > index 8b90129..f0ac86b 100644 > > --- a/include/configs/bf609-ezkit.h > > +++ b/include/configs/bf609-ezkit.h > > @@ -144,6 +144,7 @@ > > #define CONFIG_UART_CONSOLE 0 > > > > #define CONFIG_CMD_MEMORY > > +#define CONFIG_CMD_SOFTSWITCH > > > > #define CONFIG_SYS_MEMTEST_END (CONFIG_STACKBASE - 20*1024*1024 + 4) > > #define CONFIG_BFIN_SOFT_SWITCH > > -- > > 1.7.0.4 > > This is the patch that include "CONFIG_CMD_SOFTSWITCH". Is this what > you think that I forgot to post before?
Yes, thanks. And it looks fine, aside from not updating the README. -- Tom
signature.asc
Description: Digital signature
_______________________________________________ U-Boot-devel mailing list U-Boot-devel@blackfin.uclinux.org https://blackfin.uclinux.org/mailman/listinfo/u-boot-devel