Commit | Line | Data |
---|---|---|
c942fddf | 1 | /* SPDX-License-Identifier: GPL-2.0-or-later */ |
2e0bc452 | 2 | /* Copyright (C) 2016 National Instruments Corp. |
2e0bc452 ZB |
3 | */ |
4 | #ifndef __PHY_LED_TRIGGERS | |
5 | #define __PHY_LED_TRIGGERS | |
6 | ||
7 | struct phy_device; | |
8 | ||
9 | #ifdef CONFIG_LED_TRIGGER_PHY | |
10 | ||
11 | #include <linux/leds.h> | |
3c880eb0 | 12 | #include <linux/phy.h> |
2e0bc452 | 13 | |
457937bd | 14 | #define PHY_LED_TRIGGER_SPEED_SUFFIX_SIZE 11 |
2e0bc452 | 15 | |
3c880eb0 | 16 | #define PHY_LINK_LED_TRIGGER_NAME_SIZE (MII_BUS_ID_SIZE + \ |
c593642c | 17 | sizeof_field(struct mdio_device, addr)+\ |
2e0bc452 ZB |
18 | PHY_LED_TRIGGER_SPEED_SUFFIX_SIZE) |
19 | ||
20 | struct phy_led_trigger { | |
21 | struct led_trigger trigger; | |
22 | char name[PHY_LINK_LED_TRIGGER_NAME_SIZE]; | |
23 | unsigned int speed; | |
24 | }; | |
25 | ||
26 | ||
27 | extern int phy_led_triggers_register(struct phy_device *phy); | |
28 | extern void phy_led_triggers_unregister(struct phy_device *phy); | |
29 | extern void phy_led_trigger_change_speed(struct phy_device *phy); | |
30 | ||
31 | #else | |
32 | ||
33 | static inline int phy_led_triggers_register(struct phy_device *phy) | |
34 | { | |
35 | return 0; | |
36 | } | |
37 | static inline void phy_led_triggers_unregister(struct phy_device *phy) { } | |
38 | static inline void phy_led_trigger_change_speed(struct phy_device *phy) { } | |
39 | ||
40 | #endif | |
41 | ||
42 | #endif |