Hi Chris, On Fri, May 12, 2017 at 2:13 PM, Chris Brandt <Chris.Brandt@xxxxxxxxxxx> wrote: > On Friday, May 12, 2017, Geert Uytterhoeven wrote: >> Jacopo, Chris: Would two bits per pin/function (none, input, output, >> bidir) >> be sufficient? >> That makes one u16 per pin. So roughtly 12 ports x 16 pins => 384 bytes. >> Plus code to handle it. After all not that bad... > > OK...I give up! > If that's what it takes to get it, I'm fine. > > NOTE, your math is a little off, the issue is that depending on the > function that you use, you might need to do extra settings, so you'd > have to have a lookup table for every pin & function. > Each pin can have 1 of 8 functions (which is good because a 'byte' has > 8 bits). > > So, > 12 ports x 16 pins => 384 bytes (this table would just be for checking if bi-dir is needed) > 12 ports x 16 pins => 384 bytes (this table would just be for checking if input is needed) > 12 ports x 16 pins => 384 bytes (this table would just be for checking if input is needed) ------------ > 1,152 bytes 12 x 16 = 192, not 384. Do you need all possible combinations of input, output, and bi-dir? I assumed they're mutually exclusive. If not, you need 3 bits/pin/function. > But then...there are package variations so you need another entire > table for those parts. > 1,152 bytes x 2 = 2,304 bytes With packages, do you mean e.g. RZ/A1H vs. RZ/A1L? These indeed differ, but should use different compatible values. Or do you mean QFP/BGA256 vs. BGA324? Isn't the former a subset of the latter? > #What we should really do is just make a look-up table (tables) for the > 'special' ones. But, we can have that discussion in a different thread. Yep, depending on what gives the smallest code/data size. > There is still a need for "input-enable" and "output-enable" for the timer > pins. Because, when you choose the pin to be connected to the MTU2 timer, > the pin can be used as either input-capture/output-compare/PWM and that's > the user's choice. So that's probably a valid usage of the generic pin > properties for configuration. OK. Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds