Files
infra/modules/nixos/hardware/uconsole-cm5-aio-v2.nix

37 lines
4.6 KiB
Nix
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ config, lib, pkgs, ... }:
with lib;
let
cfg = config.hardware.uconsole-cm5-aio-v2;
# GPIO pin map matching the AIO v2 board hardware
# SDR (RTL-SDR): GPIO 7
# LoRa (S60127) : GPIO 16
# USB Hub Interne: GPIO 23
# GPS (GNSS) : GPIO 27
gpioMap = {
GPS = 27;
LORA = 16;
SDR = 7;
USB = 23;
};
# Generate a script that applies boot rail states via pinctrl
applyRailsScript = pkgs.writeShellScript "apply-aio-v2-rails" (
''
set -e
PINCTRL=${pkgs.libraspberrypip}/bin/pinctrl
''
+ concatStringsSep "" (mapAttrToList (name: pin: ''
if [ "${if cfg.bootRails.${name} then "1" else "0"}" = "1" ]; then
echo "AIO v2: ${name} (GPIO${toString pin}) â ON"
$PINCTRL set ${toString pin} op dh
else
echo "AIO v2: ${name} (GPIO${toString pin}) â OFF"
$PINCTRL set ${toString pin} op dl
fi
'') gpioMap)
);
# aiov2_ctl CLI tool Âä<E28098>™•Ñ<E280A2>¡•<C2A1><E280A2>™É½´<C2BD>¥Ñ!Õˆ°<CB86>…Ù…¥±…‰±”<C2B1>…Ì<E280A6><C38C>…¥½ØÉ}<7D>ѱ€(€<>…¥½ØÉ
ѱA­œô<EFBFBD>Á­<EFBFBD>̹Íѹعµ­É¥ÙÑ¥½¸<EFBFBD>ÉŒ<EFBFBD>ì(<EFBFBD>Á¹µô¥½ØÉ}<EFBFBD>Ѱˆì(<EFBFBD>ÙÉÍ¥½¸ôˆÀµÕ¹Íѱ´ÈÀÈØ´ÀØ´ÄØˆì((<EFBFBD>ÍÉŒô<EFBFBD>Á­<EFBFBD>̹Ñ<EFBFBD>¡ɽµ¥Ñ!Õˆ<EFBFBD>ì(<EFBFBD>½Ý¹Èô¡<EFBFBD>­É<EFBFBD><EFBFBD>Ñ̈ì(<EFBFBD>ÉÁ¼ô¥½ØÉ}<EFBFBD>Ѱˆì(<EFBFBD>ÉØôµ¥¸ˆì(<EFBFBD>¡Í ôÍ¡ÈÔØµ¡Å=ÙLÅ,ÕÁYaɽUÔÁ¤ÕHåeÅI<EFBFBD> ÉTÍéäÙÕÕØÝ,ÀĈì(<EFBFBD>ôì((<EFBFBD>½¹ÑU¹Á<EFBFBD>¬ô<EFBFBD>ÑÉÕì((<EFBFBD>¥¹Íѱ±A¡Íôœœ(<EFBFBD>µ­¥ÈµÀ½Õн¥¸½Õн͡ɽ¥½ØÉ}<EFBFBD>Ѱ½¥µœ(<EFBFBD><EFBFBD>ÀÍÉŒ½¥½ØÉ}<EFBFBD>Ѱ¹Áä½Õн¥¸½¥½ØÉ}<EFBFBD>Ѱ(<EFBFBD><EFBFBD>¡µ½<EFBFBD>¬Ý`½Õн¥¸½¥½ØÉ}<EFBFBD>Ѱ(<EFBFBD>ÁÑ<EFBFBD>¡M¡¹<EFBFBD>̽Õн¥¸½¥½ØÉ}<EFBFBD>Ѱ(<EFBFBD>ÍÕÍÑ¥ÑÕÑ%¹A±<EFBFBD>½Õн¥¸½¥½ØÉ}<EFBFBD>Ѱ<EFBFBD>p(´µÉÁ±<EFBFBD>µ¥°œˆ½ÕÍȽ±½<EFBFBD>°½Í¡É½¥½ØÉ}<EFBFBD>Ѱ½¥µœ¼œœˆ½Õн͡ɽ¥½ØÉ}<EFBFBD>Ѱ½¥µœ¼œ(<EFBFBD><EFBFBD>ÀµÈÍÉŒ½¥µœ¼¨½Õн͡ɽ¥½ØÉ}<EFBFBD>Ѱ½¥µœ¼(œœì((<EFBFBD>µÑô<EFBFBD>ì(<EFBFBD>Í<EFBFBD>É¥ÁÑ¥½¸ô!<EFBFBD>­É<EFBFBD>ÑÌ<EFBFBD>Õ
½¹Í½±<EFBFBD>%<<EFBFBD>ØÈ<EFBFBD>A%<<EFBFBD><EFBFBD>½¹Ñɽ°<EFBFBD>¹<EFBFBD><EFBFBD>ѱµÑÉä<EFBFBD>ѽ½°ˆì(<EFBFBD>¡½µÁ<EFBFBD>ô¡ÑÑÁÌè¼½<EFBFBD>¥Ñ¡Õˆ¹<EFBFBD>½´½¡<EFBFBD>­É<EFBFBD><EFBFBD>Ñ̽¥½ØÉ}<EFBFBD>Ѱˆì(<EFBFBD>±¥<EFBFBD>¹Íô<EFBFBD>±¥ˆ¹±¥<EFBFBD>¹Í̹µ¥Ðì(<EFBFBD>µ¥¹Ñ¥¹ÉÌô<EFBFBD>ݥѠ<EFBFBD>±¥ˆ¹µ¥¹Ñ¥¹ÉÌì<EFBFBD>l<EFBFBD>tì(<EFBFBD>Á±Ñ½ÉµÌô<EFBFBD>lÉ<EFBFBD> ØÐµ±¥¹Õàˆ<EFBFBD>tì(<EFBFBD>ôì(<EFBFBD>ôì)¥¸<EFBFBD>ì(<EFBFBD>½ÁÑ¥½¹Ì¹¡ÉÝɹÕ<EFBFBD>½¹Í½±µ<EFBFBD>´Ôµ¥¼µØÈô<EFBFBD>ì(<EFBFBD>¹±ô<EFBFBD>µ­¹±=ÁÑ¥½¸!<EFBFBD>­É<EFBFBD>ÑÌ<EFBFBD>Õ
½¹Í½±<EFBFBD>%<<EFBFBD>ØÈ<EFBFBD>½É<EFBFBD><EFBFBD>ÍÕÁÁ½ÉЈì((<EFBFBD>½½ÑI¥±Ìô<EFBFBD>ì(<EFBFBD>ALô<EFBFBD>µ­=ÁÑ¥½¸<EFBFBD>ì(<EFBFBD>ÑåÁô<EFBFBD>ÑåÁ̹½½°ì(<EFBFBD>Õ±Ðô<EFBFBD>±Íì(<EFBFBD>Í<EFBFBD>É¥ÁÑ¥½¸ô¹±<EFBFBD>AL<EFBFBD>µ½Õ±<EFBFBD>Ð<EFBFBD>½½Ð¡A%<Èܤˆì(<EFBFBD>ôì(<EFBFBD>1=Iô<EFBFBD>µ­=ÁÑ¥½¸<EFBFBD>ì(<EFBFBD>ÑåÁô<EFBFBD>ÑåÁ̹½½°ì(<EFBFBD>Õ±Ðô<EFBFBD>±Íì(<EFBFBD>Í<EFBFBD>É¥ÁÑ¥½¸ô¹±<EFBFBD>1½I<EFBFBD>µ½Õ±<EFBFBD>Ð<EFBFBD>½½Ð¡A%<ÄØ¤ˆì(<EFBFBD>ôì(<EFBFBD>MHô<EFBFBD>µ­=ÁÑ¥½¸<EFBFBD>ì(<EFBFBD>ÑåÁô<EFBFBD>ÑåÁ̹½½°ì(<EFBFBD>Õ±Ðô<EFBFBD>±Íì(<EFBFBD>Í<EFBFBD>É¥ÁÑ¥½¸ô¹±<EFBFBD>M<EFBFBD>µ½Õ±<EFBFBD>Ð<EFBFBD>½½Ð¡A%<ܤˆì(<EFBFBD>ôì(<EFBFBD>UMô<EFBFBD>µ­=ÁÑ¥½¸<EFBFBD>ì(<EFBFBD>ÑåÁô<EFBFBD>ÑåÁ̹½½°ì(<EFBFBD>Õ±Ðô<EFBFBD>±Íì(<EFBFBD>Í<EFBFBD>É¥ÁÑ¥½¸ô¹±<EFBFBD>¥¹Ñɹ°<EFBFBD>UM<EFBFBD>¡Õˆ<EFBFBD>Ð<EFBFBD>½½Ð¡A%<È̤ˆì(<EFBFBD>ôì(<EFBFBD>ôì((<EFBFBD>Á<EFBFBD>­<EFBFBD>ô<EFBFBD>µ­=ÁÑ¥½¸<EFBFBD>ì(<EFBFBD>ÑåÁô<EFBFBD>ÑåÁ̹Á<EFBFBD>­<EFBFBD>ì(<EFBFBD>Õ±Ðô<EFBFBD>¥½ØÉ
ѱA­œì(<EFBFBD>Õ±ÑQáÐô<EFBFBD>±¥ÑɱáÁÉÍÍ¥½¸¥½ØÉ
ѱA­œˆì(<EFBFBD>Í<EFBFBD>É¥ÁÑ¥½¸ô¥½ØÉ}<EFBFBD>Ѱ<EFBFBD>Á<EFBFBD>­<EFBFBD><EFBFBD>Ѽ<EFBFBD>Õ͈ì(<EFBFBD>ôì((<EFBFBD>¹±ALô<EFBFBD>µ­=ÁÑ¥½¸<EFBFBD>ì(<EFBFBD>ÑåÁô<EFBFBD>ÑåÁ̹½½°ì(<EFBFBD>Õ±Ðô<EFBFBD>±Íì(<EFBFBD>Í<EFBFBD>É¥ÁÑ¥½¸ôœœ(<EFBFBD>¹±<EFBFBD>AL<EFBFBD>UIP ½Ø½ÑÑå5À<EFBFBD>ÐäØÀÀ<EFBFBD>Õ<EFBFBD>¤¸(<EFBFBD>IÅÕ¥ÉÌ<EFBFBD>¹±¥¹œ<EFBFBD>UIP<EFBFBD>½¸<EFBFBD>Ñ¡<EFBFBD>
4Ô<EFBFBD>Ù¥<EFBFBD>½½Ð¹­É¹±Aɵ̸(œœì(<EFBFBD>ôì((<EFBFBD>¹±U$ô<EFBFBD>µ­=ÁÑ¥½¸<EFBFBD>ì(<EFBFBD>ÑåÁô<EFBFBD>ÑåÁ̹½½°ì(<EFBFBD>Õ±Ðô<EFBFBD>±Íì(<EFBFBD>Í<EFBFBD>É¥ÁÑ¥½¸ôœœ(<EFBFBD>¹±<EFBFBD>Ñ¡<EFBFBD>ÍåÍÑ´<EFBFBD>ÑÉä<EFBFBD>U$<EFBFBD>½È<EFBFBD>¥½ØÉ}<EFBFBD>Ѱ¸(<EFBFBD>IÅÕ¥ÉÌ<EFBFBD><EFBFBD>ͭѽÀ<EFBFBD>¹Ù¥É½¹µ¹Ð<EFBFBD>ݥѠ<EFBFBD>ÍåÍÑ´<EFBFBD>ÑÉä<EFBFBD>ÍÕÁÁ½Éи(œœì(<EFBFBD>ôì(<EFBFBD>ôì((<EFBFBD><EFBFBD>½¹¥œô<EFBFBD>µ­%˜<EFBFBD><EFBFBD>œ¹¹±<EFBFBD>ì(Œ<EFBFBD>A<EFBFBD>­<EFBFBD><EFBFBD>Ñ¡<EFBFBD>¥½ØÉ}<EFBFBD>Ѱ<EFBFBD>ѽ½°¬<EFBFBD>Á¥¹<EFBFBD>Ñɰ(<EFBFBD>¹Ù¥É½¹µ¹Ð¹ÍåÍѵA<EFBFBD>­<EFBFBD>Ìô<EFBFBD>ݥѠ<EFBFBD>Á­<EFBFBD>Ìì<EFBFBD>l(<EFBFBD><EFBFBD>œ¹Á<EFBFBD>­<EFBFBD>(<EFBFBD>±¥ÉÍÁÉÉåÁ¤Œ<EFBFBD>Áɽ٥Ì<EFBFBD>Á¥¹<EFBFBD>Ñɰ(<EFBFBD>tì((Œ<EFBFBD> ½½Ð<EFBFBD>É¥°<EFBFBD>ÍåÍѵ<EFBFBD><EFBFBD>½¹Í¡½Ð<EFBFBD>ÍÉÙ¥<EFBFBD>(<EFBFBD>ÍåÍѵ<EFBFBD>¹ÍÉÙ¥<EFBFBD>̹¥½ØÈµÉ¥±Ìµ½½Ðô<EFBFBD>ì(<EFBFBD>Í<EFBFBD>É¥ÁÑ¥½¸ôÁÁ±ä<EFBFBD>%<<EFBFBD>ØÈ<EFBFBD>A%<<EFBFBD>É¥°<EFBFBD>½½Ð<EFBFBD>ÍÑÑ̈ì(<EFBFBD>ÑÈô<EFBFBD>l±½<EFBFBD>°µÌ¹ÑÉ<EFBFBD>Ј<EFBFBD>tì(<EFBFBD>ݹÑÌô<EFBFBD>l±½<EFBFBD>°µÌ¹ÑÉ<EFBFBD>Ј<EFBFBD>tì(<EFBFBD>½Éô<EFBFBD>lµÕ±Ñ¤µÕÍȹÑÉ<EFBFBD>Ј<EFBFBD>tì(<EFBFBD>Ý¹Ñ äô<EFBFBD>lµÕ±Ñ¤µÕÍȹÑÉ<EFBFBD>Ј<EFBFBD>tì(<EFBFBD>ÍÉÙ¥<EFBFBD>
½¹¥œô<EFBFBD>ì(<EFBFBD>QåÁô½¹Í¡½Ðˆì(<EFBFBD>á<EFBFBD>MÑÉÐôˆíÁÁ±åI¥±ÍM<EFBFBD>É¥ÁÑôˆì(<EFBFBD>Iµ¥¹ÑÉá¥Ðô<EFBFBD>ÑÉÕì(<EFBFBD>ôì(<EFBFBD>ôì((Œ<EFBFBD>AL<EFBFBD><EFBFBD>½¹¥<EFBFBD>ÕÉÑ¥½¸(<EFBFBD>½½Ð¹­É¹±AɵÌô<EFBFBD>µ­%˜<EFBFBD><EFBFBD>œ¹¹±AL<EFBFBD>lÕÉÐÀõ½¸ˆ<EFBFBD>tì((<EFBFBD>ÕÍÉ̹ÕÍÉÌô<EFBFBD>µ­%˜<EFBFBD><EFBFBD>œ¹¹±AL<EFBFBD>ì(<EFBFBD><EFBFBD>½ÉÑ¥Õ´ô<EFBFBD>ì(<EFBFBD>áÑÉɽÕÁÌô<EFBFBD>l¥±½ÕЈ<EFBFBD>tì(<EFBFBD>ôì(<EFBFBD>ôì((Œ<EFBFBD>U$<EFBFBD>ÕѽÍÑÉСa¤(<EFBFBD>ÍåÍѵ<EFBFBD>¹ÕÍȹÍÉÙ¥<EFBFBD>̹¥½ØÈµ<EFBFBD>Ѱµ<EFBFBD>Õ¤ô<EFBFBD>µ­%˜<EFBFBD><EFBFBD>œ¹¹±U$<EFBFBD>ì(<EFBFBD>Í<EFBFBD>É¥ÁÑ¥½¸ô%<<EFBFBD>ØÈ<EFBFBD>MåÍÑ´<EFBFBD>QÉä<EFBFBD>
½¹Ñɽ±±Èˆì(<EFBFBD>ÑÈô<EFBFBD>l<EFBFBD>ÉÁ¡¥<EFBFBD>°µÍÍÍ¥½¸¹ÑÉ<EFBFBD>Ј<EFBFBD>tì(<EFBFBD>ݹÑÌô<EFBFBD>l<EFBFBD>ÉÁ¡¥<EFBFBD>°µÍÍÍ¥½¸¹ÑÉ<EFBFBD>Ј<EFBFBD>tì(<EFBFBD>Ý¹Ñ äô<EFBFBD>l<EFBFBD>ÉÁ¡¥<EFBFBD>°µÍÍÍ¥½¸¹ÑÉ<EFBFBD>Ј<EFBFBD>tì(<EFBFBD>ÍÉÙ¥<EFBFBD>
½¹¥œô<EFBFBD>ì(<EFBFBD>QåÁôÍ¥µÁ±ˆì(<EFBFBD>á<EFBFBD>MÑÉÐôˆí<EFBFBD>œ¹Á<EFBFBD>­<EFBFBD>ô½¥¸½¥½ØÉ}<EFBFBD>Ѱ´µ<EFBFBD>Õ¤ˆì(<EFBFBD>IÍÑÉÐô½¸µ¥±ÕɈì(<EFBFBD>IÍÑÉÑMŒôÔì(<EFBFBD>ôì(<EFBFBD>¹Ù¥É½¹µ¹Ðô<EFBFBD>ì(<EFBFBD>%=XÉ}
Q1} UôˆÀˆì(<EFBFBD>ôì(<EFBFBD>ôì(<EFBFBD>ôì)ô