1996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri/* 2996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri * Copyright 2012, Fabio Baltieri <fabio.baltieri@gmail.com> 3996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri * 4996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri * This program is free software; you can redistribute it and/or modify 5996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri * it under the terms of the GNU General Public License version 2 as 6996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri * published by the Free Software Foundation. 7996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri */ 8996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri 942193e3efb632c84d686acacd7b2327f2b1f8c63Oliver Hartkopp#ifndef _CAN_LED_H 1042193e3efb632c84d686acacd7b2327f2b1f8c63Oliver Hartkopp#define _CAN_LED_H 11996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri 12996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri#include <linux/if.h> 13996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri#include <linux/leds.h> 14996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri 15996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltierienum can_led_event { 16996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri CAN_LED_EVENT_OPEN, 17996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri CAN_LED_EVENT_STOP, 18996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri CAN_LED_EVENT_TX, 19996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri CAN_LED_EVENT_RX, 20996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri}; 21996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri 22996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri#ifdef CONFIG_CAN_LEDS 23996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri 24996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri/* keep space for interface name + "-tx"/"-rx" suffix and null terminator */ 25996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri#define CAN_LED_NAME_SZ (IFNAMSIZ + 4) 26996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri 27996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltierivoid can_led_event(struct net_device *netdev, enum can_led_event event); 28996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltierivoid devm_can_led_init(struct net_device *netdev); 29a1ef7bd9fce8aba8e4701e60208148fb3bc9bdd4Kurt Van Dijckint __init can_led_notifier_init(void); 30a1ef7bd9fce8aba8e4701e60208148fb3bc9bdd4Kurt Van Dijckvoid __exit can_led_notifier_exit(void); 31996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri 32996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri#else 33996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri 34996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieristatic inline void can_led_event(struct net_device *netdev, 35996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri enum can_led_event event) 36996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri{ 37996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri} 38996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieristatic inline void devm_can_led_init(struct net_device *netdev) 39996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri{ 40996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri} 41a1ef7bd9fce8aba8e4701e60208148fb3bc9bdd4Kurt Van Dijckstatic inline int can_led_notifier_init(void) 42a1ef7bd9fce8aba8e4701e60208148fb3bc9bdd4Kurt Van Dijck{ 43a1ef7bd9fce8aba8e4701e60208148fb3bc9bdd4Kurt Van Dijck return 0; 44a1ef7bd9fce8aba8e4701e60208148fb3bc9bdd4Kurt Van Dijck} 45a1ef7bd9fce8aba8e4701e60208148fb3bc9bdd4Kurt Van Dijckstatic inline void can_led_notifier_exit(void) 46a1ef7bd9fce8aba8e4701e60208148fb3bc9bdd4Kurt Van Dijck{ 47a1ef7bd9fce8aba8e4701e60208148fb3bc9bdd4Kurt Van Dijck} 48996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri 49996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri#endif 50996a953de02ffb852c9ac736f4e892008ed68884Fabio Baltieri 5142193e3efb632c84d686acacd7b2327f2b1f8c63Oliver Hartkopp#endif /* !_CAN_LED_H */ 52