Re: [libgpiod] bug: pull-up does not work

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On 25. 03. 22 17:01, Kent Gibson wrote:
On Fri, Mar 25, 2022 at 04:13:11PM +0100, Jiří Prchal wrote:


On 25. 03. 22 15:57, Kent Gibson wrote:
On Fri, Mar 25, 2022 at 11:02:07AM +0100, Jiří Prchal wrote:
Hi,
since in debian is 1.6.2 and pull-up doesn't work so I cloned git, branch
next/libgpiod-2.0 and compiled libgpiod and tools, but no luck, same result.


You mean it doesn't work for you on your platform.

The libgpiod-2.0 branch is a work in progress and should not be considered
the place to go to find solutions to problems with v1.6.
Not that I'm saying that the v2 branch doesn't work, I'm actually pretty
sure it does, but its purpose is to switch to the latest kernel uAPI, not
to provide fixes, should they be needed, for v1.6.
Just thought api v1 doesn't support pull-ups so tried v2.

v1 does support bias since Linux v5.5, and libgpiod added support in v1.5.


~# uname -r
5.17.0-rc7_cpm9g25

floating pins should go with pull-up/down
~# gpioget -B pull-up 3 6 8 10 12 14 16 18 20
0 0 0 0 0 0 0 0
~# gpioget -B pull-up 3 6 8 10 12 14 16 18 20
1 1 0 0 0 0 0 0
~# gpioget -B pull-up 3 6 8 10 12 14 16 18 20
0 1 0 1 0 0 0 0

~# gpioget -v
gpioget (libgpiod) v2.0-devel

Whats wrong with it?

You forgot to mention which of those pins are floating.
All of them.
Or what gpiochip3 is and whether it supports biasing.
AT91SAM9G25, hw supports pull-ups.

So does your chip support pull-up/down?
The kernel can only enable it if the hardware and pinctrl driver supports it.
Is there possibility that pinctrl doesn't support it? I think other gpios
used in kernel are with pull-up.
Example:
pinctrl@fffff400 {
	1wire {
		pinctrl_1wire: 1wire-0 {
			atmel,pins = <AT91_PIOC 0 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>; /* PC0
PIO, pull-up */
		};
	};
};


Pinctrl and device tree are outside my area, but my understanding is
that setting via DT is a separate interface, so while it may be
supported by DT it may not be via the gpiolib interface.
But I will defer to anyone else on that.
(CCing in Andy since I'm pretty sure he would know)

Not sure which pinctrl is relevant for your case.
pinctrl-at91 doesn't appear to support setting the pull-up via the gpiolib
interface, but pinctrl-at91-pio4 does, so my guess would be you are using
the pinctrl-at91.
pinctrl-at91-pio4 didn't help, syminfo says "for Atmel PIO4 controller available on sama5d2 SoC" but my is sam9g25.
How can I find out if it supports gpiolib?

But again, this is outside my area so you would need to confirm that
yourself or get feedback from someone else.
If you determine that you are using a pinctrl that supports setting
bias via gpiolib then we'll have to do some more digging.

Cheers,
Kent.

Thanks
Jiri



[Index of Archives]     [Linux SPI]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux