xref: /freebsd/sys/dev/rtwn/rtl8723b/r23b_led.c (revision 9aff62dee28239f84b4aa4a3429cf26dbbf770cc)
1 /*
2  * Copyright (c) 2026 Ahmad Khalifa <vexeduxr@FreeBSD.org>
3  *
4  * SPDX-License-Identifier: BSD-2-Clause
5  */
6 
7 #include <sys/param.h>
8 #include <sys/lock.h>
9 #include <sys/mutex.h>
10 #include <sys/mbuf.h>
11 #include <sys/kernel.h>
12 #include <sys/socket.h>
13 #include <sys/systm.h>
14 #include <sys/malloc.h>
15 #include <sys/queue.h>
16 #include <sys/taskqueue.h>
17 #include <sys/bus.h>
18 #include <sys/endian.h>
19 #include <sys/linker.h>
20 
21 #include <net/if.h>
22 #include <net/ethernet.h>
23 #include <net/if_media.h>
24 
25 #include <net80211/ieee80211_var.h>
26 #include <net80211/ieee80211_radiotap.h>
27 
28 #include <dev/rtwn/if_rtwnreg.h>
29 #include <dev/rtwn/if_rtwnvar.h>
30 
31 #include <dev/rtwn/rtl8192c/r92c_reg.h>
32 
33 #include <dev/rtwn/rtl8723b/r23b.h>
34 #include <dev/rtwn/rtl8723b/r23b_reg.h>
35 
36 void
37 r23b_set_led(struct rtwn_softc *sc, int led, int on)
38 {
39 	if (led != RTWN_LED_LINK)
40 		return;
41 
42 	sc->ledlink = on;
43 	rtwn_setbits_1(sc, R92C_LEDCFG2, R23B_LEDCFG2_LED_M,
44 	    R23B_LEDCFG2_LED_SW_CTRL | (on ? 0 : R23B_LEDCFG2_LED_DISABLE));
45 }
46