Re: [PATCH v2] ARM: dts: am335x-pocketbeagle: set default mux for gpio pins

From: Drew Fustini
Date: Tue Jun 30 2020 - 17:33:16 EST


On Tue, Jun 30, 2020 at 11:20:37AM -0700, Tony Lindgren wrote:
> * Drew Fustini <drew@xxxxxxxxxxxxxxx> [200630 02:02]:
> > On Mon, Jun 29, 2020 at 10:03:58AM -0700, Tony Lindgren wrote:
> > > Hi,
> > >
> > > * Drew Fustini <drew@xxxxxxxxxxxxxxx> [200628 08:26]:
> > > > v2 changes:
> > > > - change default mux from output to input. Input is safer as it does
> > > > not drive the line. If the user wants output, they will need to edit
> > > > this device tree.
> > >
> > > So can you please clarify this a bit, are you saying that gpio output can't
> > > be done via userspace?
> >
> > As it stands, there is no way for userspace to change a pin from gpio
> > input to gpio output as it is based on the reciever active bit in the
> > pin control register (table 9-60 in the AM3358 datasheet [0]).
>
> OK. I guess one not so nice option would be to enable receiver active
> for all the gpio pins.. But this also affects power consumption a little.
>
> > I thought it would be useful to at least define the GPIOs available for
> > use on the PocketBeagle by default (and eventually the other BeagleBone
> > device trees). Input seems to be the safest value. This patch at least
> > makes it more clear where the user should edit to switch from input to
> > output.
>
> Some TI TRMs actually have tables listing the preferred mux logic
> for unused pins. I recall safe mode input pull down being one of the
> preferred modes. Sorry not sure which TRM that is, maybe omap3 or
> omap4 or omap5?

Yes, the AM3358 will default to mode 7 for all of these pins and the
receiver will be enabled (e.g. input).

So maybe it is redundant for me to specify in DT what is already the
hardware reset default?

I thought it might be helpful to at least show where the user should
edit to change it from the default reset behavior.

> > > Needing to change the dts does not sound good to me.. But maybe you mean
> > > this is needed until the gpio-omap and pinctrl-single patches are merged?
> >
> > I agree that I would like for userspace to be able to do run-time
> > changes. However, I think something would need to be added to the
> > pinconf support in pinctrl-single for that to be possible. There are
> > bias properties but non for receiver enable.
> >
> > Does it seem sensible to add that?
>
> Well let's see with Linus W says. To me it seems this might be a good
> reason to allow a sysfs interface to change the pinctrl if we don't
> have it yet? With the proper gpio line naming it should be quite simple
> to use too :)

I think if pinctrl-single allowed mux to be set through debugfs that
could be one solution to the use case of users prototyping with a
beaglebone. Maybe that could be acceptable?

Thanks,
Drew

>
> Regards,
>
> Tony