tizen 2.4 release
[kernel/u-boot-tm1.git] / arch / arm / include / asm / arch-sc8800g / sc8800g_reg_ahb.h
1 /******************************************************************************
2  ** File Name:    sc8800g_reg_ahb.h                                            *
3  ** Author:       Daniel.Ding                                                 *
4  ** DATE:         11/13/2005                                                  *
5  ** Copyright:    2005 Spreatrum, Incoporated. All Rights Reserved.           *
6  ** Description:                                                              *
7  ******************************************************************************/
8 /******************************************************************************
9  **                   Edit    History                                         *
10  **---------------------------------------------------------------------------*
11  ** DATE          NAME            DESCRIPTION                                 *
12  ** 11/13/2005    Daniel.Ding     Create.                                     *
13  ** 05/07/2010    Mingwei.zhang   Modify it for SC8800G.                      *
14  ******************************************************************************/
15 #ifndef _SC8800G_REG_AHB_H_
16 #define _SC8800G_REG_AHB_H_
17 /*----------------------------------------------------------------------------*
18  **                         Dependencies                                      *
19  **-------------------------------------------------------------------------- */
20
21 /**---------------------------------------------------------------------------*
22  **                             Compiler Flag                                 *
23  **---------------------------------------------------------------------------*/
24 #ifdef   __cplusplus
25 extern   "C"
26 {
27 #endif
28 /**----------------------------------------------------------------------------*
29 **                               Micro Define                                 **
30 **----------------------------------------------------------------------------*/
31 #define AHB_REG_BASE            0x20900200
32 #define CHIP_TYPE               0x209003FC
33
34 #define AHB_CTL0                (AHB_REG_BASE + 0x00)
35 #define AHB_CTL1                (AHB_REG_BASE + 0x04)
36 #define AHB_CTL2                (AHB_REG_BASE + 0x08)
37 #define AHB_CTL3                (AHB_REG_BASE + 0x0C)
38 #define AHB_SOFT_RST            (AHB_REG_BASE + 0x10)
39 #define AHB_PAUSE               (AHB_REG_BASE + 0x14)
40 #define AHB_REMAP               (AHB_REG_BASE + 0x18)
41 #define AHB_ARM_CLK             (AHB_REG_BASE + 0x24)
42 #define AHB_SDIO_CTL            (AHB_REG_BASE + 0x28)
43 #define AHB_CTL4                (AHB_REG_BASE + 0x2C)
44 #define AHB_ENDIAN_SEL          (AHB_REG_BASE + 0x30)
45 #define AHB_STS                 (AHB_REG_BASE + 0x34)
46 #define DSP_BOOT_EN             (AHB_REG_BASE + 0x84)
47 #define DSP_BOOT_VEC            (AHB_REG_BASE + 0x88)
48 #define DSP_RST                 (AHB_REG_BASE + 0x8C)
49 #define AHB_ENDIAN_EN           (AHB_REG_BASE + 0x90)
50 #define USB_PHY_CTRL            (AHB_REG_BASE + 0xA0)
51
52 #define CHIP_ID                 (AHB_REG_BASE + 0x1FC)
53
54 #define AHB_DSP_BOOT_EN             (AHB_REG_BASE + 0x84)
55 #define AHB_DSP_BOOT_VECTOR         (AHB_REG_BASE + 0x88)
56 #define AHB_DSP_RESET               (AHB_REG_BASE + 0x8C)
57 #define AHB_BIGEND_PROT_REG    (AHB_REG_BASE + 0x90)
58
59 #define AHB_CTL0_DCAM_EN   BIT_1
60 #define AHB_CTL0_CCIR_EN    BIT_2
61 #define AHB_CTL0_LCDC_EN    BIT_3
62 #define AHB_CTL0_SDIO_EN    BIT_4
63 #define AHB_CTL0_USBD_EN    BIT_5
64 #define AHB_CTL0_DMA_EN     BIT_6
65 #define AHB_CTL0_BM0_EN     (BIT_7)
66 #define AHB_CTL0_NFC_EN      BIT_8
67 #define AHB_CTL0_BM1_EN     (BIT_11)
68 #define AHB_CTL0_VSP_EN      BIT_13
69 #define AHB_CTL0_ROT_EN      BIT_14
70 #define AHB_CTL0_DRM_EN     BIT_18
71 #define AHB_CTL0_AHB_ARCH_EB   BIT_15
72 #define AHB_CTL0_EMC_EN   BIT_28
73
74 #define AHB_BIGENDIAN_DMA           BIT_0
75 #define AHB_BIGENDIAN_NFC                                               BIT_1
76 #define AHB_BIGENDIAN_LCDC                                      BIT_2
77 #define AHB_BIGENDIAN_SDIO                                      BIT_3
78 #define AHB_BIGENDIAN_DCAM                                      BIT_4
79 #define AHB_BIGENDIAN_VSP                                               BIT_5
80 #define AHB_BIGENDIAN_ROT                                               BIT_6
81 #define AHB_BIGENDIAN_BM0                                               BIT_7
82 #define AHB_BIGENDIAN_BM1                                               BIT_8
83 #define AHB_BIGENDIAN_SHARM                                     BIT_9
84
85 #define AHB_ENDIAN_OPEN             0xC3D4
86 // Bit define AHB_CTRL1
87 #define AHB_CTRL1_EMC_AUTO_GATE_EN BIT_8
88 #define AHB_CTRL1_EMC_CH_AUTO_GATE_EN  BIT_9
89 #define AHB_CTRL1_ARM_AUTO_GATE_EN  BIT_11
90 #define AHB_CTRL1_AHB_AUTO_GATE_EN  BIT_12
91 #define AHB_CTRL1_MCU_AUTO_GATE_EN  BIT_13
92 #define AHB_CTRL1_MSTMTX_AUTO_GATE_EN  BIT_14
93 #define AHB_CTRL1_ARMMTX_AUTO_GATE_EN  BIT_15
94 #define AHB_CTRL1_ARM_DAHB_SLEEP_EN  BIT_16
95
96 ///USB_PHY_CTRL
97 #define USB_DM_PULLUP_BIT       BIT_19
98 #define USB_DP_PULLDOWN_BIT     BIT_20
99 #define USB_DM_PULLDOWN_BIT     BIT_21
100
101
102 /**----------------------------------------------------------------------------*
103 **                             Data Prototype                                 **
104 **----------------------------------------------------------------------------*/
105 #ifdef CHIP_ENDIAN_LITTLE
106 typedef union _ahb_ctl0_reg_tag
107 {
108     struct _ahb_ctl0_reg_map
109     {
110         volatile unsigned int    reserved               :1; ////apb_eb            :1;
111         volatile unsigned int    dcam_eb                :1; //BIT_1
112         volatile unsigned int    ccir_eb                :1; //BIT_2
113         volatile unsigned int    lcdc_eb                :1; //BIT_3
114         volatile unsigned int    sdio_eb                :1; //BIT_4
115         volatile unsigned int    usbd_eb                :1; //BIT_5
116         volatile unsigned int    dma_eb                 :1; //BIT_6
117         volatile unsigned int    bm0_eb                 :1; //BIT_7
118         volatile unsigned int    nfc_eb                 :1; //BIT_8
119         volatile unsigned int    reserved0              :2; //BIT_9-10
120         volatile unsigned int    bm1_eb                 :1; //BIT_11
121         volatile unsigned int    reserved1              :1; //BIT_12
122         volatile unsigned int    vsp_eb                 :1; //BIT_13
123         volatile unsigned int    rot_eb                 :1; //BIT_14
124         volatile unsigned int    reserved2              :3; //BIT_15-17
125         volatile unsigned int    drm_eb                 :1; //BIT_18
126         volatile unsigned int    reserved3              :8; //BIT_19-26
127         volatile unsigned int    ahb_arch_en            :1; //BIT_27
128         volatile unsigned int    emc_en                 :1; //BIT_28
129         volatile unsigned int    reserved4              :3; //BIT_29-31
130     } mBits ;
131     volatile unsigned int dwValue ;
132 } AHB_CTL0_U;
133
134 typedef union _ahb_ctl1_reg_tag
135 {
136     struct _ahb_ctl1_reg_map
137     {
138         volatile unsigned int    dcam_buf_sw            :1; //BIT_0
139         volatile unsigned int    dcam_buf_status        :1; //BIT_1
140         volatile unsigned int    reserved0              :6; //BIT_2-7
141         volatile unsigned int    emc_auto_gate_en       :1; //BIT_8
142         volatile unsigned int    emc_ch_auto_gate_en    :1; //BIT_9
143         volatile unsigned int    reserved1              :1; //BIT_10
144         volatile unsigned int    arm_auto_gate_en       :1; //BIT_11
145         volatile unsigned int    ahb_auto_gate_en       :1; //BIT_12
146         volatile unsigned int    mcu_auto_gate_en       :1; //BIT_13
147         volatile unsigned int    mstmtx_auto_gate_en    :1; //BIT_14
148         volatile unsigned int    armmtx_auto_gate_en    :1; //BIT_15
149         volatile unsigned int    arm_dahb_sleep_en      :1; //BIT_16
150         volatile unsigned int    reserved2              :15; //BIT_17-31
151     } mBits ;
152     volatile unsigned int dwValue ;
153 } AHB_CTL1_U;
154
155 typedef union _ahb_ctl2_reg_tag
156 {
157     struct _ahb_ctl2_reg_map
158     {
159         volatile unsigned int    Reserved0              :3; //BIT_0-2
160         volatile unsigned int    mcu_shm_ctrl           :2; //BIT_3-4
161         volatile unsigned int    reserved1              :27; //BIT_5-31
162     } mBits ;
163     volatile unsigned int dwValue ;
164 } AHB_CTL2_U;
165
166 typedef union _ahb_ctl3_reg_tag
167 {
168     struct _ahb_ctl3_reg_map
169     {
170         volatile unsigned int    clk_usb_ref_sel        :1; //BIT_0
171         volatile unsigned int    usb_s_hbigendian       :1; //BIT_1
172         volatile unsigned int    usb_m_hbigendian       :1; //BIT_2
173         volatile unsigned int    reserved0              :1; //BIT_3
174         volatile unsigned int    busmon_sel0            :1; //BIT_4
175         volatile unsigned int    busmon_sel1            :1; //BIT_5
176         volatile unsigned int    clk_usb_ref_en         :1; //BIT_6
177         volatile unsigned int    clk_utmifs_en          :1; //BIT_7
178         volatile unsigned int    utmifs_tx_en_inv       :1; //BIT_8
179         volatile unsigned int    utmi_suspend_inv       :1; //BIT_9
180         volatile unsigned int    clk_ulpi_en            :1; //BIT_10
181         volatile unsigned int    reserved1              :21; //BIT_11-31
182     } mBits ;
183     volatile unsigned int dwValue ;
184 } AHB_CTL3_U;
185
186
187 typedef union _ahb_soft_rst_reg_tag
188 {
189     struct _ahb_soft_rst_reg_map
190     {
191         volatile unsigned int    dma_rst                :1; //BIT_0
192         volatile unsigned int    dcam_rst               :1; //BIT_1
193         volatile unsigned int    ccir_rst               :1;//BIT_2
194         volatile unsigned int    lcdc_rst               :1;//BIT_3
195         volatile unsigned int    reserved0              :1;//Reserved
196         volatile unsigned int    nfc_rst                :1;//BIT_5
197         volatile unsigned int    usbd_utmi_rst          :1;//BIT_6
198         volatile unsigned int    usbphy_rst             :1;//BIT_7
199         volatile unsigned int    reserved1              :2;//Reserved
200         volatile unsigned int    rot_rst                :1;//BIT_10
201         volatile unsigned int    emc_rst                :1;//BIT_11
202         volatile unsigned int    sd_rst                 :1;//BIT_12
203         volatile unsigned int    drm_rst                :1;//BIT_13
204         volatile unsigned int    adc_rst                :1;//BIT_14
205         volatile unsigned int    vsp_rst                :1;//BIT_15
206         volatile unsigned int    reserved2              :16;//Reserved
207     } mBits;
208     volatile unsigned int dwValue;
209 } AHB_SOFT_RST_U;
210 #else
211 typedef union _ahb_ctl0_reg_tag
212 {
213     struct _ahb_ctl0_reg_map
214     {
215         volatile unsigned int    reserved4              :3; //BIT_29-31
216         volatile unsigned int    emc_en                 :1; //BIT_28
217         volatile unsigned int    ahb_arch_en            :1; //BIT_27
218         volatile unsigned int    reserved3              :8; //BIT_19-26
219         volatile unsigned int    drm_eb                 :1; //BIT_18
220         volatile unsigned int    reserved2              :3; //BIT_15-17
221         volatile unsigned int    rot_eb                 :1; //BIT_14
222         volatile unsigned int    vsp_eb                 :1; //BIT_13
223         volatile unsigned int    reserved1              :1; //BIT_12
224         volatile unsigned int    bm1_eb                 :1; //BIT_11
225         volatile unsigned int    reserved0              :2; //BIT_9-10
226         volatile unsigned int    nfc_eb                 :1; //BIT_8
227         volatile unsigned int    bm0_eb                 :1; //BIT_7
228         volatile unsigned int    dma_eb                 :1; //BIT_6
229         volatile unsigned int    usbd_eb                :1; //BIT_5
230         volatile unsigned int    sdio_eb                :1; //BIT_4
231         volatile unsigned int    lcdc_eb                :1; //BIT_3
232         volatile unsigned int    ccir_eb                :1; //BIT_2
233         volatile unsigned int    dcam_eb                :1; //BIT_1
234         volatile unsigned int    reserved               :1; ////apb_eb            :1;
235     } mBits ;
236     volatile unsigned int dwValue ;
237 } AHB_CTL0_U;
238
239 typedef union _ahb_ctl1_reg_tag
240 {
241     struct _ahb_ctl1_reg_map
242     {
243         volatile unsigned int    reserved2              :15; //BIT_17-31
244         volatile unsigned int    arm_dahb_sleep_en      :1; //BIT_16
245         volatile unsigned int    armmtx_auto_gate_en    :1; //BIT_15
246         volatile unsigned int    mstmtx_auto_gate_en    :1; //BIT_14
247         volatile unsigned int    mcu_auto_gate_en       :1; //BIT_13
248         volatile unsigned int    ahb_auto_gate_en       :1; //BIT_12
249         volatile unsigned int    arm_auto_gate_en       :1; //BIT_11
250         volatile unsigned int    reserved1              :1; //BIT_10
251         volatile unsigned int    emc_ch_auto_gate_en    :1; //BIT_9
252         volatile unsigned int    emc_auto_gate_en       :1; //BIT_8
253         volatile unsigned int    reserved0              :6; //BIT_2-7
254         volatile unsigned int    dcam_buf_status        :1; //BIT_1
255         volatile unsigned int    dcam_buf_sw            :1; //BIT_0
256     } mBits ;
257     volatile unsigned int dwValue ;
258 } AHB_CTL1_U;
259
260 typedef union _ahb_ctl2_reg_tag
261 {
262     struct _ahb_ctl2_reg_map
263     {
264         volatile unsigned int    reserved1              :27; //BIT_5-31
265         volatile unsigned int    mcu_shm_ctrl           :2; //BIT_3-4
266         volatile unsigned int    Reserved0              :3; //BIT_0-2
267     } mBits ;
268     volatile unsigned int dwValue ;
269 } AHB_CTL2_U;
270
271 typedef union _ahb_ctl3_reg_tag
272 {
273     struct _ahb_ctl3_reg_map
274     {
275         volatile unsigned int    reserved1              :21; //BIT_11-31
276         volatile unsigned int    clk_ulpi_en            :1; //BIT_10
277         volatile unsigned int    utmi_suspend_inv       :1; //BIT_9
278         volatile unsigned int    utmifs_tx_en_inv       :1; //BIT_8
279         volatile unsigned int    clk_utmifs_en          :1; //BIT_7
280         volatile unsigned int    clk_usb_ref_en         :1; //BIT_6
281         volatile unsigned int    busmon_sel1            :1; //BIT_5
282         volatile unsigned int    busmon_sel0            :1; //BIT_4
283         volatile unsigned int    reserved0              :1; //BIT_3
284         volatile unsigned int    usb_m_hbigendian       :1; //BIT_2
285         volatile unsigned int    usb_s_hbigendian       :1; //BIT_1
286         volatile unsigned int    clk_usb_ref_sel        :1; //BIT_0
287     } mBits ;
288     volatile unsigned int dwValue ;
289 } AHB_CTL3_U;
290
291
292 typedef union _ahb_soft_rst_reg_tag
293 {
294     struct _ahb_soft_rst_reg_map
295     {
296         volatile unsigned int    reserved2              :16;//Reserved
297         volatile unsigned int    vsp_rst                :1;//BIT_15
298         volatile unsigned int    adc_rst                :1;//BIT_14
299         volatile unsigned int    drm_rst                :1;//BIT_13
300         volatile unsigned int    sd_rst                 :1;//BIT_12
301         volatile unsigned int    emc_rst                :1;//BIT_11
302         volatile unsigned int    rot_rst                :1;//BIT_10
303         volatile unsigned int    reserved1              :2;//Reserved
304         volatile unsigned int    usbphy_rst             :1;//BIT_7
305         volatile unsigned int    usbd_utmi_rst          :1;//BIT_6
306         volatile unsigned int    nfc_rst                :1;//BIT_5
307         volatile unsigned int    reserved0              :1;//Reserved
308         volatile unsigned int    lcdc_rst               :1;//BIT_3
309         volatile unsigned int    ccir_rst               :1;//BIT_2
310         volatile unsigned int    dcam_rst               :1; //BIT_1
311         volatile unsigned int    dma_rst                :1; //BIT_0
312     } mBits;
313     volatile unsigned int dwValue;
314 } AHB_SOFT_RST_U;
315 #endif
316
317 /**----------------------------------------------------------------------------*
318 **                         Local Function Prototype                           **
319 **----------------------------------------------------------------------------*/
320
321 /**----------------------------------------------------------------------------*
322 **                           Function Prototype                               **
323 **----------------------------------------------------------------------------*/
324
325
326 /**----------------------------------------------------------------------------*
327 **                         Compiler Flag                                      **
328 **----------------------------------------------------------------------------*/
329 #ifdef   __cplusplus
330 }
331 #endif
332 /**---------------------------------------------------------------------------*/
333 #endif
334 // End