<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Sun, Jul 28, 2019 at 5:44 PM Christian Mauderer <<a href="mailto:list@c-mauderer.de">list@c-mauderer.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 28/07/2019 12:42, Vijay Kumar Banerjee wrote:<br>
> <br>
> <br>
> <br>
> On Sat, Jul 27, 2019 at 7:35 PM Christian Mauderer <<a href="mailto:list@c-mauderer.de" target="_blank">list@c-mauderer.de</a><br>
> <mailto:<a href="mailto:list@c-mauderer.de" target="_blank">list@c-mauderer.de</a>>> wrote:<br>
> <br>
>     Does this initialize only the pins for drivers that are registered in<br>
>     libbsd or all pins? I think you had an extended boot log where you might<br>
>     could see it.<br>
> <br>
>     If it is all pins, this might interfere with RTEMS drivers that are not<br>
>     libbsd based. In that case we need some kind of solution (not sure yet<br>
>     which one).<br>
> <br>
> It's muxing more pins than just the HDMI, including i2c pins. Please have<br>
> a look at the log that I got from RTEMS:<br>
> <a href="https://paste.ofcode.org/kVvrdYAfvC3G6kBtG5iaTb" rel="noreferrer" target="_blank">https://paste.ofcode.org/kVvrdYAfvC3G6kBtG5iaTb</a><br>
> <br>
> These pins to be initialized are being decided from the device tree nodes <br>
> with the pinctrl-single,pins property. If the initialized pins are not<br>
> all required,<br>
> then I would like to propose a solution of using an overlay to rename the <br>
> property to "rtems-pinctrl-single,pins" or something like this for the<br>
> pins that <br>
> we need to be initialized, like hdmi. And in the ti_pinmux.c modify the<br>
> code to<br>
> search for this property instead of the default.<br>
> <br>
> I haven't attempted doing it but before I attempt I would like to make<br>
> sure if<br>
> you think it's OK and not too hackish approach. <br>
<br>
I'm not that happy with doing that in the device tree because it puts<br>
special requirements on the used one. From an application programmers<br>
perspective I wouldn't expect that there are two locations that can have<br>
an influence on my I2C pins. In this case: The i2c driver and the device<br>
tree. But I'm not yet sure how a good solution could look like.<br>
<br>
>From my point of view it would be optimal if libbsd only initializes the<br>
pins that are used by a libbsd driver and not for example the led pins.<br>
But that isn't how the pinmux driver is intended to work.<br>
<br></blockquote><div>Since the driver parses the device tree to decide what to initialize, I was</div><div>suggesting an overlay as a (temporary) solution. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
An alternative could be to do the pin initialization in the BSP based on<br>
the device tree instead of importing the FreeBSD pinmux driver.<br>
Currently there is no clean consistent implementation how the pins are<br>
handled in the drivers. So a clean up wouldn't hurt. Depending on how<br>
much work that is, it could be a hack for now and for example a GSoC<br>
project for next year.<br>
<br></blockquote><div>Is this a blocker to merge the driver until we have a clean pinmux solution </div><div>in BSP or is it OK to merge it with a hack for now while we come up with</div><div>a better solution. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
I think we don't have a clean consistent API for GPIO for a lot of BSPs.<br>
So it wouldn't hurt to either find out whether we have one and implement<br>
a device tree parser for it or define one (most likely based on FreeBSD<br>
pinmux) and implement it for some existing and in future also for new BSPs.<br>
<br></blockquote><div>I don't know how much work that would be but I'm willing to take it up and work</div><div>on it. </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
Let's wait for some other opinions here.<br>
<br>
Best regards<br>
<br>
Christian<br>
</blockquote></div></div>