mirror of
https://github.com/NixOS/nixos-hardware
synced 2024-12-18 15:49:45 +01:00
raspberry-pi/4: add led disable overlay
This commit is contained in:
parent
9d09a7452c
commit
a742fe3a04
2 changed files with 117 additions and 0 deletions
|
@ -8,6 +8,7 @@
|
|||
./digi-amp-plus.nix
|
||||
./dwc2.nix
|
||||
./i2c.nix
|
||||
./leds.nix
|
||||
./modesetting.nix
|
||||
./pkgs-overlays.nix
|
||||
./poe-hat.nix
|
||||
|
|
116
raspberry-pi/4/leds.nix
Normal file
116
raspberry-pi/4/leds.nix
Normal file
|
@ -0,0 +1,116 @@
|
|||
{ config, lib, ... }:
|
||||
|
||||
let
|
||||
cfg = config.hardware.raspberry-pi."4".leds;
|
||||
in
|
||||
{
|
||||
options.hardware = {
|
||||
raspberry-pi."4".leds = {
|
||||
disable-eth = lib.mkEnableOption ''
|
||||
disable ethernet LEDs.
|
||||
'';
|
||||
disable-act = lib.mkEnableOption ''
|
||||
disable activity LED.
|
||||
'';
|
||||
disable-pwr = lib.mkEnableOption ''
|
||||
disable power LED.
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
# Adapted from: https://gist.github.com/SFrijters/206d2c09656affb04284f076c75a1969
|
||||
config = lib.mkMerge [
|
||||
(lib.mkIf cfg.disable-eth {
|
||||
hardware.deviceTree = {
|
||||
overlays = [
|
||||
# https://github.com/raspberrypi/firmware/blob/master/boot/overlays/README
|
||||
# eth_led0 Set mode of LED0 - amber on Pi3B+ (default "1"),
|
||||
# green on Pi4 (default "0").
|
||||
# The legal values are:
|
||||
#
|
||||
# Pi4
|
||||
#
|
||||
# 0=Speed/Activity 1=Speed
|
||||
# 2=Flash activity 3=FDX
|
||||
# 4=Off 5=On
|
||||
# 6=Alt 7=Speed/Flash
|
||||
# 8=Link 9=Activity
|
||||
#
|
||||
# Debugging:
|
||||
# $ hexdump /proc/device-tree/scb/ethernet@7d580000/mdio@e14/ethernet-phy@1/led-modes
|
||||
{
|
||||
name = "disable-eth-leds";
|
||||
filter = "*rpi-4-b*";
|
||||
dtsText = ''
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
/{
|
||||
compatible = "raspberrypi,4-model-b";
|
||||
fragment@0 {
|
||||
target = <&phy1>;
|
||||
__overlay__ {
|
||||
led-modes = <0x04 0x04>;
|
||||
};
|
||||
};
|
||||
};
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
})
|
||||
(lib.mkIf cfg.disable-act {
|
||||
hardware.deviceTree = {
|
||||
overlays = [
|
||||
# Debugging:
|
||||
# $ hexdump /proc/device-tree/leds/led-act/gpios
|
||||
# $ cat /proc/device-tree/leds/led-act/linux,default-trigger
|
||||
{
|
||||
name = "disable-act-led";
|
||||
filter = "*rpi-4-b*";
|
||||
dtsText = ''
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
/{
|
||||
compatible = "raspberrypi,4-model-b";
|
||||
fragment@0 {
|
||||
target = <&act_led>;
|
||||
__overlay__ {
|
||||
gpios = <&gpio 42 0>; /* first two values copied from bcm2711-rpi-4-b.dts */
|
||||
linux,default-trigger = "none";
|
||||
};
|
||||
};
|
||||
};
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
})
|
||||
(lib.mkIf cfg.disable-pwr {
|
||||
hardware.deviceTree = {
|
||||
overlays = [
|
||||
# Debugging:
|
||||
# $ hexdump /proc/device-tree/leds/led-pwr/gpios
|
||||
# $ cat /proc/device-tree/leds/led-pwr/linux,default-trigger
|
||||
{
|
||||
name = "disable-pwr-led";
|
||||
filter = "*rpi-4-b*";
|
||||
dtsText = ''
|
||||
/dts-v1/;
|
||||
/plugin/;
|
||||
/{
|
||||
compatible = "raspberrypi,4-model-b";
|
||||
fragment@0 {
|
||||
target = <&pwr_led>;
|
||||
__overlay__ {
|
||||
gpios = <&expgpio 2 0>; /* first two values copied from bcm2711-rpi-4-b.dts */
|
||||
linux,default-trigger = "default-on";
|
||||
};
|
||||
};
|
||||
};
|
||||
'';
|
||||
}
|
||||
];
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
Loading…
Reference in a new issue