~ubuntu-branches/ubuntu/precise/linux-ti-omap4/precise

« back to all changes in this revision

Viewing changes to arch/arm/plat-omap/include/plat/control.h

  • Committer: Bazaar Package Importer
  • Author(s): Paolo Pisati
  • Date: 2011-06-29 15:23:51 UTC
  • mfrom: (26.1.1 natty-proposed)
  • Revision ID: james.westby@ubuntu.com-20110629152351-xs96tm303d95rpbk
Tags: 3.0.0-1200.2
* Rebased against 3.0.0-6.7
* BSP from TI based on 3.0.0

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * arch/arm/plat-omap/include/mach/control.h
 
3
 *
 
4
 * OMAP2/3/4 System Control Module definitions
 
5
 *
 
6
 * Copyright (C) 2007-2009 Texas Instruments, Inc.
 
7
 * Copyright (C) 2007-2008 Nokia Corporation
 
8
 *
 
9
 * Written by Paul Walmsley
 
10
 *
 
11
 * This program is free software; you can redistribute it and/or modify
 
12
 * it under the terms of the GNU General Public License as published by
 
13
 * the Free Software Foundation.
 
14
 */
 
15
 
 
16
#ifndef __ASM_ARCH_CONTROL_H
 
17
#define __ASM_ARCH_CONTROL_H
 
18
 
 
19
#include <mach/io.h>
 
20
 
 
21
#ifndef __ASSEMBLY__
 
22
#define OMAP242X_CTRL_REGADDR(reg)                                      \
 
23
                OMAP2_L4_IO_ADDRESS(OMAP242X_CTRL_BASE + (reg))
 
24
#define OMAP243X_CTRL_REGADDR(reg)                                      \
 
25
                OMAP2_L4_IO_ADDRESS(OMAP243X_CTRL_BASE + (reg))
 
26
#define OMAP343X_CTRL_REGADDR(reg)                                      \
 
27
                OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE + (reg))
 
28
#else
 
29
#define OMAP242X_CTRL_REGADDR(reg)                                      \
 
30
                OMAP2_L4_IO_ADDRESS(OMAP242X_CTRL_BASE + (reg))
 
31
#define OMAP243X_CTRL_REGADDR(reg)                                      \
 
32
                OMAP2_L4_IO_ADDRESS(OMAP243X_CTRL_BASE + (reg))
 
33
#define OMAP343X_CTRL_REGADDR(reg)                                      \
 
34
                OMAP2_L4_IO_ADDRESS(OMAP343X_CTRL_BASE + (reg))
 
35
#endif /* __ASSEMBLY__ */
 
36
 
 
37
/*
 
38
 * As elsewhere, the "OMAP2_" prefix indicates that the macro is valid for
 
39
 * OMAP24XX and OMAP34XX.
 
40
 */
 
41
 
 
42
/* Control submodule offsets */
 
43
 
 
44
#define OMAP2_CONTROL_INTERFACE         0x000
 
45
#define OMAP2_CONTROL_PADCONFS          0x030
 
46
#define OMAP2_CONTROL_GENERAL           0x270
 
47
#define OMAP343X_CONTROL_MEM_WKUP       0x600
 
48
#define OMAP343X_CONTROL_PADCONFS_WKUP  0xa00
 
49
#define OMAP343X_CONTROL_GENERAL_WKUP   0xa60
 
50
 
 
51
/* Control register offsets - read/write with omap_ctrl_{read,write}{bwl}() */
 
52
 
 
53
#define OMAP2_CONTROL_SYSCONFIG         (OMAP2_CONTROL_INTERFACE + 0x10)
 
54
 
 
55
/* CONTROL_GENERAL register offsets common to OMAP2 & 3 */
 
56
#define OMAP2_CONTROL_DEVCONF0          (OMAP2_CONTROL_GENERAL + 0x0004)
 
57
#define OMAP2_CONTROL_MSUSPENDMUX_0     (OMAP2_CONTROL_GENERAL + 0x0020)
 
58
#define OMAP2_CONTROL_MSUSPENDMUX_1     (OMAP2_CONTROL_GENERAL + 0x0024)
 
59
#define OMAP2_CONTROL_MSUSPENDMUX_2     (OMAP2_CONTROL_GENERAL + 0x0028)
 
60
#define OMAP2_CONTROL_MSUSPENDMUX_3     (OMAP2_CONTROL_GENERAL + 0x002c)
 
61
#define OMAP2_CONTROL_MSUSPENDMUX_4     (OMAP2_CONTROL_GENERAL + 0x0030)
 
62
#define OMAP2_CONTROL_MSUSPENDMUX_5     (OMAP2_CONTROL_GENERAL + 0x0034)
 
63
#define OMAP2_CONTROL_SEC_CTRL          (OMAP2_CONTROL_GENERAL + 0x0040)
 
64
#define OMAP2_CONTROL_RPUB_KEY_H_0      (OMAP2_CONTROL_GENERAL + 0x0090)
 
65
#define OMAP2_CONTROL_RPUB_KEY_H_1      (OMAP2_CONTROL_GENERAL + 0x0094)
 
66
#define OMAP2_CONTROL_RPUB_KEY_H_2      (OMAP2_CONTROL_GENERAL + 0x0098)
 
67
#define OMAP2_CONTROL_RPUB_KEY_H_3      (OMAP2_CONTROL_GENERAL + 0x009c)
 
68
 
 
69
/* 242x-only CONTROL_GENERAL register offsets */
 
70
#define OMAP242X_CONTROL_DEVCONF        OMAP2_CONTROL_DEVCONF0 /* match TRM */
 
71
#define OMAP242X_CONTROL_OCM_RAM_PERM   (OMAP2_CONTROL_GENERAL + 0x0068)
 
72
 
 
73
/* 243x-only CONTROL_GENERAL register offsets */
 
74
/* CONTROL_IVA2_BOOT{ADDR,MOD} are at the same place on 343x - noted below */
 
75
#define OMAP243X_CONTROL_DEVCONF1       (OMAP2_CONTROL_GENERAL + 0x0078)
 
76
#define OMAP243X_CONTROL_CSIRXFE        (OMAP2_CONTROL_GENERAL + 0x007c)
 
77
#define OMAP243X_CONTROL_IVA2_BOOTADDR  (OMAP2_CONTROL_GENERAL + 0x0190)
 
78
#define OMAP243X_CONTROL_IVA2_BOOTMOD   (OMAP2_CONTROL_GENERAL + 0x0194)
 
79
#define OMAP243X_CONTROL_IVA2_GEMCFG    (OMAP2_CONTROL_GENERAL + 0x0198)
 
80
#define OMAP243X_CONTROL_PBIAS_LITE     (OMAP2_CONTROL_GENERAL + 0x0230)
 
81
 
 
82
/* 24xx-only CONTROL_GENERAL register offsets */
 
83
#define OMAP24XX_CONTROL_DEBOBS         (OMAP2_CONTROL_GENERAL + 0x0000)
 
84
#define OMAP24XX_CONTROL_EMU_SUPPORT    (OMAP2_CONTROL_GENERAL + 0x0008)
 
85
#define OMAP24XX_CONTROL_SEC_TEST       (OMAP2_CONTROL_GENERAL + 0x0044)
 
86
#define OMAP24XX_CONTROL_PSA_CTRL       (OMAP2_CONTROL_GENERAL + 0x0048)
 
87
#define OMAP24XX_CONTROL_PSA_CMD        (OMAP2_CONTROL_GENERAL + 0x004c)
 
88
#define OMAP24XX_CONTROL_PSA_VALUE      (OMAP2_CONTROL_GENERAL + 0x0050)
 
89
#define OMAP24XX_CONTROL_SEC_EMU        (OMAP2_CONTROL_GENERAL + 0x0060)
 
90
#define OMAP24XX_CONTROL_SEC_TAP        (OMAP2_CONTROL_GENERAL + 0x0064)
 
91
#define OMAP24XX_CONTROL_OCM_PUB_RAM_ADD        (OMAP2_CONTROL_GENERAL + 0x006c)
 
92
#define OMAP24XX_CONTROL_EXT_SEC_RAM_START_ADD  (OMAP2_CONTROL_GENERAL + 0x0070)
 
93
#define OMAP24XX_CONTROL_EXT_SEC_RAM_STOP_ADD   (OMAP2_CONTROL_GENERAL + 0x0074)
 
94
#define OMAP24XX_CONTROL_SEC_STATUS             (OMAP2_CONTROL_GENERAL + 0x0080)
 
95
#define OMAP24XX_CONTROL_SEC_ERR_STATUS         (OMAP2_CONTROL_GENERAL + 0x0084)
 
96
#define OMAP24XX_CONTROL_STATUS                 (OMAP2_CONTROL_GENERAL + 0x0088)
 
97
#define OMAP24XX_CONTROL_GENERAL_PURPOSE_STATUS (OMAP2_CONTROL_GENERAL + 0x008c)
 
98
#define OMAP24XX_CONTROL_RAND_KEY_0     (OMAP2_CONTROL_GENERAL + 0x00a0)
 
99
#define OMAP24XX_CONTROL_RAND_KEY_1     (OMAP2_CONTROL_GENERAL + 0x00a4)
 
100
#define OMAP24XX_CONTROL_RAND_KEY_2     (OMAP2_CONTROL_GENERAL + 0x00a8)
 
101
#define OMAP24XX_CONTROL_RAND_KEY_3     (OMAP2_CONTROL_GENERAL + 0x00ac)
 
102
#define OMAP24XX_CONTROL_CUST_KEY_0     (OMAP2_CONTROL_GENERAL + 0x00b0)
 
103
#define OMAP24XX_CONTROL_CUST_KEY_1     (OMAP2_CONTROL_GENERAL + 0x00b4)
 
104
#define OMAP24XX_CONTROL_TEST_KEY_0     (OMAP2_CONTROL_GENERAL + 0x00c0)
 
105
#define OMAP24XX_CONTROL_TEST_KEY_1     (OMAP2_CONTROL_GENERAL + 0x00c4)
 
106
#define OMAP24XX_CONTROL_TEST_KEY_2     (OMAP2_CONTROL_GENERAL + 0x00c8)
 
107
#define OMAP24XX_CONTROL_TEST_KEY_3     (OMAP2_CONTROL_GENERAL + 0x00cc)
 
108
#define OMAP24XX_CONTROL_TEST_KEY_4     (OMAP2_CONTROL_GENERAL + 0x00d0)
 
109
#define OMAP24XX_CONTROL_TEST_KEY_5     (OMAP2_CONTROL_GENERAL + 0x00d4)
 
110
#define OMAP24XX_CONTROL_TEST_KEY_6     (OMAP2_CONTROL_GENERAL + 0x00d8)
 
111
#define OMAP24XX_CONTROL_TEST_KEY_7     (OMAP2_CONTROL_GENERAL + 0x00dc)
 
112
#define OMAP24XX_CONTROL_TEST_KEY_8     (OMAP2_CONTROL_GENERAL + 0x00e0)
 
113
#define OMAP24XX_CONTROL_TEST_KEY_9     (OMAP2_CONTROL_GENERAL + 0x00e4)
 
114
 
 
115
#define OMAP343X_CONTROL_PADCONF_SYSNIRQ (OMAP2_CONTROL_INTERFACE + 0x01b0)
 
116
 
 
117
/* 34xx-only CONTROL_GENERAL register offsets */
 
118
#define OMAP343X_CONTROL_PADCONF_OFF    (OMAP2_CONTROL_GENERAL + 0x0000)
 
119
#define OMAP343X_CONTROL_MEM_DFTRW0     (OMAP2_CONTROL_GENERAL + 0x0008)
 
120
#define OMAP343X_CONTROL_MEM_DFTRW1     (OMAP2_CONTROL_GENERAL + 0x000c)
 
121
#define OMAP343X_CONTROL_DEVCONF1       (OMAP2_CONTROL_GENERAL + 0x0068)
 
122
#define OMAP343X_CONTROL_CSIRXFE                (OMAP2_CONTROL_GENERAL + 0x006c)
 
123
#define OMAP343X_CONTROL_SEC_STATUS             (OMAP2_CONTROL_GENERAL + 0x0070)
 
124
#define OMAP343X_CONTROL_SEC_ERR_STATUS         (OMAP2_CONTROL_GENERAL + 0x0074)
 
125
#define OMAP343X_CONTROL_SEC_ERR_STATUS_DEBUG   (OMAP2_CONTROL_GENERAL + 0x0078)
 
126
#define OMAP343X_CONTROL_STATUS                 (OMAP2_CONTROL_GENERAL + 0x0080)
 
127
#define OMAP343X_CONTROL_GENERAL_PURPOSE_STATUS (OMAP2_CONTROL_GENERAL + 0x0084)
 
128
#define OMAP343X_CONTROL_RPUB_KEY_H_4   (OMAP2_CONTROL_GENERAL + 0x00a0)
 
129
#define OMAP343X_CONTROL_RAND_KEY_0     (OMAP2_CONTROL_GENERAL + 0x00a8)
 
130
#define OMAP343X_CONTROL_RAND_KEY_1     (OMAP2_CONTROL_GENERAL + 0x00ac)
 
131
#define OMAP343X_CONTROL_RAND_KEY_2     (OMAP2_CONTROL_GENERAL + 0x00b0)
 
132
#define OMAP343X_CONTROL_RAND_KEY_3     (OMAP2_CONTROL_GENERAL + 0x00b4)
 
133
#define OMAP343X_CONTROL_TEST_KEY_0     (OMAP2_CONTROL_GENERAL + 0x00c8)
 
134
#define OMAP343X_CONTROL_TEST_KEY_1     (OMAP2_CONTROL_GENERAL + 0x00cc)
 
135
#define OMAP343X_CONTROL_TEST_KEY_2     (OMAP2_CONTROL_GENERAL + 0x00d0)
 
136
#define OMAP343X_CONTROL_TEST_KEY_3     (OMAP2_CONTROL_GENERAL + 0x00d4)
 
137
#define OMAP343X_CONTROL_TEST_KEY_4     (OMAP2_CONTROL_GENERAL + 0x00d8)
 
138
#define OMAP343X_CONTROL_TEST_KEY_5     (OMAP2_CONTROL_GENERAL + 0x00dc)
 
139
#define OMAP343X_CONTROL_TEST_KEY_6     (OMAP2_CONTROL_GENERAL + 0x00e0)
 
140
#define OMAP343X_CONTROL_TEST_KEY_7     (OMAP2_CONTROL_GENERAL + 0x00e4)
 
141
#define OMAP343X_CONTROL_TEST_KEY_8     (OMAP2_CONTROL_GENERAL + 0x00e8)
 
142
#define OMAP343X_CONTROL_TEST_KEY_9     (OMAP2_CONTROL_GENERAL + 0x00ec)
 
143
#define OMAP343X_CONTROL_TEST_KEY_10    (OMAP2_CONTROL_GENERAL + 0x00f0)
 
144
#define OMAP343X_CONTROL_TEST_KEY_11    (OMAP2_CONTROL_GENERAL + 0x00f4)
 
145
#define OMAP343X_CONTROL_TEST_KEY_12    (OMAP2_CONTROL_GENERAL + 0x00f8)
 
146
#define OMAP343X_CONTROL_TEST_KEY_13    (OMAP2_CONTROL_GENERAL + 0x00fc)
 
147
#define OMAP343X_CONTROL_FUSE_OPP1_VDD1 (OMAP2_CONTROL_GENERAL + 0x0110)
 
148
#define OMAP343X_CONTROL_FUSE_OPP2_VDD1 (OMAP2_CONTROL_GENERAL + 0x0114)
 
149
#define OMAP343X_CONTROL_FUSE_OPP3_VDD1 (OMAP2_CONTROL_GENERAL + 0x0118)
 
150
#define OMAP343X_CONTROL_FUSE_OPP4_VDD1 (OMAP2_CONTROL_GENERAL + 0x011c)
 
151
#define OMAP343X_CONTROL_FUSE_OPP5_VDD1 (OMAP2_CONTROL_GENERAL + 0x0120)
 
152
#define OMAP343X_CONTROL_FUSE_OPP1_VDD2 (OMAP2_CONTROL_GENERAL + 0x0124)
 
153
#define OMAP343X_CONTROL_FUSE_OPP2_VDD2 (OMAP2_CONTROL_GENERAL + 0x0128)
 
154
#define OMAP343X_CONTROL_FUSE_OPP3_VDD2 (OMAP2_CONTROL_GENERAL + 0x012c)
 
155
#define OMAP343X_CONTROL_FUSE_SR        (OMAP2_CONTROL_GENERAL + 0x0130)
 
156
#define OMAP343X_CONTROL_IVA2_BOOTADDR  (OMAP2_CONTROL_GENERAL + 0x0190)
 
157
#define OMAP343X_CONTROL_IVA2_BOOTMOD   (OMAP2_CONTROL_GENERAL + 0x0194)
 
158
#define OMAP343X_CONTROL_DEBOBS(i)      (OMAP2_CONTROL_GENERAL + 0x01B0 \
 
159
                                        + ((i) >> 1) * 4 + (!((i) & 1)) * 2)
 
160
#define OMAP343X_CONTROL_PROG_IO0       (OMAP2_CONTROL_GENERAL + 0x01D4)
 
161
#define OMAP343X_CONTROL_PROG_IO1       (OMAP2_CONTROL_GENERAL + 0x01D8)
 
162
#define OMAP343X_CONTROL_DSS_DPLL_SPREADING     (OMAP2_CONTROL_GENERAL + 0x01E0)
 
163
#define OMAP343X_CONTROL_CORE_DPLL_SPREADING    (OMAP2_CONTROL_GENERAL + 0x01E4)
 
164
#define OMAP343X_CONTROL_PER_DPLL_SPREADING     (OMAP2_CONTROL_GENERAL + 0x01E8)
 
165
#define OMAP343X_CONTROL_USBHOST_DPLL_SPREADING (OMAP2_CONTROL_GENERAL + 0x01EC)
 
166
#define OMAP343X_CONTROL_PBIAS_LITE     (OMAP2_CONTROL_GENERAL + 0x02B0)
 
167
#define OMAP343X_CONTROL_TEMP_SENSOR    (OMAP2_CONTROL_GENERAL + 0x02B4)
 
168
#define OMAP343X_CONTROL_SRAMLDO4       (OMAP2_CONTROL_GENERAL + 0x02B8)
 
169
#define OMAP343X_CONTROL_SRAMLDO5       (OMAP2_CONTROL_GENERAL + 0x02C0)
 
170
#define OMAP343X_CONTROL_CSI            (OMAP2_CONTROL_GENERAL + 0x02C4)
 
171
 
 
172
/* OMAP3630 only CONTROL_GENERAL register offsets */
 
173
#define OMAP3630_CONTROL_FUSE_OPP1G_VDD1        (OMAP2_CONTROL_GENERAL + 0x0110)
 
174
#define OMAP3630_CONTROL_FUSE_OPP50_VDD1        (OMAP2_CONTROL_GENERAL + 0x0114)
 
175
#define OMAP3630_CONTROL_FUSE_OPP100_VDD1       (OMAP2_CONTROL_GENERAL + 0x0118)
 
176
#define OMAP3630_CONTROL_FUSE_OPP120_VDD1       (OMAP2_CONTROL_GENERAL + 0x0120)
 
177
#define OMAP3630_CONTROL_FUSE_OPP50_VDD2        (OMAP2_CONTROL_GENERAL + 0x0128)
 
178
#define OMAP3630_CONTROL_FUSE_OPP100_VDD2       (OMAP2_CONTROL_GENERAL + 0x012C)
 
179
 
 
180
/* AM35XX only CONTROL_GENERAL register offsets */
 
181
#define AM35XX_CONTROL_MSUSPENDMUX_6    (OMAP2_CONTROL_GENERAL + 0x0038)
 
182
#define AM35XX_CONTROL_DEVCONF2         (OMAP2_CONTROL_GENERAL + 0x0310)
 
183
#define AM35XX_CONTROL_DEVCONF3         (OMAP2_CONTROL_GENERAL + 0x0314)
 
184
#define AM35XX_CONTROL_CBA_PRIORITY     (OMAP2_CONTROL_GENERAL + 0x0320)
 
185
#define AM35XX_CONTROL_LVL_INTR_CLEAR   (OMAP2_CONTROL_GENERAL + 0x0324)
 
186
#define AM35XX_CONTROL_IP_SW_RESET      (OMAP2_CONTROL_GENERAL + 0x0328)
 
187
#define AM35XX_CONTROL_IPSS_CLK_CTRL    (OMAP2_CONTROL_GENERAL + 0x032C)
 
188
 
 
189
/* 34xx PADCONF register offsets */
 
190
#define OMAP343X_PADCONF_ETK(i)         (OMAP2_CONTROL_PADCONFS + 0x5a8 + \
 
191
                                                (i)*2)
 
192
#define OMAP343X_PADCONF_ETK_CLK        OMAP343X_PADCONF_ETK(0)
 
193
#define OMAP343X_PADCONF_ETK_CTL        OMAP343X_PADCONF_ETK(1)
 
194
#define OMAP343X_PADCONF_ETK_D0         OMAP343X_PADCONF_ETK(2)
 
195
#define OMAP343X_PADCONF_ETK_D1         OMAP343X_PADCONF_ETK(3)
 
196
#define OMAP343X_PADCONF_ETK_D2         OMAP343X_PADCONF_ETK(4)
 
197
#define OMAP343X_PADCONF_ETK_D3         OMAP343X_PADCONF_ETK(5)
 
198
#define OMAP343X_PADCONF_ETK_D4         OMAP343X_PADCONF_ETK(6)
 
199
#define OMAP343X_PADCONF_ETK_D5         OMAP343X_PADCONF_ETK(7)
 
200
#define OMAP343X_PADCONF_ETK_D6         OMAP343X_PADCONF_ETK(8)
 
201
#define OMAP343X_PADCONF_ETK_D7         OMAP343X_PADCONF_ETK(9)
 
202
#define OMAP343X_PADCONF_ETK_D8         OMAP343X_PADCONF_ETK(10)
 
203
#define OMAP343X_PADCONF_ETK_D9         OMAP343X_PADCONF_ETK(11)
 
204
#define OMAP343X_PADCONF_ETK_D10        OMAP343X_PADCONF_ETK(12)
 
205
#define OMAP343X_PADCONF_ETK_D11        OMAP343X_PADCONF_ETK(13)
 
206
#define OMAP343X_PADCONF_ETK_D12        OMAP343X_PADCONF_ETK(14)
 
207
#define OMAP343X_PADCONF_ETK_D13        OMAP343X_PADCONF_ETK(15)
 
208
#define OMAP343X_PADCONF_ETK_D14        OMAP343X_PADCONF_ETK(16)
 
209
#define OMAP343X_PADCONF_ETK_D15        OMAP343X_PADCONF_ETK(17)
 
210
 
 
211
/* 34xx GENERAL_WKUP regist offsets */
 
212
#define OMAP343X_CONTROL_WKUP_DEBOBSMUX(i) (OMAP343X_CONTROL_GENERAL_WKUP + \
 
213
                                                0x008 + (i))
 
214
#define OMAP343X_CONTROL_WKUP_DEBOBS0 (OMAP343X_CONTROL_GENERAL_WKUP + 0x008)
 
215
#define OMAP343X_CONTROL_WKUP_DEBOBS1 (OMAP343X_CONTROL_GENERAL_WKUP + 0x00C)
 
216
#define OMAP343X_CONTROL_WKUP_DEBOBS2 (OMAP343X_CONTROL_GENERAL_WKUP + 0x010)
 
217
#define OMAP343X_CONTROL_WKUP_DEBOBS3 (OMAP343X_CONTROL_GENERAL_WKUP + 0x014)
 
218
#define OMAP343X_CONTROL_WKUP_DEBOBS4 (OMAP343X_CONTROL_GENERAL_WKUP + 0x018)
 
219
 
 
220
/* 34xx D2D idle-related pins, handled by PM core */
 
221
#define OMAP3_PADCONF_SAD2D_MSTANDBY   0x250
 
222
#define OMAP3_PADCONF_SAD2D_IDLEACK    0x254
 
223
 
 
224
/* 44xx control status register offset */
 
225
#define OMAP44XX_CONTROL_STATUS         0x2c4
 
226
 
 
227
/* 44xx control efuse offsets */
 
228
#define OMAP44XX_CONTROL_FUSE_IVA_OPP50         0x22C
 
229
#define OMAP44XX_CONTROL_FUSE_IVA_OPP100        0x22F
 
230
#define OMAP44XX_CONTROL_FUSE_IVA_OPPTURBO      0x232
 
231
#define OMAP44XX_CONTROL_FUSE_IVA_OPPNITRO      0x235
 
232
#define OMAP44XX_CONTROL_FUSE_MPU_OPP50         0x240
 
233
#define OMAP44XX_CONTROL_FUSE_MPU_OPP100        0x243
 
234
#define OMAP44XX_CONTROL_FUSE_MPU_OPPTURBO      0x246
 
235
#define OMAP44XX_CONTROL_FUSE_MPU_OPPNITRO      0x249
 
236
#define OMAP44XX_CONTROL_FUSE_CORE_OPP50        0x254
 
237
#define OMAP44XX_CONTROL_FUSE_CORE_OPP100       0x257
 
238
 
 
239
/* 44xx-only CONTROL_GENERAL register offsets */
 
240
#define OMAP44XX_CONTROL_MMC1                   0x628
 
241
#define OMAP44XX_CONTROL_PBIAS_LITE             0x600
 
242
 
 
243
/* CONTROL_PADCONF_X bits */
 
244
#define OMAP44XX_PADCONF_WAKEUPEVENT0   (1 << 15)
 
245
#define OMAP44XX_PADCONF_WAKEUPEVENT1   (1 << 31)
 
246
#define OMAP44XX_PADCONF_WAKEUPENABLE0  (1 << 14)
 
247
#define OMAP44XX_PADCONF_WAKEUPENABLE1  (1 << 30)
 
248
#define OMAP44XX_PADCONF_OFFMODEENABLE0 (1 << 9)
 
249
#define OMAP44XX_PADCONF_OFFMODEENABLE1 (1 << 25)
 
250
 
 
251
#define CONTROL_CORE_PAD0_GPMC_AD10     0x4A100054
 
252
#define CONTROL_CORE_PAD1_GPMC_AD11     0x4A100056
 
253
 
 
254
/*
 
255
 * REVISIT: This list of registers is not comprehensive - there are more
 
256
 * that should be added.
 
257
 */
 
258
 
 
259
/*
 
260
 * Control module register bit defines - these should eventually go into
 
261
 * their own regbits file.  Some of these will be complicated, depending
 
262
 * on the device type (general-purpose, emulator, test, secure, bad, other)
 
263
 * and the security mode (secure, non-secure, don't care)
 
264
 */
 
265
/* CONTROL_DEVCONF0 bits */
 
266
#define OMAP2_MMCSDIO1ADPCLKISEL        (1 << 24) /* MMC1 loop back clock */
 
267
#define OMAP24XX_USBSTANDBYCTRL         (1 << 15)
 
268
#define OMAP2_MCBSP2_CLKS_MASK          (1 << 6)
 
269
#define OMAP2_MCBSP1_CLKS_MASK          (1 << 2)
 
270
 
 
271
/* CONTROL_DEVCONF1 bits */
 
272
#define OMAP243X_MMC1_ACTIVE_OVERWRITE  (1 << 31)
 
273
#define OMAP2_MMCSDIO2ADPCLKISEL        (1 << 6) /* MMC2 loop back clock */
 
274
#define OMAP2_MCBSP5_CLKS_MASK          (1 << 4) /* > 242x */
 
275
#define OMAP2_MCBSP4_CLKS_MASK          (1 << 2) /* > 242x */
 
276
#define OMAP2_MCBSP3_CLKS_MASK          (1 << 0) /* > 242x */
 
277
 
 
278
/* CONTROL_STATUS bits */
 
279
#define OMAP2_DEVICETYPE_MASK           (0x7 << 8)
 
280
#define OMAP2_SYSBOOT_5_MASK            (1 << 5)
 
281
#define OMAP2_SYSBOOT_4_MASK            (1 << 4)
 
282
#define OMAP2_SYSBOOT_3_MASK            (1 << 3)
 
283
#define OMAP2_SYSBOOT_2_MASK            (1 << 2)
 
284
#define OMAP2_SYSBOOT_1_MASK            (1 << 1)
 
285
#define OMAP2_SYSBOOT_0_MASK            (1 << 0)
 
286
 
 
287
/* CONTROL_FUSE_SR bits */
 
288
#define OMAP343X_SR2_SENNENABLE_MASK    (0x3 << 10)
 
289
#define OMAP343X_SR2_SENNENABLE_SHIFT   10
 
290
#define OMAP343X_SR2_SENPENABLE_MASK    (0x3 << 8)
 
291
#define OMAP343X_SR2_SENPENABLE_SHIFT   8
 
292
#define OMAP343X_SR1_SENNENABLE_MASK    (0x3 << 2)
 
293
#define OMAP343X_SR1_SENNENABLE_SHIFT   2
 
294
#define OMAP343X_SR1_SENPENABLE_MASK    (0x3 << 0)
 
295
#define OMAP343X_SR1_SENPENABLE_SHIFT   0
 
296
 
 
297
/* CONTROL_PBIAS_LITE bits */
 
298
#define OMAP343X_PBIASLITESUPPLY_HIGH1  (1 << 15)
 
299
#define OMAP343X_PBIASLITEVMODEERROR1   (1 << 11)
 
300
#define OMAP343X_PBIASSPEEDCTRL1        (1 << 10)
 
301
#define OMAP343X_PBIASLITEPWRDNZ1       (1 << 9)
 
302
#define OMAP343X_PBIASLITEVMODE1        (1 << 8)
 
303
#define OMAP343X_PBIASLITESUPPLY_HIGH0  (1 << 7)
 
304
#define OMAP343X_PBIASLITEVMODEERROR0   (1 << 3)
 
305
#define OMAP2_PBIASSPEEDCTRL0           (1 << 2)
 
306
#define OMAP2_PBIASLITEPWRDNZ0          (1 << 1)
 
307
#define OMAP2_PBIASLITEVMODE0           (1 << 0)
 
308
 
 
309
/* CONTROL_PBIAS_LITE bits for OMAP4 */
 
310
#define OMAP4_MMC1_PWRDNZ                       (1 << 26)
 
311
#define OMAP4_MMC1_PBIASLITE_HIZ_MODE           (1 << 25)
 
312
#define OMAP4_MMC1_PBIASLITE_SUPPLY_HI_OUT      (1 << 24)
 
313
#define OMAP4_MMC1_PBIASLITE_VMODE_ERROR        (1 << 23)
 
314
#define OMAP4_MMC1_PBIASLITE_PWRDNZ             (1 << 22)
 
315
#define OMAP4_MMC1_PBIASLITE_VMODE              (1 << 21)
 
316
#define OMAP4_USBC1_ICUSB_PWRDNZ                (1 << 20)
 
317
 
 
318
#define OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP0     (1 << 31)
 
319
#define OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP1     (1 << 30)
 
320
#define OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP2     (1 << 29)
 
321
#define OMAP4_CONTROL_SDMMC1_PUSTRENGTHGRP3     (1 << 28)
 
322
#define OMAP4_CONTROL_SDMMC1_DR0_SPEEDCTRL      (1 << 27)
 
323
#define OMAP4_CONTROL_SDMMC1_DR1_SPEEDCTRL      (1 << 26)
 
324
#define OMAP4_CONTROL_SDMMC1_DR2_SPEEDCTRL      (1 << 25)
 
325
 
 
326
/* CONTROL_PROG_IO1 bits */
 
327
#define OMAP3630_PRG_SDMMC1_SPEEDCTRL   (1 << 20)
 
328
 
 
329
/* CONTROL_IVA2_BOOTMOD bits */
 
330
#define OMAP3_IVA2_BOOTMOD_SHIFT        0
 
331
#define OMAP3_IVA2_BOOTMOD_MASK         (0xf << 0)
 
332
#define OMAP3_IVA2_BOOTMOD_IDLE         (0x1 << 0)
 
333
 
 
334
/* CONTROL_PADCONF_X bits */
 
335
#define OMAP3_PADCONF_WAKEUPEVENT0      (1 << 15)
 
336
#define OMAP3_PADCONF_WAKEUPENABLE0     (1 << 14)
 
337
 
 
338
#define OMAP343X_SCRATCHPAD_ROM         (OMAP343X_CTRL_BASE + 0x860)
 
339
#define OMAP343X_SCRATCHPAD             (OMAP343X_CTRL_BASE + 0x910)
 
340
#define OMAP343X_SCRATCHPAD_ROM_OFFSET  0x19C
 
341
 
 
342
/* AM35XX_CONTROL_IPSS_CLK_CTRL bits */
 
343
#define AM35XX_USBOTG_VBUSP_CLK_SHIFT   0
 
344
#define AM35XX_CPGMAC_VBUSP_CLK_SHIFT   1
 
345
#define AM35XX_VPFE_VBUSP_CLK_SHIFT     2
 
346
#define AM35XX_HECC_VBUSP_CLK_SHIFT     3
 
347
#define AM35XX_USBOTG_FCLK_SHIFT        8
 
348
#define AM35XX_CPGMAC_FCLK_SHIFT        9
 
349
#define AM35XX_VPFE_FCLK_SHIFT          10
 
350
 
 
351
/*AM35XX CONTROL_LVL_INTR_CLEAR bits*/
 
352
#define AM35XX_CPGMAC_C0_MISC_PULSE_CLR BIT(0)
 
353
#define AM35XX_CPGMAC_C0_RX_PULSE_CLR   BIT(1)
 
354
#define AM35XX_CPGMAC_C0_RX_THRESH_CLR  BIT(2)
 
355
#define AM35XX_CPGMAC_C0_TX_PULSE_CLR   BIT(3)
 
356
#define AM35XX_USBOTGSS_INT_CLR         BIT(4)
 
357
#define AM35XX_VPFE_CCDC_VD0_INT_CLR    BIT(5)
 
358
#define AM35XX_VPFE_CCDC_VD1_INT_CLR    BIT(6)
 
359
#define AM35XX_VPFE_CCDC_VD2_INT_CLR    BIT(7)
 
360
 
 
361
/*AM35XX CONTROL_IP_SW_RESET bits*/
 
362
#define AM35XX_USBOTGSS_SW_RST          BIT(0)
 
363
#define AM35XX_CPGMACSS_SW_RST          BIT(1)
 
364
#define AM35XX_VPFE_VBUSP_SW_RST        BIT(2)
 
365
#define AM35XX_HECC_SW_RST              BIT(3)
 
366
#define AM35XX_VPFE_PCLK_SW_RST         BIT(4)
 
367
 
 
368
/*
 
369
 * CONTROL OMAP STATUS register to identify OMAP3 features
 
370
 */
 
371
#define OMAP3_CONTROL_OMAP_STATUS       0x044c
 
372
 
 
373
#define OMAP3_SGX_SHIFT                 13
 
374
#define OMAP3_SGX_MASK                  (3 << OMAP3_SGX_SHIFT)
 
375
#define         FEAT_SGX_FULL           0
 
376
#define         FEAT_SGX_HALF           1
 
377
#define         FEAT_SGX_NONE           2
 
378
 
 
379
#define OMAP3_IVA_SHIFT                 12
 
380
#define OMAP3_IVA_MASK                  (1 << OMAP3_SGX_SHIFT)
 
381
#define         FEAT_IVA                0
 
382
#define         FEAT_IVA_NONE           1
 
383
 
 
384
#define OMAP3_L2CACHE_SHIFT             10
 
385
#define OMAP3_L2CACHE_MASK              (3 << OMAP3_L2CACHE_SHIFT)
 
386
#define         FEAT_L2CACHE_NONE       0
 
387
#define         FEAT_L2CACHE_64KB       1
 
388
#define         FEAT_L2CACHE_128KB      2
 
389
#define         FEAT_L2CACHE_256KB      3
 
390
 
 
391
#define OMAP3_ISP_SHIFT                 5
 
392
#define OMAP3_ISP_MASK                  (1<< OMAP3_ISP_SHIFT)
 
393
#define         FEAT_ISP                0
 
394
#define         FEAT_ISP_NONE           1
 
395
 
 
396
#define OMAP3_NEON_SHIFT                4
 
397
#define OMAP3_NEON_MASK                 (1<< OMAP3_NEON_SHIFT)
 
398
#define         FEAT_NEON               0
 
399
#define         FEAT_NEON_NONE          1
 
400
 
 
401
 
 
402
#ifndef __ASSEMBLY__
 
403
#ifdef CONFIG_ARCH_OMAP2PLUS
 
404
extern void __iomem *omap_ctrl_base_get(void);
 
405
extern u8 omap_ctrl_readb(u16 offset);
 
406
extern u16 omap_ctrl_readw(u16 offset);
 
407
extern u32 omap_ctrl_readl(u16 offset);
 
408
extern void omap_ctrl_writeb(u8 val, u16 offset);
 
409
extern void omap_ctrl_writew(u16 val, u16 offset);
 
410
extern void omap_ctrl_writel(u32 val, u16 offset);
 
411
 
 
412
extern void omap3_save_scratchpad_contents(void);
 
413
extern void omap3_clear_scratchpad_contents(void);
 
414
extern u32 *get_restore_pointer(void);
 
415
extern u32 *get_es3_restore_pointer(void);
 
416
extern u32 omap3_arm_context[128];
 
417
extern void omap3_control_save_context(void);
 
418
extern void omap3_control_restore_context(void);
 
419
 
 
420
#else
 
421
#define omap_ctrl_base_get()            0
 
422
#define omap_ctrl_readb(x)              0
 
423
#define omap_ctrl_readw(x)              0
 
424
#define omap_ctrl_readl(x)              0
 
425
#define omap_ctrl_writeb(x, y)          WARN_ON(1)
 
426
#define omap_ctrl_writew(x, y)          WARN_ON(1)
 
427
#define omap_ctrl_writel(x, y)          WARN_ON(1)
 
428
#endif
 
429
#endif  /* __ASSEMBLY__ */
 
430
 
 
431
#endif /* __ASM_ARCH_CONTROL_H */