Generic Pin Configuration – Pin Control Subsystem

By Matheus Castello, SIDIA – Samsung Instituto de Desenvolvimento de Informática para Amazonia

Embedded systems with ARM platform generally do not have buses with
protocols of auto configuration or enumeration. For this reason, the
device trees are used for configuration and hardware description for the
kernel. An important function of the configuration in the hardware is
the correct assignment of the pin configuration and multiplexing for the
correct operation of the peripherals. This task is assigned to the
processor’s vendor pin control device drivers, which parse the device
tree configs and write them to the GPIO registers. We have several
vendors with pin control code in the mainline, these apply their own
standards for pin definition and multiplexing, contributing with
inconsistency between pin control subsystem. In order to define a
standard and consistency between the use of the device trees for pin
control the Generic Pin Configuration was proposed.


Bachelor in Computer Science, since 2015 working with Android Embedded
at SIDIA (Samsung Instituto de Desenvolvimento de Informática para
Amazonia). In the kernel linux community, work in update and port the
generic pin configuration on pin control drivers: patchs applyed for
bcm2835-pinctrl, used on raspberry-pi boards. At SIDIA acts as a
software engineer in charge for device drivers and battery safety
algorithms, GPIO pinctrl device trees.