[prev in list] [next in list] [prev in thread] [next in thread]
List: linux-omap
Subject: omap730 uwire cleanup patch
From: swetland () android ! com (Brian Swetland)
Date: 2005-01-31 1:26:47
Message-ID: 20050131072600.GA51338 () frotz ! net
[Download RAW message or body]
- pull the index shift into a static that's setup during __init
- remove mysterious extra configuration for p2 (it does not change
any behaviour on my board)
- use provided constant and better document the p2 configuration
- tested on my p2. everything works as before.
--- linux-omap/drivers/ssi/omap-uwire.c 2005-01-28 14:50:01.000000000 -0800
+++ linux-omap-lcd/drivers/ssi/omap-uwire.c 2005-01-28 18:02:32.934552664 -0800
@@ -63,17 +63,16 @@
static unsigned short uwire_flags[4];
static unsigned long uwire_base = io_p2v(UWIRE_BASE);
static spinlock_t uwire_lock;
+static unsigned int uwire_idx_shift;
static inline void uwire_write_reg(int idx, u16 val)
{
- int shift = cpu_is_omap730() ? 1 : 2;
- __raw_writew(val, uwire_base + (idx << shift));
+ __raw_writew(val, uwire_base + (idx << uwire_idx_shift));
}
static inline u16 uwire_read_reg(int idx)
{
- int shift = cpu_is_omap730() ? 1 : 2;
- return __raw_readw(uwire_base + (idx << shift));
+ return __raw_readw(uwire_base + (idx << uwire_idx_shift));
}
void omap_uwire_configure_mode(int cs, unsigned long flags)
@@ -194,6 +193,11 @@
static int __init omap_uwire_init(void)
{
spin_lock_init(&uwire_lock);
+ if (cpu_is_omap730())
+ uwire_idx_shift = 1;
+ else
+ uwire_idx_shift = 2;
+
uwire_write_reg(UWIRE_SR3, 1);
if (machine_is_omap_h2() || machine_is_omap_osk()) {
/* defaults: W21 SDO, U18 SDI, V19 SCL */
@@ -201,14 +205,9 @@
omap_cfg_reg(N15_1610_UWIRE_CS1);
}
if (machine_is_omap_perseus2()) {
- int val = omap_readl(0xFFFE1094) & ~0xEEE000;
- omap_writel(val | 0xAAA000, 0xFFFE1094);
-
- /* Turn on the CLK_EN and F_INT/2 */
- val = uwire_read_reg(UWIRE_SR3) & ~0x06;
- uwire_write_reg(UWIRE_SR3, val | 0x01);
- uwire_write_reg(UWIRE_SR4, ~0x01);
- uwire_write_reg(UWIRE_SR5, ~0x0F);
+ /* configure pins: MPU_UW_nSCS1, MPU_UW_SDO, MPU_UW_SCLK */
+ int val = omap_readl(OMAP730_IO_CONF_9) & ~0x00EEE000;
+ omap_writel(val | 0x00AAA000, OMAP730_IO_CONF_9);
}
return 0;
}
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic