From: Mark Rossington <136482781+mrossington@users.noreply.github.com> Date: Wed, 7 May 2025 10:13:47 +0000 (+0100) Subject: fix wrongly assuming "of_node/compatible" will always exist for all gpiochips X-Git-Tag: 8.58.1^2 X-Git-Url: https://git.ayoreis.com/Adafruit_Blinka-hackapet.git/commitdiff_plain/c50b9b5fd8fb6b28fc0ba9d928aa1a80d17724d9?ds=sidebyside;hp=-c fix wrongly assuming "of_node/compatible" will always exist for all gpiochips --- c50b9b5fd8fb6b28fc0ba9d928aa1a80d17724d9 diff --git a/src/adafruit_blinka/microcontroller/generic_linux/lgpio_pin.py b/src/adafruit_blinka/microcontroller/generic_linux/lgpio_pin.py index 25a8268..3097b02 100644 --- a/src/adafruit_blinka/microcontroller/generic_linux/lgpio_pin.py +++ b/src/adafruit_blinka/microcontroller/generic_linux/lgpio_pin.py @@ -15,14 +15,15 @@ def _get_gpiochip(): used for userspace GPIO access. """ for dev in Path("/sys/bus/gpio/devices").glob("gpiochip*"): - drivers = set((dev / "of_node/compatible").read_text().split("\0")) - # check if driver names are intended for userspace control - if drivers & { - "raspberrypi,rp1-gpio", - "raspberrypi,bcm2835-gpio", - "raspberrypi,bcm2711-gpio", - }: - return lgpio.gpiochip_open(int(dev.name[-1])) + if Path(dev / "of_node/compatible").is_file(): + drivers = set((dev / "of_node/compatible").read_text().split("\0")) + # check if driver names are intended for userspace control + if drivers & { + "raspberrypi,rp1-gpio", + "raspberrypi,bcm2835-gpio", + "raspberrypi,bcm2711-gpio", + }: + return lgpio.gpiochip_open(int(dev.name[-1])) # return chip0 as a fallback return lgpio.gpiochip_open(0)