2 * Copyright (C) 2013 Realtek Semiconductor Corp.
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
10 * Purpose : RTL8367/RTL8367C switch high-level API
12 * Feature : The file includes LED module high-layer API defination
16 #ifndef __RTK_API_LED_H__
17 #define __RTK_API_LED_H__
19 typedef enum rtk_led_operation_e
28 typedef enum rtk_led_active_e
35 typedef enum rtk_led_config_e
43 LED_CONFIG_SPD1000ACT
,
46 LED_CONFIG_SPD10010ACT
,
47 LED_CONFIG_LOOPDETECT
,
56 typedef struct rtk_led_ability_s
58 rtk_enable_t link_10m
;
59 rtk_enable_t link_100m
;
60 rtk_enable_t link_500m
;
61 rtk_enable_t link_1000m
;
66 typedef enum rtk_led_blink_rate_e
77 }rtk_led_blink_rate_t
;
79 typedef enum rtk_led_group_e
88 typedef enum rtk_led_force_mode_e
95 }rtk_led_force_mode_t
;
97 typedef enum rtk_led_serialOutput_e
104 }rtk_led_serialOutput_t
;
110 * Set Led enable congiuration
112 * group - LED group id.
113 * pPortmask - LED enable port mask.
118 * RT_ERR_FAILED - Failed
119 * RT_ERR_SMI - SMI access error
120 * RT_ERR_INPUT - Invalid input parameters.
122 * The API can be used to enable LED per port per group.
124 extern rtk_api_ret_t
rtk_led_enable_set(rtk_led_group_t group
, rtk_portmask_t
*pPortmask
);
129 * Get Led enable congiuration
131 * group - LED group id.
133 * pPortmask - LED enable port mask.
136 * RT_ERR_FAILED - Failed
137 * RT_ERR_SMI - SMI access error
138 * RT_ERR_INPUT - Invalid input parameters.
140 * The API can be used to get LED enable status.
142 extern rtk_api_ret_t
rtk_led_enable_get(rtk_led_group_t group
, rtk_portmask_t
*pPortmask
);
145 * rtk_led_operation_set
147 * Set Led operation mode
149 * mode - LED operation mode.
154 * RT_ERR_FAILED - Failed
155 * RT_ERR_SMI - SMI access error
156 * RT_ERR_INPUT - Invalid input parameters.
158 * The API can set Led operation mode.
159 * The modes that can be set are as following:
164 extern rtk_api_ret_t
rtk_led_operation_set(rtk_led_operation_t mode
);
167 * rtk_led_operation_get
169 * Get Led operation mode
173 * pMode - Support LED operation mode.
176 * RT_ERR_FAILED - Failed
177 * RT_ERR_SMI - SMI access error
178 * RT_ERR_INPUT - Invalid input parameters.
180 * The API can get Led operation mode.
181 * The modes that can be set are as following:
186 extern rtk_api_ret_t
rtk_led_operation_get(rtk_led_operation_t
*pMode
);
189 * rtk_led_modeForce_set
191 * Set Led group to congiuration force mode
194 * group - Support LED group id.
195 * mode - Support LED force mode.
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
205 * The API can force to one force mode.
206 * The force modes that can be set are as following:
207 * - LED_FORCE_NORMAL,
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
);
215 * rtk_led_modeForce_get
217 * Get Led group to congiuration force mode
220 * group - Support LED group id.
221 * pMode - Support LED force mode.
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
231 * The API can get forced Led group mode.
232 * The force modes that can be set are as following:
233 * - LED_FORCE_NORMAL,
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
);
241 * rtk_led_blinkRate_set
243 * Set LED blinking rate
245 * blinkRate - blinking rate.
250 * RT_ERR_FAILED - Failed
251 * RT_ERR_SMI - SMI access error
252 * RT_ERR_INPUT - Invalid input parameters.
254 * ASIC support 6 types of LED blinking rates at 43ms, 84ms, 120ms, 170ms, 340ms and 670ms.
256 extern rtk_api_ret_t
rtk_led_blinkRate_set(rtk_led_blink_rate_t blinkRate
);
259 * rtk_led_blinkRate_get
261 * Get LED blinking rate at mode 0 to mode 3
265 * pBlinkRate - blinking rate.
268 * RT_ERR_FAILED - Failed
269 * RT_ERR_SMI - SMI access error
270 * RT_ERR_INPUT - Invalid input parameters.
272 * There are 6 types of LED blinking rates at 43ms, 84ms, 120ms, 170ms, 340ms and 670ms.
274 extern rtk_api_ret_t
rtk_led_blinkRate_get(rtk_led_blink_rate_t
*pBlinkRate
);
277 * rtk_led_groupConfig_set
279 * Set per group Led to congiuration mode
282 * config - LED configuration
287 * RT_ERR_FAILED - Failed
288 * RT_ERR_SMI - SMI access error
289 * RT_ERR_INPUT - Invalid input parameters.
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.
310 extern rtk_api_ret_t
rtk_led_groupConfig_set(rtk_led_group_t group
, rtk_led_congig_t config
);
313 * rtk_led_groupConfig_get
315 * Get Led group congiuration mode
319 * pConfig - LED configuration.
322 * RT_ERR_FAILED - Failed
323 * RT_ERR_SMI - SMI access error
324 * RT_ERR_INPUT - Invalid input parameters.
326 * The API can get LED indicated information configuration for each LED group.
328 extern rtk_api_ret_t
rtk_led_groupConfig_get(rtk_led_group_t group
, rtk_led_congig_t
*pConfig
);
331 * rtk_led_groupAbility_set
333 * Configure per group Led ability
336 * pAbility - LED ability
341 * RT_ERR_FAILED - Failed
342 * RT_ERR_SMI - SMI access error
343 * RT_ERR_INPUT - Invalid input parameters.
348 extern rtk_api_ret_t
rtk_led_groupAbility_set(rtk_led_group_t group
, rtk_led_ability_t
*pAbility
);
351 * rtk_led_groupAbility_get
353 * Get per group Led ability
356 * pAbility - LED ability
361 * RT_ERR_FAILED - Failed
362 * RT_ERR_SMI - SMI access error
363 * RT_ERR_INPUT - Invalid input parameters.
368 extern rtk_api_ret_t
rtk_led_groupAbility_get(rtk_led_group_t group
, rtk_led_ability_t
*pAbility
);
371 * rtk_led_serialMode_set
373 * Set Led serial mode active congiuration
375 * active - LED group.
380 * RT_ERR_FAILED - Failed
381 * RT_ERR_SMI - SMI access error
382 * RT_ERR_INPUT - Invalid input parameters.
384 * The API can set LED serial mode active congiuration.
386 extern rtk_api_ret_t
rtk_led_serialMode_set(rtk_led_active_t active
);
389 * rtk_led_serialMode_get
391 * Get Led group congiuration mode
395 * pConfig - LED configuration.
398 * RT_ERR_FAILED - Failed
399 * RT_ERR_SMI - SMI access error
400 * RT_ERR_INPUT - Invalid input parameters.
402 * The API can get LED serial mode active configuration.
404 extern rtk_api_ret_t
rtk_led_serialMode_get(rtk_led_active_t
*pActive
);
407 * rtk_led_OutputEnable_set
409 * This API set LED I/O state.
411 * enabled - LED I/O state
416 * RT_ERR_FAILED - Failed
417 * RT_ERR_SMI - SMI access error
418 * RT_ERR_INPUT - Error parameter
420 * This API set LED I/O state.
422 extern rtk_api_ret_t
rtk_led_OutputEnable_set(rtk_enable_t state
);
426 * rtk_led_OutputEnable_get
428 * This API get LED I/O state.
432 * pEnabled - LED I/O state
435 * RT_ERR_FAILED - Failed
436 * RT_ERR_SMI - SMI access error
437 * RT_ERR_INPUT - Error parameter
439 * This API set current LED I/O state.
441 extern rtk_api_ret_t
rtk_led_OutputEnable_get(rtk_enable_t
*pState
);
444 * rtk_led_serialModePortmask_set
446 * This API configure Serial LED output Group and portmask
448 * output - output group
449 * pPortmask - output portmask
454 * RT_ERR_FAILED - Failed
455 * RT_ERR_SMI - SMI access error
456 * RT_ERR_INPUT - Error parameter
460 extern rtk_api_ret_t
rtk_led_serialModePortmask_set(rtk_led_serialOutput_t output
, rtk_portmask_t
*pPortmask
);
463 * rtk_led_serialModePortmask_get
465 * This API get Serial LED output Group and portmask
469 * pOutput - output group
470 * pPortmask - output portmask
473 * RT_ERR_FAILED - Failed
474 * RT_ERR_SMI - SMI access error
475 * RT_ERR_INPUT - Error parameter
479 extern rtk_api_ret_t
rtk_led_serialModePortmask_get(rtk_led_serialOutput_t
*pOutput
, rtk_portmask_t
*pPortmask
);
481 #endif /* __RTK_API_LED_H__ */