Hi Ian, On 30 October 2014 04:14, Ian Campbell <i...@hellion.org.uk> wrote: > On Thu, 2014-10-30 at 10:36 +0100, Hans de Goede wrote: >> Hi, >> >> On 10/30/2014 10:08 AM, Ian Campbell wrote: >> > On Wed, 2014-10-29 at 13:28 -0600, Simon Glass wrote: >> >>> In the meantime could we somehow replace/augment the #ifdef chain in >> >>> gpio_init with something keyed off the stdout alias perhaps? >> >> >> >> Tegra has code to convert a device interrupt number (which uniquely >> >> identifies a peripheral in that SoC) to an internal peripheral ID, >> >> then these is a function which can enable a peripheral given the ID >> >> (funcmux). In some cases you could have multiple options for the >> >> funcmux, but there is no easy way to support this. >> > >> > I think that although there are multiple options for some functions >> > (UARTs come to mind) we haven't yet found the need to make any dynamic >> > choices, so it's all static right now. >> > >> >> But this approach >> >> might be good enough for sunxi. We can easily write the function to >> >> enable the pins for a particular port, and this could go in >> >> arch/arm/...sunxi/ perhaps. >> > >> > I'm ok with it so long as it isn't going to stand in the way of proper >> > dt based pinmux in the future. >> > >> > One way to help with that might be to use the allwinner,function >> > property in DT as the funcmux name. >> > >> > Hans, what do you think? >> >> I'm not 100% sure what you're suggesting here, are you suggesting to >> have a 1:1 mapping between function names as stored in allwinner,function >> in dts and the value to pass to sunxi_gpio_set_cfgpin ? > > I was imagining a function which would take the string "uart0" and would > call sunxi_gpio_set_cfgpin with whatever values that would entail in > order to make uart0 work, not one which would try and return something > that the caller would then use.
If you only have a few pins that uart0 can appear on, then you could pass a parameter telling the function which combination to use. I'm not sure about passing a string for the uart0 - would not an enum defined globally for sunix not be better? > >> This is not going to fly very far, e.g. the "uart0" function has cfg value >> of 2 on portb while it has a value of 4 on portf. > > I believe we currently statically use either portb or portf (I've not > looked up which, IIRC it changed recently, but I don't recall which > way), so my proposed function would just DTRT. Of course if we ever find > we need something more dynamic then we would have to do a proper pinmux > implementation (or at least something closer to a proper one) SGTM. Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot