1 | // SPDX-License-Identifier: GPL-2.0-only |
2 | /* |
3 | * LED Disk Activity Trigger |
4 | * |
5 | * Copyright 2006 Openedhand Ltd. |
6 | * |
7 | * Author: Richard Purdie <rpurdie@openedhand.com> |
8 | */ |
9 | |
10 | #include <linux/kernel.h> |
11 | #include <linux/init.h> |
12 | #include <linux/leds.h> |
13 | |
14 | #define BLINK_DELAY 30 |
15 | |
16 | DEFINE_LED_TRIGGER(ledtrig_disk); |
17 | DEFINE_LED_TRIGGER(ledtrig_disk_read); |
18 | DEFINE_LED_TRIGGER(ledtrig_disk_write); |
19 | |
20 | void ledtrig_disk_activity(bool write) |
21 | { |
22 | led_trigger_blink_oneshot(trigger: ledtrig_disk, BLINK_DELAY, BLINK_DELAY, invert: 0); |
23 | if (write) |
24 | led_trigger_blink_oneshot(trigger: ledtrig_disk_write, |
25 | BLINK_DELAY, BLINK_DELAY, invert: 0); |
26 | else |
27 | led_trigger_blink_oneshot(trigger: ledtrig_disk_read, |
28 | BLINK_DELAY, BLINK_DELAY, invert: 0); |
29 | } |
30 | EXPORT_SYMBOL(ledtrig_disk_activity); |
31 | |
32 | static int __init ledtrig_disk_init(void) |
33 | { |
34 | led_trigger_register_simple(name: "disk-activity" , trigger: &ledtrig_disk); |
35 | led_trigger_register_simple(name: "disk-read" , trigger: &ledtrig_disk_read); |
36 | led_trigger_register_simple(name: "disk-write" , trigger: &ledtrig_disk_write); |
37 | |
38 | return 0; |
39 | } |
40 | device_initcall(ledtrig_disk_init); |
41 | |