Dear Heiko Schocher, In message <4a6422fc.6030...@invitel.hu> you wrote: > > typedef struct gpio_adapter { > int (*init_pin)(int pin); > int (*set)(int pin, value); > int (*get)(int pin); > int (*dir)(int pin, int direction); > int (*level)(int pin, int level); > } > > int gpio_init(gpio_adapter *adap); > int gpio_init_pin(pin); > ? maybe with setting a marker, that this pin is initialized, > so this can be checked in the above functions ... ? > int gpio_set(pin, value); > int gpio_get(pin); > int gpio_dir(pin, dir); > int gpio_level(pin, dir);
What does "level" mean in this context? gpio_init_pin() and gpio_dir() seem to be redundant - or does pin initialization not include the setting of the direction (and, in case of an output pin, it's initial state) ? gpio_get() returns the current state of the pin? gpio_set() returns the previous state of the pin? Or the new state? If it returns the new state, we could use value=1 to set a pin, value=0 to unset a pin, and value=-1 to just read it's value without changing it; then we could "#define gpio_get(pin) gpio_set(pin,-1)". Best regards, Wolfgang Denk -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: w...@denx.de The speed of time is one second per second. _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot