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

Attachment: 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

Reply via email to