[Feature]Upload Modem source code

Change-Id: Id4294f30faced84d3e6fd6d5e61e1111bf287a37
diff --git a/mcu/interface/driver/devdrv/btdma/btdma_public.h b/mcu/interface/driver/devdrv/btdma/btdma_public.h
new file mode 100644
index 0000000..ad5f43b
--- /dev/null
+++ b/mcu/interface/driver/devdrv/btdma/btdma_public.h
@@ -0,0 +1,155 @@
+#ifndef _BTDMA_PUBLIC_H_
+#define _BTDMA_PUBLIC_H_
+
+
+typedef kal_uint32 btdma_uint32;
+typedef kal_int32  btdma_int32 ;
+typedef kal_uint8  btdma_uint8 ;
+
+typedef enum BTDMA_PRIORITY_CHAIN
+{
+  PRIORITY_0 = 0,
+  PRIORITY_1    ,
+  PRIORITY_2    ,
+  PRIORITY_3    ,
+  PRIORITY_4    ,
+  PRIORITY_5    ,
+  PRIORITY_6    ,
+  PRIORITY_7
+
+} btdma_priority_chain;
+
+typedef enum BTDMA_IP
+{
+  TTBIT = 0  ,
+  SFBIT      ,
+  OTEBIT   
+} btdma_ip;
+
+typedef enum BTDMA_CORE
+{
+  UNGATE_VCORE  = 0  ,
+  UNGATE_MCORE0 = 2  ,
+  UNGATE_MCORE1 = 3   
+} btdma_core;
+
+typedef enum BTDMA_CALLBACK
+{
+  #undef BTDMA_CALLBACK_REGISTER
+  #define BTDMA_CALLBACK_REGISTER(KEY,CALLBACK) KEY,
+  #include "btdma_callback_reg.h"
+  #undef BTDMA_CALLBACK_REGISTER
+  BTDMA_CALLBACK_NUM
+} btdma_callback_index;
+
+
+typedef struct BTDMA_DESCRIPTION
+{
+  btdma_uint32          source_address                    ;
+  btdma_uint32          target_address                    ;
+  btdma_uint32          crc32                             ;
+  btdma_uint32          length                :19         ;
+  btdma_uint32          reserved_1            :5          ;
+  btdma_uint32          crc_enable            :1          ;
+  btdma_ip              src_ip                :2          ;
+  btdma_ip              dest_ip               :2          ;
+  btdma_uint32          reserved_2            :3          ;
+  btdma_uint32          signal_enable         :14         ;
+  btdma_uint32          reserved_5            :10         ;
+  btdma_uint32          axi_qos_r_ultra       :2          ;
+  btdma_uint32          axi_qos_r_flush       :2          ;
+  btdma_uint32          axi_qos_w_ultra       :2          ;
+  btdma_uint32          axi_qos_w_flush       :2          ;
+  btdma_callback_index  callback_key                      ;
+  btdma_uint32          caller                            ;
+  btdma_uint8           job_num               :4          ;
+  btdma_uint32          reserved_6            :20         ;
+  btdma_uint8           own                               ;
+} btdma_description;
+
+#define BTDMA_NO_SIGNAL_ENABLE                       (0)
+#define BTDMA_MCORE0_BOOTDONE_ENABLE                 (1 << 0)
+#define BTDMA_MCORE1_BOOTDONE_ENABLE                 (1 << 1)
+#define BTDMA_VCORE0_BOOTDONE_ENABLE                 (1 << 2)
+#define BTDMA_MCORE0_INTERRUPT_ENABLE                (1 << 3)
+#define BTDMA_MCORE1_INTERRUPT_ENABLE                (1 << 4)
+#define BTDMA_L1CORE_INTERRUPT_ENABLE                (1 << 5)
+
+
+#define BTDMA_MCORE0_TH0_COMPLETE_ENABLE             (1 << 6)
+#define BTDMA_MCORE1_TH0_COMPLETE_ENABLE             (1 << 7)
+#define BTDMA_MCORE0_TH1_COMPLETE_ENABLE             (1 << 8)
+#define BTDMA_MCORE1_TH1_COMPLETE_ENABLE             (1 << 9)
+#define BTDMA_MCORE0_TH2_COMPLETE_ENABLE             (1 << 10)
+#define BTDMA_MCORE1_TH2_COMPLETE_ENABLE             (1 << 11)
+#define BTDMA_MCORE0_TH3_COMPLETE_ENABLE             (1 << 12)
+#define BTDMA_MCORE1_TH3_COMPLETE_ENABLE             (1 << 13)
+
+#define BTDMA_MCORE_TH_COMPLETE_ENABLE               (1 << 6)
+
+
+#define BTDMA_Trigger_User(source_addr,source_ip,target_addr,target_ip,length,BTDMA_L1CORE_INTERRUPT_ENABLE,priority,callback_key)
+
+void SS_BTDMA_Trigger(btdma_description* desc,
+		      btdma_priority_chain priority,
+		      btdma_callback_index callback_key);
+void BTDMA_MPU_EMI_Region_Set(btdma_uint32 start_address,btdma_uint32 end_address);
+
+void BTDMA_SW_Enable_Ungate_Signal(btdma_core core);
+void BTDMA_SW_Disable_Ungate_Signal(btdma_core core);
+void BTDMA_Init();
+void BTDMA_Polling_Priority_idle(btdma_uint32 priority);
+
+/***************************************************
+*
+*
+*  Marco for assign descriptor
+*
+*
+***************************************************/
+#define DESCRIPTION_ASSIGN(SA,TA,SIZE,SE)         \
+.source_address = SA     ,                        \
+.target_address = TA     ,                        \
+.crc32          = 0      ,                        \
+.length         = SIZE   ,                        \
+.signal_enable  = SE     ,                        \
+.src_ip         = OTEBIT    ,                     \
+.dest_ip        = OTEBIT   ,                      \
+.own            = 0xA5
+
+
+#define DESCRIPTION_ASSIGN_CRC(SA,SIP,TA,TIP,SIZE,SE,CRC)        \
+.source_address = SA     ,                                       \
+.target_address = TA     ,                                       \
+.crc32          = CRC    ,                                       \
+.length         = SIZE   ,                                       \
+.signal_enable  = SE     ,                                       \
+.crc_enable     = 1      ,                                       \
+.src_ip         = SIP    ,                                       \
+.dest_ip        = TIP   ,                                        \
+.own            = 0xA5
+
+#define DESCRIPTION_ASSIGN_NO_CRC(SA,SIP,TA,TIP,SIZE,SE)         \
+.source_address = SA     ,                                       \
+.target_address = TA     ,                                       \
+.length         = SIZE   ,                                       \
+.signal_enable  = SE     ,                                       \
+.crc_enable     = 0      ,                                       \
+.src_ip         = SIP    ,                                       \
+.dest_ip        = TIP   ,                                        \
+.own            = 0xA5
+
+
+
+#define DESCRIPTION_END                           \
+.source_address = 0,                              \
+.target_address = 0,                              \
+.crc32          = 0,                              \
+.length         = 0,                              \
+.crc_enable     = 0,                              \
+.src_ip         = TTBIT,                          \
+.dest_ip        = TTBIT,                          \
+.own            = 0
+
+
+#endif