1 /*
2  * Copyright 2012, Fabio Baltieri <fabio.baltieri@gmail.com>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU General Public License version 2 as
6  * published by the Free Software Foundation.
7  */
8 
9 #ifndef _CAN_LED_H
10 #define _CAN_LED_H
11 
12 #include <linux/if.h>
13 #include <linux/leds.h>
14 #include <linux/netdevice.h>
15 
16 enum can_led_event {
17 	CAN_LED_EVENT_OPEN,
18 	CAN_LED_EVENT_STOP,
19 	CAN_LED_EVENT_TX,
20 	CAN_LED_EVENT_RX,
21 };
22 
23 #ifdef CONFIG_CAN_LEDS
24 
25 /* keep space for interface name + "-tx"/"-rx"/"-rxtx"
26  * suffix and null terminator
27  */
28 #define CAN_LED_NAME_SZ (IFNAMSIZ + 6)
29 
30 void can_led_event(struct net_device *netdev, enum can_led_event event);
31 void devm_can_led_init(struct net_device *netdev);
32 int __init can_led_notifier_init(void);
33 void __exit can_led_notifier_exit(void);
34 
35 #else
36 
can_led_event(struct net_device * netdev,enum can_led_event event)37 static inline void can_led_event(struct net_device *netdev,
38 				 enum can_led_event event)
39 {
40 }
devm_can_led_init(struct net_device * netdev)41 static inline void devm_can_led_init(struct net_device *netdev)
42 {
43 }
can_led_notifier_init(void)44 static inline int can_led_notifier_init(void)
45 {
46 	return 0;
47 }
can_led_notifier_exit(void)48 static inline void can_led_notifier_exit(void)
49 {
50 }
51 
52 #endif
53 
54 #endif /* !_CAN_LED_H */
55