kernel: add missing config symbols for 5.15
[openwrt/staging/dedeckeh.git] / target / linux / mediatek / files-5.10 / drivers / net / phy / rtk / rtl8367c / include / 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 * Purpose : RTL8367/RTL8367C switch high-level API
11 *
12 * Feature : The file includes LED module high-layer API defination
13 *
14 */
15
16 #ifndef __RTK_API_LED_H__
17 #define __RTK_API_LED_H__
18
19 typedef enum rtk_led_operation_e
20 {
21 LED_OP_SCAN=0,
22 LED_OP_PARALLEL,
23 LED_OP_SERIAL,
24 LED_OP_END,
25 }rtk_led_operation_t;
26
27
28 typedef enum rtk_led_active_e
29 {
30 LED_ACTIVE_HIGH=0,
31 LED_ACTIVE_LOW,
32 LED_ACTIVE_END,
33 }rtk_led_active_t;
34
35 typedef enum rtk_led_config_e
36 {
37 LED_CONFIG_LEDOFF=0,
38 LED_CONFIG_DUPCOL,
39 LED_CONFIG_LINK_ACT,
40 LED_CONFIG_SPD1000,
41 LED_CONFIG_SPD100,
42 LED_CONFIG_SPD10,
43 LED_CONFIG_SPD1000ACT,
44 LED_CONFIG_SPD100ACT,
45 LED_CONFIG_SPD10ACT,
46 LED_CONFIG_SPD10010ACT,
47 LED_CONFIG_LOOPDETECT,
48 LED_CONFIG_EEE,
49 LED_CONFIG_LINKRX,
50 LED_CONFIG_LINKTX,
51 LED_CONFIG_MASTER,
52 LED_CONFIG_ACT,
53 LED_CONFIG_END,
54 }rtk_led_congig_t;
55
56 typedef struct rtk_led_ability_s
57 {
58 rtk_enable_t link_10m;
59 rtk_enable_t link_100m;
60 rtk_enable_t link_500m;
61 rtk_enable_t link_1000m;
62 rtk_enable_t act_rx;
63 rtk_enable_t act_tx;
64 }rtk_led_ability_t;
65
66 typedef enum rtk_led_blink_rate_e
67 {
68 LED_BLINKRATE_32MS=0,
69 LED_BLINKRATE_64MS,
70 LED_BLINKRATE_128MS,
71 LED_BLINKRATE_256MS,
72 LED_BLINKRATE_512MS,
73 LED_BLINKRATE_1024MS,
74 LED_BLINKRATE_48MS,
75 LED_BLINKRATE_96MS,
76 LED_BLINKRATE_END,
77 }rtk_led_blink_rate_t;
78
79 typedef enum rtk_led_group_e
80 {
81 LED_GROUP_0 = 0,
82 LED_GROUP_1,
83 LED_GROUP_2,
84 LED_GROUP_END
85 }rtk_led_group_t;
86
87
88 typedef enum rtk_led_force_mode_e
89 {
90 LED_FORCE_NORMAL=0,
91 LED_FORCE_BLINK,
92 LED_FORCE_OFF,
93 LED_FORCE_ON,
94 LED_FORCE_END
95 }rtk_led_force_mode_t;
96
97 typedef enum rtk_led_serialOutput_e
98 {
99 SERIAL_LED_NONE = 0,
100 SERIAL_LED_0,
101 SERIAL_LED_0_1,
102 SERIAL_LED_0_2,
103 SERIAL_LED_END,
104 }rtk_led_serialOutput_t;
105
106
107 /* Function Name:
108 * rtk_led_enable_set
109 * Description:
110 * Set Led enable congiuration
111 * Input:
112 * group - LED group id.
113 * pPortmask - LED enable port mask.
114 * Output:
115 * None
116 * Return:
117 * RT_ERR_OK - OK
118 * RT_ERR_FAILED - Failed
119 * RT_ERR_SMI - SMI access error
120 * RT_ERR_INPUT - Invalid input parameters.
121 * Note:
122 * The API can be used to enable LED per port per group.
123 */
124 extern rtk_api_ret_t rtk_led_enable_set(rtk_led_group_t group, rtk_portmask_t *pPortmask);
125
126 /* Function Name:
127 * rtk_led_enable_get
128 * Description:
129 * Get Led enable congiuration
130 * Input:
131 * group - LED group id.
132 * Output:
133 * pPortmask - LED enable port mask.
134 * Return:
135 * RT_ERR_OK - OK
136 * RT_ERR_FAILED - Failed
137 * RT_ERR_SMI - SMI access error
138 * RT_ERR_INPUT - Invalid input parameters.
139 * Note:
140 * The API can be used to get LED enable status.
141 */
142 extern rtk_api_ret_t rtk_led_enable_get(rtk_led_group_t group, rtk_portmask_t *pPortmask);
143
144 /* Function Name:
145 * rtk_led_operation_set
146 * Description:
147 * Set Led operation mode
148 * Input:
149 * mode - LED operation mode.
150 * Output:
151 * None
152 * Return:
153 * RT_ERR_OK - OK
154 * RT_ERR_FAILED - Failed
155 * RT_ERR_SMI - SMI access error
156 * RT_ERR_INPUT - Invalid input parameters.
157 * Note:
158 * The API can set Led operation mode.
159 * The modes that can be set are as following:
160 * - LED_OP_SCAN,
161 * - LED_OP_PARALLEL,
162 * - LED_OP_SERIAL,
163 */
164 extern rtk_api_ret_t rtk_led_operation_set(rtk_led_operation_t mode);
165
166 /* Function Name:
167 * rtk_led_operation_get
168 * Description:
169 * Get Led operation mode
170 * Input:
171 * None
172 * Output:
173 * pMode - Support LED operation mode.
174 * Return:
175 * RT_ERR_OK - OK
176 * RT_ERR_FAILED - Failed
177 * RT_ERR_SMI - SMI access error
178 * RT_ERR_INPUT - Invalid input parameters.
179 * Note:
180 * The API can get Led operation mode.
181 * The modes that can be set are as following:
182 * - LED_OP_SCAN,
183 * - LED_OP_PARALLEL,
184 * - LED_OP_SERIAL,
185 */
186 extern rtk_api_ret_t rtk_led_operation_get(rtk_led_operation_t *pMode);
187
188 /* Function Name:
189 * rtk_led_modeForce_set
190 * Description:
191 * Set Led group to congiuration force mode
192 * Input:
193 * port - port ID
194 * group - Support LED group id.
195 * mode - Support LED force mode.
196 * Output:
197 * None
198 * Return:
199 * RT_ERR_OK - OK
200 * RT_ERR_FAILED - Failed
201 * RT_ERR_SMI - SMI access error
202 * RT_ERR_INPUT - Invalid input parameters.
203 * RT_ERR_PORT_ID - Error Port ID
204 * Note:
205 * The API can force to one force mode.
206 * The force modes that can be set are as following:
207 * - LED_FORCE_NORMAL,
208 * - LED_FORCE_BLINK,
209 * - LED_FORCE_OFF,
210 * - LED_FORCE_ON.
211 */
212 extern rtk_api_ret_t rtk_led_modeForce_set(rtk_port_t port, rtk_led_group_t group, rtk_led_force_mode_t mode);
213
214 /* Function Name:
215 * rtk_led_modeForce_get
216 * Description:
217 * Get Led group to congiuration force mode
218 * Input:
219 * port - port ID
220 * group - Support LED group id.
221 * pMode - Support LED force mode.
222 * Output:
223 * None
224 * Return:
225 * RT_ERR_OK - OK
226 * RT_ERR_FAILED - Failed
227 * RT_ERR_SMI - SMI access error
228 * RT_ERR_INPUT - Invalid input parameters.
229 * RT_ERR_PORT_ID - Error Port ID
230 * Note:
231 * The API can get forced Led group mode.
232 * The force modes that can be set are as following:
233 * - LED_FORCE_NORMAL,
234 * - LED_FORCE_BLINK,
235 * - LED_FORCE_OFF,
236 * - LED_FORCE_ON.
237 */
238 extern rtk_api_ret_t rtk_led_modeForce_get(rtk_port_t port, rtk_led_group_t group, rtk_led_force_mode_t *pMode);
239
240 /* Function Name:
241 * rtk_led_blinkRate_set
242 * Description:
243 * Set LED blinking rate
244 * Input:
245 * blinkRate - blinking rate.
246 * Output:
247 * None
248 * Return:
249 * RT_ERR_OK - OK
250 * RT_ERR_FAILED - Failed
251 * RT_ERR_SMI - SMI access error
252 * RT_ERR_INPUT - Invalid input parameters.
253 * Note:
254 * ASIC support 6 types of LED blinking rates at 43ms, 84ms, 120ms, 170ms, 340ms and 670ms.
255 */
256 extern rtk_api_ret_t rtk_led_blinkRate_set(rtk_led_blink_rate_t blinkRate);
257
258 /* Function Name:
259 * rtk_led_blinkRate_get
260 * Description:
261 * Get LED blinking rate at mode 0 to mode 3
262 * Input:
263 * None
264 * Output:
265 * pBlinkRate - blinking rate.
266 * Return:
267 * RT_ERR_OK - OK
268 * RT_ERR_FAILED - Failed
269 * RT_ERR_SMI - SMI access error
270 * RT_ERR_INPUT - Invalid input parameters.
271 * Note:
272 * There are 6 types of LED blinking rates at 43ms, 84ms, 120ms, 170ms, 340ms and 670ms.
273 */
274 extern rtk_api_ret_t rtk_led_blinkRate_get(rtk_led_blink_rate_t *pBlinkRate);
275
276 /* Function Name:
277 * rtk_led_groupConfig_set
278 * Description:
279 * Set per group Led to congiuration mode
280 * Input:
281 * group - LED group.
282 * config - LED configuration
283 * Output:
284 * None
285 * Return:
286 * RT_ERR_OK - OK
287 * RT_ERR_FAILED - Failed
288 * RT_ERR_SMI - SMI access error
289 * RT_ERR_INPUT - Invalid input parameters.
290 * Note:
291 * The API can set LED indicated information configuration for each LED group with 1 to 1 led mapping to each port.
292 * - Definition LED Statuses Description
293 * - 0000 LED_Off LED pin Tri-State.
294 * - 0001 Dup/Col Collision, Full duplex Indicator.
295 * - 0010 Link/Act Link, Activity Indicator.
296 * - 0011 Spd1000 1000Mb/s Speed Indicator.
297 * - 0100 Spd100 100Mb/s Speed Indicator.
298 * - 0101 Spd10 10Mb/s Speed Indicator.
299 * - 0110 Spd1000/Act 1000Mb/s Speed/Activity Indicator.
300 * - 0111 Spd100/Act 100Mb/s Speed/Activity Indicator.
301 * - 1000 Spd10/Act 10Mb/s Speed/Activity Indicator.
302 * - 1001 Spd100 (10)/Act 10/100Mb/s Speed/Activity Indicator.
303 * - 1010 LoopDetect LoopDetect Indicator.
304 * - 1011 EEE EEE Indicator.
305 * - 1100 Link/Rx Link, Activity Indicator.
306 * - 1101 Link/Tx Link, Activity Indicator.
307 * - 1110 Master Link on Master Indicator.
308 * - 1111 Act Activity Indicator. Low for link established.
309 */
310 extern rtk_api_ret_t rtk_led_groupConfig_set(rtk_led_group_t group, rtk_led_congig_t config);
311
312 /* Function Name:
313 * rtk_led_groupConfig_get
314 * Description:
315 * Get Led group congiuration mode
316 * Input:
317 * group - LED group.
318 * Output:
319 * pConfig - LED configuration.
320 * Return:
321 * RT_ERR_OK - OK
322 * RT_ERR_FAILED - Failed
323 * RT_ERR_SMI - SMI access error
324 * RT_ERR_INPUT - Invalid input parameters.
325 * Note:
326 * The API can get LED indicated information configuration for each LED group.
327 */
328 extern rtk_api_ret_t rtk_led_groupConfig_get(rtk_led_group_t group, rtk_led_congig_t *pConfig);
329
330 /* Function Name:
331 * rtk_led_groupAbility_set
332 * Description:
333 * Configure per group Led ability
334 * Input:
335 * group - LED group.
336 * pAbility - LED ability
337 * Output:
338 * None
339 * Return:
340 * RT_ERR_OK - OK
341 * RT_ERR_FAILED - Failed
342 * RT_ERR_SMI - SMI access error
343 * RT_ERR_INPUT - Invalid input parameters.
344 * Note:
345 * None.
346 */
347
348 extern rtk_api_ret_t rtk_led_groupAbility_set(rtk_led_group_t group, rtk_led_ability_t *pAbility);
349
350 /* Function Name:
351 * rtk_led_groupAbility_get
352 * Description:
353 * Get per group Led ability
354 * Input:
355 * group - LED group.
356 * pAbility - LED ability
357 * Output:
358 * None
359 * Return:
360 * RT_ERR_OK - OK
361 * RT_ERR_FAILED - Failed
362 * RT_ERR_SMI - SMI access error
363 * RT_ERR_INPUT - Invalid input parameters.
364 * Note:
365 * None.
366 */
367
368 extern rtk_api_ret_t rtk_led_groupAbility_get(rtk_led_group_t group, rtk_led_ability_t *pAbility);
369
370 /* Function Name:
371 * rtk_led_serialMode_set
372 * Description:
373 * Set Led serial mode active congiuration
374 * Input:
375 * active - LED group.
376 * Output:
377 * None
378 * Return:
379 * RT_ERR_OK - OK
380 * RT_ERR_FAILED - Failed
381 * RT_ERR_SMI - SMI access error
382 * RT_ERR_INPUT - Invalid input parameters.
383 * Note:
384 * The API can set LED serial mode active congiuration.
385 */
386 extern rtk_api_ret_t rtk_led_serialMode_set(rtk_led_active_t active);
387
388 /* Function Name:
389 * rtk_led_serialMode_get
390 * Description:
391 * Get Led group congiuration mode
392 * Input:
393 * group - LED group.
394 * Output:
395 * pConfig - LED configuration.
396 * Return:
397 * RT_ERR_OK - OK
398 * RT_ERR_FAILED - Failed
399 * RT_ERR_SMI - SMI access error
400 * RT_ERR_INPUT - Invalid input parameters.
401 * Note:
402 * The API can get LED serial mode active configuration.
403 */
404 extern rtk_api_ret_t rtk_led_serialMode_get(rtk_led_active_t *pActive);
405
406 /* Function Name:
407 * rtk_led_OutputEnable_set
408 * Description:
409 * This API set LED I/O state.
410 * Input:
411 * enabled - LED I/O state
412 * Output:
413 * None.
414 * Return:
415 * RT_ERR_OK - OK
416 * RT_ERR_FAILED - Failed
417 * RT_ERR_SMI - SMI access error
418 * RT_ERR_INPUT - Error parameter
419 * Note:
420 * This API set LED I/O state.
421 */
422 extern rtk_api_ret_t rtk_led_OutputEnable_set(rtk_enable_t state);
423
424
425 /* Function Name:
426 * rtk_led_OutputEnable_get
427 * Description:
428 * This API get LED I/O state.
429 * Input:
430 * None.
431 * Output:
432 * pEnabled - LED I/O state
433 * Return:
434 * RT_ERR_OK - OK
435 * RT_ERR_FAILED - Failed
436 * RT_ERR_SMI - SMI access error
437 * RT_ERR_INPUT - Error parameter
438 * Note:
439 * This API set current LED I/O state.
440 */
441 extern rtk_api_ret_t rtk_led_OutputEnable_get(rtk_enable_t *pState);
442
443 /* Function Name:
444 * rtk_led_serialModePortmask_set
445 * Description:
446 * This API configure Serial LED output Group and portmask
447 * Input:
448 * output - output group
449 * pPortmask - output portmask
450 * Output:
451 * None.
452 * Return:
453 * RT_ERR_OK - OK
454 * RT_ERR_FAILED - Failed
455 * RT_ERR_SMI - SMI access error
456 * RT_ERR_INPUT - Error parameter
457 * Note:
458 * None.
459 */
460 extern rtk_api_ret_t rtk_led_serialModePortmask_set(rtk_led_serialOutput_t output, rtk_portmask_t *pPortmask);
461
462 /* Function Name:
463 * rtk_led_serialModePortmask_get
464 * Description:
465 * This API get Serial LED output Group and portmask
466 * Input:
467 * None.
468 * Output:
469 * pOutput - output group
470 * pPortmask - output portmask
471 * Return:
472 * RT_ERR_OK - OK
473 * RT_ERR_FAILED - Failed
474 * RT_ERR_SMI - SMI access error
475 * RT_ERR_INPUT - Error parameter
476 * Note:
477 * None.
478 */
479 extern rtk_api_ret_t rtk_led_serialModePortmask_get(rtk_led_serialOutput_t *pOutput, rtk_portmask_t *pPortmask);
480
481 #endif /* __RTK_API_LED_H__ */