~ubuntu-branches/ubuntu/precise/linux-linaro-u8500/precise

« back to all changes in this revision

Viewing changes to arch/arm/mach-tegra/pinmux-t2-tables.c

  • Committer: Bazaar Package Importer
  • Author(s): John Rigby, Upstream Fixes, Andy Green, John Rigby
  • Date: 2011-04-14 12:16:06 UTC
  • Revision ID: james.westby@ubuntu.com-20110414121606-b77podkyqgr2oix7
Tags: 2.6.38-1002.3
[ Upstream Fixes ]

* MUSB: shutdown: Make sure block is awake before doing shutdown
  - LP: #745737
* Fixed gpio polarity of gpio USB-phy reset.
  - LP: #747639

[ Andy Green ]

* LINARO: SAUCE: disable CONFIG_OMAP_RESET_CLOCKS
  - LP: #752900

[ John Rigby ]

* Rebase to new upstreams:
  Linux v2.6.38.1
  linaro-linux-2.6.38-upstream-29Mar2011
  Ubuntu-2.6.38-7.35
* SAUCE: OMAP4: clock: wait for module to become accessible on
  a clk enable
  - LP: #745737
* Rebase to new upstreams:
  Linux v2.6.38.2
  linaro-linux-2.6.38-upstream-5Apr2011
  Ubuntu-2.6.38-8.41
  - LP: #732842
* Update configs for device tree, dvfs and lttng
* LINARO: add building of dtb's
* LINARO: SAUCE: Disable lowest operating freqs on omap34xx
  - LP: #732912

Show diffs side-by-side

added added

removed removed

Lines of Context:
29
29
 
30
30
#include <mach/iomap.h>
31
31
#include <mach/pinmux.h>
 
32
#include <mach/suspend.h>
32
33
 
33
34
#define DRIVE_PINGROUP(pg_name, r)                              \
34
35
        [TEGRA_DRIVE_PINGROUP_ ## pg_name] = {                  \
65
66
        DRIVE_PINGROUP(XM2D,            0x8cc),
66
67
        DRIVE_PINGROUP(XM2CLK,          0x8d0),
67
68
        DRIVE_PINGROUP(MEMCOMP,         0x8d4),
 
69
        DRIVE_PINGROUP(SDIO1,           0x8e0),
 
70
        DRIVE_PINGROUP(CRT,             0x8ec),
 
71
        DRIVE_PINGROUP(DDC,             0x8f0),
 
72
        DRIVE_PINGROUP(GMA,             0x8f4),
 
73
        DRIVE_PINGROUP(GMB,             0x8f8),
 
74
        DRIVE_PINGROUP(GMC,             0x8fc),
 
75
        DRIVE_PINGROUP(GMD,             0x900),
 
76
        DRIVE_PINGROUP(GME,             0x904),
 
77
        DRIVE_PINGROUP(OWR,             0x908),
 
78
        DRIVE_PINGROUP(UAD,             0x90c),
68
79
};
69
80
 
70
81
#define PINGROUP(pg_name, vdd, f0, f1, f2, f3, f_safe,          \
216
227
#define PULLUPDOWN_REG_NUM     5
217
228
 
218
229
static u32 pinmux_reg[TRISTATE_REG_NUM + PIN_MUX_CTL_REG_NUM +
219
 
                     PULLUPDOWN_REG_NUM];
 
230
                      PULLUPDOWN_REG_NUM +
 
231
                      ARRAY_SIZE(tegra_soc_drive_pingroups)];
220
232
 
221
233
static inline unsigned long pg_readl(unsigned long offset)
222
234
{
233
245
        unsigned int i;
234
246
        u32 *ctx = pinmux_reg;
235
247
 
236
 
        for (i = 0; i < TRISTATE_REG_NUM; i++)
237
 
                *ctx++ = pg_readl(TRISTATE_REG_A + i*4);
238
 
 
239
248
        for (i = 0; i < PIN_MUX_CTL_REG_NUM; i++)
240
249
                *ctx++ = pg_readl(PIN_MUX_CTL_REG_A + i*4);
241
250
 
242
251
        for (i = 0; i < PULLUPDOWN_REG_NUM; i++)
243
252
                *ctx++ = pg_readl(PULLUPDOWN_REG_A + i*4);
 
253
 
 
254
        for (i = 0; i < TRISTATE_REG_NUM; i++)
 
255
                *ctx++ = pg_readl(TRISTATE_REG_A + i*4);
 
256
 
 
257
        for (i = 0; i < ARRAY_SIZE(tegra_soc_drive_pingroups); i++)
 
258
                *ctx++ = pg_readl(tegra_soc_drive_pingroups[i].reg);
244
259
}
245
260
 
246
261
void tegra_pinmux_resume(void)
256
271
 
257
272
        for (i = 0; i < TRISTATE_REG_NUM; i++)
258
273
                pg_writel(*ctx++, TRISTATE_REG_A + i*4);
 
274
 
 
275
        for (i = 0; i < ARRAY_SIZE(tegra_soc_drive_pingroups); i++)
 
276
                pg_writel(*ctx++, tegra_soc_drive_pingroups[i].reg);
259
277
}
260
278
#endif