dummy-led.c 1.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. #include <linux/kernel.h>
  2. #include <linux/platform_device.h>
  3. #include <linux/leds.h>
  4. #include <linux/module.h>
  5. #include <linux/init.h>
  6. MODULE_LICENSE("GPL");
  7. MODULE_AUTHOR("encrypt";)
  8. MODULE_DESCRIPTION("Dummy led");
  9. struct dummy_led {
  10. struct led_classdev cdev;
  11. };
  12. static void dummy_led_set(struct led_classdev *ldev, enum led_brightness brightness) {
  13. printk("dummy_led: led");
  14. }
  15. static struct dummy_led led = {
  16. .cdev = {
  17. .name = "dummy::led",
  18. .brightness = LED_OFF,
  19. .max_brightness = 1,
  20. .brightness_set = dummy_led_set
  21. }
  22. };
  23. static int __init dummy_led_init(void) {
  24. int err;
  25. printk("dummy_led: Hello from dummy led");
  26. led.cdev.name = "dummy_led";
  27. led.cdev.max_brightness = 1;
  28. led.cdev.brightness_set = dummy_led_set;
  29. err = led_classdev_register(NULL, &led.cdev);
  30. if(err < 0)
  31. return err;
  32. return 0;
  33. }
  34. static void __exit dummy_led_exit(void) {
  35. led_classdev_unregister(&led.cdev);
  36. printk("dummy_led: Cya in another life");
  37. }
  38. module_init(dummy_led_init);
  39. module_exit(dummy_led_exit);