mediatek: bump to v4.4
[openwrt/svn-archive/archive.git] / target / linux / mediatek / patches / 0068-SDK_compat.patch
diff --git a/target/linux/mediatek/patches/0068-SDK_compat.patch b/target/linux/mediatek/patches/0068-SDK_compat.patch
deleted file mode 100644 (file)
index a442703..0000000
+++ /dev/null
@@ -1,1553 +0,0 @@
-From 4c48177826502673737609ffa04b66051a1e0f75 Mon Sep 17 00:00:00 2001
-From: John Crispin <blogic@openwrt.org>
-Date: Sat, 27 Jun 2015 17:05:12 +0200
-Subject: [PATCH 68/76] SDK_compat
-
----
- arch/arm/include/asm/mach/mt_irq.h         |  174 ++++++++
- arch/arm/include/asm/rt2880/mt_irq.h       |  174 ++++++++
- arch/arm/include/asm/rt2880/rt_mmap.h      |   58 +++
- arch/arm/include/asm/rt2880/surfboardint.h |   42 ++
- arch/arm/include/asm/rt2880/x_define_irq.h |  160 +++++++
- arch/arm/mach-mediatek/mediatek.c          |  186 ++++++++
- arch/arm/mach-mediatek/mt_reg_base.h       |  640 ++++++++++++++++++++++++++++
- arch/arm/mach-mediatek/rt_mmap.h           |   58 +++
- 8 files changed, 1492 insertions(+)
- create mode 100644 arch/arm/include/asm/mach/mt_irq.h
- create mode 100644 arch/arm/include/asm/rt2880/mt_irq.h
- create mode 100644 arch/arm/include/asm/rt2880/rt_mmap.h
- create mode 100644 arch/arm/include/asm/rt2880/surfboardint.h
- create mode 100644 arch/arm/include/asm/rt2880/x_define_irq.h
- create mode 100644 arch/arm/mach-mediatek/mt_reg_base.h
- create mode 100644 arch/arm/mach-mediatek/rt_mmap.h
-
---- /dev/null
-+++ b/arch/arm/include/asm/mach/mt_irq.h
-@@ -0,0 +1,174 @@
-+#ifndef __MT_IRQ_H
-+#define __MT_IRQ_H
-+
-+#define GIC_PRIVATE_SIGNALS     (32)
-+#define NR_GIC_SGI              (16)
-+#define NR_GIC_PPI              (16)
-+#define GIC_PPI_OFFSET          (27)
-+#define MT_NR_PPI               (5)
-+#define MT_NR_SPI               (224)
-+#define NR_MT_IRQ_LINE          (GIC_PPI_OFFSET + MT_NR_PPI + MT_NR_SPI)
-+
-+#define MT65xx_EDGE_SENSITIVE 0
-+#define MT65xx_LEVEL_SENSITIVE 1
-+
-+#define MT65xx_POLARITY_LOW   0
-+#define MT65xx_POLARITY_HIGH  1
-+
-+#define GIC_PPI_GLOBAL_TIMER      (GIC_PPI_OFFSET + 0)
-+#define GIC_PPI_LEGACY_FIQ        (GIC_PPI_OFFSET + 1)
-+#define GIC_PPI_PRIVATE_TIMER     (GIC_PPI_OFFSET + 2)
-+#define GIC_PPI_NS_PRIVATE_TIMER  (GIC_PPI_OFFSET + 3)
-+#define GIC_PPI_LEGACY_IRQ        (GIC_PPI_OFFSET + 4)
-+
-+#define MT_BTIF_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 50)
-+#define MT_DMA_BTIF_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 71)
-+#define MT_DMA_BTIF_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 72)
-+
-+#if !defined(CONFIG_MT8127_FPGA)
-+
-+#if !defined(__ASSEMBLY__)
-+#define X_DEFINE_IRQ(__name, __num, __pol, __sens)  __name = __num,
-+enum 
-+{
-+#include "x_define_irq.h"
-+};
-+#undef X_DEFINE_IRQ
-+#define MT6582_AHB_SLAVE_HIF_IRQ_ID         WF_HIF_IRQ_ID /* FIXME */
-+
-+#endif
-+
-+#else
-+
-+#define MT6582_USB0_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 32)
-+#define MT6582_USB1_IRQ_ID                                    (GIC_PRIVATE_SIGNALS + 33)
-+#define MT_PTP_THERM_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 38)
-+#define MT_MSDC0_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 39)
-+#define MT_MSDC1_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 40)
-+//#define MT_MSDC2_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 41) //6582 take off
-+//#define MT_MSDC3_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 42) //6582 take off
-+#define MT6582_AP_HIF_IRQ_ID                (GIC_PRIVATE_SIGNALS + 43)
-+#define MT_I2C0_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 44)
-+#define MT_I2C1_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 45)
-+#define MT_I2C2_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 46)
-+#define MT_UART1_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 51)
-+#define MT_UART2_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 52)
-+#define MT_UART3_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 53)
-+#define MT_UART4_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 54)
-+#define MT_NFIECC_IRQ_ID                    (GIC_PRIVATE_SIGNALS + 55)
-+#define MT_NFI_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 56)
-+#define MT_GDMA1_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 57)
-+#define MT_GDMA2_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 58)
-+#define MT_DMA_UART0_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 63)
-+#define MT_DMA_UART0_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 64)
-+#define MT_DMA_UART1_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 65)
-+#define MT_DMA_UART1_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 66)
-+#define MT_DMA_UART2_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 67)
-+#define MT_DMA_UART2_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 68)
-+#define MT6582_SPI1_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 78)
-+//#define MT_MSDC4_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 83) //6582 take off
-+#define MT_PTP_FSM_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 85)
-+#define MT_WDT_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 88)//TBD:For build pass
-+#define MT_APARM_DOMAIN_IRQ_ID              (GIC_PRIVATE_SIGNALS + 94)
-+#define MT_APARM_DECERR_IRQ_ID              (GIC_PRIVATE_SIGNALS + 95)
-+#if 1 //cliff
-+#define MT6582_GPT_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 112)//10.2 update
-+#define MT_EINT_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 113)//10.2 update
-+#else
-+#define MT6582_GPT_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 113)//10.2 update
-+#define MT_EINT_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 116)//10.2 update
-+#endif
-+#define MT6582_PMIC_WRAP_IRQ_ID             (GIC_PRIVATE_SIGNALS + 115)//0x80
-+#define MT_KP_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 116)
-+#define MT_SPM_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 117)
-+#define MT_SPM1_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 118)
-+#define MT_VENC_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 139)
-+#define MT_VDEC_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 140)
-+#define CAMERA_ISP_IRQ0_ID                  (GIC_PRIVATE_SIGNALS + 143) // cam_irq_b
-+#define CAMERA_ISP_IRQ1_ID                  (GIC_PRIVATE_SIGNALS + 144) // cam_irq1_b
-+#define CAMERA_ISP_IRQ2_ID                  (GIC_PRIVATE_SIGNALS + 145) // cam_irq2_b
-+//#define CAMERA_ISP_IRQ3_ID                  (GIC_PRIVATE_SIGNALS + 144) // cam_irq3_b 6582 take off
-+#define MT6582_JPEG_ENC_IRQ_ID              (GIC_PRIVATE_SIGNALS + 141)
-+//#define MT6582_JPEG_DEC_IRQ_ID              (GIC_PRIVATE_SIGNALS + 148) //6582 take off
-+/* Not sure and comments for early porting */
-+#define MT_EINT_DIRECT0_IRQ_ID              (GIC_PRIVATE_SIGNALS + 121)
-+
-+#if 0
-+#define MT_MFG_IRQ_GP_ID                     (GIC_PRIVATE_SIGNALS + 170)
-+#define MT_MFG_IRQ_GPMMU_ID                  (GIC_PRIVATE_SIGNALS + 171)
-+#define MT_MFG_IRQ_PP0_ID                    (GIC_PRIVATE_SIGNALS + 172)
-+#define MT_MFG_IRQ_PPMMU0_ID                 (GIC_PRIVATE_SIGNALS + 173)
-+#define MT_MFG_IRQ_PP1_ID                    (GIC_PRIVATE_SIGNALS + 174)
-+#define MT_MFG_IRQ_PPMMU1_ID                 (GIC_PRIVATE_SIGNALS + 175)
-+#else
-+#define MT_MFG_IRQ0_ID                     (GIC_PRIVATE_SIGNALS + 170)
-+#define MT_MFG_IRQ1_ID                     (GIC_PRIVATE_SIGNALS + 171)
-+#define MT_MFG_IRQ2_ID                     (GIC_PRIVATE_SIGNALS + 172)
-+#define MT_MFG_IRQ3_ID                     (GIC_PRIVATE_SIGNALS + 173)
-+#define MT_MFG_IRQ4_ID                     (GIC_PRIVATE_SIGNALS + 174)
-+#define MT_MFG_IRQ5_ID                     (GIC_PRIVATE_SIGNALS + 175)
-+#define MT_MFG_IRQ6_ID                     (GIC_PRIVATE_SIGNALS + 176)
-+#define MT_MFG_IRQ7_ID                     (GIC_PRIVATE_SIGNALS + 177)
-+#define MT_MFG_IRQ8_ID                     (GIC_PRIVATE_SIGNALS + 178)
-+#define MT_MFG_IRQ9_ID                     (GIC_PRIVATE_SIGNALS + 179)
-+#define MT_MFG_IRQ10_ID                    (GIC_PRIVATE_SIGNALS + 180)
-+#endif
-+
-+
-+#if 0
-+#define MT6582_DISP_MUTEX_IRQ_ID            (GIC_PRIVATE_SIGNALS + 160)
-+#define MT6582_DISP_ROT_IRQ_ID              (GIC_PRIVATE_SIGNALS + 161)
-+#define MT6582_DISP_SCL_IRQ_ID              (GIC_PRIVATE_SIGNALS + 162)
-+#define MT6582_DISP_OVL_IRQ_ID              (GIC_PRIVATE_SIGNALS + 163)
-+#define MT6582_DISP_WDMA0_IRQ_ID            (GIC_PRIVATE_SIGNALS + 164)
-+#define MT6582_DISP_WDMA1_IRQ_ID            (GIC_PRIVATE_SIGNALS + 165)
-+#define MT6582_DISP_RDMA0_IRQ_ID            (GIC_PRIVATE_SIGNALS + 166)
-+#define MT6582_DISP_RDMA1_IRQ_ID            (GIC_PRIVATE_SIGNALS + 167)
-+#define MT6582_DISP_BLS_IRQ_ID              (GIC_PRIVATE_SIGNALS + 168)
-+#define MT6582_DISP_COLOR_IRQ_ID            (GIC_PRIVATE_SIGNALS + 169)
-+#define MT6582_DISP_TDSHP_IRQ_ID            (GIC_PRIVATE_SIGNALS + 170)
-+#define MT6582_DISP_DBI_IRQ_ID              (GIC_PRIVATE_SIGNALS + 171)
-+#define MT6582_DISP_DSI_IRQ_ID              (GIC_PRIVATE_SIGNALS + 172)
-+#define MT6582_DISP_DPI0_IRQ_ID             (GIC_PRIVATE_SIGNALS + 173)
-+#define MT6582_DISP_DPI1_IRQ_ID             (GIC_PRIVATE_SIGNALS + 174)
-+#define MT6582_DISP_CMDQ_IRQ_ID             (GIC_PRIVATE_SIGNALS + 176)
-+#else
-+#define MT6582_DISP_MDP_RDMA_IRQ_ID       (GIC_PRIVATE_SIGNALS+146)  
-+#define MT6582_DISP_MDP_RSZ0_IRQ_ID       (GIC_PRIVATE_SIGNALS+147)  
-+#define MT6582_DISP_MDP_RSZ1_IRQ_ID       (GIC_PRIVATE_SIGNALS+148)  
-+#define MT6582_DISP_MDP_TDSHP_IRQ_ID      (GIC_PRIVATE_SIGNALS+149)  
-+#define MT6582_DISP_MDP_WDMA_IRQ_ID       (GIC_PRIVATE_SIGNALS+150)  
-+#define MT6582_DISP_MDP_WROT_IRQ_ID       (GIC_PRIVATE_SIGNALS+151)  
-+#define MT6582_DISP_RDMA_IRQ_ID           (GIC_PRIVATE_SIGNALS+152)  
-+#define MT6582_DISP_OVL_IRQ_ID            (GIC_PRIVATE_SIGNALS+153)  
-+#define MT6582_DISP_WDMA_IRQ_ID           (GIC_PRIVATE_SIGNALS+154)  
-+#define MT6582_DISP_BLS_IRQ_ID            (GIC_PRIVATE_SIGNALS+155)  
-+#define MT6582_DISP_COLOR_IRQ_ID          (GIC_PRIVATE_SIGNALS+156)  
-+#define MT6582_DISP_DSI_IRQ_ID            (GIC_PRIVATE_SIGNALS+157)  
-+#define MT6582_DISP_DPI0_IRQ_ID           (GIC_PRIVATE_SIGNALS+158)  
-+#define MT6582_DISP_CMDQ_IRQ_ID           (GIC_PRIVATE_SIGNALS+159)  
-+#define MT6582_DISP_CMDQ_SECURE_IRQ_ID    (GIC_PRIVATE_SIGNALS+160)  
-+#define MT6582_DISP_MUTEX_IRQ_ID          (GIC_PRIVATE_SIGNALS+161)  
-+#define MT6582_DISP_SMI_LARB0_IRQ_ID      (GIC_PRIVATE_SIGNALS+162)
-+#define MT_CIRQ_IRQ_ID                      (GIC_PRIVATE_SIGNALS+187)
-+#endif
-+#define MT6582_APARM_GPTTIMER_IRQ_LINE      MT6582_GPT_IRQ_ID
-+
-+// MT6582 Wifi AHB Slave HIF
-+#define MT6582_AHB_SLAVE_HIF_IRQ_ID         (GIC_PRIVATE_SIGNALS + 160)
-+#define MT6582_HIF_PDMA_IRQ_ID              (GIC_PRIVATE_SIGNALS + 59)
-+
-+/* These are defined for solving compile errors only. They are not existing on FPGA */
-+#define TS_IRQ_ID                         (GIC_PRIVATE_SIGNALS + 163)
-+#define CONN_WDT_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 163)
-+#define LOWBATTERY_IRQ_ID                 (GIC_PRIVATE_SIGNALS + 163)
-+#define MD_WDT_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 163)
-+
-+#define WF_HIF_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 184)
-+#define MT_CONN2AP_BTIF_WAKEUP_IRQ_ID    (GIC_PRIVATE_SIGNALS + 185)
-+#define BT_CVSD_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 186)
-+
-+#define CCIF0_AP_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 100)
-+#endif
-+
-+#endif
---- /dev/null
-+++ b/arch/arm/include/asm/rt2880/mt_irq.h
-@@ -0,0 +1,174 @@
-+#ifndef __MT_IRQ_H
-+#define __MT_IRQ_H
-+
-+#define GIC_PRIVATE_SIGNALS     (32)
-+#define NR_GIC_SGI              (16)
-+#define NR_GIC_PPI              (16)
-+#define GIC_PPI_OFFSET          (27)
-+#define MT_NR_PPI               (5)
-+#define MT_NR_SPI               (224)
-+#define NR_MT_IRQ_LINE          (GIC_PPI_OFFSET + MT_NR_PPI + MT_NR_SPI)
-+
-+#define MT65xx_EDGE_SENSITIVE 0
-+#define MT65xx_LEVEL_SENSITIVE 1
-+
-+#define MT65xx_POLARITY_LOW   0
-+#define MT65xx_POLARITY_HIGH  1
-+
-+#define GIC_PPI_GLOBAL_TIMER      (GIC_PPI_OFFSET + 0)
-+#define GIC_PPI_LEGACY_FIQ        (GIC_PPI_OFFSET + 1)
-+#define GIC_PPI_PRIVATE_TIMER     (GIC_PPI_OFFSET + 2)
-+#define GIC_PPI_NS_PRIVATE_TIMER  (GIC_PPI_OFFSET + 3)
-+#define GIC_PPI_LEGACY_IRQ        (GIC_PPI_OFFSET + 4)
-+
-+#define MT_BTIF_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 50)
-+#define MT_DMA_BTIF_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 71)
-+#define MT_DMA_BTIF_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 72)
-+
-+#if !defined(CONFIG_MT8127_FPGA)
-+
-+#if !defined(__ASSEMBLY__)
-+#define X_DEFINE_IRQ(__name, __num, __pol, __sens)  __name = __num,
-+enum 
-+{
-+#include "x_define_irq.h"
-+};
-+#undef X_DEFINE_IRQ
-+#define MT6582_AHB_SLAVE_HIF_IRQ_ID         WF_HIF_IRQ_ID /* FIXME */
-+
-+#endif
-+
-+#else
-+
-+#define MT6582_USB0_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 32)
-+#define MT6582_USB1_IRQ_ID                                    (GIC_PRIVATE_SIGNALS + 33)
-+#define MT_PTP_THERM_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 38)
-+#define MT_MSDC0_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 39)
-+#define MT_MSDC1_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 40)
-+//#define MT_MSDC2_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 41) //6582 take off
-+//#define MT_MSDC3_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 42) //6582 take off
-+#define MT6582_AP_HIF_IRQ_ID                (GIC_PRIVATE_SIGNALS + 43)
-+#define MT_I2C0_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 44)
-+#define MT_I2C1_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 45)
-+#define MT_I2C2_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 46)
-+#define MT_UART1_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 51)
-+#define MT_UART2_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 52)
-+#define MT_UART3_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 53)
-+#define MT_UART4_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 54)
-+#define MT_NFIECC_IRQ_ID                    (GIC_PRIVATE_SIGNALS + 55)
-+#define MT_NFI_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 56)
-+#define MT_GDMA1_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 57)
-+#define MT_GDMA2_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 58)
-+#define MT_DMA_UART0_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 63)
-+#define MT_DMA_UART0_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 64)
-+#define MT_DMA_UART1_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 65)
-+#define MT_DMA_UART1_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 66)
-+#define MT_DMA_UART2_TX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 67)
-+#define MT_DMA_UART2_RX_IRQ_ID              (GIC_PRIVATE_SIGNALS + 68)
-+#define MT6582_SPI1_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 78)
-+//#define MT_MSDC4_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 83) //6582 take off
-+#define MT_PTP_FSM_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 85)
-+#define MT_WDT_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 88)//TBD:For build pass
-+#define MT_APARM_DOMAIN_IRQ_ID              (GIC_PRIVATE_SIGNALS + 94)
-+#define MT_APARM_DECERR_IRQ_ID              (GIC_PRIVATE_SIGNALS + 95)
-+#if 1 //cliff
-+#define MT6582_GPT_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 112)//10.2 update
-+#define MT_EINT_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 113)//10.2 update
-+#else
-+#define MT6582_GPT_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 113)//10.2 update
-+#define MT_EINT_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 116)//10.2 update
-+#endif
-+#define MT6582_PMIC_WRAP_IRQ_ID             (GIC_PRIVATE_SIGNALS + 115)//0x80
-+#define MT_KP_IRQ_ID                  (GIC_PRIVATE_SIGNALS + 116)
-+#define MT_SPM_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 117)
-+#define MT_SPM1_IRQ_ID                       (GIC_PRIVATE_SIGNALS + 118)
-+#define MT_VENC_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 139)
-+#define MT_VDEC_IRQ_ID                      (GIC_PRIVATE_SIGNALS + 140)
-+#define CAMERA_ISP_IRQ0_ID                  (GIC_PRIVATE_SIGNALS + 143) // cam_irq_b
-+#define CAMERA_ISP_IRQ1_ID                  (GIC_PRIVATE_SIGNALS + 144) // cam_irq1_b
-+#define CAMERA_ISP_IRQ2_ID                  (GIC_PRIVATE_SIGNALS + 145) // cam_irq2_b
-+//#define CAMERA_ISP_IRQ3_ID                  (GIC_PRIVATE_SIGNALS + 144) // cam_irq3_b 6582 take off
-+#define MT6582_JPEG_ENC_IRQ_ID              (GIC_PRIVATE_SIGNALS + 141)
-+//#define MT6582_JPEG_DEC_IRQ_ID              (GIC_PRIVATE_SIGNALS + 148) //6582 take off
-+/* Not sure and comments for early porting */
-+#define MT_EINT_DIRECT0_IRQ_ID              (GIC_PRIVATE_SIGNALS + 121)
-+
-+#if 0
-+#define MT_MFG_IRQ_GP_ID                     (GIC_PRIVATE_SIGNALS + 170)
-+#define MT_MFG_IRQ_GPMMU_ID                  (GIC_PRIVATE_SIGNALS + 171)
-+#define MT_MFG_IRQ_PP0_ID                    (GIC_PRIVATE_SIGNALS + 172)
-+#define MT_MFG_IRQ_PPMMU0_ID                 (GIC_PRIVATE_SIGNALS + 173)
-+#define MT_MFG_IRQ_PP1_ID                    (GIC_PRIVATE_SIGNALS + 174)
-+#define MT_MFG_IRQ_PPMMU1_ID                 (GIC_PRIVATE_SIGNALS + 175)
-+#else
-+#define MT_MFG_IRQ0_ID                     (GIC_PRIVATE_SIGNALS + 170)
-+#define MT_MFG_IRQ1_ID                     (GIC_PRIVATE_SIGNALS + 171)
-+#define MT_MFG_IRQ2_ID                     (GIC_PRIVATE_SIGNALS + 172)
-+#define MT_MFG_IRQ3_ID                     (GIC_PRIVATE_SIGNALS + 173)
-+#define MT_MFG_IRQ4_ID                     (GIC_PRIVATE_SIGNALS + 174)
-+#define MT_MFG_IRQ5_ID                     (GIC_PRIVATE_SIGNALS + 175)
-+#define MT_MFG_IRQ6_ID                     (GIC_PRIVATE_SIGNALS + 176)
-+#define MT_MFG_IRQ7_ID                     (GIC_PRIVATE_SIGNALS + 177)
-+#define MT_MFG_IRQ8_ID                     (GIC_PRIVATE_SIGNALS + 178)
-+#define MT_MFG_IRQ9_ID                     (GIC_PRIVATE_SIGNALS + 179)
-+#define MT_MFG_IRQ10_ID                    (GIC_PRIVATE_SIGNALS + 180)
-+#endif
-+
-+
-+#if 0
-+#define MT6582_DISP_MUTEX_IRQ_ID            (GIC_PRIVATE_SIGNALS + 160)
-+#define MT6582_DISP_ROT_IRQ_ID              (GIC_PRIVATE_SIGNALS + 161)
-+#define MT6582_DISP_SCL_IRQ_ID              (GIC_PRIVATE_SIGNALS + 162)
-+#define MT6582_DISP_OVL_IRQ_ID              (GIC_PRIVATE_SIGNALS + 163)
-+#define MT6582_DISP_WDMA0_IRQ_ID            (GIC_PRIVATE_SIGNALS + 164)
-+#define MT6582_DISP_WDMA1_IRQ_ID            (GIC_PRIVATE_SIGNALS + 165)
-+#define MT6582_DISP_RDMA0_IRQ_ID            (GIC_PRIVATE_SIGNALS + 166)
-+#define MT6582_DISP_RDMA1_IRQ_ID            (GIC_PRIVATE_SIGNALS + 167)
-+#define MT6582_DISP_BLS_IRQ_ID              (GIC_PRIVATE_SIGNALS + 168)
-+#define MT6582_DISP_COLOR_IRQ_ID            (GIC_PRIVATE_SIGNALS + 169)
-+#define MT6582_DISP_TDSHP_IRQ_ID            (GIC_PRIVATE_SIGNALS + 170)
-+#define MT6582_DISP_DBI_IRQ_ID              (GIC_PRIVATE_SIGNALS + 171)
-+#define MT6582_DISP_DSI_IRQ_ID              (GIC_PRIVATE_SIGNALS + 172)
-+#define MT6582_DISP_DPI0_IRQ_ID             (GIC_PRIVATE_SIGNALS + 173)
-+#define MT6582_DISP_DPI1_IRQ_ID             (GIC_PRIVATE_SIGNALS + 174)
-+#define MT6582_DISP_CMDQ_IRQ_ID             (GIC_PRIVATE_SIGNALS + 176)
-+#else
-+#define MT6582_DISP_MDP_RDMA_IRQ_ID       (GIC_PRIVATE_SIGNALS+146)  
-+#define MT6582_DISP_MDP_RSZ0_IRQ_ID       (GIC_PRIVATE_SIGNALS+147)  
-+#define MT6582_DISP_MDP_RSZ1_IRQ_ID       (GIC_PRIVATE_SIGNALS+148)  
-+#define MT6582_DISP_MDP_TDSHP_IRQ_ID      (GIC_PRIVATE_SIGNALS+149)  
-+#define MT6582_DISP_MDP_WDMA_IRQ_ID       (GIC_PRIVATE_SIGNALS+150)  
-+#define MT6582_DISP_MDP_WROT_IRQ_ID       (GIC_PRIVATE_SIGNALS+151)  
-+#define MT6582_DISP_RDMA_IRQ_ID           (GIC_PRIVATE_SIGNALS+152)  
-+#define MT6582_DISP_OVL_IRQ_ID            (GIC_PRIVATE_SIGNALS+153)  
-+#define MT6582_DISP_WDMA_IRQ_ID           (GIC_PRIVATE_SIGNALS+154)  
-+#define MT6582_DISP_BLS_IRQ_ID            (GIC_PRIVATE_SIGNALS+155)  
-+#define MT6582_DISP_COLOR_IRQ_ID          (GIC_PRIVATE_SIGNALS+156)  
-+#define MT6582_DISP_DSI_IRQ_ID            (GIC_PRIVATE_SIGNALS+157)  
-+#define MT6582_DISP_DPI0_IRQ_ID           (GIC_PRIVATE_SIGNALS+158)  
-+#define MT6582_DISP_CMDQ_IRQ_ID           (GIC_PRIVATE_SIGNALS+159)  
-+#define MT6582_DISP_CMDQ_SECURE_IRQ_ID    (GIC_PRIVATE_SIGNALS+160)  
-+#define MT6582_DISP_MUTEX_IRQ_ID          (GIC_PRIVATE_SIGNALS+161)  
-+#define MT6582_DISP_SMI_LARB0_IRQ_ID      (GIC_PRIVATE_SIGNALS+162)
-+#define MT_CIRQ_IRQ_ID                      (GIC_PRIVATE_SIGNALS+187)
-+#endif
-+#define MT6582_APARM_GPTTIMER_IRQ_LINE      MT6582_GPT_IRQ_ID
-+
-+// MT6582 Wifi AHB Slave HIF
-+#define MT6582_AHB_SLAVE_HIF_IRQ_ID         (GIC_PRIVATE_SIGNALS + 160)
-+#define MT6582_HIF_PDMA_IRQ_ID              (GIC_PRIVATE_SIGNALS + 59)
-+
-+/* These are defined for solving compile errors only. They are not existing on FPGA */
-+#define TS_IRQ_ID                         (GIC_PRIVATE_SIGNALS + 163)
-+#define CONN_WDT_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 163)
-+#define LOWBATTERY_IRQ_ID                 (GIC_PRIVATE_SIGNALS + 163)
-+#define MD_WDT_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 163)
-+
-+#define WF_HIF_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 184)
-+#define MT_CONN2AP_BTIF_WAKEUP_IRQ_ID    (GIC_PRIVATE_SIGNALS + 185)
-+#define BT_CVSD_IRQ_ID                     (GIC_PRIVATE_SIGNALS + 186)
-+
-+#define CCIF0_AP_IRQ_ID                   (GIC_PRIVATE_SIGNALS + 100)
-+#endif
-+
-+#endif
---- /dev/null
-+++ b/arch/arm/include/asm/rt2880/rt_mmap.h
-@@ -0,0 +1,58 @@
-+#define HIFSYS_BASE                   0xFA000000 //for PCIe/USB
-+#define ETHDMASYS_BASE                        0xFB000000 //for I2S/PCM/GDMA/HSDMA/FE/GMAC
-+
-+#define HIFSYS_PCI_BASE                 0xFA140000
-+#define HIFSYS_USB_HOST_BASE            0xFA1C0000
-+#define HIFSYS_USB_HOST2_BASE           0xFA240000
-+
-+#define ETHDMASYS_SYSCTL_BASE           0xFB000000
-+#define ETHDMASYS_RBUS_MATRIXCTL_BASE   0xFB000400
-+#define ETHDMASYS_I2S_BASE              0xFB000A00
-+#define ETHDMASYS_PCM_BASE              0xFB002000
-+#define ETHDMASYS_GDMA_BASE             0xFB002800
-+#define ETHDMASYS_HS_DMA_BASE           0xFB007000
-+#define ETHDMASYS_FRAME_ENGINE_BASE     0xFB100000
-+#define ETHDMASYS_PPE_BASE            0xFB100C00
-+#define ETHDMASYS_ETH_SW_BASE         0xFB110000
-+#define ETHDMASYS_CRYPTO_ENGINE_BASE  0xFB240000
-+
-+//for backward-compatible
-+#define RALINK_FRAME_ENGINE_BASE      ETHDMASYS_FRAME_ENGINE_BASE
-+#define RALINK_PPE_BASE                 ETHDMASYS_PPE_BASE
-+#define RALINK_SYSCTL_BASE            ETHDMASYS_SYSCTL_BASE
-+#define RALINK_ETH_SW_BASE            ETHDMASYS_ETH_SW_BASE
-+#define RALINK_GDMA_BASE      ETHDMASYS_GDMA_BASE
-+#define RALINK_HS_DMA_BASE    ETHDMASYS_HS_DMA_BASE
-+#define RALINK_11N_MAC_BASE           0       //unused for rt_rdm usage
-+
-+//Reset Control Register
-+#define RSTCTL_SYS_RST                        (1<<0)
-+#define RSTCTL_MCM_RST                        (1<<2)
-+#define RSTCTL_HSDMA_RST              (1<<5)
-+#define RSTCTL_FE_RST                 (1<<6)
-+#define RSTCTL_SPDIF_RST              (1<<7)
-+#define RSTCTL_TIMER_RST              (1<<8)
-+#define RSTCTL_CIRQ_RST                       (1<<9)
-+#define RSTCTL_MC_RST                 (1<<10)
-+#define RSTCTL_PCM_RST                        (1<<11)
-+#define RSTCTL_GPIO_RST                       (1<<13)
-+#define RSTCTL_GDMA_RST                       (1<<14)
-+#define RSTCTL_NAND_RST                       (1<<15)
-+#define RSTCTL_I2C_RST                        (1<<16)
-+#define RSTCTL_I2S_RST                        (1<<17)
-+#define RSTCTL_SPI_RST                        (1<<18)
-+#define RSTCTL_UART0_RST              (1<<19)
-+#define RSTCTL_UART1_RST              (1<<20)
-+#define RSTCTL_UART2_RST              (1<<21)
-+#define RSTCTL_UPHY_RST                       (1<<22)
-+#define RSTCTL_ETH_RST                        (1<<23)
-+#define RSTCTL_PCIE0_RST              (1<<24)
-+#define RSTCTL_PCIE1_RST              (1<<25)
-+#define RSTCTL_PCIE2_RST              (1<<26)
-+#define RSTCTL_AUX_STCK_RST           (1<<28)
-+#define RSTCTL_CRYPT_RST              (1<<29)
-+#define RSTCTL_SDXC_RST                       (1<<30)
-+#define RSTCTL_PWM_RST                        (1<<31)
-+
-+//for backward-compatible
-+#define RALINK_FE_RST                 RSTCTL_FE_RST
---- /dev/null
-+++ b/arch/arm/include/asm/rt2880/surfboardint.h
-@@ -0,0 +1,42 @@
-+#include "mt_irq.h"
-+
-+//#define SURFBOARDINT_SYSCTL      0      /* SYSCTL */
-+#define SURFBOARDINT_FE          MT_FE_ORIG_IRQ_ID    /* FE */
-+#define SURFBOARDINT_PCM         MT_PCM_IRQ_ID      /* PCM */
-+//#define SURFBOARDINT_GPIO        6      /* GPIO */
-+#define SURFBOARDINT_HSGDMA      MT_HSDMA_IRQ_ID      /* HSGDMA */
-+#define SURFBOARDINT_DMA         MT_GDMA_IRQ_ID      /* DMA */
-+//#define SURFBOARDINT_PC          9      /* Performance counter */
-+#define SURFBOARDINT_I2S         MT_I2S_IRQ_ID     /* I2S */
-+//#define SURFBOARDINT_SPI         11     /* SPI */
-+//#define SURFBOARDINT_AES         13     /* AES */
-+//#define SURFBOARDINT_AESENGINE      13     /* AES Engine */
-+#define SURFBOARDINT_CRYPTO      MT_CRYPTO_IRQ_ID     /* CryptoEngine */
-+//#define SURFBOARDINT_SDXC        14     /* SDXC */
-+//#define SURFBOARDINT_ESW         17     /* ESW */
-+#define SURFBOARDINT_USB0         MT_SSUSB_XHCI0_IRQ_ID     /* USB0 */
-+#define SURFBOARDINT_USB1         MT_SSUSB_XHCI1_IRQ_ID     /* USB1 */
-+//#define SURFBOARDINT_UART_LITE1  20     /* UART Lite */
-+//#define SURFBOARDINT_UART_LITE2  21     /* UART Lite */
-+//#define SURFBOARDINT_UART_LITE3  22     /* UART Lite */
-+//#define SURFBOARDINT_UART1       SURFBOARDINT_UART_LITE1
-+//#define SURFBOARDINT_UART        SURFBOARDINT_UART_LITE2
-+//#define SURFBOARDINT_WDG         23     /* WDG timer */
-+//#define SURFBOARDINT_TIMER0      24     /* Timer0 */
-+//#define SURFBOARDINT_TIMER1      25     /* Timer1 */
-+//#define SURFBOARDINT_ILL_ACC     35     /* illegal access */
-+#define RALINK_INT_PCIE0         MT_PCIE0_IRQ_ID     /* PCIE0 */
-+#define RALINK_INT_PCIE1         MT_PCIE1_IRQ_ID     /* PCIE1 */
-+#define RALINK_INT_PCIE2         MT_PCIE2_IRQ_ID     /* PCIE2 */
-+
-+// Wait for RD to define IRQ source
-+
-+//#define RALINK_INT_xxx         MT_CRYPTO_RING0_IRQ_ID     /*  */
-+//#define RALINK_INT_xxx         MT_CRYPTO_RING1_IRQ_ID     /*  */
-+//#define RALINK_INT_xxx         MT_CRYPTO_RING2_IRQ_ID     /*  */
-+//#define RALINK_INT_xxx         MT_FE_PDMA_IRQ_ID     /*  */
-+//#define RALINK_INT_xxx         MT_FE_QDMA_IRQ_ID     /*  */
-+//#define RALINK_INT_xxx         MT_PCIE_LINK_DOWN_RST_IRQ_ID     /*  */
-+
-+
-+
---- /dev/null
-+++ b/arch/arm/include/asm/rt2880/x_define_irq.h
-@@ -0,0 +1,160 @@
-+/*
-+ * This file is generated automatically according to the design of silicon.
-+ * Don't modify it directly.
-+ */
-+
-+X_DEFINE_IRQ(MT6582_USB0_IRQ_ID            , 64, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_USB1_IRQ_ID            , 65, L,LEVEL)
-+X_DEFINE_IRQ(TS_IRQ_ID                     , 66, L,EDGE)
-+X_DEFINE_IRQ(TS_BATCH_IRQ_ID               , 67, L,EDGE)
-+X_DEFINE_IRQ(LOWBATTERY_IRQ_ID             , 68, L,EDGE)
-+X_DEFINE_IRQ(PWM_IRQ_ID                    , 69, L,LEVEL)
-+X_DEFINE_IRQ(THERM_CTRL_IRQ_ID             , 70, L,LEVEL)
-+X_DEFINE_IRQ(MT_MSDC0_IRQ_ID               , 71, L,LEVEL)
-+X_DEFINE_IRQ(MT_MSDC1_IRQ_ID               , 72, L,LEVEL)
-+X_DEFINE_IRQ(MT_MSDC2_IRQ_ID               , 73, L,LEVEL)
-+X_DEFINE_IRQ(MT_MSDC3_IRQ_ID               , 74, L,LEVEL)
-+X_DEFINE_IRQ(MT_I2C0_IRQ_ID                , 76, L,LEVEL)
-+X_DEFINE_IRQ(MT_I2C1_IRQ_ID                , 77, L,LEVEL)
-+X_DEFINE_IRQ(MT_I2C2_IRQ_ID                , 78, L,LEVEL)
-+X_DEFINE_IRQ(BITF_IRQ_ID                   , 82, L,LEVEL)
-+X_DEFINE_IRQ(MT_UART1_IRQ_ID               , 83, L,LEVEL)
-+X_DEFINE_IRQ(MT_UART2_IRQ_ID               , 84, L,LEVEL)
-+X_DEFINE_IRQ(MT_UART3_IRQ_ID               , 85, L,LEVEL)
-+X_DEFINE_IRQ(MT_UART4_IRQ_ID               , 86, L,LEVEL)
-+X_DEFINE_IRQ(MT_NFIECC_IRQ_ID              , 87, L,LEVEL)
-+X_DEFINE_IRQ(MT_NFI_IRQ_ID                 , 88, L,LEVEL)
-+X_DEFINE_IRQ(MT_GDMA1_IRQ_ID               , 89, L,LEVEL)
-+X_DEFINE_IRQ(MT_GDMA2_IRQ_ID               , 90, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_HIF_PDMA_IRQ_ID        , 91, L,LEVEL)
-+X_DEFINE_IRQ(AP_DMA_I2C0_IRQ_ID            , 92, L,LEVEL)
-+X_DEFINE_IRQ(AP_DMA_I2C1_IRQ_ID            , 93, L,LEVEL)
-+X_DEFINE_IRQ(AP_DMA_I2C2_IRQ_ID            , 94, L,LEVEL)
-+X_DEFINE_IRQ(MT_DMA_UART0_TX_IRQ_ID        , 95, L,LEVEL)
-+X_DEFINE_IRQ(MT_DMA_UART0_RX_IRQ_ID        , 96, L,LEVEL)
-+X_DEFINE_IRQ(MT_DMA_UART1_TX_IRQ_ID        , 97, L,LEVEL)
-+X_DEFINE_IRQ(MT_DMA_UART1_RX_IRQ_ID        , 98, L,LEVEL)
-+X_DEFINE_IRQ(MT_DMA_UART2_TX_IRQ_ID        , 99, L,LEVEL)
-+X_DEFINE_IRQ(MT_DMA_UART2_RX_IRQ_ID        , 100, L,LEVEL)
-+X_DEFINE_IRQ(MT_DMA_UART3_TX_IRQ_ID        , 101, L,LEVEL)
-+X_DEFINE_IRQ(MT_DMA_UART3_RX_IRQ_ID        , 102, L,LEVEL)
-+X_DEFINE_IRQ(AP_DMA_BTIF_TX_IRQ_ID         , 103, L,LEVEL)
-+X_DEFINE_IRQ(AP_DMA_BTIF_RX_IRQ_ID         , 104, L,LEVEL)
-+X_DEFINE_IRQ(MT_GCPU_IRQ_ID                , 105, L,LEVEL) 
-+X_DEFINE_IRQ(MT_GCPU_DMX_IRQ_ID            , 106, L,LEVEL)
-+X_DEFINE_IRQ(MT_GCPU_MMU_IRQ_ID            , 107, L,LEVEL)
-+X_DEFINE_IRQ(MT_GCPU_MMU_SEC_IRQ_ID        , 108, L,LEVEL)
-+X_DEFINE_IRQ(MT_ETHER_NIC_WRAP_IRQ_ID      , 109, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_SPI1_IRQ_ID            , 110, L,LEVEL)
-+X_DEFINE_IRQ(MSDC0_WAKEUP_PS_IRQ_ID        , 111, H,EDGE)
-+X_DEFINE_IRQ(MSDC1_WAKEUP_PS_IRQ_ID        , 112, H,EDGE)
-+X_DEFINE_IRQ(MSDC2_WAKEUP_PS_IRQ_ID        , 113, H,EDGE)
-+X_DEFINE_IRQ(MT_CRYPTO_RING0_IRQ_ID        , 114, H,LEVEL)
-+X_DEFINE_IRQ(MT_CRYPTO_RING1_IRQ_ID        , 115, H,LEVEL)
-+X_DEFINE_IRQ(MT_CRYPTO_RING2_IRQ_ID        , 116, H,LEVEL)
-+X_DEFINE_IRQ(MT_PTP_FSM_IRQ_ID             , 117, L,LEVEL)
-+X_DEFINE_IRQ(BTIF_WAKEUP_IRQ_ID            , 118, L,LEVEL)
-+X_DEFINE_IRQ(MT_IRRX_IRQ_ID                , 119, L,LEVEL) 
-+X_DEFINE_IRQ(MT_WDT_IRQ_ID                 , 120, L,EDGE)
-+X_DEFINE_IRQ(MT_CRYPTO_RING3_IRQ_ID        , 123, H,LEVEL)
-+X_DEFINE_IRQ(DCC_APARM_IRQ_ID              , 124, L,LEVEL)
-+X_DEFINE_IRQ(APARM_CTI_IRQ_ID              , 125, L,LEVEL)
-+X_DEFINE_IRQ(MT_APARM_DOMAIN_IRQ_ID        , 126, L,LEVEL)
-+X_DEFINE_IRQ(MT_APARM_DECERR_IRQ_ID        , 127, L,LEVEL)
-+X_DEFINE_IRQ(DOMAIN_ABORT_IRQ_ID0          , 128, L,LEVEL)
-+X_DEFINE_IRQ(MT_CRYPTO_IRQ_ID              , 129, H,LEVEL)
-+X_DEFINE_IRQ(MT_HSDMA_IRQ_ID               , 130, H,LEVEL)
-+X_DEFINE_IRQ(MT_GDMA_IRQ_ID                , 131, H,LEVEL)
-+X_DEFINE_IRQ(CCIF0_AP_IRQ_ID               , 132, L,LEVEL)
-+X_DEFINE_IRQ(MT_I2S_IRQ_ID                 , 134, H,LEVEL)
-+X_DEFINE_IRQ(MT_PCM_IRQ_ID                 , 135, H,LEVEL)
-+X_DEFINE_IRQ(AFE_MCU_IRQ_ID                , 136, L,LEVEL)
-+X_DEFINE_IRQ(M4U1_IRQ_ID                   , 138, L,LEVEL)
-+X_DEFINE_IRQ(M4UL2_IRQ_ID                  , 139, L,LEVEL)
-+X_DEFINE_IRQ(M4UL2_SEC_IRQ_ID              , 140, L,LEVEL)
-+X_DEFINE_IRQ(REFRESH_RATE_IRQ_ID           , 141, L,EDGE)
-+X_DEFINE_IRQ(MT6582_APARM_GPTTIMER_IRQ_LINE, 144, L,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_IRQ_ID                , 145, H,LEVEL)
-+X_DEFINE_IRQ(EINT_EVENT_IRQ_ID             , 146, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_PMIC_WRAP_IRQ_ID       , 147, H,LEVEL)
-+X_DEFINE_IRQ(MT_KP_IRQ_ID                  , 148, L,EDGE)
-+X_DEFINE_IRQ(MT_SPM_IRQ_ID                 , 149, L,LEVEL)
-+X_DEFINE_IRQ(MT_SPM1_IRQ_ID                , 150, L,LEVEL)
-+X_DEFINE_IRQ(MT_SPM2_IRQ_ID                , 151, L,LEVEL)
-+X_DEFINE_IRQ(MT_SPM3_IRQ_ID                , 152, L,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT0_IRQ_ID        , 153, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT1_IRQ_ID        , 154, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT2_IRQ_ID        , 155, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT3_IRQ_ID        , 156, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT4_IRQ_ID        , 157, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT5_IRQ_ID        , 158, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT6_IRQ_ID        , 159, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT7_IRQ_ID        , 160, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT8_IRQ_ID        , 161, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT9_IRQ_ID        , 162, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT10_IRQ_ID       , 163, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT11_IRQ_ID       , 164, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT12_IRQ_ID       , 165, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT13_IRQ_ID       , 166, H,LEVEL)
-+X_DEFINE_IRQ(MT_EINT_DIRECT14_IRQ_ID       , 167, H,LEVEL)
-+X_DEFINE_IRQ(SMI_LARB0_IRQ_ID              , 168, L,LEVEL)
-+X_DEFINE_IRQ(SMI_LARB1_IRQ_ID              , 169, L,LEVEL)
-+X_DEFINE_IRQ(SMI_LARB2_IRQ_ID              , 170, L,LEVEL)
-+X_DEFINE_IRQ(MT_VDEC_IRQ_ID                , 171, L,LEVEL)
-+X_DEFINE_IRQ(MT_VENC_IRQ_ID                , 172, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_JPEG_ENC_IRQ_ID        , 173, L,LEVEL)
-+X_DEFINE_IRQ(SENINF_IRQ_ID                 , 174, L,LEVEL)
-+X_DEFINE_IRQ(CAMERA_ISP_IRQ0_ID            , 175, L,LEVEL)
-+X_DEFINE_IRQ(CAMERA_ISP_IRQ1_ID            , 176, L,LEVEL)
-+X_DEFINE_IRQ(CAMERA_ISP_IRQ2_ID            , 177, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_MDP_RDMA_IRQ_ID   , 178, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_MDP_RSZ0_IRQ_ID   , 179, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_MDP_RSZ1_IRQ_ID   , 180, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_MDP_TDSHP_IRQ_ID  , 181, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_MDP_WDMA_IRQ_ID   , 182, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_MDP_WROT_IRQ_ID   , 183, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_RDMA_IRQ_ID       , 184, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_OVL_IRQ_ID        , 185, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_WDMA_IRQ_ID       , 186, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_BLS_IRQ_ID        , 187, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_COLOR_IRQ_ID      , 188, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_DSI_IRQ_ID        , 189, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_DPI0_IRQ_ID       , 190, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_CMDQ_IRQ_ID       , 191, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_CMDQ_SECURE_IRQ_ID, 192, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_MUTEX_IRQ_ID      , 193, L,LEVEL)
-+X_DEFINE_IRQ(MM_DUMMY0_IRQ_ID              , 194, L,LEVEL)
-+X_DEFINE_IRQ(MM_DUMMY1_IRQ_ID              , 195, L,LEVEL)
-+X_DEFINE_IRQ(MT6582_DISP_RDMA1_IRQ_ID      , 196, L,LEVEL)
-+X_DEFINE_IRQ(MM_DUMMY3_IRQ_ID              , 197, L,LEVEL)
-+X_DEFINE_IRQ(MM_DUMMY4_IRQ_ID              , 198, L,LEVEL)
-+X_DEFINE_IRQ(MM_DUMMY5_IRQ_ID              , 199, L,LEVEL)
-+X_DEFINE_IRQ(MM_DUMMY6_IRQ_ID              , 200, L,LEVEL)
-+X_DEFINE_IRQ(MM_DUMMY7_IRQ_ID              , 201, L,LEVEL)
-+X_DEFINE_IRQ(MT_MFG_IRQ0_ID                , 202, L,LEVEL)
-+X_DEFINE_IRQ(MT_MFG_IRQ1_ID                , 203, L,LEVEL)
-+X_DEFINE_IRQ(MT_MFG_IRQ2_ID                , 204, L,LEVEL)
-+X_DEFINE_IRQ(MT_MFG_IRQ3_ID                , 205, L,LEVEL)
-+X_DEFINE_IRQ(MT_MFG_IRQ4_ID                , 206, L,LEVEL)
-+X_DEFINE_IRQ(MT_MFG_IRQ5_ID                , 207, L,LEVEL)
-+X_DEFINE_IRQ(MT_MFG_IRQ6_ID                , 208, L,LEVEL)
-+X_DEFINE_IRQ(MT_MFG_IRQ7_ID                , 209, L,LEVEL)
-+X_DEFINE_IRQ(MT_MFG_IRQ8_ID                , 210, L,LEVEL)
-+X_DEFINE_IRQ(MT_MFG_IRQ9_ID                , 211, L,LEVEL)
-+X_DEFINE_IRQ(MT_MFG_IRQ10_ID               , 212, L,LEVEL)
-+X_DEFINE_IRQ(MT_APXGPT_SECURE_IRQ_ID       , 213, L,LEVEL)
-+X_DEFINE_IRQ(MT_CEC_IRQ_ID                 , 214, L,LEVEL)
-+X_DEFINE_IRQ(CONN_WDT_IRQ_ID               , 215, L,EDGE)
-+X_DEFINE_IRQ(WF_HIF_IRQ_ID                 , 216, L,LEVEL)
-+X_DEFINE_IRQ(MT_CONN2AP_BTIF_WAKEUP_IRQ_ID , 217, L,LEVEL)
-+X_DEFINE_IRQ(BT_CVSD_IRQ_ID                , 218, L,LEVEL)
-+X_DEFINE_IRQ(MT_CIRQ_IRQ_ID                , 219, L,LEVEL)
-+X_DEFINE_IRQ(MT_PCIE_LINK_DOWN_RST_IRQ_ID  , 224, H,EDGE)
-+X_DEFINE_IRQ(MT_PCIE0_IRQ_ID               , 225, H,LEVEL)
-+X_DEFINE_IRQ(MT_PCIE1_IRQ_ID               , 226, H,LEVEL)
-+X_DEFINE_IRQ(MT_PCIE2_IRQ_ID               , 227, H,LEVEL)
-+X_DEFINE_IRQ(MT_SSUSB_XHCI0_IRQ_ID         , 228, H,LEVEL)
-+X_DEFINE_IRQ(MT_SSUSB_XHCI1_IRQ_ID         , 229, H,LEVEL)
-+X_DEFINE_IRQ(MT_FE_PDMA_IRQ_ID             , 230, H,LEVEL)
-+X_DEFINE_IRQ(MT_FE_QDMA_IRQ_ID             , 231, H,LEVEL)
-+X_DEFINE_IRQ(MT_FE_ORIG_IRQ_ID             , 232, H,LEVEL)
---- a/arch/arm/mach-mediatek/mediatek.c
-+++ b/arch/arm/mach-mediatek/mediatek.c
-@@ -19,6 +19,186 @@
- #include <linux/of.h>
- #include <linux/clk-provider.h>
- #include <linux/clocksource.h>
-+#include <asm/mach/map.h>
-+#include "rt_mmap.h"
-+#include "mt_reg_base.h"
-+
-+#define IO_VIRT_TO_PHYS(v) (0x10000000 | ((v) & 0x0fffffff))
-+
-+static struct map_desc mt_io_desc[] __initdata =
-+{
-+#if !defined(CONFIG_MT8127_FPGA)
-+    {
-+        .virtual = INFRA_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(INFRA_BASE)),
-+        .length = (SZ_1M - SZ_4K),
-+        .type = MT_DEVICE
-+    },
-+    /* Skip the mapping of 0xF0130000~0xF013FFFF to protect access from APMCU */
-+    {
-+        .virtual = (DEBUGTOP_BASE - SZ_4K),
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS((DEBUGTOP_BASE - SZ_4K))),
-+        .length = (0x30000 + SZ_4K),
-+        .type = MT_DEVICE
-+    },
-+    {
-+        .virtual = (DEBUGTOP_BASE + 0x40000),
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(DEBUGTOP_BASE + 0x40000)),
-+        .length = 0xC0000,
-+        .type = MT_DEVICE
-+    },            
-+    {
-+        .virtual = MCUSYS_CFGREG_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(MCUSYS_CFGREG_BASE)),
-+        .length = SZ_2M,
-+        .type = MT_DEVICE
-+    },
-+    /* //// */
-+    {
-+        .virtual = AP_DMA_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(AP_DMA_BASE)),
-+        .length = SZ_2M + SZ_1M,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        /* virtual 0xF2000000, physical 0x00200000 */
-+        .virtual = SYSRAM_BASE,
-+        .pfn = __phys_to_pfn(0x00200000),
-+        .length = SZ_128K,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        .virtual = G3D_CONFIG_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(G3D_CONFIG_BASE)),
-+        .length = SZ_128K,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        .virtual = DISPSYS_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(DISPSYS_BASE)),
-+        .length = SZ_16M,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        .virtual = IMGSYS_CONFG_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(IMGSYS_CONFG_BASE)),
-+        .length = SZ_16M,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        .virtual = VDEC_GCON_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(VDEC_GCON_BASE)),
-+        .length = SZ_16M,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        /* virtual 0xF7000000, physical 0x08000000 */
-+        .virtual = DEVINFO_BASE,
-+        .pfn = __phys_to_pfn(0x08000000),
-+        .length = SZ_64K,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        .virtual = CONN_BTSYS_PKV_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(CONN_BTSYS_PKV_BASE)),
-+        .length = SZ_1M,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        /* virtual 0xF9000000, physical 0x00100000 */
-+        .virtual = INTER_SRAM,
-+        .pfn = __phys_to_pfn(0x00100000),
-+        .length = SZ_64K,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        .virtual = HIFSYS_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(HIFSYS_BASE)),
-+        .length = SZ_16M,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        .virtual = ETHDMASYS_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(ETHDMASYS_BASE)),
-+        .length = SZ_16M,
-+        .type = MT_DEVICE
-+    },
-+#if 0
-+    {
-+        .virtual = BDP_DISPSYS_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(BDP_DISPSYS_BASE)),
-+        .length = SZ_32K + SZ_16K,
-+        .type = MT_DEVICE
-+    },
-+#endif
-+#else
-+    {
-+        .virtual = INFRA_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(INFRA_BASE)),
-+        .length = SZ_4M,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        .virtual = AP_DMA_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(AP_DMA_BASE)),
-+        .length = SZ_2M + SZ_1M,
-+        .type = MT_DEVICE
-+    },
-+    #if 0
-+    {
-+        .virtual = MMSYS1_CONFIG_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(MMSYS1_CONFIG_BASE)),
-+        .length = SZ_16M,
-+        .type = MT_DEVICE
-+    },
-+    #endif
-+    {
-+        /* From: 0xF2000000 to 0xF2020000*/
-+        .virtual = SYSRAM_BASE,
-+        .pfn = __phys_to_pfn(0x00200000),
-+        .length = SZ_128K,
-+        .type = MT_DEVICE
-+    },    
-+    {
-+        .virtual = DISPSYS_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(DISPSYS_BASE)),
-+        .length = SZ_16M,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        .virtual = IMGSYS_CONFG_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(IMGSYS_CONFG_BASE)),
-+        .length = SZ_16M,
-+        .type = MT_DEVICE
-+    },
-+    /* G3DSYS */
-+    {
-+        .virtual = G3D_CONFIG_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(G3D_CONFIG_BASE)),
-+        .length = SZ_4K,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        .virtual = DEVINFO_BASE,
-+        .pfn = __phys_to_pfn(0x08000000),
-+        .length = SZ_64K,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        .virtual = MALI_BASE,
-+        .pfn = __phys_to_pfn(IO_VIRT_TO_PHYS(MALI_BASE)),
-+        .length = SZ_64K,
-+        .type = MT_DEVICE
-+    },
-+    {
-+        .virtual = INTER_SRAM,
-+        .pfn = __phys_to_pfn(0x00100000),
-+        .length = SZ_64K,
-+        .type = MT_DEVICE
-+    },
-+#endif
-+};
-+
- #define GPT6_CON_MT65xx 0x10008060
-@@ -55,7 +235,13 @@ static const char * const mediatek_board
-       NULL,
- };
-+void __init mt_map_io(void)
-+{
-+    iotable_init(mt_io_desc, ARRAY_SIZE(mt_io_desc));
-+}
-+
- DT_MACHINE_START(MEDIATEK_DT, "Mediatek Cortex-A7 (Device Tree)")
-       .dt_compat      = mediatek_board_dt_compat,
-       .init_time      = mediatek_timer_init,
-+      .map_io         = mt_map_io,
- MACHINE_END
---- /dev/null
-+++ b/arch/arm/mach-mediatek/mt_reg_base.h
-@@ -0,0 +1,640 @@
-+/*
-+ * This file is generated automatically according to the design of silicon.
-+ * Don't modify it directly.
-+ */
-+
-+#ifndef __MT_REG_BASE
-+#define __MT_REG_BASE
-+
-+#if !defined(CONFIG_MT8127_FPGA)
-+
-+// APB Module cksys
-+#define INFRA_BASE (0xF0000000)
-+
-+// APB Module infracfg_ao
-+#define INFRACFG_AO_BASE (0xF0001000)
-+
-+// APB Module fhctl
-+#define FHCTL_BASE (0xF0002000)
-+
-+// APB Module pericfg
-+#define PERICFG_BASE (0xF0003000)
-+
-+// APB Module dramc
-+#define DRAMC0_BASE (0xF0004000)
-+
-+// APB Module gpio
-+#define GPIO_BASE (0xF0005000)
-+
-+// APB Module sleep
-+#define SPM_BASE (0xF0006000)
-+
-+// APB Module toprgu
-+#define TOPRGU_BASE (0xF0007000)
-+#define AP_RGU_BASE TOPRGU_BASE
-+
-+// APB Module apxgpt
-+#define APMCU_GPTIMER_BASE (0xF0008000)
-+
-+// APB Module rsvd
-+#define RSVD_BASE (0xF0009000)
-+
-+// APB Module sej
-+#define HACC_BASE (0xF000A000)
-+
-+// APB Module ap_cirq_eint
-+#define AP_CIRQ_EINT (0xF000B000)
-+
-+// APB Module ap_cirq_eint
-+#define EINT_BASE (0xF000B000)
-+
-+// APB Module smi
-+#define SMI1_BASE (0xF000C000)
-+
-+// APB Module pmic_wrap
-+#define PWRAP_BASE (0xF000D000)
-+
-+// APB Module device_apc_ao
-+#define DEVAPC_AO_BASE (0xF000E000)
-+
-+// APB Module ddrphy
-+#define DDRPHY_BASE (0xF000F000)
-+
-+// APB Module vencpll
-+#define VENCPLL_BASE (0xF000F000)
-+
-+// APB Module mipi_tx_config
-+#define MIPI_CONFIG_BASE (0xF0010000)
-+
-+// APB Module LVDS ANA
-+#define LVDS_ANA_BASE (0xF0010400)
-+
-+// APB Module mipi_rx_ana
-+#define MIPI_RX_ANA_BASE (0xF0215000)
-+
-+// APB Module kp
-+#define KP_BASE (0xF0011000)
-+
-+// APB Module dbgapb
-+#define DEBUGTOP_BASE (0xF0100000)
-+
-+// APB Module mcucfg
-+#define MCUSYS_CFGREG_BASE (0xF0200000)
-+
-+// APB Module infracfg
-+#define INFRACFG_BASE (0xF0201000)
-+
-+// APB Module sramrom
-+#define SRAMROM_BASE (0xF0202000)
-+
-+// APB Module emi
-+#define EMI_BASE (0xF0203000)
-+
-+// APB Module sys_cirq
-+#define SYS_CIRQ_BASE (0xF0204000)
-+
-+// APB Module m4u
-+#define SMI_MMU_TOP_BASE (0xF0205000)
-+
-+// APB Module nb_mmu
-+#define NB_MMU0_BASE (0xF0205200)
-+
-+// APB Module nb_mmu
-+#define NB_MMU1_BASE (0xF0205800)
-+
-+// APB Module efusec
-+#define EFUSEC_BASE (0xF0206000)
-+
-+// APB Module device_apc
-+#define DEVAPC_BASE (0xF0207000)
-+
-+// APB Module mcu_biu_cfg
-+#define MCU_BIU_BASE (0xF0208000)
-+
-+// APB Module apmixed
-+#define APMIXEDSYS_BASE (0xF0209000)
-+
-+// APB Module ccif
-+#define AP_CCIF_BASE (0xF020A000)
-+
-+// APB Module ccif
-+#define MD_CCIF_BASE (0xF020B000)
-+
-+// APB Module gpio1
-+#define GPIO1_BASE (0xF020C000)
-+
-+// APB Module infra_mbist
-+#define INFRA_TOP_MBIST_CTRL_BASE (0xF020D000)
-+
-+// APB Module dramc_conf_nao
-+#define DRAMC_NAO_BASE (0xF020E000)
-+
-+// APB Module trng
-+#define TRNG_BASE (0xF020F000)
-+
-+// APB Module ca9
-+#define CORTEXA7MP_BASE (0xF0210000)
-+
-+// APB Module ap_dma
-+#define AP_DMA_BASE (0xF1000000)
-+
-+// APB Module auxadc
-+#define AUXADC_BASE (0xF1001000)
-+
-+// APB Module uart
-+#define UART1_BASE (0xF1002000)
-+
-+// APB Module uart
-+#define UART2_BASE (0xF1003000)
-+
-+// APB Module uart
-+#define UART3_BASE (0xF1004000)
-+
-+// APB Module uart
-+#define UART4_BASE (0xF1005000)
-+
-+// APB Module pwm
-+#define PWM_BASE (0xF1006000)
-+
-+// APB Module i2c
-+#define I2C0_BASE (0xF1007000)
-+
-+// APB Module i2c
-+#define I2C1_BASE (0xF1008000)
-+
-+// APB Module i2c
-+#define I2C2_BASE (0xF1009000)
-+
-+// APB Module spi
-+#define SPI0_BASE (0xF100A000)
-+#define SPI1_BASE (0xF100A000)
-+
-+// APB Module therm_ctrl
-+#define THERMAL_BASE (0xF100B000)
-+
-+// APB Module btif
-+#define BTIF_BASE (0xF100C000)
-+
-+// APB Module nfi
-+#define NFI_BASE (0xF100D000)
-+
-+// APB Module nfiecc_16bit
-+#define NFIECC_BASE (0xF100E000)
-+
-+// APB Module nli_arb
-+#define NLI_ARB_BASE (0xF100F000)
-+
-+// APB Module peri_pwrap_bridge
-+#define PERI_PWRAP_BRIDGE_BASE (0xF1017000)
-+
-+// APB Module usb2
-+#define USB_BASE (0xF1200000)
-+#define USB1_BASE   (0xF1270000)
-+
-+// APB Module usb_sif
-+#define USB_SIF_BASE (0xF1210000)
-+
-+// APB Module msdc
-+#define MSDC_0_BASE (0xF1230000)
-+
-+// APB Module msdc
-+#define MSDC_1_BASE (0xF1240000)
-+
-+// APB Module msdc
-+#define MSDC_2_BASE (0xF1250000)
-+
-+// APB Module msdc
-+#define MSDC_3_BASE (0xF12C0000)
-+
-+// APB Module wcn_ahb
-+#define WCN_AHB_BASE (0xF1260000)
-+
-+// ARB Module ethernet
-+#define ETHERNET_BASE (0xF1280000)
-+// APB Module mfg_top
-+#define G3D_CONFIG_BASE (0xF3000000)
-+
-+// APB Module mali
-+#define MALI_BASE (0xF3040000)
-+
-+// APB Module mali_tb_cmd
-+#define MALI_TB_BASE (0xF301f000)
-+
-+// APB Module mmsys_config
-+#define DISPSYS_BASE (0xF4000000)
-+
-+// APB Module mdp_rdma
-+#define MDP_RDMA_BASE (0xF4001000)
-+
-+// APB Module mdp_rsz
-+#define MDP_RSZ0_BASE (0xF4002000)
-+
-+// APB Module mdp_rsz
-+#define MDP_RSZ1_BASE (0xF4003000)
-+
-+// APB Module disp_wdma
-+#define MDP_WDMA_BASE (0xF4004000)
-+
-+// APB Module disp_wdma
-+#define WDMA1_BASE (0xF4004000)
-+
-+// APB Module mdp_wrot
-+#define MDP_WROT_BASE (0xF4005000)
-+
-+// APB Module mdp_tdshp
-+#define MDP_TDSHP_BASE (0xF4006000)
-+
-+// APB Module ovl
-+#define DISP_OVL_BASE (0xF4007000)
-+
-+// APB Module ovl
-+#define OVL0_BASE (0xF4007000)
-+
-+// APB Module ovl
-+#define OVL1_BASE (0xF4007000)
-+
-+// APB Module disp_rdma
-+#define DISP_RDMA_BASE (0xF4008000)
-+
-+// APB Module disp_rdma
-+#define R_DMA1_BASE (0xF4008000)
-+
-+// APB Module disp_rdma
-+#define R_DMA0_BASE (0xF4008000)
-+
-+// APB Module disp_wdma
-+#define DISP_WDMA_BASE (0xF4009000)
-+
-+// APB Module disp_wdma
-+#define WDMA0_BASE (0xF4009000)
-+
-+// APB Module disp_bls
-+#define DISP_BLS_BASE (0xF400A000)
-+
-+// APB Module disp_color_config
-+#define DISP_COLOR_BASE (0xF400B000)
-+
-+// APB Module dsi
-+#define DSI_BASE (0xF400C000)
-+
-+// APB Module disp_dpi
-+#define DPI_BASE (0xF400D000)
-+
-+// APB Module disp_mutex
-+#define MMSYS_MUTEX_BASE (0xF400E000)
-+
-+// APB Module mm_cmdq
-+#define MMSYS_CMDQ_BASE (0xF400F000)
-+
-+#define DPI1_BASE (0xF4014000)
-+
-+
-+// APB Module smi_larb
-+#define SMI_LARB0_BASE (0xF4010000)
-+
-+// APB Module smi
-+#define SMI_BASE (0xF4011000)
-+
-+// LVDS TX 
-+#define LVDS_TX_BASE (0xF4016200)
-+
-+// APB Module smi_larb
-+#define SMILARB2_BASE (0xF5001000)
-+
-+// APB Module smi_larb
-+#define SMI_LARB3_BASE (0xF5001000)
-+
-+// APB Module mmu
-+#define SMI_LARB3_MMU_BASE (0xF5001800)
-+
-+// APB Module smi_larb
-+#define SMI_LARB4_BASE (0xF5002000)
-+
-+// APB Module fake_eng
-+#define FAKE_ENG_BASE (0xF5002000)
-+
-+// APB Module mmu
-+#define SMI_LARB4_MMU_BASE (0xF5002800)
-+
-+// APB Module smi
-+#define VENC_BASE (0xF5009000)
-+
-+// APB Module jpgenc
-+#define JPGENC_BASE (0xF500A000)
-+
-+// APB Module vdecsys_config
-+#define VDEC_GCON_BASE (0xF6000000)
-+
-+// APB Module smi_larb
-+#define SMI_LARB1_BASE (0xF6010000)
-+
-+// APB Module mmu
-+#define SMI_LARB1_MMU_BASE (0xF6010800)
-+
-+// APB Module vdtop
-+#define VDEC_BASE (0xF6020000)
-+
-+// APB Module vdtop
-+#define VDTOP_BASE (0xF6020000)
-+
-+// APB Module vld
-+#define VLD_BASE (0xF6021000)
-+
-+// APB Module vld_top
-+#define VLD_TOP_BASE (0xF6021800)
-+
-+// APB Module mc
-+#define MC_BASE (0xF6022000)
-+
-+// APB Module avc_vld
-+#define AVC_VLD_BASE (0xF6023000)
-+
-+// APB Module avc_mv
-+#define AVC_MV_BASE (0xF6024000)
-+
-+// APB Module vdec_pp
-+#define VDEC_PP_BASE (0xF6025000)
-+
-+// APB Module vp8_vld
-+#define VP8_VLD_BASE (0xF6026800)
-+
-+// APB Module vp6
-+#define VP6_BASE (0xF6027000)
-+
-+// APB Module vld2
-+#define VLD2_BASE (0xF6027800)
-+
-+// APB Module mc_vmmu
-+#define MC_VMMU_BASE (0xF6028000)
-+
-+// APB Module pp_vmmu
-+#define PP_VMMU_BASE (0xF6029000)
-+
-+// APB Module imgsys
-+#define IMGSYS_CONFG_BASE (0xF5000000)
-+
-+// APB Module cam
-+#define CAMINF_BASE (0xF5000000)
-+
-+// APB Module csi2
-+#define CSI2_BASE (0xF5000000)
-+
-+// APB Module seninf
-+#define SENINF_BASE (0xF5000000)
-+
-+// APB Module seninf_tg
-+#define SENINF_TG_BASE (0xF5000000)
-+
-+// APB Module seninf_top
-+#define SENINF_TOP_BASE (0xF5000000)
-+
-+// APB Module mipi_rx_config
-+#define MIPI_RX_CONFIG_BASE (0xF500C000)
-+
-+// APB Module scam
-+#define SCAM_BASE (0xF5008000)
-+
-+// APB Module ncsi2
-+#define NCSI2_BASE (0xF5008000)
-+
-+// APB Module ccir656
-+#define CCIR656_BASE (0xF5000000)
-+
-+// APB Module n3d_ctl
-+#define N3D_CTL_BASE (0xF5000000)
-+
-+// APB Module fdvt
-+#define FDVT_BASE (0xF500B000)
-+
-+// APB Module audiosys
-+#define AUDIO_BASE (0xF1221000)
-+#define AUDIO_REG_BASE (0xF1220000)
-+
-+// CONNSYS
-+#define CONN_BTSYS_PKV_BASE (0xF8000000)
-+#define CONN_BTSYS_TIMCON_BASE (0xF8010000)
-+#define CONN_BTSYS_RF_CONTROL_BASE (0xF8020000)
-+#define CONN_BTSYS_MODEM_BASE (0xF8030000)
-+#define CONN_BTSYS_BT_CONFIG_BASE (0xF8040000)
-+#define CONN_MCU_CONFIG_BASE (0xF8070000)
-+#define CONN_TOP_CR_BASE (0xF80B0000)
-+#define CONN_HIF_CR_BASE (0xF80F0000)
-+
-+/*
-+ * Addresses below are added manually.
-+ * They cannot be mapped via IO_VIRT_TO_PHYS().
-+ */
-+
-+#define GIC_CPU_BASE (CORTEXA7MP_BASE + 0x2000)
-+#define GIC_DIST_BASE (CORTEXA7MP_BASE + 0x1000)
-+#define SYSRAM_BASE 0xF2000000  /* L2 cache shared RAM */
-+#define DEVINFO_BASE 0xF7000000
-+#define INTER_SRAM 0xF9000000
-+
-+#else 
-+
-+#define SMI_MMU_TOP_BASE            0xF0205000
-+#define SMILARB2_BASE               0xF5001000
-+
-+/* on-chip SRAM */
-+#define INTER_SRAM                  0xF9000000
-+
-+/* infrasys */
-+//#define TOPRGU_BASE                 0xF0000000
-+#define INFRA_BASE                  0xF0000000
-+#define INFRACFG_BASE               0xF0001000
-+#define INFRACFG_AO_BASE            0xF0001000
-+#define FHCTL_BASE                  0xF0002000
-+#define PERICFG_BASE                0xF0003000
-+#define DRAMC0_BASE                 0xF0004000
-+#define DDRPHY_BASE                 0xF000F000
-+#define DRAMC_NAO_BASE              0xF020E000
-+#define GPIO_BASE                   0xF0005000
-+#define GPIO1_BASE                  0xF020C000
-+#define TOPSM_BASE                  0xF0006000
-+#define SPM_BASE                    0xF0006000
-+#define TOPRGU_BASE                 0xF0007000
-+#define AP_RGU_BASE                 TOPRGU_BASE
-+#define APMCU_GPTIMER_BASE          0xF0008000
-+#define HACC_BASE                   0xF000A000
-+#define AP_CIRQ_EINT                0xF000B000
-+#define SMI1_BASE                   0xF000C000
-+#define MIPI_CONFIG_BASE            0xF0010000
-+// APB Module LVDS ANA
-+#define LVDS_ANA_BASE (0xF0010400)
-+
-+
-+#define KP_BASE                     0xF0011000
-+#if 0
-+#define DEVICE_APC_0_BASE           0xF0010000
-+#define DEVICE_APC_1_BASE           0xF0011000
-+#define DEVICE_APC_2_BASE           0xF0012000
-+#define DEVICE_APC_3_BASE           0xF0013000
-+#define DEVICE_APC_4_BASE           0xF0014000
-+#define SMI0_BASE                   0xF0208000
-+#endif
-+#define EINT_BASE                   0xF000B000
-+
-+
-+#define DEBUGTOP_BASE               0xF0100000
-+#define MCUSYS_CFGREG_BASE          0xF0200000
-+#define SRAMROM_BASE                0xF0202000
-+#define EMI_BASE                    0xF0203000
-+#define EFUSEC_BASE                 0xF0206000
-+#define MCU_BIU_BASE                0xF0208000
-+#define APMIXED_BASE                0xF0209000
-+#define APMIXEDSYS_BASE             0xF0209000
-+#define AP_CCIF_BASE                0xF020A000
-+#define MD_CCIF_BASE                0xF020B000
-+#define INFRA_TOP_MBIST_CTRL_BASE   0xF020D000
-+#define DRAMC_NAO_BASE              0xF020E000
-+#define CORTEXA7MP_BASE             0xF0210000
-+#define GIC_CPU_BASE    (CORTEXA7MP_BASE + 0x2000)
-+#define GIC_DIST_BASE   (CORTEXA7MP_BASE + 0x1000)
-+//#define SMI_LARB_BASE             0xF0211000
-+//#define MCUSYS_AVS_BASE           0xF0212000
-+
-+/* perisys */
-+/*avalaible*/
-+#define AP_DMA_BASE                 0xF1000000
-+#define AUXADC_BASE                 0xF1001000
-+#define UART1_BASE                  0xF1002000
-+#define UART2_BASE                  0xF1003000
-+#define UART3_BASE                  0xF1004000
-+#define UART4_BASE                  0xF1005000
-+#define PWM_BASE                    0xF1006000
-+#define I2C0_BASE                   0xF1007000
-+#define I2C1_BASE                   0xF1008000
-+#define I2C2_BASE                   0xF1009000
-+#define SPI0_BASE                   0xF100A000
-+#define BTIF_BASE                   (0xF100C000)
-+#define NFI_BASE                    0xF100D000
-+#define NFIECC_BASE                 0xF100E000
-+#define NLI_ARB_BASE                0xF100F000
-+#define I2C3_BASE                   0xF1010000 //FIXME 6582 take off
-+#define SPI1_BASE                   0xF100A000 
-+#define THERMAL_BASE                0xF100B000
-+
-+// APB Module pmic_wrap
-+#define PWRAP_BASE (0xF000D000)
-+
-+#if 0
-+//#define IRDA_BASE                 0xF1007000
-+#define I2C4_BASE                   0xF1014000
-+#define I2CDUAL_BASE                0xF1015000
-+#define ACCDET_BASE                 0xF1016000
-+#define AP_HIF_BASE                 0xF1017000
-+#define MD_HIF_BASE                 0xF1018000
-+#define GCPU_BASE                   0xF101B000
-+#define GCPU_NS_BASE                0xF01C000
-+#define GCPU_MMU_BASE               0xF01D000
-+#define SATA_BASE                   0xF01E000
-+#define CEC_BASE                    0xF01F000
-+//#define SPI1_BASE                 0xF1022000
-+#endif
-+
-+#define USB1_BASE                   0xF1270000
-+#define USB2_BASE                   0xF1200000
-+#define USB_BASE                    0xF1200000
-+#define USB_SIF_BASE                0xF1210000
-+//#define USB3_BASE                 0xF1220000
-+#define MSDC_0_BASE                 0xF1230000
-+#define MSDC_1_BASE                 0xF1240000
-+#define MSDC_2_BASE                 0xF1250000
-+#define MSDC_3_BASE                 0xF12C0000
-+#define MSDC_4_BASE                 0xF1270000
-+//#define ETHERNET_BASE             0xF1290000
-+
-+//#define ETB_BASE                  0xF0111000
-+//#define ETM_BASE                  0xF017C000
-+
-+
-+/* SMI common subsystem */
-+#define SYSRAM_BASE                 0xF2000000
-+#define AUDIO_REG_BASE              0xF2030000
-+#define MFG_AXI_BASE                0xF2060000
-+#define CONN_MCU_CONFIG_BASE       0xF8070000
-+#define AUDIO_BASE                  0xF1200000 //0xF2071000
-+#define MMSYS1_CONFIG_BASE          0xF2080000
-+#define SMI_LARB0_BASE              0xF2081000
-+// APB Module smi
-+#define SMI_BASE (0xF4011000)
-+#define SMI_LARB1_BASE              0xF2082000
-+#define SMI_LARB2_BASE              0xF2083000
-+#define VDEC_GCON_BASE              0xF6000000 //0xF4000000
-+#define VDEC_BASE                   0xF4020000
-+#define VENC_TOP_BASE               0xF7000000
-+#define VENC_BASE                   0xF7002000
-+#define JPGENC_BASE                 0xF500A000
-+#define R_DMA0_BASE                 0xF2086000
-+#define R_DMA1_BASE                 0xF2087000
-+#define VDO_ROT0_BASE               0xF2088000
-+#define RGB_ROT0_BASE               0xF2089000
-+#define VDO_ROT1_BASE               0xF208A000
-+#define RGB_ROT1_BASE               0xF208B000
-+//#define DPI_BASE                    0xF208C000
-+#define BRZ_BASE                    0xF208D000
-+#define JPG_DMA_BASE                0xF208E000
-+#define OVL_DMA_BASE                0xF208F000
-+#define CSI2_BASE                   0xF2092000
-+#define CRZ_BASE                    0xF2093000
-+#define VRZ0_BASE                   0xF2094000
-+#define IMGPROC_BASE                0xF2095000
-+#define EIS_BASE                    0xF2096000
-+#define SPI_BASE                    0xF2097000
-+#define SCAM_BASE                   0xF2098000
-+#define PRZ0_BASE                   0xF2099000
-+#define PRZ1_BASE                   0xF209A000
-+#define JPG_CODEC_BASE              0xF209B000
-+//#define DSI_BASE                    0xF209C000
-+#define TVC_BASE                    0xF209D000
-+#define TVE_BASE                    0xF209E000
-+#define TV_ROT_BASE                 0xF209F000
-+#define RGB_ROT2_BASE               0xF20A0000
-+//#define LCD_BASE                    0xF20A1000
-+#define FD_BASE                     0xF20A2000
-+#define MIPI_CONFG_BASE             0xF20A3000
-+#define VRZ1_BASE                   0xF20A4000
-+#define MMSYS2_CONFG_BASE           0xF20C0000
-+#define SMI_LARB3_BASE              0xF20C1000
-+#define MFG_APB_BASE                0xF20C4000
-+#define G2D_BASE                    0xF20C6000
-+
-+#define DISPSYS_BASE                          0xF4000000
-+#define ROT_BASE                                      0xF4001000
-+#define SCL_BASE                                      0xF4002000
-+#define OVL_BASE                                      0xF4007000
-+#define WDMA0_BASE                                    0xF4009000
-+#define WDMA1_BASE                                    0xF4005000
-+#define RDMA0_BASE                                    0xF4008000
-+//#define RDMA1_BASE                                  0xF4007000
-+#define BLS_BASE                                      0xF400A000
-+//#define GAMMA_BASE                                  0xF400000
-+#define COLOR_BASE                                    0xF400B000
-+#define TDSHP_BASE                                    0xF4006000
-+#define LCD_BASE                                      0xF4012000// only exist on FPGA
-+#define DSI_BASE                                      0xF400C000
-+#define DPI_BASE                                      0xF400D000
-+
-+#define DPI1_BASE                                0xF4014000
-+
-+// LVDS TX 
-+#define LVDS_TX_BASE (0xF4016200)
-+
-+#define SMILARB1_BASE                         0xF4010000
-+#define DISP_MUTEX_BASE                               0xF400E000
-+#define DISP_CMDQ_BASE                                0xF400F000
-+
-+/* imgsys */
-+#define IMGSYS_CONFG_BASE           0xF5000000
-+#define CAMINF_BASE                 IMGSYS_CONFG_BASE
-+
-+/* G3DSYS */
-+#define G3D_CONFIG_BASE             0xF3000000
-+#define MALI_BASE                   0xF3040000
-+
-+#define DEVINFO_BASE                0xF8000000
-+
-+#endif
-+
-+#endif
---- /dev/null
-+++ b/arch/arm/mach-mediatek/rt_mmap.h
-@@ -0,0 +1,58 @@
-+#define HIFSYS_BASE                   0xFA000000 //for PCIe/USB
-+#define ETHDMASYS_BASE                        0xFB000000 //for I2S/PCM/GDMA/HSDMA/FE/GMAC
-+
-+#define HIFSYS_PCI_BASE                 0xFA140000
-+#define HIFSYS_USB_HOST_BASE            0xFA1C0000
-+#define HIFSYS_USB_HOST2_BASE           0xFA240000
-+
-+#define ETHDMASYS_SYSCTL_BASE           0xFB000000
-+#define ETHDMASYS_RBUS_MATRIXCTL_BASE   0xFB000400
-+#define ETHDMASYS_I2S_BASE              0xFB000A00
-+#define ETHDMASYS_PCM_BASE              0xFB002000
-+#define ETHDMASYS_GDMA_BASE             0xFB002800
-+#define ETHDMASYS_HS_DMA_BASE           0xFB007000
-+#define ETHDMASYS_FRAME_ENGINE_BASE     0xFB100000
-+#define ETHDMASYS_PPE_BASE            0xFB100C00
-+#define ETHDMASYS_ETH_SW_BASE         0xFB110000
-+#define ETHDMASYS_CRYPTO_ENGINE_BASE  0xFB240000
-+
-+//for backward-compatible
-+#define RALINK_FRAME_ENGINE_BASE      ETHDMASYS_FRAME_ENGINE_BASE
-+#define RALINK_PPE_BASE                 ETHDMASYS_PPE_BASE
-+#define RALINK_SYSCTL_BASE            ETHDMASYS_SYSCTL_BASE
-+#define RALINK_ETH_SW_BASE            ETHDMASYS_ETH_SW_BASE
-+#define RALINK_GDMA_BASE      ETHDMASYS_GDMA_BASE
-+#define RALINK_HS_DMA_BASE    ETHDMASYS_HS_DMA_BASE
-+#define RALINK_11N_MAC_BASE           0       //unused for rt_rdm usage
-+
-+//Reset Control Register
-+#define RSTCTL_SYS_RST                        (1<<0)
-+#define RSTCTL_MCM_RST                        (1<<2)
-+#define RSTCTL_HSDMA_RST              (1<<5)
-+#define RSTCTL_FE_RST                 (1<<6)
-+#define RSTCTL_SPDIF_RST              (1<<7)
-+#define RSTCTL_TIMER_RST              (1<<8)
-+#define RSTCTL_CIRQ_RST                       (1<<9)
-+#define RSTCTL_MC_RST                 (1<<10)
-+#define RSTCTL_PCM_RST                        (1<<11)
-+#define RSTCTL_GPIO_RST                       (1<<13)
-+#define RSTCTL_GDMA_RST                       (1<<14)
-+#define RSTCTL_NAND_RST                       (1<<15)
-+#define RSTCTL_I2C_RST                        (1<<16)
-+#define RSTCTL_I2S_RST                        (1<<17)
-+#define RSTCTL_SPI_RST                        (1<<18)
-+#define RSTCTL_UART0_RST              (1<<19)
-+#define RSTCTL_UART1_RST              (1<<20)
-+#define RSTCTL_UART2_RST              (1<<21)
-+#define RSTCTL_UPHY_RST                       (1<<22)
-+#define RSTCTL_ETH_RST                        (1<<23)
-+#define RSTCTL_PCIE0_RST              (1<<24)
-+#define RSTCTL_PCIE1_RST              (1<<25)
-+#define RSTCTL_PCIE2_RST              (1<<26)
-+#define RSTCTL_AUX_STCK_RST           (1<<28)
-+#define RSTCTL_CRYPT_RST              (1<<29)
-+#define RSTCTL_SDXC_RST                       (1<<30)
-+#define RSTCTL_PWM_RST                        (1<<31)
-+
-+//for backward-compatible
-+#define RALINK_FE_RST                 RSTCTL_FE_RST