Skip to content

gpiod migration #16

@CullenSharp

Description

@CullenSharp

Summary

As part of transitioning to kernel 6.12, the old numeric gpio library needs to be replaced with the new descriptor based one (gpiod).

Device tree

Gpiod relies on the device tree for pinmuxing and tagging. The gps device tree is thus the good place to start. For the sake of expediency, a device tree overlay should be created (*.dtso). This can be compiled and loaded in the extlinux.conf file found in the boot partition. For example, extlinux.conf should contain something like the following:

FDTOVERLAYS /overlays/${kernel_version}/gps.dtbo

Alternatively, an overlay can be omitted by using the gps board device tree blob directly.

FDT /dtbs/${kernel_version}/gps.dtb
Modifying the device tree

My experience is with device nodes, so this is a little different, but the basic pattern is to convert a node like MAX_EN (see below)

// ...
    MAX_EN {
      gpio-name = "GPS_EN";
      gpio = <&gpio3 4 GPIO_ACTIVE_HIGH>; /* AM335X_PIN_MII1_RX_DV */
      output;
    };
// ...

to something like:

GPS_EN-gpios = <&gpio3 4 GPIO_ACTIVE_HIGH>;

GPS_EN will be the descriptor used by the gpio consumer (i.e. the GPS Python app).

References

Metadata

Metadata

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions