diff options
author | Rolf Leggewie <oe-devel@rolf.leggewie.biz> | 2008-03-22 00:18:00 +0000 |
---|---|---|
committer | Rolf Leggewie <oe-devel@rolf.leggewie.biz> | 2008-03-22 00:18:00 +0000 |
commit | 9dcffd01e521467ec3f2b587be0e41a5aaca49f3 (patch) | |
tree | 2b6354f93442be37f33a176d7c13bcc14794f495 /packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c.diff | |
parent | 98cbb1de7c19b9822b091cd6f675950bdbb0ecea (diff) | |
download | openembedded-9dcffd01e521467ec3f2b587be0e41a5aaca49f3.tar.gz |
conf and linux: update ts72xx to 2.6.24 kernel. Closes 3906.
Diffstat (limited to 'packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c.diff')
-rw-r--r-- | packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c.diff | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c.diff b/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c.diff deleted file mode 100644 index bf4622b1db..0000000000 --- a/packages/linux/linux-2.6.22+2.6.23-rc5/ts72xx/ep93xx-i2c.diff +++ /dev/null @@ -1,110 +0,0 @@ - -Instantiate the ep93xx gpio i2c bus driver in the generic ep93xx -code. - -Signed-off-by: Lennert Buytenhek <buytenh@wantstofly.org> - -Index: linux-2.6.23-rc5/arch/arm/mach-ep93xx/core.c -=================================================================== ---- linux-2.6.23-rc5.orig/arch/arm/mach-ep93xx/core.c 2007-09-04 02:25:36.000000000 +0200 -+++ linux-2.6.23-rc5/arch/arm/mach-ep93xx/core.c 2007-09-04 02:28:12.000000000 +0200 -@@ -509,6 +509,52 @@ - }; - - -+static DEFINE_MUTEX(eeclk_eedat_mutex); -+static int i2c_transaction_in_progress; -+ -+static void ep93xx_i2c_start_condition(void *cookie) -+{ -+ if (!i2c_transaction_in_progress) { -+ mutex_lock(&eeclk_eedat_mutex); -+ i2c_transaction_in_progress = 1; -+ } -+} -+ -+static void ep93xx_i2c_stop_condition(void *cookie) -+{ -+ if (i2c_transaction_in_progress) { -+ mutex_unlock(&eeclk_eedat_mutex); -+ i2c_transaction_in_progress = 0; -+ } else { -+ printk(KERN_WARNING "ep93xx: i2c stop without start??\n"); -+ } -+} -+ -+static struct ep93xx_i2c_data ep93xx_i2c_gpio_data = { -+ .sda_pin = EP93XX_GPIO_LINE_EEDAT, -+ .scl_pin = EP93XX_GPIO_LINE_EECLK, -+ .start = ep93xx_i2c_start_condition, -+ .stop = ep93xx_i2c_stop_condition, -+}; -+ -+static struct platform_device ep93xx_i2c_device = { -+ .name = "ep93xx-i2c", -+ .id = 0, -+ .dev.platform_data = &ep93xx_i2c_gpio_data, -+ .num_resources = 0, -+}; -+ -+void eeclk_eedat_claim(void) -+{ -+ mutex_lock(&eeclk_eedat_mutex); -+} -+ -+void eeclk_eedat_release(void) -+{ -+ mutex_unlock(&eeclk_eedat_mutex); -+} -+ -+ - void __init ep93xx_init_devices(void) - { - unsigned int v; -@@ -521,10 +567,20 @@ - __raw_writel(0xaa, EP93XX_SYSCON_SWLOCK); - __raw_writel(v, EP93XX_SYSCON_DEVICE_CONFIG); - -+ /* -+ * When EECLK/EEDAT are in open drain mode (EEDRIVE=0b11), -+ * writing a 1 to their Data Register bits causes subsequent -+ * reads from the Data Direction Register to return 'input', -+ * which confuses gpio_line_config(). So, we use CMOS drive -+ * mode instead. -+ */ -+ __raw_writel(0, EP93XX_GPIO_EEDRIVE); -+ - amba_device_register(&uart1_device, &iomem_resource); - amba_device_register(&uart2_device, &iomem_resource); - amba_device_register(&uart3_device, &iomem_resource); - - platform_device_register(&ep93xx_rtc_device); - platform_device_register(&ep93xx_ohci_device); -+ platform_device_register(&ep93xx_i2c_device); - } -Index: linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/ep93xx-regs.h -=================================================================== ---- linux-2.6.23-rc5.orig/include/asm-arm/arch-ep93xx/ep93xx-regs.h 2007-09-04 02:25:36.000000000 +0200 -+++ linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/ep93xx-regs.h 2007-09-04 02:28:10.000000000 +0200 -@@ -91,6 +91,7 @@ - #define EP93XX_GPIO_B_INT_ENABLE EP93XX_GPIO_REG(0xb8) - #define EP93XX_GPIO_B_INT_STATUS EP93XX_GPIO_REG(0xbc) - #define EP93XX_GPIO_B_INT_DEBOUNCE EP93XX_GPIO_REG(0xc4) -+#define EP93XX_GPIO_EEDRIVE EP93XX_GPIO_REG(0xc8) - - #define EP93XX_AAC_BASE (EP93XX_APB_VIRT_BASE + 0x00080000) - -Index: linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/platform.h -=================================================================== ---- linux-2.6.23-rc5.orig/include/asm-arm/arch-ep93xx/platform.h 2007-09-04 02:26:20.000000000 +0200 -+++ linux-2.6.23-rc5/include/asm-arm/arch-ep93xx/platform.h 2007-09-04 02:26:38.000000000 +0200 -@@ -10,6 +10,9 @@ - void ep93xx_init_devices(void); - extern struct sys_timer ep93xx_timer; - -+void eeclk_eedat_claim(void); -+void eeclk_eedat_release(void); -+ - struct ep93xx_eth_data - { - unsigned char dev_addr[6]; |