Hi Wolfgang, > Dear Detlev Zundel, > > In message <m2aacrlsen....@ohwell.denx.de> you wrote: >> >> > I'd say clear/set/toggle are changeable, don't see any legit >> > return-value-usage here. For 100% backward compatibility, one could >> > leave them as they are and use 0|1 as new actions with return 0, as >> > proposed. > > Hm... I think it would be beneficial to bee able to get information > about the current settings. For "clear" and "set" the result is known, > but for "toggle" it would be helpful if we returned the current port > state. Eventually we should add a "test" command (or "read" ?) that > returns the current setting?
In general the "current state" actually are three things: 1. Port Mode: Disabled (i.e. not connected to an external pin), Input, Output 2. Port output value 3. (Actually read-in) input value The current commands mix these aspects, i.e. they implicitely change the port mode. Differentiating between 2 and 3 will not always be possible but is - I've seen that on e.g. an i.mx31. >> > So these variants: >> > gpio clear|0 => set to output, write 0, return success >> > gpio set|1 => set to output, write 1, return success >> > gpio toggle => (set to output), toggle output, return success >> > gpio input => set to input, return pin value >> > gpio value => return current pin/latch/whatever value >> >> I'd propose to fix the commands to be sensible now. Actually I believe >> that they should not be in heavy use "in the wild" and so we should take >> the opportunity and declare the current behaviour as buggy and fix it. >> Rather now than later ;) > > Agreed. > >> Actually I would expect the "output" commands to return true when they >> were able to do what was requestes from them, i.e. drive the requested >> value to the output. I guess this cannot be done in the general case, >> but for a "weak output" that can be read back, this would be the most >> sensible thing to do. > > For consistency I would prefer to have all commands return the same > type of information, i. e. either an error status (like we do with all > other commands - any result values would then have to be passed as > environment settings), or we return the current port state (also for > the "output" commands - see my comments for "toggle"). Actually I would prefer to return an error status for all cases and return "valuable information" in the environment so we can easily use it subsequently. As we do not have a back-tick operator in the shell, I believe that return codes are only useful as error codes. Cheers Detlev -- ``The number of UNIX installations has grown to 10, with more expected.'' Unix Programmers Manual -- 1972 The number of UNIX variants has grown to dozens, with more expected. -- 2001 -- DENX Software Engineering GmbH, MD: Wolfgang Denk & Detlev Zundel HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-40 Fax: (+49)-8142-66989-80 Email: d...@denx.de _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot