🛠 Noyau mainline avec Armbian : vérifier le device tree, ajouter un overlay, lire le SARADC

Radxa ZERO 3W · intermediaire · IMG-rz3w-intermediaire-6-rz3w-armbian-mainline-overlay-saradc.svg — Radxa ZERO 3W sous Armbian : terminal cat /proc/device-tree/compatible (radxa,zero-3w rockchip,rk3566), fichier /boot/armbianEnv.txt avec la ligne overlays=, dossier /boot/dtb/rockchip/overlay/ ; à droite, une tension analogique appliquée sur SARADC_IN5 via un pont diviseur et la lecture in_voltage5_raw.

Objectifs

Le device tree rk3566-radxa-zero-3w.dts est entré dans le noyau mainline par le commit 1a5c8d307c83 (Jonas Karlman, fusionné le 27 mai 2024, première release : Linux 6.10), avec eMMC/SD/HDMI/USB ; une correction d'alias MMC (060c1950) a suivi en juin 2024. Armbian embarque ce noyau mainline pour la board. Ce tuto : basculer sur Armbian, vérifier qu'on parle bien du descripteur mainline, maîtriser le mécanisme d'overlays Armbian, et lire l'entrée analogique SARADC_IN5 (3,3 V max) exposée par le driver IIO rockchip-saradc.

Matériel

1) Vérifier le board description mainline

cat /proc/device-tree/compatible   # -> radxa,zéro-3w rockchip,rk3566
uname -a                           # noyau mainline Armbian (>= 6.10)
ls /boot/dtb/rockchip/ | grep zero3 # le DTB embarqué

2) Overlays Armbian

ls /boot/dtb/rockchip/overlay/     # liste les overlays livrés avec VOTRE release
sudo nano /boot/armbianEnv.txt      # ajoutez : overlays=pwm1i2pwm (exemple)
sudo reboot
# Overlay maison :\ncat > my.dts << 'EOF'
/dts-v1/; /plugin/;
/ {
    fragment@0 {
        target-path = "/";
        __overlay__ {
            vcc_cam: vcc-cam {
                compatible = "regulator-fixed";
                regulator-name = "vcc-cam";
                regulator-min-microvolt = <3300000>;
                regulator-max-microvolt = <3300000>;
            };
        };
    };
};
EOF
dtc -@ -I dts -O dtb -o my.dtbo my.dts   # puis déclarez-le dans armbianEnv.txt

3) SARADC via IIO

ls /sys/bus/iio/devices/iio:device*/          # l'un a name = rockchip-saradc
cat /sys/bus/iio/devices/iio:device0/in_voltage5_raw    # code brut du canal 5
cat /sys/bus/iio/devices/iio:device0/in_voltage_scale   # LSB -> mV
awk 'NR==FNR{r=$1;next}{printf "%.3f V\n", r*$1/1e9}' \
    /sys/bus/iio/devices/iio:device0/in_voltage5_raw \
    /sys/bus/iio/devices/iio:device0/in_voltage_scale

Vérification attendue

compatible renvoie bien radxa,zero-3w rockchip,rk3566 ; après ajout d'un overlay, ls /proc/device-tree/ ou ls /sys/firmware/devicetree/base/ montre le nœud ajouté ; en tournant le potentiomètre, in_voltage5_raw suit et le calcul awk affiche 0,000 à 3,300 V.

Erreurs fréquentes

Autres tutoriels pour cette carte

Exemples de code pour cette carte

← Retour à la fiche 🛠 Tous les tutoriels