fwupd/plugins/gpio
Richard Hughes a61bb37881 Build the quirk files into the daemon as a GResource
Interestingly, this increases the `fwupd` binary size by ~30kb but
reduces the installed size of /usr/share/fwupd/quirks.d by ~330kb.
2022-06-30 18:52:24 +01:00
..
fu-gpio-device.c Remove duplicate ->probe() calls to speed up startup by 150ms 2022-06-14 21:01:57 +01:00
fu-gpio-device.h Add a plugin to set GPIOs for the duration of an update 2022-02-16 14:01:07 +00:00
fu-plugin-gpio.c trivial: Use 'priv' for plugin private data to be consistent 2022-06-26 13:57:53 -05:00
gpio.quirk Add a plugin to set GPIOs for the duration of an update 2022-02-16 14:01:07 +00:00
meson.build Build the quirk files into the daemon as a GResource 2022-06-30 18:52:24 +01:00
README.md Add a plugin to set GPIOs for the duration of an update 2022-02-16 14:01:07 +00:00

GPIO

Introduction

This plugin sets GPIO outputs either high or low before and/or after an update has been deployed.

GUID Generation

These device use GPIO gpiochip_info.label values, e.g.

  • GPIO\ID_INT3450:00

Quirk Use

This plugin uses the following plugin-specific quirks:

GpioForUpdate

The GPIO bit to set before the update is deployed e.g. INT3450:00,SPI_MUX,high. After the update has finished, the bits are returned to the default state.

For example, to set GPIO pin 2 low for the duration of the ColorHug device update this could be added to the quirk file:

[USB\VID_273F&PID_1001]
GpioForUpdate=fake-gpio-chip,2,low

Since: 1.7.6

External Interface Access

This plugin requires ioctl GPIO_GET_CHIPINFO_IOCTL and GPIO_V2_GET_LINE_IOCTL access on /dev/gpiochip* devices.