On Tuesday 10 January 2012 19:45:47 Simon Glass wrote: > This provides a way of simulating GPIOs by setting values which are seen > by the normal gpio_get/set_value() calls.
seems to be a desync in types ... all "gpio" fields should be "unsigned" and not "int" > --- /dev/null > +++ b/arch/sandbox/include/asm/gpio.h > > +int sandbox_gpio_get_value(int gp); why bother with parallel sandbox gpio API ? why can't we just implement the gpio API directly and throw away sandbox_gpio_xxx ? then we can also stub out sandbox/include/asm/gpio.h ... also, missing gpio_status() define to gpio_info() > --- /dev/null > +++ b/drivers/gpio/sandbox.c > > +enum { > + CMD_INFO, > + CMD_PORT, > + CMD_OUTPUT, > + CMD_INPUT, > +}; CMD_XXX enums are unused -> punt > +enum { > + GPIOF_OUTPUT = 1 << 1, > + GPIOF_HIGH = 1 << 2, > +}; turn enum bit flags into defines also, add a "reserved" bit flag and check it in gpio_request() > +/* read GPIO IN value of port 'gp' */ > +int gpio_get_value(int gp) > ... > + if (get_gpio_flag(gp, GPIOF_OUTPUT)) > ... > +int gpio_set_value(int gp, int value) > ... > + if (get_gpio_flag(gp, GPIOF_OUTPUT)) { drop valid gpio checking in these funcs ... only the request func should do this > +int gpio_request(unsigned gpio, const char *label) > +{ > + /* for now, do nothing */ > + return 0; > +} add (gpio <= CONFIG_SANDBOX_GPIO_COUNT) check to verify the gpio is valid > +int gpio_info(int gp) > +{ > + printf("Sandbox GPIOs\n"); > + return 0; > +} implement it ? -mike
signature.asc
Description: This is a digitally signed message part.
_______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot