[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