Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kernel Linux Pin Control Subsystem

Kernel Linux Pin Control Subsystem

Sistemas embarcados com plataforma ARM geralmente não possuem barramentos com protocolos de auto configuração ou enumeração. Por essa causa, utilizam-se os Device Trees para configuração e descrição do hardware para o Kernel Linux. Uma função importante da configuração no hardware é a correta atribuição da pinagem e multiplexação da mesma para o funcionamento dos perifericos. Tal tarefa é atribuida aos device drivers de pin control do vendor do processador no kernel, que realizam o parse das configurações dos device trees e as atribuem nos registradores de GPIO. O objetivo da palestra é mostrar um overview sobre o Pin Control subsystem e como o kernel controla e gerencia as GPIOs do processador.

Matheus Castello

July 14, 2018
Tweet

More Decks by Matheus Castello

Other Decks in Technology

Transcript

  1. • GPIO - (Or the various ways to turn on

    a led in linux) • Overview • GPIO x Pin Control • GPIOLib Kernel Space • Legacy • Parse your device tree • New Descriptor-Based API • Device tree abstracted • GPIO in User Space • sysfs - Deprecated! (Why? This is so easy) • Char Device - Why not write a device driver? • Pin Control (I really need this?) • Pin Multiplexing • Pin Configuration • Generic Pin Mutiplexing and Configuration *Maker point of view
  2. GPIO PINCTRL MUX INPUT / OUTPUT REQUEST READ / WRITE

    PIN STATES SET MUX ALTENATES FUNCTIONS SELECT PIN CONFIGURATIONS
  3. GPIO PINCTRL MUX INPUT / OUTPUT REQUEST READ / WRITE

    PIN STATES SET MUX ALTENATES FUNCTIONS SELECT PIN CONFIGURATIONS
  4. Applications (Aka Distro) GNU C Library (glibc) KERNEL Architecture-Dependent Kernel

    Code System Call Interface KERNEL SPACE USER SPACE ACCESS TO HARDWARE HAVE TO MADE IN KERNEL SPACE!