1 /* SPDX-License-Identifier: GPL-2.0-only */
2 /*
3  * Definitions for RTL8187 leds
4  *
5  * Copyright 2009 Larry Finger <Larry.Finger@lwfinger.net>
6  *
7  * Based on the LED handling in the r8187 driver, which is:
8  * Copyright (c) Realtek Semiconductor Corp. All rights reserved.
9  */
10 
11 #ifndef RTL8187_LED_H
12 #define RTL8187_LED_H
13 
14 #ifdef CONFIG_RTL8187_LEDS
15 
16 #define RTL8187_LED_MAX_NAME_LEN	21
17 
18 #include <linux/leds.h>
19 #include <linux/types.h>
20 
21 enum {
22 	LED_PIN_LED0,
23 	LED_PIN_LED1,
24 	LED_PIN_GPIO0,
25 	LED_PIN_HW
26 };
27 
28 enum {
29 	EEPROM_CID_RSVD0 = 0x00,
30 	EEPROM_CID_RSVD1 = 0xFF,
31 	EEPROM_CID_ALPHA0 = 0x01,
32 	EEPROM_CID_SERCOMM_PS = 0x02,
33 	EEPROM_CID_HW = 0x03,
34 	EEPROM_CID_TOSHIBA = 0x04,
35 	EEPROM_CID_QMI = 0x07,
36 	EEPROM_CID_DELL = 0x08
37 };
38 
39 struct rtl8187_led {
40 	struct ieee80211_hw *dev;
41 	/* The LED class device */
42 	struct led_classdev led_dev;
43 	/* The pin/method used to control the led */
44 	u8 ledpin;
45 	/* The unique name string for this LED device. */
46 	char name[RTL8187_LED_MAX_NAME_LEN + 1];
47 	/* If the LED is radio or tx/rx */
48 	bool is_radio;
49 };
50 
51 void rtl8187_leds_init(struct ieee80211_hw *dev, u16 code);
52 void rtl8187_leds_exit(struct ieee80211_hw *dev);
53 
54 #endif /* def CONFIG_RTL8187_LEDS */
55 
56 #endif /* RTL8187_LED_H */
57