xref: /linux/drivers/net/wireless/realtek/rtw89/led.h (revision 91ec2035134982b98fab0609a9fd8480e8217dc1)
1d910631fSJohnson Tsai /* SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause */
2d910631fSJohnson Tsai /* Copyright(c) 2026 Realtek Corporation
3d910631fSJohnson Tsai  */
4d910631fSJohnson Tsai 
5d910631fSJohnson Tsai #ifndef __RTW89_LED_H__
6d910631fSJohnson Tsai #define __RTW89_LED_H__
7d910631fSJohnson Tsai 
8d910631fSJohnson Tsai #include "core.h"
9d910631fSJohnson Tsai 
10d910631fSJohnson Tsai void rtw89_led_gpio_config(struct rtw89_dev *rtwdev,
11d910631fSJohnson Tsai 			   const struct rtw89_led_gpio_entry *e);
12d910631fSJohnson Tsai void rtw89_led_gpio_set(struct rtw89_dev *rtwdev,
13d910631fSJohnson Tsai 			const struct rtw89_led_gpio_entry *e,
14d910631fSJohnson Tsai 			enum led_brightness brightness);
15d910631fSJohnson Tsai 
16d910631fSJohnson Tsai #ifdef CONFIG_RTW89_LEDS
17d910631fSJohnson Tsai void rtw89_led_init(struct rtw89_dev *rtwdev);
18d910631fSJohnson Tsai void rtw89_led_deinit(struct rtw89_dev *rtwdev);
19d910631fSJohnson Tsai #else
rtw89_led_init(struct rtw89_dev * rtwdev)20d910631fSJohnson Tsai static inline void rtw89_led_init(struct rtw89_dev *rtwdev) {}
rtw89_led_deinit(struct rtw89_dev * rtwdev)21d910631fSJohnson Tsai static inline void rtw89_led_deinit(struct rtw89_dev *rtwdev) {}
22d910631fSJohnson Tsai #endif
23d910631fSJohnson Tsai 
24*721d90c8SJohnson Tsai #ifdef CONFIG_RTW89_LEDS_MC
25*721d90c8SJohnson Tsai int rtw89_led_mc_init(struct rtw89_dev *rtwdev, const struct rtw89_led_desc *desc);
26*721d90c8SJohnson Tsai void rtw89_led_mc_deinit(struct rtw89_dev *rtwdev);
27*721d90c8SJohnson Tsai #else
rtw89_led_mc_init(struct rtw89_dev * rtwdev,const struct rtw89_led_desc * desc)28*721d90c8SJohnson Tsai static inline int rtw89_led_mc_init(struct rtw89_dev *rtwdev,
29*721d90c8SJohnson Tsai 				    const struct rtw89_led_desc *desc)
30*721d90c8SJohnson Tsai {
31*721d90c8SJohnson Tsai 	return -EOPNOTSUPP;
32*721d90c8SJohnson Tsai }
33*721d90c8SJohnson Tsai 
rtw89_led_mc_deinit(struct rtw89_dev * rtwdev)34*721d90c8SJohnson Tsai static inline void rtw89_led_mc_deinit(struct rtw89_dev *rtwdev) {}
35*721d90c8SJohnson Tsai #endif
36*721d90c8SJohnson Tsai 
37d910631fSJohnson Tsai #endif
38