Hi Drew, On Mon, May 30, 2022 at 12:04 PM Yegor Yefremov <yegorslists@xxxxxxxxxxxxxx> wrote: > > Hello Drew, > > On Mon, May 30, 2022 at 12:55 AM Drew Fustini <drew@xxxxxxxxxxxxxxx> wrote: > > > > On Fri, May 27, 2022 at 1:01 PM Yegor Yefremov > > <yegorslists@xxxxxxxxxxxxxx> wrote: > > > > > > I have the following problem. The latest kernel version I am using for > > > my devices is 5.4.x. In my DTS I don't explicitly expose the GPIOs to > > > the usespace but I can read input both via sysfs as also libgpiod API. > > > > > > With the newest kernel like 5.17 or 5.18, I can read the same input > > > pin but I always read 0. I have also tried to add my GPIOs as > > > "default" into the am33xx_pinmux section (the way it is done in [1]) but > > > it didn't help. > > > > > > [1] https://patchwork.kernel.org/project/linux-omap/patch/20200712103717.1219765-1-drew@xxxxxxxxxxxxxxx/ > > > > > > Regards, > > > Yegor > > > > Hello Yegor, > > > > Which am335x board are you using? Is it the PocketBeagle? > > > > Have you tried reverting abe4e4675dfc ("ARM: dts: am335x-pocketbeagle: > > set default mux for gpio pins") to see if the results change? > > > > Please post the dts files you created or modified so I can better > > familiarize myself with your environment. > > > > Unfortunately, I'm currently traveling with only a BeagleBone Black, > > but it might be useful for testing depending on what the issue is. > > This is a diff to the DTS of our board Baltos ir5221: > > diff --git a/arch/arm/boot/dts/am335x-baltos-ir5221.dts > b/arch/arm/boot/dts/am335x-baltos-ir5221.dts > index 2f3872dbf4f4..f596cc60e9c0 100644 > --- a/arch/arm/boot/dts/am335x-baltos-ir5221.dts > +++ b/arch/arm/boot/dts/am335x-baltos-ir5221.dts > @@ -18,6 +18,19 @@ > }; > > &am33xx_pinmux { > + compatible = "pinconf-single"; > + pinctrl-names = "default"; > + > + pinctrl-0 = < &wifi_switch>; > + > + wifi_switch: pinmux_wifi_switch { > + pinctrl-single,pins = < > + AM33XX_PADCONF(AM335X_PIN_SPI0_CS1, > PIN_INPUT_PULLUP, MUX_MODE7) /* spi0_cs1.gpio0[6] wifi switch */ > + >; > + pinctrl-single,bias-pullup = < 0x10 0x10 0x00 0x18>; > + pinctrl-single,bias-pulldown = < 0x10 0x00 0x10 0x18>; > + }; > + > tca6416_pins: pinmux_tca6416_pins { > pinctrl-single,pins = < > AM33XX_PADCONF(AM335X_PIN_XDMA_EVENT_INTR1, > PIN_INPUT_PULLUP, MUX_MODE7) /* xdma_event_intr1.gpio0[20] > tca6416 stuff */ > > This is my related kernel configuration: > > # zcat /proc/config.gz | grep "PINCTRL\|PINCONF" > CONFIG_PINCTRL=y > CONFIG_GENERIC_PINCTRL_GROUPS=y > CONFIG_PINCONF=y > CONFIG_GENERIC_PINCONF=y > CONFIG_DEBUG_PINCTRL=y > # CONFIG_PINCTRL_MCP23S08 is not set > # CONFIG_PINCTRL_MICROCHIP_SGPIO is not set > # CONFIG_PINCTRL_OCELOT is not set > # CONFIG_PINCTRL_PALMAS is not set > CONFIG_PINCTRL_SINGLE=y > # CONFIG_PINCTRL_STMFX is not set > # CONFIG_PINCTRL_SX150X is not set > CONFIG_PINCTRL_TI_IODELAY=y > > This command should deliver "1": > > # gpioget gpiochip0 6 > [ 55.371155] gpio gpiochip0: Persistence not supported for GPIO 6 > [ 55.377503] gpio gpiochip0: registered chardev handle for line 6 > [ 55.383611] gpio gpiochip0: registered chardev handle for 1 lines > 0 I found the problem. Between 5.10 and 5.11 gpiochip assignment has changed: gpiochip1 -> gpiochip4. Hence, I'll have to work with gpio labels. Regards, Yegor