/* Copyright (C) 2016 National Instruments Corp. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. */ #ifndef __PHY_LED_TRIGGERS #define __PHY_LED_TRIGGERS struct phy_device; #ifdef CONFIG_LED_TRIGGER_PHY #include <linux/leds.h> #include <linux/phy.h> #define PHY_LED_TRIGGER_SPEED_SUFFIX_SIZE 10 #define PHY_LINK_LED_TRIGGER_NAME_SIZE (MII_BUS_ID_SIZE + \ FIELD_SIZEOF(struct mdio_device, addr)+\ PHY_LED_TRIGGER_SPEED_SUFFIX_SIZE) struct phy_led_trigger { struct led_trigger trigger; char name[PHY_LINK_LED_TRIGGER_NAME_SIZE]; unsigned int speed; }; extern int phy_led_triggers_register(struct phy_device *phy); extern void phy_led_triggers_unregister(struct phy_device *phy); extern void phy_led_trigger_change_speed(struct phy_device *phy); #else static inline int phy_led_triggers_register(struct phy_device *phy) { return 0; } static inline void phy_led_triggers_unregister(struct phy_device *phy) { } static inline void phy_led_trigger_change_speed(struct phy_device *phy) { } #endif #endif