conversions were done using https://github.com/pennae/nix-doc-munge using (probably) rev f34e145 running nix-doc-munge nixos/**/*.nix nix-doc-munge --import nixos/**/*.nix the tool ensures that only changes that could affect the generated manual *but don't* are committed, other changes require manual review and are discarded.
59 lines
1.5 KiB
Nix
59 lines
1.5 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
|
|
let
|
|
cfg = config.services.hardware.argonone;
|
|
in
|
|
{
|
|
options.services.hardware.argonone = {
|
|
enable = lib.mkEnableOption (lib.mdDoc "the driver for Argon One Raspberry Pi case fan and power button");
|
|
package = lib.mkOption {
|
|
type = lib.types.package;
|
|
default = pkgs.argononed;
|
|
defaultText = "pkgs.argononed";
|
|
description = lib.mdDoc ''
|
|
The package implementing the Argon One driver
|
|
'';
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
hardware.i2c.enable = true;
|
|
hardware.deviceTree.overlays = [
|
|
{
|
|
name = "argononed";
|
|
dtboFile = "${cfg.package}/boot/overlays/argonone.dtbo";
|
|
}
|
|
{
|
|
name = "i2c1-okay-overlay";
|
|
dtsText = ''
|
|
/dts-v1/;
|
|
/plugin/;
|
|
/ {
|
|
compatible = "brcm,bcm2711";
|
|
fragment@0 {
|
|
target = <&i2c1>;
|
|
__overlay__ {
|
|
status = "okay";
|
|
};
|
|
};
|
|
};
|
|
'';
|
|
}
|
|
];
|
|
environment.systemPackages = [ cfg.package ];
|
|
systemd.services.argononed = {
|
|
description = "Argon One Raspberry Pi case Daemon Service";
|
|
wantedBy = [ "multi-user.target" ];
|
|
serviceConfig = {
|
|
Type = "forking";
|
|
ExecStart = "${cfg.package}/bin/argononed";
|
|
PIDFile = "/run/argononed.pid";
|
|
Restart = "on-failure";
|
|
};
|
|
};
|
|
};
|
|
|
|
meta.maintainers = with lib.maintainers; [ misterio77 ];
|
|
|
|
}
|