77 lines
2.4 KiB
Nix
77 lines
2.4 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
namespace,
|
|
...
|
|
}:
|
|
let
|
|
cfg = config.${namespace}.hardware.raspberry-pi.i2c;
|
|
inherit (config.${namespace}.hardware.raspberry-pi) variant;
|
|
in
|
|
{
|
|
options.${namespace}.hardware.raspberry-pi.i2c = {
|
|
enable = lib.mkEnableOption "enable i2c dt overlays";
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
hardware.deviceTree = {
|
|
overlays =
|
|
if (variant == "5") then
|
|
[
|
|
{
|
|
name = "i2c0-pi5-overlay";
|
|
dtsFile = "${
|
|
pkgs.${namespace}.raspberrypi-overlays
|
|
}/dtbs/raspberrypi-overlays/i2c0-pi5-overlay.dts";
|
|
}
|
|
{
|
|
name = "i2c1-pi5-overlay";
|
|
dtsFile = "${
|
|
pkgs.${namespace}.raspberrypi-overlays
|
|
}/dtbs/raspberrypi-overlays/i2c1-pi5-overlay.dts";
|
|
}
|
|
{
|
|
name = "i2c2-pi5-overlay";
|
|
dtsFile = "${
|
|
pkgs.${namespace}.raspberrypi-overlays
|
|
}/dtbs/raspberrypi-overlays/i2c2-pi5-overlay.dts";
|
|
}
|
|
{
|
|
name = "i2c3-pi5-overlay";
|
|
dtsFile = "${
|
|
pkgs.${namespace}.raspberrypi-overlays
|
|
}/dtbs/raspberrypi-overlays/i2c3-pi5-overlay.dts";
|
|
}
|
|
]
|
|
else
|
|
[
|
|
{
|
|
name = "i2c0-overlay";
|
|
dtsFile = "${pkgs.${namespace}.raspberrypi-overlays}/dtbs/raspberrypi-overlays/i2c0-overlay.dts";
|
|
}
|
|
{
|
|
name = "i2c1-overlay";
|
|
dtsFile = "${pkgs.${namespace}.raspberrypi-overlays}/dtbs/raspberrypi-overlays/i2c1-overlay.dts";
|
|
}
|
|
{
|
|
name = "i2c3-overlay";
|
|
dtsFile = "${pkgs.${namespace}.raspberrypi-overlays}/dtbs/raspberrypi-overlays/i2c3-overlay.dts";
|
|
}
|
|
{
|
|
name = "i2c4-overlay";
|
|
dtsFile = "${pkgs.${namespace}.raspberrypi-overlays}/dtbs/raspberrypi-overlays/i2c4-overlay.dts";
|
|
}
|
|
{
|
|
name = "i2c5-overlay";
|
|
dtsFile = "${pkgs.${namespace}.raspberrypi-overlays}/dtbs/raspberrypi-overlays/i2c5-overlay.dts";
|
|
}
|
|
{
|
|
name = "i2c6-overlay";
|
|
dtsFile = "${pkgs.${namespace}.raspberrypi-overlays}/dtbs/raspberrypi-overlays/i2c6-overlay.dts";
|
|
}
|
|
];
|
|
};
|
|
};
|
|
}
|