diff options
6 files changed, 232 insertions, 223 deletions
diff --git a/target/linux/ixp4xx/patches-2.6.23/020-ixp4xx_i2c_gpio.patch b/target/linux/ixp4xx/patches-2.6.23/020-ixp4xx_i2c_gpio.patch new file mode 100644 index 0000000000..b1b5612320 --- /dev/null +++ b/target/linux/ixp4xx/patches-2.6.23/020-ixp4xx_i2c_gpio.patch @@ -0,0 +1,232 @@ +Migrate all ixp4xx devices to the bitbanging I2C bus driver utilizing +the arch-neutral GPIO API (linux/i2c-gpio.h). + +Tested by the nslu2-linux and openwrt projects in public firmware releases. + +Acked-by: Rod Whitby <rod@whitby.id.au> +Signed-off-by: Michael-Luke Jones <mlj28@cam.ac.uk> + +Index: linux-2.6.24-rc6-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c +=================================================================== +--- linux-2.6.24-rc6-armeb.orig/arch/arm/mach-ixp4xx/nslu2-setup.c 2008-01-05 18:10:05.000000000 +1030 ++++ linux-2.6.24-rc6-armeb/arch/arm/mach-ixp4xx/nslu2-setup.c 2008-01-05 18:10:10.000000000 +1030 +@@ -18,6 +18,7 @@ + #include <linux/serial.h> + #include <linux/serial_8250.h> + #include <linux/leds.h> ++#include <linux/i2c-gpio.h> + + #include <asm/mach-types.h> + #include <asm/mach/arch.h> +@@ -41,7 +42,7 @@ + .resource = &nslu2_flash_resource, + }; + +-static struct ixp4xx_i2c_pins nslu2_i2c_gpio_pins = { ++static struct i2c_gpio_platform_data nslu2_i2c_gpio_data = { + .sda_pin = NSLU2_SDA_PIN, + .scl_pin = NSLU2_SCL_PIN, + }; +@@ -82,11 +83,12 @@ + }; + #endif + +-static struct platform_device nslu2_i2c_controller = { +- .name = "IXP4XX-I2C", ++static struct platform_device nslu2_i2c_gpio = { ++ .name = "i2c-gpio", + .id = 0, +- .dev.platform_data = &nslu2_i2c_gpio_pins, +- .num_resources = 0, ++ .dev = { ++ .platform_data = &nslu2_i2c_gpio_data, ++ }, + }; + + static struct platform_device nslu2_beeper = { +@@ -139,7 +141,7 @@ + }; + + static struct platform_device *nslu2_devices[] __initdata = { +- &nslu2_i2c_controller, ++ &nslu2_i2c_gpio, + &nslu2_flash, + &nslu2_beeper, + #ifdef CONFIG_LEDS_IXP4XX +Index: linux-2.6.24-rc6-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c +=================================================================== +--- linux-2.6.24-rc6-armeb.orig/arch/arm/mach-ixp4xx/nas100d-setup.c 2008-01-05 18:10:05.000000000 +1030 ++++ linux-2.6.24-rc6-armeb/arch/arm/mach-ixp4xx/nas100d-setup.c 2008-01-05 18:10:10.000000000 +1030 +@@ -16,6 +16,7 @@ + #include <linux/serial.h> + #include <linux/serial_8250.h> + #include <linux/leds.h> ++#include <linux/i2c-gpio.h> + + #include <asm/mach-types.h> + #include <asm/mach/arch.h> +@@ -68,16 +69,17 @@ + }; + #endif + +-static struct ixp4xx_i2c_pins nas100d_i2c_gpio_pins = { ++static struct i2c_gpio_platform_data nas100d_i2c_gpio_data = { + .sda_pin = NAS100D_SDA_PIN, + .scl_pin = NAS100D_SCL_PIN, + }; + +-static struct platform_device nas100d_i2c_controller = { +- .name = "IXP4XX-I2C", ++static struct platform_device nas100d_i2c_gpio = { ++ .name = "i2c-gpio", + .id = 0, +- .dev.platform_data = &nas100d_i2c_gpio_pins, +- .num_resources = 0, ++ .dev = { ++ .platform_data = &nas100d_i2c_gpio_data, ++ }, + }; + + static struct resource nas100d_uart_resources[] = { +@@ -124,7 +126,7 @@ + }; + + static struct platform_device *nas100d_devices[] __initdata = { +- &nas100d_i2c_controller, ++ &nas100d_i2c_gpio, + &nas100d_flash, + #ifdef CONFIG_LEDS_IXP4XX + &nas100d_leds, +Index: linux-2.6.24-rc6-armeb/arch/arm/mach-ixp4xx/avila-setup.c +=================================================================== +--- linux-2.6.24-rc6-armeb.orig/arch/arm/mach-ixp4xx/avila-setup.c 2008-01-05 18:10:05.000000000 +1030 ++++ linux-2.6.24-rc6-armeb/arch/arm/mach-ixp4xx/avila-setup.c 2008-01-05 18:10:10.000000000 +1030 +@@ -18,6 +18,7 @@ + #include <linux/tty.h> + #include <linux/serial_8250.h> + #include <linux/slab.h> ++#include <linux/i2c-gpio.h> + + #include <asm/types.h> + #include <asm/setup.h> +@@ -47,18 +48,17 @@ + .resource = &avila_flash_resource, + }; + +-static struct ixp4xx_i2c_pins avila_i2c_gpio_pins = { ++static struct i2c_gpio_platform_data avila_i2c_gpio_data = { + .sda_pin = AVILA_SDA_PIN, + .scl_pin = AVILA_SCL_PIN, + }; + +-static struct platform_device avila_i2c_controller = { +- .name = "IXP4XX-I2C", ++static struct platform_device avila_i2c_gpio = { ++ .name = "i2c-gpio", + .id = 0, +- .dev = { +- .platform_data = &avila_i2c_gpio_pins, ++ .dev = { ++ .platform_data = &avila_i2c_gpio_data, + }, +- .num_resources = 0 + }; + + static struct resource avila_uart_resources[] = { +@@ -133,7 +133,7 @@ + }; + + static struct platform_device *avila_devices[] __initdata = { +- &avila_i2c_controller, ++ &avila_i2c_gpio, + &avila_flash, + &avila_uart + }; +Index: linux-2.6.24-rc6-armeb/arch/arm/mach-ixp4xx/dsmg600-setup.c +=================================================================== +--- linux-2.6.24-rc6-armeb.orig/arch/arm/mach-ixp4xx/dsmg600-setup.c 2008-01-05 18:10:05.000000000 +1030 ++++ linux-2.6.24-rc6-armeb/arch/arm/mach-ixp4xx/dsmg600-setup.c 2008-01-05 18:10:10.000000000 +1030 +@@ -14,6 +14,7 @@ + #include <linux/kernel.h> + #include <linux/serial.h> + #include <linux/serial_8250.h> ++#include <linux/i2c-gpio.h> + + #include <asm/mach-types.h> + #include <asm/mach/arch.h> +@@ -37,15 +38,17 @@ + .resource = &dsmg600_flash_resource, + }; + +-static struct ixp4xx_i2c_pins dsmg600_i2c_gpio_pins = { ++static struct i2c_gpio_platform_data dsmg600_i2c_gpio_data = { + .sda_pin = DSMG600_SDA_PIN, + .scl_pin = DSMG600_SCL_PIN, + }; + +-static struct platform_device dsmg600_i2c_controller = { +- .name = "IXP4XX-I2C", ++static struct platform_device dsmg600_i2c_gpio = { ++ .name = "i2c-gpio", + .id = 0, +- .dev.platform_data = &dsmg600_i2c_gpio_pins, ++ .dev = { ++ .platform_data = &dsmg600_i2c_gpio_data, ++ }, + }; + + #ifdef CONFIG_LEDS_CLASS +@@ -116,7 +119,7 @@ + }; + + static struct platform_device *dsmg600_devices[] __initdata = { +- &dsmg600_i2c_controller, ++ &dsmg600_i2c_gpio, + &dsmg600_flash, + }; + +Index: linux-2.6.24-rc6-armeb/arch/arm/mach-ixp4xx/ixdp425-setup.c +=================================================================== +--- linux-2.6.24-rc6-armeb.orig/arch/arm/mach-ixp4xx/ixdp425-setup.c 2008-01-05 18:10:05.000000000 +1030 ++++ linux-2.6.24-rc6-armeb/arch/arm/mach-ixp4xx/ixdp425-setup.c 2008-01-05 18:10:10.000000000 +1030 +@@ -15,6 +15,7 @@ + #include <linux/tty.h> + #include <linux/serial_8250.h> + #include <linux/slab.h> ++#include <linux/i2c-gpio.h> + #include <linux/io.h> + #include <linux/mtd/mtd.h> + #include <linux/mtd/nand.h> +@@ -120,18 +121,17 @@ + }; + #endif /* CONFIG_MTD_NAND_PLATFORM */ + +-static struct ixp4xx_i2c_pins ixdp425_i2c_gpio_pins = { ++static struct i2c_gpio_platform_data ixdp425_i2c_gpio_data = { + .sda_pin = IXDP425_SDA_PIN, + .scl_pin = IXDP425_SCL_PIN, + }; + +-static struct platform_device ixdp425_i2c_controller = { +- .name = "IXP4XX-I2C", ++static struct platform_device ixdp425_i2c_gpio = { ++ .name = "i2c-gpio", + .id = 0, +- .dev = { +- .platform_data = &ixdp425_i2c_gpio_pins, ++ .dev = { ++ .platform_data = &ixdp425_i2c_gpio_data, + }, +- .num_resources = 0 + }; + + static struct resource ixdp425_uart_resources[] = { +@@ -178,7 +178,7 @@ + }; + + static struct platform_device *ixdp425_devices[] __initdata = { +- &ixdp425_i2c_controller, ++ &ixdp425_i2c_gpio, + &ixdp425_flash, + #if defined(CONFIG_MTD_NAND_PLATFORM) || \ + defined(CONFIG_MTD_NAND_PLATFORM_MODULE) diff --git a/target/linux/ixp4xx/patches-2.6.23/021-nslu2_i2c_gpio_driver_support.patch b/target/linux/ixp4xx/patches-2.6.23/021-nslu2_i2c_gpio_driver_support.patch deleted file mode 100644 index 8917050a61..0000000000 --- a/target/linux/ixp4xx/patches-2.6.23/021-nslu2_i2c_gpio_driver_support.patch +++ /dev/null @@ -1,47 +0,0 @@ -diff --git a/arch/arm/mach-ixp4xx/nslu2-setup.c b/arch/arm/mach-ixp4xx/nslu2-setup.c -index 9bf8ccb..77277d2 100644 ---- a/arch/arm/mach-ixp4xx/nslu2-setup.c -+++ b/arch/arm/mach-ixp4xx/nslu2-setup.c -@@ -18,6 +18,7 @@ - #include <linux/serial.h> - #include <linux/serial_8250.h> - #include <linux/leds.h> -+#include <linux/i2c-gpio.h> - - #include <asm/mach-types.h> - #include <asm/mach/arch.h> -@@ -41,7 +42,7 @@ static struct platform_device nslu2_flash = { - .resource = &nslu2_flash_resource, - }; - --static struct ixp4xx_i2c_pins nslu2_i2c_gpio_pins = { -+static struct i2c_gpio_platform_data nslu2_i2c_gpio_data = { - .sda_pin = NSLU2_SDA_PIN, - .scl_pin = NSLU2_SCL_PIN, - }; -@@ -82,11 +83,12 @@ static struct platform_device nslu2_leds = { - }; - #endif - --static struct platform_device nslu2_i2c_controller = { -- .name = "IXP4XX-I2C", -+static struct platform_device nslu2_i2c_gpio = { -+ .name = "i2c-gpio", - .id = 0, -- .dev.platform_data = &nslu2_i2c_gpio_pins, -- .num_resources = 0, -+ .dev = { -+ .platform_data = &nslu2_i2c_gpio_data, -+ }, - }; - - static struct platform_device nslu2_beeper = { -@@ -139,7 +141,7 @@ static struct platform_device nslu2_uart = { - }; - - static struct platform_device *nslu2_devices[] __initdata = { -- &nslu2_i2c_controller, -+ &nslu2_i2c_gpio, - &nslu2_flash, - &nslu2_beeper, - #ifdef CONFIG_LEDS_IXP4XX diff --git a/target/linux/ixp4xx/patches-2.6.23/022-nas100d_i2c_gpio_driver_support.patch b/target/linux/ixp4xx/patches-2.6.23/022-nas100d_i2c_gpio_driver_support.patch deleted file mode 100644 index 1725565aef..0000000000 --- a/target/linux/ixp4xx/patches-2.6.23/022-nas100d_i2c_gpio_driver_support.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/arch/arm/mach-ixp4xx/nas100d-setup.c b/arch/arm/mach-ixp4xx/nas100d-setup.c -index 78a1741..54d884f 100644 ---- a/arch/arm/mach-ixp4xx/nas100d-setup.c -+++ b/arch/arm/mach-ixp4xx/nas100d-setup.c -@@ -16,6 +16,7 @@ - #include <linux/serial.h> - #include <linux/serial_8250.h> - #include <linux/leds.h> -+#include <linux/i2c-gpio.h> - - #include <asm/mach-types.h> - #include <asm/mach/arch.h> -@@ -68,16 +69,17 @@ static struct platform_device nas100d_leds = { - }; - #endif - --static struct ixp4xx_i2c_pins nas100d_i2c_gpio_pins = { -+static struct i2c_gpio_platform_data nas100d_i2c_gpio_data = { - .sda_pin = NAS100D_SDA_PIN, - .scl_pin = NAS100D_SCL_PIN, - }; - --static struct platform_device nas100d_i2c_controller = { -- .name = "IXP4XX-I2C", -+static struct platform_device nas100d_i2c_gpio = { -+ .name = "i2c-gpio", - .id = 0, -- .dev.platform_data = &nas100d_i2c_gpio_pins, -- .num_resources = 0, -+ .dev = { -+ .platform_data = &nas100d_i2c_gpio_data, -+ }, - }; - - static struct resource nas100d_uart_resources[] = { -@@ -124,7 +126,7 @@ static struct platform_device nas100d_uart = { - }; - - static struct platform_device *nas100d_devices[] __initdata = { -- &nas100d_i2c_controller, -+ &nas100d_i2c_gpio, - &nas100d_flash, - #ifdef CONFIG_LEDS_IXP4XX - &nas100d_leds, diff --git a/target/linux/ixp4xx/patches-2.6.23/023-avila_i2c_gpio_driver_support.patch b/target/linux/ixp4xx/patches-2.6.23/023-avila_i2c_gpio_driver_support.patch deleted file mode 100644 index a2794f42ab..0000000000 --- a/target/linux/ixp4xx/patches-2.6.23/023-avila_i2c_gpio_driver_support.patch +++ /dev/null @@ -1,45 +0,0 @@ -Index: linux-2.6.22-rc3-git2-armeb/arch/arm/mach-ixp4xx/avila-setup.c -=================================================================== ---- linux-2.6.22-rc3-git2-armeb.orig/arch/arm/mach-ixp4xx/avila-setup.c 2007-05-31 04:05:33.000000000 -0700 -+++ linux-2.6.22-rc3-git2-armeb/arch/arm/mach-ixp4xx/avila-setup.c 2007-05-31 04:12:50.000000000 -0700 -@@ -18,6 +18,7 @@ - #include <linux/tty.h> - #include <linux/serial_8250.h> - #include <linux/slab.h> -+#include <linux/i2c-gpio.h> - - #include <asm/types.h> - #include <asm/setup.h> -@@ -47,18 +48,17 @@ - .resource = &avila_flash_resource, - }; - --static struct ixp4xx_i2c_pins avila_i2c_gpio_pins = { -+static struct i2c_gpio_platform_data avila_i2c_gpio_data = { - .sda_pin = AVILA_SDA_PIN, - .scl_pin = AVILA_SCL_PIN, - }; - --static struct platform_device avila_i2c_controller = { -- .name = "IXP4XX-I2C", -+static struct platform_device avila_i2c_gpio = { -+ .name = "i2c-gpio", - .id = 0, -- .dev = { -- .platform_data = &avila_i2c_gpio_pins, -+ .dev = { -+ .platform_data = &avila_i2c_gpio_data, - }, -- .num_resources = 0 - }; - - static struct resource avila_uart_resources[] = { -@@ -133,7 +133,7 @@ - }; - - static struct platform_device *avila_devices[] __initdata = { -- &avila_i2c_controller, -+ &avila_i2c_gpio, - &avila_flash, - &avila_uart - }; diff --git a/target/linux/ixp4xx/patches-2.6.23/025-dsmg600_i2c_gpio_driver_support.patch b/target/linux/ixp4xx/patches-2.6.23/025-dsmg600_i2c_gpio_driver_support.patch deleted file mode 100644 index bbb8025fcb..0000000000 --- a/target/linux/ixp4xx/patches-2.6.23/025-dsmg600_i2c_gpio_driver_support.patch +++ /dev/null @@ -1,43 +0,0 @@ -Index: linux-2.6.22-rc3-git2-armeb/arch/arm/mach-ixp4xx/dsmg600-setup.c -=================================================================== ---- linux-2.6.22-rc3-git2-armeb.orig/arch/arm/mach-ixp4xx/dsmg600-setup.c 2007-05-31 04:05:30.000000000 -0700 -+++ linux-2.6.22-rc3-git2-armeb/arch/arm/mach-ixp4xx/dsmg600-setup.c 2007-05-31 04:13:02.000000000 -0700 -@@ -14,6 +14,7 @@ - #include <linux/kernel.h> - #include <linux/serial.h> - #include <linux/serial_8250.h> -+#include <linux/i2c-gpio.h> - - #include <asm/mach-types.h> - #include <asm/mach/arch.h> -@@ -37,15 +38,17 @@ - .resource = &dsmg600_flash_resource, - }; - --static struct ixp4xx_i2c_pins dsmg600_i2c_gpio_pins = { -+static struct i2c_gpio_platform_data dsmg600_i2c_gpio_data = { - .sda_pin = DSMG600_SDA_PIN, - .scl_pin = DSMG600_SCL_PIN, - }; - --static struct platform_device dsmg600_i2c_controller = { -- .name = "IXP4XX-I2C", -+static struct platform_device dsmg600_i2c_gpio = { -+ .name = "i2c-gpio", - .id = 0, -- .dev.platform_data = &dsmg600_i2c_gpio_pins, -+ .dev = { -+ .platform_data = &dsmg600_i2c_gpio_data, -+ }, - }; - - #ifdef CONFIG_LEDS_CLASS -@@ -116,7 +119,7 @@ - }; - - static struct platform_device *dsmg600_devices[] __initdata = { -- &dsmg600_i2c_controller, -+ &dsmg600_i2c_gpio, - &dsmg600_flash, - }; - diff --git a/target/linux/ixp4xx/patches-2.6.23/026-ixdp425_i2c_gpio_driver_support.patch b/target/linux/ixp4xx/patches-2.6.23/026-ixdp425_i2c_gpio_driver_support.patch deleted file mode 100644 index 9e090d953c..0000000000 --- a/target/linux/ixp4xx/patches-2.6.23/026-ixdp425_i2c_gpio_driver_support.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff -uprN linux-2.6.23.orig/arch/arm/mach-ixp4xx/ixdp425-setup.c linux-2.6.23/arch/arm/mach-ixp4xx/ixdp425-setup.c ---- linux-2.6.23.orig/arch/arm/mach-ixp4xx/ixdp425-setup.c 2007-10-09 15:31:38.000000000 -0500 -+++ linux-2.6.23/arch/arm/mach-ixp4xx/ixdp425-setup.c 2007-10-11 01:01:02.000000000 -0500 -@@ -15,6 +15,7 @@ - #include <linux/tty.h> - #include <linux/serial_8250.h> - #include <linux/slab.h> -+#include <linux/i2c-gpio.h> - #include <linux/io.h> - #include <linux/mtd/mtd.h> - #include <linux/mtd/nand.h> -@@ -120,18 +121,17 @@ static struct platform_device ixdp425_fl - }; - #endif /* CONFIG_MTD_NAND_PLATFORM */ - --static struct ixp4xx_i2c_pins ixdp425_i2c_gpio_pins = { -+static struct i2c_gpio_platform_data ixdp425_i2c_gpio_data = { - .sda_pin = IXDP425_SDA_PIN, - .scl_pin = IXDP425_SCL_PIN, - }; - --static struct platform_device ixdp425_i2c_controller = { -- .name = "IXP4XX-I2C", -+static struct platform_device ixdp425_i2c_gpio = { -+ .name = "i2c-gpio", - .id = 0, -- .dev = { -- .platform_data = &ixdp425_i2c_gpio_pins, -+ .dev = { -+ .platform_data = &ixdp425_i2c_gpio_data, - }, -- .num_resources = 0 - }; - - static struct resource ixdp425_uart_resources[] = { -@@ -178,7 +178,7 @@ static struct platform_device ixdp425_ua - }; - - static struct platform_device *ixdp425_devices[] __initdata = { -- &ixdp425_i2c_controller, -+ &ixdp425_i2c_gpio, - &ixdp425_flash, - #if defined(CONFIG_MTD_NAND_PLATFORM) || \ - defined(CONFIG_MTD_NAND_PLATFORM_MODULE) |