mirror of
				git://git.openwrt.org/openwrt/openwrt.git
				synced 2025-11-03 14:34:27 -05:00 
			
		
		
		
	Update our copies of the brcm2708 patches to the latest rpi-3.10-y rebased against linux-3.10.y stable (3.10.32). This should hopefully make it easier for us in the future to leverage the raspberry/rpi-* branches. Signed-off-by: Florian Fainelli <florian@openwrt.org> SVN-Revision: 39770
		
			
				
	
	
		
			42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			42 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
From 7776b6ebf1063d2f9fac33313c8d049b424fce46 Mon Sep 17 00:00:00 2001
 | 
						|
From: popcornmix <popcornmix@gmail.com>
 | 
						|
Date: Sat, 8 Jun 2013 22:14:13 +0100
 | 
						|
Subject: [PATCH 066/174] Only init gpio pins of selected i2c bus
 | 
						|
 | 
						|
---
 | 
						|
 drivers/i2c/busses/i2c-bcm2708.c | 8 +++++---
 | 
						|
 1 file changed, 5 insertions(+), 3 deletions(-)
 | 
						|
 | 
						|
--- a/drivers/i2c/busses/i2c-bcm2708.c
 | 
						|
+++ b/drivers/i2c/busses/i2c-bcm2708.c
 | 
						|
@@ -97,7 +97,7 @@ struct bcm2708_i2c {
 | 
						|
  *
 | 
						|
  * FIXME: This is a hack. Use pinmux / pinctrl.
 | 
						|
  */
 | 
						|
-static void bcm2708_i2c_init_pinmode(void)
 | 
						|
+static void bcm2708_i2c_init_pinmode(int id)
 | 
						|
 {
 | 
						|
 #define INP_GPIO(g) *(gpio+((g)/10)) &= ~(7<<(((g)%10)*3))
 | 
						|
 #define SET_GPIO_ALT(g,a) *(gpio+(((g)/10))) |= (((a)<=3?(a)+4:(a)==4?3:2)<<(((g)%10)*3))
 | 
						|
@@ -105,8 +105,10 @@ static void bcm2708_i2c_init_pinmode(voi
 | 
						|
 	int pin;
 | 
						|
 	u32 *gpio = ioremap(0x20200000, SZ_16K);
 | 
						|
 
 | 
						|
+        BUG_ON(id != 0 && id != 1);
 | 
						|
 	/* BSC0 is on GPIO 0 & 1, BSC1 is on GPIO 2 & 3 */
 | 
						|
-	for (pin = 0; pin <= 3; pin++) {
 | 
						|
+	for (pin = id*2+0; pin <= id*2+1; pin++) {
 | 
						|
+printk("bcm2708_i2c_init_pinmode(%d,%d)\n", id, pin);
 | 
						|
 		INP_GPIO(pin);		/* set mode to GPIO input first */
 | 
						|
 		SET_GPIO_ALT(pin, 0);	/* set mode to ALT 0 */
 | 
						|
 	}
 | 
						|
@@ -279,7 +281,7 @@ static int bcm2708_i2c_probe(struct plat
 | 
						|
 		return PTR_ERR(clk);
 | 
						|
 	}
 | 
						|
 
 | 
						|
-	bcm2708_i2c_init_pinmode();
 | 
						|
+	bcm2708_i2c_init_pinmode(pdev->id);
 | 
						|
 
 | 
						|
 	bi = kzalloc(sizeof(*bi), GFP_KERNEL);
 | 
						|
 	if (!bi)
 |