aboutsummaryrefslogtreecommitdiffstats
path: root/target/linux/mediatek/files-5.10/drivers/net/phy/rtk/rtl8367c/include/interrupt.h
diff options
context:
space:
mode:
Diffstat (limited to 'target/linux/mediatek/files-5.10/drivers/net/phy/rtk/rtl8367c/include/interrupt.h')
-rw-r--r--target/linux/mediatek/files-5.10/drivers/net/phy/rtk/rtl8367c/include/interrupt.h254
1 files changed, 254 insertions, 0 deletions
diff --git a/target/linux/mediatek/files-5.10/drivers/net/phy/rtk/rtl8367c/include/interrupt.h b/target/linux/mediatek/files-5.10/drivers/net/phy/rtk/rtl8367c/include/interrupt.h
new file mode 100644
index 0000000000..f2689ebc70
--- /dev/null
+++ b/target/linux/mediatek/files-5.10/drivers/net/phy/rtk/rtl8367c/include/interrupt.h
@@ -0,0 +1,254 @@
+/*
+ * Copyright (C) 2013 Realtek Semiconductor Corp.
+ * All Rights Reserved.
+ *
+ * Unless you and Realtek execute a separate written software license
+ * agreement governing use of this software, this software is licensed
+ * to you under the terms of the GNU General Public License version 2,
+ * available at https://www.gnu.org/licenses/old-licenses/gpl-2.0.txt
+ *
+ * Purpose : RTL8367/RTL8367C switch high-level API
+ *
+ * Feature : The file includes Interrupt module high-layer API defination
+ *
+ */
+
+#ifndef __RTK_API_INTERRUPT_H__
+#define __RTK_API_INTERRUPT_H__
+
+
+/*
+ * Data Type Declaration
+ */
+#define RTK_MAX_NUM_OF_INTERRUPT_TYPE 1
+
+
+typedef struct rtk_int_status_s
+{
+ rtk_uint16 value[RTK_MAX_NUM_OF_INTERRUPT_TYPE];
+} rtk_int_status_t;
+
+typedef struct rtk_int_info_s
+{
+ rtk_portmask_t portMask;
+ rtk_uint32 meterMask;
+ rtk_uint32 systemLearnOver;
+}rtk_int_info_t;
+
+typedef enum rtk_int_type_e
+{
+ INT_TYPE_LINK_STATUS = 0,
+ INT_TYPE_METER_EXCEED,
+ INT_TYPE_LEARN_LIMIT,
+ INT_TYPE_LINK_SPEED,
+ INT_TYPE_CONGEST,
+ INT_TYPE_GREEN_FEATURE,
+ INT_TYPE_LOOP_DETECT,
+ INT_TYPE_8051,
+ INT_TYPE_CABLE_DIAG,
+ INT_TYPE_ACL,
+ INT_TYPE_RESERVED, /* Unused */
+ INT_TYPE_SLIENT,
+ INT_TYPE_END
+}rtk_int_type_t;
+
+typedef enum rtk_int_advType_e
+{
+ ADV_L2_LEARN_PORT_MASK = 0,
+ ADV_SPEED_CHANGE_PORT_MASK,
+ ADV_SPECIAL_CONGESTION_PORT_MASK,
+ ADV_PORT_LINKDOWN_PORT_MASK,
+ ADV_PORT_LINKUP_PORT_MASK,
+ ADV_METER_EXCEED_MASK,
+ ADV_RLDP_LOOPED,
+ ADV_RLDP_RELEASED,
+ ADV_END,
+} rtk_int_advType_t;
+
+typedef enum rtk_int_polarity_e
+{
+ INT_POLAR_HIGH = 0,
+ INT_POLAR_LOW,
+ INT_POLAR_END
+} rtk_int_polarity_t;
+
+/* Function Name:
+ * rtk_int_polarity_set
+ * Description:
+ * Set interrupt polarity configuration.
+ * Input:
+ * type - Interruptpolarity type.
+ * Output:
+ * None
+ * Return:
+ * RT_ERR_OK - OK
+ * RT_ERR_FAILED - Failed
+ * RT_ERR_SMI - SMI access error
+ * RT_ERR_INPUT - Invalid input parameters.
+ * Note:
+ * The API can set interrupt polarity configuration.
+ */
+extern rtk_api_ret_t rtk_int_polarity_set(rtk_int_polarity_t type);
+
+/* Function Name:
+ * rtk_int_polarity_get
+ * Description:
+ * Get interrupt polarity configuration.
+ * Input:
+ * None
+ * Output:
+ * pType - Interruptpolarity type.
+ * Return:
+ * RT_ERR_OK - OK
+ * RT_ERR_FAILED - Failed
+ * RT_ERR_SMI - SMI access error
+ * Note:
+ * The API can get interrupt polarity configuration.
+ */
+extern rtk_api_ret_t rtk_int_polarity_get(rtk_int_polarity_t *pType);
+
+/* Function Name:
+ * rtk_int_control_set
+ * Description:
+ * Set interrupt trigger status configuration.
+ * Input:
+ * type - Interrupt type.
+ * enable - Interrupt status.
+ * Output:
+ * None
+ * Return:
+ * RT_ERR_OK - OK
+ * RT_ERR_FAILED - Failed
+ * RT_ERR_SMI - SMI access error
+ * RT_ERR_INPUT - Invalid input parameters.
+ * RT_ERR_ENABLE - Invalid enable input.
+ * Note:
+ * The API can set interrupt status configuration.
+ * The interrupt trigger status is shown in the following:
+ * - INT_TYPE_LINK_STATUS
+ * - INT_TYPE_METER_EXCEED
+ * - INT_TYPE_LEARN_LIMIT
+ * - INT_TYPE_LINK_SPEED
+ * - INT_TYPE_CONGEST
+ * - INT_TYPE_GREEN_FEATURE
+ * - INT_TYPE_LOOP_DETECT
+ * - INT_TYPE_8051,
+ * - INT_TYPE_CABLE_DIAG,
+ * - INT_TYPE_ACL,
+ * - INT_TYPE_SLIENT
+ */
+extern rtk_api_ret_t rtk_int_control_set(rtk_int_type_t type, rtk_enable_t enable);
+
+/* Function Name:
+ * rtk_int_control_get
+ * Description:
+ * Get interrupt trigger status configuration.
+ * Input:
+ * type - Interrupt type.
+ * Output:
+ * pEnable - Interrupt status.
+ * Return:
+ * RT_ERR_OK - OK
+ * RT_ERR_FAILED - Failed
+ * RT_ERR_SMI - SMI access error
+ * RT_ERR_INPUT - Invalid input parameters.
+ * Note:
+ * The API can get interrupt status configuration.
+ * The interrupt trigger status is shown in the following:
+ * - INT_TYPE_LINK_STATUS
+ * - INT_TYPE_METER_EXCEED
+ * - INT_TYPE_LEARN_LIMIT
+ * - INT_TYPE_LINK_SPEED
+ * - INT_TYPE_CONGEST
+ * - INT_TYPE_GREEN_FEATURE
+ * - INT_TYPE_LOOP_DETECT
+ * - INT_TYPE_8051,
+ * - INT_TYPE_CABLE_DIAG,
+ * - INT_TYPE_ACL,
+ * - INT_TYPE_SLIENT
+ */
+extern rtk_api_ret_t rtk_int_control_get(rtk_int_type_t type, rtk_enable_t* pEnable);
+
+/* Function Name:
+ * rtk_int_status_set
+ * Description:
+ * Set interrupt trigger status to clean.
+ * Input:
+ * None
+ * Output:
+ * pStatusMask - Interrupt status bit mask.
+ * Return:
+ * RT_ERR_OK - OK
+ * RT_ERR_FAILED - Failed
+ * RT_ERR_SMI - SMI access error
+ * RT_ERR_INPUT - Invalid input parameters.
+ * Note:
+ * The API can clean interrupt trigger status when interrupt happened.
+ * The interrupt trigger status is shown in the following:
+ * - INT_TYPE_LINK_STATUS (value[0] (Bit0))
+ * - INT_TYPE_METER_EXCEED (value[0] (Bit1))
+ * - INT_TYPE_LEARN_LIMIT (value[0] (Bit2))
+ * - INT_TYPE_LINK_SPEED (value[0] (Bit3))
+ * - INT_TYPE_CONGEST (value[0] (Bit4))
+ * - INT_TYPE_GREEN_FEATURE (value[0] (Bit5))
+ * - INT_TYPE_LOOP_DETECT (value[0] (Bit6))
+ * - INT_TYPE_8051 (value[0] (Bit7))
+ * - INT_TYPE_CABLE_DIAG (value[0] (Bit8))
+ * - INT_TYPE_ACL (value[0] (Bit9))
+ * - INT_TYPE_SLIENT (value[0] (Bit11))
+ * The status will be cleared after execute this API.
+ */
+extern rtk_api_ret_t rtk_int_status_set(rtk_int_status_t *pStatusMask);
+
+/* Function Name:
+ * rtk_int_status_get
+ * Description:
+ * Get interrupt trigger status.
+ * Input:
+ * None
+ * Output:
+ * pStatusMask - Interrupt status bit mask.
+ * Return:
+ * RT_ERR_OK - OK
+ * RT_ERR_FAILED - Failed
+ * RT_ERR_SMI - SMI access error
+ * RT_ERR_INPUT - Invalid input parameters.
+ * Note:
+ * The API can get interrupt trigger status when interrupt happened.
+ * The interrupt trigger status is shown in the following:
+ * - INT_TYPE_LINK_STATUS (value[0] (Bit0))
+ * - INT_TYPE_METER_EXCEED (value[0] (Bit1))
+ * - INT_TYPE_LEARN_LIMIT (value[0] (Bit2))
+ * - INT_TYPE_LINK_SPEED (value[0] (Bit3))
+ * - INT_TYPE_CONGEST (value[0] (Bit4))
+ * - INT_TYPE_GREEN_FEATURE (value[0] (Bit5))
+ * - INT_TYPE_LOOP_DETECT (value[0] (Bit6))
+ * - INT_TYPE_8051 (value[0] (Bit7))
+ * - INT_TYPE_CABLE_DIAG (value[0] (Bit8))
+ * - INT_TYPE_ACL (value[0] (Bit9))
+ * - INT_TYPE_SLIENT (value[0] (Bit11))
+ *
+ */
+extern rtk_api_ret_t rtk_int_status_get(rtk_int_status_t* pStatusMask);
+
+/* Function Name:
+ * rtk_int_advanceInfo_get
+ * Description:
+ * Get interrupt advanced information.
+ * Input:
+ * adv_type - Advanced interrupt type.
+ * Output:
+ * info - Information per type.
+ * Return:
+ * RT_ERR_OK - OK
+ * RT_ERR_FAILED - Failed
+ * RT_ERR_SMI - SMI access error
+ * RT_ERR_INPUT - Invalid input parameters.
+ * Note:
+ * This API can get advanced information when interrupt happened.
+ * The status will be cleared after execute this API.
+ */
+extern rtk_api_ret_t rtk_int_advanceInfo_get(rtk_int_advType_t adv_type, rtk_int_info_t* info);
+
+
+#endif /* __RTK_API_INTERRUPT_H__ */