[Feature]Upload Modem source code
Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/driver/devdrv/gpio/inc/drv_gpio.h b/mcu/driver/devdrv/gpio/inc/drv_gpio.h
new file mode 100644
index 0000000..493f42f
--- /dev/null
+++ b/mcu/driver/devdrv/gpio/inc/drv_gpio.h
@@ -0,0 +1,446 @@
+
+#ifndef GPIO_DRV_07_13_11
+#define GPIO_DRV_07_13_11
+
+#include "drv_comm.h"
+#include "dcl.h"
+
+#define BU_G_FLD(_i,_ms,_ls) (((_i)<<(31-(_ms))) >> (31- (_ms) + (_ls)))
+#define BU_G_BIT(_i,_n) BU_G_FLD(_i, _n, _n)
+
+#ifdef __DRV_GPIO_REG_DBG__
+
+#define DRV_GPIO_WriteReg(addr,data) DRV_DBG_WriteReg32(addr,data)
+#define DRV_GPIO_Reg(addr) DRV_DBG_Reg32(addr)
+#define DRV_GPIO_WriteReg32(addr,data) DRV_DBG_WriteReg32(addr,data)
+#define DRV_GPIO_Reg32(addr) DRV_DBG_Reg32(addr)
+#define DRV_GPIO_WriteReg8(addr,data) DRV_DBG_WriteReg8(addr,data)
+#define DRV_GPIO_Reg8(addr) DRV_DBG_Reg8(addr)
+
+
+#define DRV_GPIO_ClearBits(addr,data) DRV_DBG_ClearBits(addr,data)
+#define DRV_GPIO_SetBits(addr,data) DRV_DBG_SetBits(addr,data)
+#define DRV_GPIO_ClearBits32(addr,data) DRV_DBG_ClearBits32(addr,data)
+#define DRV_GPIO_SetBits32(addr,data) DRV_DBG_SetBits32(addr,data)
+#define DRV_GPIO_ClearBits8(addr,data) DRV_DBG_ClearBits8(addr,data)
+#define DRV_GPIO_SetBits8(addr,data) DRV_DBG_SetBits8(addr,data)
+
+#define DRV_GPIO_SetData(addr, bitmask, value) DRV_DBG_SetData(addr, bitmask, value)
+#define DRV_GPIO_SetData32(addr, bitmask, value) DRV_DBG_SetData32(addr, bitmask, value)
+#define DRV_GPIO_SetData8(addr, bitmask, value) DRV_DBG_SetData8(addr, bitmask, value)
+
+#else //__DRV_GPIO_REG_DBG__
+
+#define DRV_GPIO_WriteReg(addr,data) DRV_WriteReg32(addr,data)
+#define DRV_GPIO_Reg(addr) DRV_Reg32(addr)
+#define DRV_GPIO_WriteReg32(addr,data) DRV_WriteReg32(addr,data)
+#define DRV_GPIO_Reg32(addr) DRV_Reg32(addr)
+#define DRV_GPIO_WriteReg8(addr,data) DRV_WriteReg8(addr,data)
+#define DRV_GPIO_Reg8(addr) DRV_Reg8(addr)
+
+
+#define DRV_GPIO_ClearBits(addr,data) DRV_ClearBits32(addr,data)
+#define DRV_GPIO_SetBits(addr,data) DRV_DBGD_SetBits32(addr,data)
+#define DRV_GPIO_ClearBits32(addr,data) DRV_ClearBits32(addr,data)
+#define DRV_GPIO_SetBits32(addr,data) DRV_DBGD_SetBits32(addr,data)
+#define DRV_GPIO_ClearBits8(addr,data) DRV_ClearBits8(addr,data)
+#define DRV_GPIO_SetBits8(addr,data) DRV_SetBits8(addr,data)
+
+#define DRV_GPIO_SetData(addr, bitmask, value) DRV_SetData32(addr, bitmask, value)
+#define DRV_GPIO_SetData32(addr, bitmask, value) DRV_SetData32(addr, bitmask, value)
+#define DRV_GPIO_SetData8(addr, bitmask, value) DRV_SetData8(addr, bitmask, value)
+
+#endif //__DRV_GPIO_REG_DBG__
+
+#ifdef __MTK_TARGET__
+#define EN_GPIO_PRINTF 1
+
+#if EN_GPIO_PRINTF
+extern void dbg_print(char *fmt,...);
+
+#define GPIO_PRINT(fmt, var ...) do {dbg_print(fmt"\n\r", ##var);} while (0)
+#define GPIO_PRINTN(fmt, var ...) do {dbg_print(fmt, ##var);} while (0)
+#define GPIO_ERR(fmt, var ...) do {GPIO_PRINT("ERROR [%s:%d]"fmt, __FUNCTION__, __LINE__, ##var);} while (0)
+#define GPIO_WARN(fmt, var ...) do {GPIO_PRINT("WARNING [%s:%d]"fmt, __FUNCTION__, __LINE__, ##var);} while (0)
+#else
+#define GPIO_PRINT(fmt, var ...)
+#define GPIO_PRINTN(fmt, var ...)
+#define GPIO_ERR(fmt, var ...)
+#define GPIO_WARN(fmt, var ...)
+#endif
+#endif
+#define REG32(addr) (*((volatile unsigned int*)(addr)))
+#define REG32_WRITE(addr, value) do {(*((volatile unsigned int*)(addr))) = (unsigned int)(value);}while (0)
+
+#define GPIO_OK (0)
+#define GPIO_FAIL (-1)
+#if defined(MT6763)
+#define GPIO_PIN_MAX 151
+#elif defined(MT6739)
+#define GPIO_PIN_MAX 167
+#elif defined(MT6771) || defined(MT6765)
+#define GPIO_PIN_MAX 179
+#elif defined(MT6295M)
+#define GPIO_PIN_MAX 63
+#elif defined(MT3967)
+#define GPIO_PIN_MAX 189
+#elif defined(MT6779)
+#define GPIO_PIN_MAX 202
+#elif defined(MT6297)||defined(MERCURY)
+#define GPIO_PIN_MAX 149
+#elif defined(MT6885)||defined(MT6873)||defined(MT6877)
+#define GPIO_PIN_MAX 223
+#elif defined(MT6853)||defined(MT6833)
+#define GPIO_PIN_MAX 202
+#elif defined(CHIP10992)
+#define GPIO_PIN_MAX 234
+#endif
+#define GPIO_AS_INPUT 0
+#define GPIO_AS_OUTPUT 1
+#define GPIO_DISABLE 0
+#define GPIO_ENABLE 1
+#define GPIO_PULL_DOWN 0
+#define GPIO_PULL_UP 1
+#define GPIO_OUTPUT_LOW 0
+#define GPIO_OUTPUT_HIGH 1
+#define GPIO_OWNERSHIP_AP 1
+#define GPIO_OWNERSHIP_MD 0
+#define GPIO_DRIVE_NUM_PER_REG 16
+#define GPIO_DRIVE_BIT_NUM 2
+
+//#define GPIO_BASE_ADDR BASE_ADDR_MDGPIO
+//#define GPIOMUX_BASE_ADDR BASE_ADDR_GPIOMUX
+
+#if defined(MT6763)||defined(MT6739)||defined(MT6771)|| defined(MT6765) || defined(MT6295M)|| defined(MT3967)||defined(MT6779)||defined(MT6297)||defined(MT6885)||defined(MERCURY)||defined(MT6873)||defined(MT6853)||defined(MT6833)||defined(MT6877)||defined(CHIP10992)
+#define BASE_MADDR_GPIO BASE_ADDR_AP_GPIOMUX
+typedef enum {
+ GPIO_PIN0=0,
+ GPIO_PIN1,
+ GPIO_PIN2,
+ GPIO_PIN3,
+ GPIO_PIN4,
+ GPIO_PIN5,
+ GPIO_PIN6,
+ GPIO_PIN7,
+ GPIO_PIN8,
+ GPIO_PIN9,
+ GPIO_PIN10,
+ GPIO_PIN11,
+ GPIO_PIN12,
+ GPIO_PIN13,
+ GPIO_PIN14,
+ GPIO_PIN15,
+ GPIO_PIN16,
+ GPIO_PIN17,
+ GPIO_PIN18,
+ GPIO_PIN19,
+ GPIO_PIN20,
+ GPIO_PIN21,
+ GPIO_PIN22,
+ GPIO_PIN23,
+ GPIO_PIN24,
+ GPIO_PIN25,
+ GPIO_PIN26,
+ GPIO_PIN27,
+ GPIO_PIN28,
+ GPIO_PIN29,
+ GPIO_PIN30,
+ GPIO_PIN31,
+ GPIO_PIN32,
+ GPIO_PIN33,
+ GPIO_PIN34,
+ GPIO_PIN35,
+ GPIO_PIN36,
+ GPIO_PIN37,
+ GPIO_PIN38,
+ GPIO_PIN39,
+ GPIO_PIN40,
+ GPIO_PIN41,
+ GPIO_PIN42,
+ GPIO_PIN43,
+ GPIO_PIN44,
+ GPIO_PIN45,
+ GPIO_PIN46,
+ GPIO_PIN47,
+ GPIO_PIN48,
+ GPIO_PIN49,
+ GPIO_PIN50,
+ GPIO_PIN51,
+ GPIO_PIN52,
+ GPIO_PIN53,
+ GPIO_PIN54,
+ GPIO_PIN55,
+ GPIO_PIN56,
+ GPIO_PIN57,
+ GPIO_PIN58,
+ GPIO_PIN59,
+ GPIO_PIN60,
+ GPIO_PIN61,
+ GPIO_PIN62,
+ GPIO_PIN63,
+ GPIO_PIN64,
+ GPIO_PIN65,
+ GPIO_PIN66,
+ GPIO_PIN67,
+ GPIO_PIN68,
+ GPIO_PIN69,
+ GPIO_PIN70,
+ GPIO_PIN71,
+ GPIO_PIN72,
+ GPIO_PIN73,
+ GPIO_PIN74,
+ GPIO_PIN75,
+ GPIO_PIN76,
+ GPIO_PIN77,
+ GPIO_PIN78,
+ GPIO_PIN79,
+ GPIO_PIN80,
+ GPIO_PIN81,
+ GPIO_PIN82,
+ GPIO_PIN83,
+ GPIO_PIN84,
+ GPIO_PIN85,
+ GPIO_PIN86,
+ GPIO_PIN87,
+ GPIO_PIN88,
+ GPIO_PIN89,
+ GPIO_PIN90,
+ GPIO_PIN91,
+ GPIO_PIN92,
+ GPIO_PIN93,
+ GPIO_PIN94,
+ GPIO_PIN95,
+ GPIO_PIN96,
+ GPIO_PIN97,
+ GPIO_PIN98,
+ GPIO_PIN99,
+ GPIO_PIN100,
+ GPIO_PIN101,
+ GPIO_PIN102,
+ GPIO_PIN103,
+ GPIO_PIN104,
+ GPIO_PIN105,
+ GPIO_PIN106,
+ GPIO_PIN107,
+ GPIO_PIN108,
+ GPIO_PIN109,
+ GPIO_PIN110,
+ GPIO_PIN111,
+ GPIO_PIN112,
+ GPIO_PIN113,
+ GPIO_PIN114,
+ GPIO_PIN115,
+ GPIO_PIN116,
+ GPIO_PIN117,
+ GPIO_PIN118,
+ GPIO_PIN119,
+ GPIO_PIN120,
+ GPIO_PIN121,
+ GPIO_PIN122,
+ GPIO_PIN123,
+ GPIO_PIN124,
+ GPIO_PIN125,
+ GPIO_PIN126,
+ GPIO_PIN127,
+ GPIO_PIN128,
+ GPIO_PIN129,
+ GPIO_PIN130,
+ GPIO_PIN131,
+ GPIO_PIN132,
+ GPIO_PIN133,
+ GPIO_PIN134,
+ GPIO_PIN135,
+ GPIO_PIN136,
+ GPIO_PIN137,
+ GPIO_PIN138,
+ GPIO_PIN139,
+ GPIO_PIN140,
+ GPIO_PIN141,
+ GPIO_PIN142,
+ GPIO_PIN143,
+ GPIO_PIN144,
+ GPIO_PIN145,
+ GPIO_PIN146,
+ GPIO_PIN147,
+ GPIO_PIN148,
+ GPIO_PIN149,
+#if defined(MT6739)||defined(MT6771)|| defined(MT6765)|| defined(MT3967)||defined(MT6779)||defined(MT6297)||defined(MT6885) ||defined(MERCURY)||defined(MT6873)||defined(MT6853)||defined(MT6833)||defined(MT6877)||defined(CHIP10992)
+ GPIO_PIN150,
+ GPIO_PIN151,
+#endif
+#if defined(MT6739)||defined(MT6771)|| defined(MT6765)|| defined(MT3967)||defined(MT6779)||defined(MT6885)||defined(MT6873)||defined(MT6853)||defined(MT6833)||defined(MT6877)||defined(CHIP10992)
+ GPIO_PIN152,
+ GPIO_PIN153,
+ GPIO_PIN154,
+ GPIO_PIN155,
+ GPIO_PIN156,
+ GPIO_PIN157,
+ GPIO_PIN158,
+ GPIO_PIN159,
+ GPIO_PIN160,
+ GPIO_PIN161,
+ GPIO_PIN162,
+ GPIO_PIN163,
+ GPIO_PIN164,
+ GPIO_PIN165,
+ GPIO_PIN166,
+ GPIO_PIN167,
+#endif
+#if defined(MT6771)|| defined(MT6765)|| defined(MT3967)||defined(MT6779)||defined(MT6885)||defined(MT6873)||defined(MT6853)||defined(MT6833)||defined(MT6877)||defined(CHIP10992)
+ GPIO_PIN168,
+ GPIO_PIN169,
+ GPIO_PIN170,
+ GPIO_PIN171,
+ GPIO_PIN172,
+ GPIO_PIN173,
+ GPIO_PIN174,
+ GPIO_PIN175,
+ GPIO_PIN176,
+ GPIO_PIN177,
+ GPIO_PIN178,
+ GPIO_PIN179,
+#endif
+#if defined(MT3967)||defined(MT6779)||defined(MT6885)||defined(MT6873)||defined(MT6853)||defined(MT6833)||defined(MT6877)||defined(CHIP10992)
+ GPIO_PIN180,
+ GPIO_PIN181,
+ GPIO_PIN182,
+ GPIO_PIN183,
+ GPIO_PIN184,
+ GPIO_PIN185,
+ GPIO_PIN186,
+ GPIO_PIN187,
+ GPIO_PIN188,
+ GPIO_PIN189,
+#endif
+#if defined(MT6779)||defined(MT6885)||defined(MT6873)||defined(MT6853)||defined(MT6833)||defined(MT6877)||defined(CHIP10992)
+ GPIO_PIN190,
+ GPIO_PIN191,
+ GPIO_PIN192,
+ GPIO_PIN193,
+ GPIO_PIN194,
+ GPIO_PIN195,
+ GPIO_PIN196,
+ GPIO_PIN197,
+ GPIO_PIN198,
+ GPIO_PIN199,
+ GPIO_PIN200,
+ GPIO_PIN201,
+ GPIO_PIN202,
+#endif
+#if defined(MT6885)||defined(MT6873)||defined(MT6877)||defined(CHIP10992)
+ GPIO_PIN203,
+ GPIO_PIN204,
+ GPIO_PIN205,
+ GPIO_PIN206,
+ GPIO_PIN207,
+ GPIO_PIN208,
+ GPIO_PIN209,
+ GPIO_PIN210,
+ GPIO_PIN211,
+ GPIO_PIN212,
+ GPIO_PIN213,
+ GPIO_PIN214,
+ GPIO_PIN215,
+ GPIO_PIN216,
+ GPIO_PIN217,
+ GPIO_PIN218,
+ GPIO_PIN219,
+ GPIO_PIN220,
+ GPIO_PIN221,
+ GPIO_PIN222,
+ GPIO_PIN223,
+#endif
+#if defined(CHIP10992)
+ GPIO_PIN224,
+ GPIO_PIN225,
+ GPIO_PIN226,
+ GPIO_PIN227,
+ GPIO_PIN228,
+ GPIO_PIN229,
+ GPIO_PIN230,
+ GPIO_PIN231,
+ GPIO_PIN232,
+ GPIO_PIN233,
+ GPIO_PIN234,
+#endif
+} gpio_pin_e;
+
+ #define GPIO_DIR1 (BASE_MADDR_GPIO+0x0000)
+ #define GPIO_DOUT1 (BASE_MADDR_GPIO+0x0100)
+ #define GPIO_DIN1 (BASE_MADDR_GPIO+0x0200)
+ #define GPIO_MODE1 (BASE_MADDR_GPIO+0x0300)
+
+
+ #define GPIO_DIR1_SET (GPIO_DIR1+0x04)
+ #define GPIO_DOUT1_SET (GPIO_DOUT1+0x04)
+ #define GPIO_MODE1_SET (GPIO_MODE1+0x04)
+ #define GPIO_DIR_SET(_no) (GPIO_DIR1_SET+(0x10*(_no)))
+ #define GPIO_DOUT_SET(_no) (GPIO_DOUT1_SET+(0x10*(_no)))
+ #define GPIO_MODE_SET(_no) (GPIO_MODE1_SET+(0x10*(_no)))
+
+ #define GPIO_DIR1_CLR (GPIO_DIR1+0x08)
+ #define GPIO_DOUT1_CLR (GPIO_DOUT1+0x08)
+ #define GPIO_MODE1_CLR (GPIO_MODE1+0x08)
+ #define GPIO_DIR_CLR(_no) (GPIO_DIR1_CLR+(0x10*(_no)))
+ #define GPIO_DOUT_CLR(_no) (GPIO_DOUT1_CLR+(0x10*(_no)))
+ #define GPIO_MODE_CLR(_no) (GPIO_MODE1_CLR+(0x10*(_no)))
+
+ #define GPIO_DIR(_no) (GPIO_DIR1+(0x10*(_no)))
+ #define GPIO_DOUT(_no) (GPIO_DOUT1+(0x10*(_no)))
+ #define GPIO_DIN(_no) (GPIO_DIN1+(0x10*(_no)))
+ #define GPIO_MODE(_no) (GPIO_MODE1+(0x10*(_no)))
+#endif
+
+#if 0
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+/* under construction !*/
+#endif
+typedef struct _gpio_driving_gear
+{
+ kal_uint8 mask;
+ kal_uint8 gear_cnt;
+ kal_uint16 gear_mapping[16][2];
+}gpio_driving_gear_t;
+typedef struct _drv_gpio_driving_priv
+{
+ kal_uint8 valid;
+ kal_uint8 gpio_num;
+ kal_uint8 driving_gear;
+ kal_uint8 offset;
+ kal_uint32 addr;
+}drv_gpio_driving_priv_t;
+
+extern void gpio_init(void);
+extern void GPIO_InitIO(char direction, kal_int16 port);
+extern char GPIO_ReadIO(kal_int16 port);
+extern void GPIO_WriteIO(char data, kal_int16 port);
+extern char GPIO_ReturnMode(kal_int16 port);
+extern char GPO_ReturnMode(kal_int16 port);
+extern char GPIO_ReturnDir(kal_int16 port);
+extern char GPIO_ReturnDout(kal_int16 port);
+extern char GPO_ReturnDout(kal_int16 port);
+extern void GPO_WriteIO(char data,kal_int16 port);
+extern void GPIO_ModeSetup(kal_uint16 pin, kal_uint16 conf_dada);
+extern void GPO_ModeSetup(kal_uint16 pin, kal_uint16 conf_dada);
+extern void initGPIO(void);
+extern void GPIO_PullenSetup(kal_uint16 pin, kal_bool enable);
+extern void GPIO_DinvSetup(kal_uint16 pin, kal_bool enable);
+extern void GPIO_SetDebugMode(kal_bool enable);
+extern void GPIO_PullSelSetup(kal_uint16 pin, kal_bool pull_up);
+#ifdef __CUST_NEW__
+extern void GPIO_InitIO_FAST(char direction, kal_int16 port);
+extern char GPIO_ReadIO_FAST(kal_int16 port);
+extern void GPIO_WriteIO_FAST(char data, kal_int16 port);
+#endif/* __CUST_NEW__ */
+extern void GPIO_WriteIO_FAST2(char data, kal_uint16 no, kal_uint16 remainder_shift);
+extern kal_int32 gpio_set_drive(gpio_pin_e gpio_pin,kal_uint32 drive);
+extern kal_int32 gpio_set_ownership(kal_uint32 pin_num,kal_uint32 ownership);
+extern kal_int32 gpio_get_drive_value(gpio_pin_e gpio_pin);
+extern kal_int32 gpio_get_ownership(kal_uint32 pin_num);
+#define METAMODE_GPIO 49
+#endif