🛠 Écrire un overlay device tree pour les nappes cape sous K3

BeagleBone AI-64 (TI TDA4VM / J721E) · avance · Schéma : IMG-beaglebone-ai64-avance-2-overlay-device-tree-k3-cape.svg — nappes P8/P9 de l'AI-64 avec tableau de muxmodes du SRM en médaillon, flux .dtso → dtc → /sys/kernel/config/device-tree/overlays.

Objectifs

Débloquer les fonctions muxées des broches P8/P9 (UART, I2C, SPI, CAN...) en écrivant un overlay device tree, avec la méthode moderne configfs. Attention : le AI-64 est un SoC K3 (J721E) — l'ancien capemanager /sys/devices/platform/bone_capemanager des BeagleBone Black n'existe PAS ici, et la table de muxmodes par broche (ex. P8_03 en GPIO0_20 au muxmode 7) se lit dans le chapitre 7 du System Reference Manual.

Matériel

Code complet

/* cape-uart.dtso — squelette : activer un périphérique muxé sur P8/P9.
   Les offsets et macros EXACTS se lisent dans la table SRM ch.7 et dans
   dt-bindings/pinctrl/k3.h du noyau — ne pas deviner, vérifier. */
/dts-v1/;
/plugin/;
#include <dt-bindings/pinctrl/k3.h>

&main_pmx0 {
    pinctrl_cape_uart: cape-uart-default {
        pinctrl-single,pins = <
            /* offset broche (offset mux) choisis dans la table SRM */
            0x0a0 (PIN_INPUT  | MUX_MODE0)   /* exemple RX */
            0x0a4 (PIN_OUTPUT | MUX_MODE0)   /* exemple TX */
        >;
    };
};

&main_uart1 {
    status = "okay";
    pinctrl-names = "default";
    pinctrl-0 = <&pinctrl_cape_uart>;
};
dtc -@ -I dts -O dtb -o cape-uart.dtbo cape-uart.dtso
sudo mkdir -p /sys/kernel/config/device-tree/overlays/cape_uart
cat cape-uart.dtbo | sudo tee /sys/kernel/config/device-tree/overlays/cape_uart/dtbo
ls /dev/ttyS* ; sudo dmesg | tail   # le port doit apparaître

Vérification attendue

Le périphérique activé apparaît (nouveau /dev/ttySx, /dev/i2c-N...) et dmesg ne montre pas de conflit de pinmux. Loopback fil entre RX et TX de la nappe : echo test > /dev/ttySx avec cat en parallèle renvoie test.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels