armvirt: switch to Kernel 5.10
[openwrt/staging/chunkeey.git] / target / linux / mediatek / files-5.4 / drivers / net / phy / rtk / rtl8367c / include / rtl8367c_asicdrv_led.h
1 /*
2 * Copyright (C) 2013 Realtek Semiconductor Corp.
3 * All Rights Reserved.
4 *
5 * Unless you and Realtek execute a separate written software license
6 * agreement governing use of this software, this software is licensed
7 * to you under the terms of the GNU General Public License version 2,
8 * available at https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
9 *
10 * $Revision: 76306 $
11 * $Date: 2017-03-08 15:13:58 +0800 (¶g¤T, 08 ¤T¤ë 2017) $
12 *
13 * Purpose : RTL8367C switch high-level API for RTL8367C
14 * Feature : LED related functions
15 *
16 */
17
18 #ifndef _RTL8367C_ASICDRV_LED_H_
19 #define _RTL8367C_ASICDRV_LED_H_
20
21 #include <rtl8367c_asicdrv.h>
22
23 #define RTL8367C_LEDGROUPNO 3
24 #define RTL8367C_LEDGROUPMASK 0x7
25 #define RTL8367C_LED_FORCE_MODE_BASE RTL8367C_REG_CPU_FORCE_LED0_CFG0
26 #define RTL8367C_LED_FORCE_CTRL RTL8367C_REG_CPU_FORCE_LED_CFG
27
28 enum RTL8367C_LEDOP{
29
30 LEDOP_SCAN0=0,
31 LEDOP_SCAN1,
32 LEDOP_PARALLEL,
33 LEDOP_SERIAL,
34 LEDOP_END,
35 };
36
37 enum RTL8367C_LEDSERACT{
38
39 LEDSERACT_HIGH=0,
40 LEDSERACT_LOW,
41 LEDSERACT_MAX,
42 };
43
44 enum RTL8367C_LEDSER{
45
46 LEDSER_16G=0,
47 LEDSER_8G,
48 LEDSER_MAX,
49 };
50
51 enum RTL8367C_LEDCONF{
52
53 LEDCONF_LEDOFF=0,
54 LEDCONF_DUPCOL,
55 LEDCONF_LINK_ACT,
56 LEDCONF_SPD1000,
57 LEDCONF_SPD100,
58 LEDCONF_SPD10,
59 LEDCONF_SPD1000ACT,
60 LEDCONF_SPD100ACT,
61 LEDCONF_SPD10ACT,
62 LEDCONF_SPD10010ACT,
63 LEDCONF_LOOPDETECT,
64 LEDCONF_EEE,
65 LEDCONF_LINKRX,
66 LEDCONF_LINKTX,
67 LEDCONF_MASTER,
68 LEDCONF_ACT,
69 LEDCONF_END
70 };
71
72 enum RTL8367C_LEDBLINKRATE{
73
74 LEDBLINKRATE_32MS=0,
75 LEDBLINKRATE_64MS,
76 LEDBLINKRATE_128MS,
77 LEDBLINKRATE_256MS,
78 LEDBLINKRATE_512MS,
79 LEDBLINKRATE_1024MS,
80 LEDBLINKRATE_48MS,
81 LEDBLINKRATE_96MS,
82 LEDBLINKRATE_END,
83 };
84
85 enum RTL8367C_LEDFORCEMODE{
86
87 LEDFORCEMODE_NORMAL=0,
88 LEDFORCEMODE_BLINK,
89 LEDFORCEMODE_OFF,
90 LEDFORCEMODE_ON,
91 LEDFORCEMODE_END,
92 };
93
94 enum RTL8367C_LEDFORCERATE{
95
96 LEDFORCERATE_512MS=0,
97 LEDFORCERATE_1024MS,
98 LEDFORCERATE_2048MS,
99 LEDFORCERATE_NORMAL,
100 LEDFORCERATE_END,
101
102 };
103
104 enum RTL8367C_LEDMODE
105 {
106 RTL8367C_LED_MODE_0 = 0,
107 RTL8367C_LED_MODE_1,
108 RTL8367C_LED_MODE_2,
109 RTL8367C_LED_MODE_3,
110 RTL8367C_LED_MODE_END
111 };
112
113 extern ret_t rtl8367c_setAsicLedIndicateInfoConfig(rtk_uint32 ledno, rtk_uint32 config);
114 extern ret_t rtl8367c_getAsicLedIndicateInfoConfig(rtk_uint32 ledno, rtk_uint32* pConfig);
115 extern ret_t rtl8367c_setAsicForceLed(rtk_uint32 port, rtk_uint32 group, rtk_uint32 mode);
116 extern ret_t rtl8367c_getAsicForceLed(rtk_uint32 port, rtk_uint32 group, rtk_uint32* pMode);
117 extern ret_t rtl8367c_setAsicForceGroupLed(rtk_uint32 groupmask, rtk_uint32 mode);
118 extern ret_t rtl8367c_getAsicForceGroupLed(rtk_uint32* groupmask, rtk_uint32* pMode);
119 extern ret_t rtl8367c_setAsicLedBlinkRate(rtk_uint32 blinkRate);
120 extern ret_t rtl8367c_getAsicLedBlinkRate(rtk_uint32* pBlinkRate);
121 extern ret_t rtl8367c_setAsicLedForceBlinkRate(rtk_uint32 blinkRate);
122 extern ret_t rtl8367c_getAsicLedForceBlinkRate(rtk_uint32* pBlinkRate);
123 extern ret_t rtl8367c_setAsicLedGroupMode(rtk_uint32 mode);
124 extern ret_t rtl8367c_getAsicLedGroupMode(rtk_uint32* pMode);
125 extern ret_t rtl8367c_setAsicLedGroupEnable(rtk_uint32 group, rtk_uint32 portmask);
126 extern ret_t rtl8367c_getAsicLedGroupEnable(rtk_uint32 group, rtk_uint32 *portmask);
127 extern ret_t rtl8367c_setAsicLedOperationMode(rtk_uint32 mode);
128 extern ret_t rtl8367c_getAsicLedOperationMode(rtk_uint32 *mode);
129 extern ret_t rtl8367c_setAsicLedSerialModeConfig(rtk_uint32 active, rtk_uint32 serimode);
130 extern ret_t rtl8367c_getAsicLedSerialModeConfig(rtk_uint32 *active, rtk_uint32 *serimode);
131 extern ret_t rtl8367c_setAsicLedOutputEnable(rtk_uint32 enabled);
132 extern ret_t rtl8367c_getAsicLedOutputEnable(rtk_uint32 *ptr_enabled);
133 extern ret_t rtl8367c_setAsicLedSerialOutput(rtk_uint32 output, rtk_uint32 pmask);
134 extern ret_t rtl8367c_getAsicLedSerialOutput(rtk_uint32 *pOutput, rtk_uint32 *pPmask);
135
136
137 #endif /*#ifndef _RTL8367C_ASICDRV_LED_H_*/
138