Add toolchain and mbtk source
Change-Id: Ie12546301367ea59240bf23d5e184ad7e36e40b3
diff --git a/mbtk/include/ql/ql_sgmii.h b/mbtk/include/ql/ql_sgmii.h
new file mode 100755
index 0000000..292ab8c
--- /dev/null
+++ b/mbtk/include/ql/ql_sgmii.h
@@ -0,0 +1,162 @@
+/**
+ * @file ql_sgmii.h
+ * @brief Quectel Openlinux SGMII public function declarations.
+ *
+ * @note
+ *
+ * @copyright Copyright (c) 2009-2017 @ Quectel Wireless Solutions Co., Ltd.
+ */
+
+#ifndef __QL_SGMII_H__
+#define __QL_SGMII_H__
+#include "mbtk_type.h"
+
+
+typedef enum {
+ QL_SGMII_AUTONEG_OFF = 0,
+ QL_SGMII_AUTONEG_ON
+} ql_sgmii_autoneg_e;
+
+typedef enum {
+ QL_SGMII_SPEED_10MHZ = 0,
+ QL_SGMII_SPEED_100MHZ,
+ QL_SGMII_SPEED_1000MHZ /* this speed can not support */
+} ql_sgmii_speed_e;
+
+typedef enum {
+ QL_SGMII_DUPLEX_FULL = 0,
+ QL_SGMII_DUPLEX_HALF
+} ql_sgmii_duplex_e;
+
+struct ql_sgmii_info {
+ ql_sgmii_autoneg_e autoneg;
+ ql_sgmii_speed_e speed;
+ ql_sgmii_duplex_e duplex;
+ unsigned long tx_bytes;
+ unsigned long rx_bytes;
+ unsigned long tx_pkts;
+ unsigned long rx_pkts;
+};
+
+/**
+ * Enables the SGMII ethernet module.
+ *
+ * @param None
+ *
+ * @return
+ * On success, 0 is returned. On error, -1 is returned.
+ *
+ */
+extern int ql_sgmii_enable(void);
+
+/**
+ * Disable the SGMII ethernet module.
+ *
+ * @param None
+ *
+ * @return
+ * On success, 0 is returned. On error, -1 is returned.
+ *
+ */
+extern int ql_sgmii_disable(void);
+
+/**
+ * Set the SGMII ethernet configuration: the ethernet auto negotiation configuration.
+ *
+ * @param [in] auto negotiation
+ *
+ * @return
+ * On success, 0 is returned. On error, -1 is returned.
+ *
+ * @dependencies
+ * the ql_sgmii_enable must be set enable
+ *
+ */
+extern int ql_sgmii_autoneg_set(ql_sgmii_autoneg_e autoneg);
+
+/**
+ * Get the SGMII ethernet configuration: the ethernet auto negotiation configuration.
+ *
+ * @param [out] auto negotiation
+ *
+ * @return
+ * On success, 0 is returned. On error, -1 is returned.
+ *
+ * @dependencies
+ * the ql_sgmii_enable must be set enable
+ *
+ */
+extern int ql_sgmii_autoneg_get(ql_sgmii_autoneg_e *autoneg);
+
+/**
+ * Set the SGMII ethernet configuration: the ethernet speed configuration.
+ *
+ * @param [in] ethernet speed
+ *
+ * @return
+ * On success, 0 is returned. On error, -1 is returned.
+ *
+ * @dependencies
+ * the ql_sgmii_enable must be set enable
+ *
+ */
+extern int ql_sgmii_speed_set(ql_sgmii_speed_e speed);
+
+/**
+ * Get the SGMII ethernet configuration: the ethernet speed configuration.
+ *
+ * @param [out] the ethernet current speed
+ *
+ * @return
+ * On success, 0 is returned. On error, -1 is returned.
+ *
+ * @dependencies
+ * the ql_sgmii_enable must be set enable
+ *
+ */
+extern int ql_sgmii_speed_get(ql_sgmii_speed_e *speed);
+
+/**
+ * Set the SGMII ethernet configuration: the ethernet duplex configuration.
+ *
+ * @param [in] ethernet duplex
+ *
+ * @return
+ * On success, 0 is returned. On error, -1 is returned.
+ *
+ * @dependencies
+ * the ql_sgmii_enable must be set enable
+ *
+ */
+extern int ql_sgmii_duplex_set(ql_sgmii_duplex_e duplex);
+
+/**
+ * Get the SGMII ethernet configuration: the ethernet duplex configuration.
+ *
+ * @param [out] the ethernet current duplex
+ *
+ * @return
+ * On success, 0 is returned. On error, -1 is returned.
+ *
+ * @dependencies
+ * the ql_sgmii_enable must be set enable
+ *
+ */
+extern int ql_sgmii_duplex_get(ql_sgmii_duplex_e *duplex);
+
+/**
+ * Get the sgmii ethernet information: transmit and receive bytes, transmit and receive packets, speed, duplex.
+ *
+ * @param [out] the ethernet information
+ *
+ * @return
+ * On success, 0 is returned. On error, -1 is returned.
+ *
+ * @dependencies
+ * the ql_sgmii_enable must be set enable
+ *
+ */
+extern int ql_smgii_info_get(struct ql_sgmii_info *info);
+
+
+#endif /* end of __QL_SGMII_H__ */