[Armadeus-commitlog] armadeus branch, master, updated. release-3.3-271-gced35ab
Brought to you by:
sszy
|
From: Julien B a. A. <ar...@us...> - 2011-02-03 10:32:16
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "armadeus".
The branch, master has been updated
via ced35ab65fe24be471ab73e56ce862ebae6c0fa1 (commit)
via 80e6a04540264b74fab3b4bc6479858243061f2b (commit)
via 40e399adeeb82caa547db8e6e780438239613dd5 (commit)
via b1ed4f50d04b4d0d86421423d34ef0846defe3f5 (commit)
from 5986c6a5c794a966d7139fec3c1f52841a60a54b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit ced35ab65fe24be471ab73e56ce862ebae6c0fa1
Author: Julien Boibessot <jul...@ar...>
Date: Thu Feb 3 11:31:16 2011 +0100
[LINUX] 2.6.38: Updates wm831x-ts to state of the art
commit 80e6a04540264b74fab3b4bc6479858243061f2b
Merge: 40e399adeeb82caa547db8e6e780438239613dd5 5986c6a5c794a966d7139fec3c1f52841a60a54b
Author: Julien Boibessot <jul...@ar...>
Date: Thu Feb 3 09:56:13 2011 +0100
Merge branch 'master' of ssh://artemys@armadeus.git.sourceforge.net/gitroot/armadeus/armadeus
commit 40e399adeeb82caa547db8e6e780438239613dd5
Author: Julien Boibessot <jul...@ar...>
Date: Thu Feb 3 09:34:38 2011 +0100
[LINUX] 2.6.38: improve GPIO declaration for APF51Dev
commit b1ed4f50d04b4d0d86421423d34ef0846defe3f5
Author: Julien Boibessot <jul...@ar...>
Date: Wed Feb 2 15:20:16 2011 +0100
[LINUX] 2.6.38: Updates wm831x-ts to state of the art
-----------------------------------------------------------------------
Summary of changes:
.../408-armadeus-add_apf51-dev_baseboard.patch | 32 +++---
...fson-mfd-wm831x-Flag_IRQ_as_a_wake_source.patch | 37 ++++++
...-Add-driver-for-Wolfson-WM831x-PMIC-touch.patch | 76 +++--------
...t-wm831x-Update_following_upstream_review.patch | 133 ++++++++++++++++++++
..._configuration_of_IRQ_output_in_CMOS_mode.patch | 27 ++---
...cknowledgement-of-WM831x-touchscreen-IRQs.patch | 17 +--
.../417-armadeus-input-wm831x-driver_hacks.patch | 8 +-
7 files changed, 231 insertions(+), 99 deletions(-)
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/411-wolfson-mfd-wm831x-Flag_IRQ_as_a_wake_source.patch
create mode 100644 buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/412-wolfson-Input-wm831x-Update_following_upstream_review.patch
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/408-armadeus-add_apf51-dev_baseboard.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/408-armadeus-add_apf51-dev_baseboard.patch
index bcf7883..34bc443 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/408-armadeus-add_apf51-dev_baseboard.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/408-armadeus-add_apf51-dev_baseboard.patch
@@ -4,8 +4,8 @@ Signed-off-by: Julien Boibessot <jul...@ar...>
Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig
===================================================================
---- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Kconfig 2011-01-06 15:53:53.000000000 +0100
-+++ linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig 2011-01-06 19:51:04.000000000 +0100
+--- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Kconfig 2011-02-02 15:24:30.000000000 +0100
++++ linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig 2011-02-03 09:20:56.000000000 +0100
@@ -106,12 +106,30 @@
select SOC_IMX51
select IMX_HAVE_PLATFORM_IMX_UART
@@ -41,8 +41,8 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Kconfig
endif
Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile
===================================================================
---- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Makefile 2011-01-06 15:53:53.000000000 +0100
-+++ linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile 2011-01-06 19:51:04.000000000 +0100
+--- linux-2.6.38-alpha.orig/arch/arm/mach-mx5/Makefile 2011-02-02 15:24:30.000000000 +0100
++++ linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile 2011-02-03 09:20:56.000000000 +0100
@@ -7,6 +7,7 @@
obj-$(CONFIG_CPU_FREQ_IMX) += cpu_op-mx51.o
@@ -54,8 +54,8 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/Makefile
Index: linux-2.6.38-alpha/arch/arm/mach-mx5/apf51dev-baseboard.c
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
-+++ linux-2.6.38-alpha/arch/arm/mach-mx5/apf51dev-baseboard.c 2011-01-06 19:45:35.000000000 +0100
-@@ -0,0 +1,270 @@
++++ linux-2.6.38-alpha/arch/arm/mach-mx5/apf51dev-baseboard.c 2011-02-03 09:11:40.000000000 +0100
+@@ -0,0 +1,272 @@
+ /*
+ * Support for APF51's official development baseboard (APF51Dev)
+ *
@@ -104,8 +104,8 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/apf51dev-baseboard.c
+ MX51_PAD_SD2_DATA2__SD2_DATA2,
+ MX51_PAD_SD2_DATA3__SD2_DATA3,
+
-+ MX51_PAD_EIM_EB2__GPIO_2_22, /* PWRDN# */
-+ MX51_PAD_EIM_EB3__GPIO_2_23, /* RESET# */
++ MX51_PAD_EIM_EB2__GPIO_2_22, /* WIFI_PWRDN# */
++ MX51_PAD_EIM_EB3__GPIO_2_23, /* WIFI_RESET# */
+
+ /* UART2 (Bluetooth) */
+ MX51_PAD_UART2_RXD__UART2_RXD,
@@ -113,7 +113,7 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/apf51dev-baseboard.c
+ MX51_PAD_EIM_D25__UART2_CTS,
+ MX51_PAD_EIM_D26__UART2_RTS,
+
-+ MX51_PAD_EIM_CS3__GPIO_2_28, /* RESET# */
++ MX51_PAD_EIM_CS3__GPIO_2_28, /* BT_RESET# */
+
+ /* UART1 */
+ MX51_PAD_UART1_RXD__UART1_RXD,
@@ -128,12 +128,16 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/apf51dev-baseboard.c
+ MX51_PAD_CSPI1_SS0__GPIO_4_24,
+ MX51_PAD_CSPI1_SS1__GPIO_4_25,
+
++ MX51_PAD_NANDF_D14__GPIO_3_26, /* ADC_SSTRB */
++
+ /* eCSPI2 */
+ MX51_PAD_NANDF_RB2__ECSPI2_SCLK,
+ MX51_PAD_NANDF_RB3__ECSPI2_MISO,
+ MX51_PAD_NANDF_D15__ECSPI2_MOSI,
-+ MX51_PAD_NANDF_D12__GPIO_3_28, /* SS1 */
-+ MX51_PAD_NANDF_D13__GPIO_3_27, /* SS2 */
++ MX51_PAD_NANDF_D12__GPIO_3_28, /* SS1 */
++ MX51_PAD_NANDF_D13__GPIO_3_27, /* SS2 */
++
++ MX51_PAD_NANDF_RB1__GPIO_3_9, /* CAN_INT# */
+
+ /* Display */
+ MX51_PAD_DISP1_DAT0__DISP1_DAT0,
@@ -164,15 +168,13 @@ Index: linux-2.6.38-alpha/arch/arm/mach-mx5/apf51dev-baseboard.c
+ MX51_PAD_DI1_PIN3__DI1_PIN3, /* VSYNC */
+ /* CLK and OE are not muxed */
+
-+ /* JTAG */
-+
+ /* ONEWIRE */
+
+ /* KEYPAD */
+
+ /* Other GPIOs ! TBDL ! */
-+ /* HDMI_RST# */
-+ /* HDMI_DETECT */
++ MX51_PAD_I2C1_CLK__GPIO_4_16, /* HDMI_RST# */
++ MX51_PAD_I2C1_DAT__GPIO_4_17, /* HDMI_DETECT */
+};
+
+static const struct imxi2c_platform_data apf51dev_i2c_data __initconst = {
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/411-wolfson-mfd-wm831x-Flag_IRQ_as_a_wake_source.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/411-wolfson-mfd-wm831x-Flag_IRQ_as_a_wake_source.patch
new file mode 100644
index 0000000..47df1b6
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/411-wolfson-mfd-wm831x-Flag_IRQ_as_a_wake_source.patch
@@ -0,0 +1,37 @@
+From: Mark Brown <br...@op...>
+Date: Wed, 5 Jan 2011 17:56:01 +0000 (+0000)
+Subject: mfd: Flag WM831x /IRQ as a wake source
+X-Git-Url: http://opensource.wolfsonmicro.com/cgi-bin/gitweb.cgi?p=linux-2.6-audioplus.git;a=commitdiff_plain;h=0567e396f8345409788ae3e0a436723517b7ada9
+
+mfd: Flag WM831x /IRQ as a wake source
+
+The WM831x can generate wake events, some unconditionally, so flag
+the primary IRQ as a wake source in order to help the CPU treat the
+/IRQ signal appropriately.
+
+Signed-off-by: Mark Brown <br...@op...>
+Signed-off-by: Samuel Ortiz <sa...@li...>
+---
+
+diff --git a/drivers/mfd/wm831x-irq.c b/drivers/mfd/wm831x-irq.c
+index 660ec3f..299437d 100644
+--- a/drivers/mfd/wm831x-irq.c
++++ b/drivers/mfd/wm831x-irq.c
+@@ -506,6 +506,17 @@ int wm831x_irq_init(struct wm831x *wm831x, int irq)
+ return 0;
+ }
+
++ /* Try to flag /IRQ as a wake source; there are a number of
++ * unconditional wake sources in the PMIC so this isn't
++ * conditional but we don't actually care *too* much if it
++ * fails.
++ */
++ ret = enable_irq_wake(irq);
++ if (ret != 0) {
++ dev_warn(wm831x->dev, "Can't enable IRQ as wake source: %d\n",
++ ret);
++ }
++
+ wm831x->irq = irq;
+ wm831x->irq_base = pdata->irq_base;
+
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/412-wolfson-Input-wm831x-Add-driver-for-Wolfson-WM831x-PMIC-touch.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/412-wolfson-Input-wm831x-Add-driver-for-Wolfson-WM831x-PMIC-touch.patch
index a30cb6d..9ea9bbc 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/412-wolfson-Input-wm831x-Add-driver-for-Wolfson-WM831x-PMIC-touch.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/412-wolfson-Input-wm831x-Add-driver-for-Wolfson-WM831x-PMIC-touch.patch
@@ -1,7 +1,9 @@
->From a1ae1fa080f0d352f044c97f9c469e3275235402 Mon Sep 17 00:00:00 2001
From: Mark Brown <br...@op...>
-Date: Fri, 14 Jan 2011 15:07:22 +0000
-Subject: [PATCH] Input: wm831x - Add driver for Wolfson WM831x PMIC touchscreen controllers
+Date: Mon, 24 Jan 2011 16:16:22 +0000 (+0000)
+Subject: Input: wm831x - Add driver for Wolfson WM831x PMIC touchscreen controllers
+X-Git-Url: http://opensource.wolfsonmicro.com/cgi-bin/gitweb.cgi?p=linux-2.6-audioplus.git;a=commitdiff_plain;h=477af4e45ba2d6315eebb8c45d1fc1ee1edc9ac4
+
+Input: wm831x - Add driver for Wolfson WM831x PMIC touchscreen controllers
Some of the WM831x series of PMICs from Wolfson Microelectronics include
a resistive touchscreen controller. Implement support for these controllers
@@ -10,22 +12,16 @@ within the input API.
Platform data is supported to allow configuration of system parameters such
as selection between four and five wire touchscreens and for specification
of optional direct to CPU IRQs for sample availability and for pen down.
+Use of this feature for at least the data IRQ is strongly recommended.
-THIS DRIVER HAS NOT BEEN TESTED. NO GUARANTEES ARE MADE REGARDING THE
-PERFORMANCE OR STABILITY OF THE DRIVER, IT IS EXPECTED THAT SOME DEBUGGING
-WILL BE REQUIRED IN ORDER TO MAKE THE DRIVER USABLE.
+Thanks to Julien Boibessot for extensive testing and detailed feedback.
Signed-off-by: Mark Brown <br...@op...>
+Tested-by: Julien Boibessot <jul...@ar...>
---
- drivers/input/touchscreen/Kconfig | 10 +
- drivers/input/touchscreen/Makefile | 1 +
- drivers/input/touchscreen/wm831x-ts.c | 399 +++++++++++++++++++++++++++++++++
- include/linux/mfd/wm831x/pdata.h | 1 +
- 4 files changed, 411 insertions(+), 0 deletions(-)
- create mode 100644 drivers/input/touchscreen/wm831x-ts.c
diff --git a/drivers/input/touchscreen/Kconfig b/drivers/input/touchscreen/Kconfig
-index 0c9f4b1..f29dab7 100644
+index 06ea8da..d445ce7 100644
--- a/drivers/input/touchscreen/Kconfig
+++ b/drivers/input/touchscreen/Kconfig
@@ -423,6 +423,16 @@ config TOUCHSCREEN_UCB1400
@@ -40,16 +36,16 @@ index 0c9f4b1..f29dab7 100644
+ series of PMICs.
+
+ To compile this driver as a module, choose M here: the
-+ module will be called wm831x-touch.
++ module will be called wm831x-ts.
+
config TOUCHSCREEN_WM97XX
tristate "Support for WM97xx AC97 touchscreen controllers"
depends on AC97_BUS
diff --git a/drivers/input/touchscreen/Makefile b/drivers/input/touchscreen/Makefile
-index 718bcc8..e8dcfab 100644
+index 7cc1b4f..1a00395 100644
--- a/drivers/input/touchscreen/Makefile
+++ b/drivers/input/touchscreen/Makefile
-@@ -48,6 +48,7 @@ obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o
+@@ -47,6 +47,7 @@ obj-$(CONFIG_TOUCHSCREEN_TOUCHWIN) += touchwin.o
obj-$(CONFIG_TOUCHSCREEN_TSC2007) += tsc2007.o
obj-$(CONFIG_TOUCHSCREEN_UCB1400) += ucb1400_ts.o
obj-$(CONFIG_TOUCHSCREEN_WACOM_W8001) += wacom_w8001.o
@@ -59,10 +55,10 @@ index 718bcc8..e8dcfab 100644
wm97xx-ts-$(CONFIG_TOUCHSCREEN_WM9712) += wm9712.o
diff --git a/drivers/input/touchscreen/wm831x-ts.c b/drivers/input/touchscreen/wm831x-ts.c
new file mode 100644
-index 0000000..9a58a11
+index 0000000..3e8256d
--- /dev/null
+++ b/drivers/input/touchscreen/wm831x-ts.c
-@@ -0,0 +1,399 @@
+@@ -0,0 +1,372 @@
+/*
+ * wm831x-ts.c - Touchscreen driver for WM831x PMICs
+ *
@@ -95,29 +91,11 @@ index 0000000..9a58a11
+ * R16424 (0x4028) - Touch Control 1
+ */
+#define WM831X_TCH_ENA 0x8000 /* TCH_ENA */
-+#define WM831X_TCH_ENA_MASK 0x8000 /* TCH_ENA */
-+#define WM831X_TCH_ENA_SHIFT 15 /* TCH_ENA */
-+#define WM831X_TCH_ENA_WIDTH 1 /* TCH_ENA */
+#define WM831X_TCH_CVT_ENA 0x4000 /* TCH_CVT_ENA */
-+#define WM831X_TCH_CVT_ENA_MASK 0x4000 /* TCH_CVT_ENA */
-+#define WM831X_TCH_CVT_ENA_SHIFT 14 /* TCH_CVT_ENA */
-+#define WM831X_TCH_CVT_ENA_WIDTH 1 /* TCH_CVT_ENA */
+#define WM831X_TCH_SLPENA 0x1000 /* TCH_SLPENA */
-+#define WM831X_TCH_SLPENA_MASK 0x1000 /* TCH_SLPENA */
-+#define WM831X_TCH_SLPENA_SHIFT 12 /* TCH_SLPENA */
-+#define WM831X_TCH_SLPENA_WIDTH 1 /* TCH_SLPENA */
+#define WM831X_TCH_Z_ENA 0x0400 /* TCH_Z_ENA */
-+#define WM831X_TCH_Z_ENA_MASK 0x0400 /* TCH_Z_ENA */
-+#define WM831X_TCH_Z_ENA_SHIFT 10 /* TCH_Z_ENA */
-+#define WM831X_TCH_Z_ENA_WIDTH 1 /* TCH_Z_ENA */
+#define WM831X_TCH_Y_ENA 0x0200 /* TCH_Y_ENA */
-+#define WM831X_TCH_Y_ENA_MASK 0x0200 /* TCH_Y_ENA */
-+#define WM831X_TCH_Y_ENA_SHIFT 9 /* TCH_Y_ENA */
-+#define WM831X_TCH_Y_ENA_WIDTH 1 /* TCH_Y_ENA */
+#define WM831X_TCH_X_ENA 0x0100 /* TCH_X_ENA */
-+#define WM831X_TCH_X_ENA_MASK 0x0100 /* TCH_X_ENA */
-+#define WM831X_TCH_X_ENA_SHIFT 8 /* TCH_X_ENA */
-+#define WM831X_TCH_X_ENA_WIDTH 1 /* TCH_X_ENA */
+#define WM831X_TCH_DELAY_MASK 0x00E0 /* TCH_DELAY - [7:5] */
+#define WM831X_TCH_DELAY_SHIFT 5 /* TCH_DELAY - [7:5] */
+#define WM831X_TCH_DELAY_WIDTH 3 /* TCH_DELAY - [7:5] */
@@ -129,21 +107,9 @@ index 0000000..9a58a11
+ * R16425 (0x4029) - Touch Control 2
+ */
+#define WM831X_TCH_PD_WK 0x2000 /* TCH_PD_WK */
-+#define WM831X_TCH_PD_WK_MASK 0x2000 /* TCH_PD_WK */
-+#define WM831X_TCH_PD_WK_SHIFT 13 /* TCH_PD_WK */
-+#define WM831X_TCH_PD_WK_WIDTH 1 /* TCH_PD_WK */
+#define WM831X_TCH_5WIRE 0x1000 /* TCH_5WIRE */
-+#define WM831X_TCH_5WIRE_MASK 0x1000 /* TCH_5WIRE */
-+#define WM831X_TCH_5WIRE_SHIFT 12 /* TCH_5WIRE */
-+#define WM831X_TCH_5WIRE_WIDTH 1 /* TCH_5WIRE */
+#define WM831X_TCH_PDONLY 0x0800 /* TCH_PDONLY */
-+#define WM831X_TCH_PDONLY_MASK 0x0800 /* TCH_PDONLY */
-+#define WM831X_TCH_PDONLY_SHIFT 11 /* TCH_PDONLY */
-+#define WM831X_TCH_PDONLY_WIDTH 1 /* TCH_PDONLY */
+#define WM831X_TCH_ISEL 0x0100 /* TCH_ISEL */
-+#define WM831X_TCH_ISEL_MASK 0x0100 /* TCH_ISEL */
-+#define WM831X_TCH_ISEL_SHIFT 8 /* TCH_ISEL */
-+#define WM831X_TCH_ISEL_WIDTH 1 /* TCH_ISEL */
+#define WM831X_TCH_RPU_MASK 0x000F /* TCH_RPU - [3:0] */
+#define WM831X_TCH_RPU_SHIFT 0 /* TCH_RPU - [3:0] */
+#define WM831X_TCH_RPU_WIDTH 4 /* TCH_RPU - [3:0] */
@@ -152,9 +118,6 @@ index 0000000..9a58a11
+ * R16426-8 (0x402A-C) - Touch Data X/Y/X
+ */
+#define WM831X_TCH_PD 0x8000 /* TCH_PD1 */
-+#define WM831X_TCH_PD_MASK 0x8000 /* TCH_PD1 */
-+#define WM831X_TCH_PD_SHIFT 15 /* TCH_PD1 */
-+#define WM831X_TCH_PD_WIDTH 1 /* TCH_PD1 */
+#define WM831X_TCH_DATA_MASK 0x0FFF /* TCH_DATA - [11:0] */
+#define WM831X_TCH_DATA_SHIFT 0 /* TCH_DATA - [11:0] */
+#define WM831X_TCH_DATA_WIDTH 12 /* TCH_DATA - [11:0] */
@@ -213,6 +176,12 @@ index 0000000..9a58a11
+ WM831X_TCH_X_ENA | WM831X_TCH_Y_ENA |
+ WM831X_TCH_Z_ENA, 0);
+
++ /* Flush any final samples that arrived while reading */
++ wm831x_set_bits(wm831x, WM831X_INTERRUPT_STATUS_1,
++ WM831X_TCHDATA_EINT, WM831X_TCHDATA_EINT);
++
++ wm831x_bulk_read(wm831x, WM831X_TOUCH_DATA_X, count, data);
++
+ if (wm831x_ts->pressure)
+ input_report_abs(wm831x_ts->input_dev,
+ ABS_PRESSURE, 0);
@@ -278,7 +247,7 @@ index 0000000..9a58a11
+ WM831X_TCH_Z_ENA, 0);
+
+ if (wm831x_ts->pen_down)
-+ disable_irq_nosync(wm831x_ts->pen_down);
++ disable_irq_nosync(wm831x_ts->data_irq);
+}
+
+static __devinit int wm831x_ts_probe(struct platform_device *pdev)
@@ -474,6 +443,3 @@ index 1ae8499..c6746e8 100644
};
enum wm831x_watchdog_action {
---
-1.7.2.3
-
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/412-wolfson-Input-wm831x-Update_following_upstream_review.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/412-wolfson-Input-wm831x-Update_following_upstream_review.patch
new file mode 100644
index 0000000..3a1b677
--- /dev/null
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/412-wolfson-Input-wm831x-Update_following_upstream_review.patch
@@ -0,0 +1,133 @@
+From: Mark Brown <br...@op...>
+Date: Tue, 25 Jan 2011 19:51:38 +0000 (+0000)
+Subject: Input: wm831x-ts - Update following upstream review
+X-Git-Url: http://opensource.wolfsonmicro.com/cgi-bin/gitweb.cgi?p=linux-2.6-audioplus.git;a=commitdiff_plain;h=279eb03e2bf2b3360d89311cb5535b54c4a25f3c
+
+Input: wm831x-ts - Update following upstream review
+
+Signed-off-by: Mark Brown <br...@op...>
+---
+
+diff --git a/drivers/input/touchscreen/wm831x-ts.c b/drivers/input/touchscreen/wm831x-ts.c
+index 3e8256d..155da5d 100644
+--- a/drivers/input/touchscreen/wm831x-ts.c
++++ b/drivers/input/touchscreen/wm831x-ts.c
+@@ -1,7 +1,7 @@
+ /*
+ * wm831x-ts.c - Touchscreen driver for WM831x PMICs
+ *
+- * Copyright 2010 Wolfson Microelectronics plc.
++ * Copyright 2011 Wolfson Microelectronics plc.
+ * Author: Mark Brown <br...@op...>
+ *
+ * This program is free software; you can redistribute it and/or modify it
+@@ -64,8 +64,8 @@
+ struct wm831x_ts {
+ struct input_dev *input_dev;
+ struct wm831x *wm831x;
+- int data_irq;
+- int pd_irq;
++ unsigned int data_irq;
++ unsigned int pd_irq;
+ bool pressure;
+ bool pen_down;
+ };
+@@ -186,7 +186,7 @@ static void wm831x_ts_input_close(struct input_dev *idev)
+ WM831X_TCH_Z_ENA, 0);
+
+ if (wm831x_ts->pen_down)
+- disable_irq_nosync(wm831x_ts->data_irq);
++ disable_irq(wm831x_ts->data_irq);
+ }
+
+ static __devinit int wm831x_ts_probe(struct platform_device *pdev)
+@@ -204,13 +204,20 @@ static __devinit int wm831x_ts_probe(struct platform_device *pdev)
+
+ wm831x_ts->wm831x = wm831x;
+
++ input_dev = input_allocate_device();
++ if (input_dev == NULL) {
++ ret = -ENOMEM;
++ goto err_alloc;
++ }
++ wm831x_ts->input_dev = input_dev;
++
+ if (core_pdata && core_pdata->touch)
+ pdata = core_pdata->touch;
+ else
+ pdata = NULL;
+
+- /* If we have a direct CPU data IRQ use it, otherwise use
+- * the interrupt through the WM831x IRQ controller.
++ /* If we have a direct IRQ use it, otherwise use the interrupt
++ * from the WM831x IRQ controller.
+ */
+ if (pdata && pdata->data_irq)
+ wm831x_ts->data_irq = pdata->data_irq;
+@@ -272,15 +279,13 @@ static __devinit int wm831x_ts_probe(struct platform_device *pdev)
+ if (ret < 0) {
+ dev_err(&pdev->dev, "Failed to request data IRQ %d: %d\n",
+ wm831x_ts->data_irq, ret);
+- goto err_alloc;
++ goto err_dev_alloc;
+ }
+ disable_irq(wm831x_ts->data_irq);
+
+ ret = request_threaded_irq(wm831x_ts->pd_irq, NULL,
+- wm831x_ts_pen_down_irq,
+- IRQF_SAMPLE_RANDOM | IRQF_ONESHOT,
++ wm831x_ts_pen_down_irq, IRQF_ONESHOT,
+ "Touchscreen pen down", wm831x_ts);
+-
+ if (ret < 0) {
+ dev_err(&pdev->dev, "Failed to request pen down IRQ %d: %d\n",
+ wm831x_ts->pd_irq, ret);
+@@ -289,13 +294,6 @@ static __devinit int wm831x_ts_probe(struct platform_device *pdev)
+
+ platform_set_drvdata(pdev, wm831x_ts);
+
+- input_dev = input_allocate_device();
+- if (input_dev == NULL) {
+- ret = -ENOMEM;
+- goto err_pd_irq;
+- }
+- wm831x_ts->input_dev = input_dev;
+-
+ /* set up touch configuration */
+ input_dev->name = "WM831x touchscreen";
+ input_dev->phys = "wm831x";
+@@ -316,16 +314,16 @@ static __devinit int wm831x_ts_probe(struct platform_device *pdev)
+
+ ret = input_register_device(input_dev);
+ if (ret < 0)
+- goto err_dev_alloc;
++ goto err_pd_irq;
+
+ return ret;
+
+-err_dev_alloc:
+- input_free_device(input_dev);
+ err_pd_irq:
+ free_irq(wm831x_ts->pd_irq, wm831x_ts);
+ err_data_irq:
+ free_irq(wm831x_ts->data_irq, wm831x_ts);
++err_dev_alloc:
++ input_free_device(input_dev);
+ err_alloc:
+ kfree(wm831x_ts);
+
+diff --git a/include/linux/mfd/wm831x/pdata.h b/include/linux/mfd/wm831x/pdata.h
+index c6746e8..ac3aa73 100644
+--- a/include/linux/mfd/wm831x/pdata.h
++++ b/include/linux/mfd/wm831x/pdata.h
+@@ -80,8 +80,8 @@ struct wm831x_touch_pdata {
+ int isel; /** Current for pen down (uA) */
+ int rpu; /** Pen down sensitivity resistor divider */
+ int pressure; /** Report pressure (boolean) */
+- int data_irq; /** Touch data ready IRQ */
+- int pd_irq; /** Touch pendown detect IRQ */
++ unsigned int data_irq; /** Touch data ready IRQ */
++ unsigned int pd_irq; /** Touch pendown detect IRQ */
+ };
+
+ enum wm831x_watchdog_action {
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/413-wolfson-mfd-wm831x-Support_configuration_of_IRQ_output_in_CMOS_mode.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/413-wolfson-mfd-wm831x-Support_configuration_of_IRQ_output_in_CMOS_mode.patch
index fc5c6a8..6461e2d 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/413-wolfson-mfd-wm831x-Support_configuration_of_IRQ_output_in_CMOS_mode.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/413-wolfson-mfd-wm831x-Support_configuration_of_IRQ_output_in_CMOS_mode.patch
@@ -1,7 +1,9 @@
->From 25d95db8096f73f3c7d277f44c8daf7642142e2f Mon Sep 17 00:00:00 2001
From: Mark Brown <br...@op...>
-Date: Thu, 6 Jan 2011 13:08:25 +0000
-Subject: [PATCH] mfd: Support configuration of WM831x /IRQ output in CMOS mode
+Date: Thu, 6 Jan 2011 13:08:25 +0000 (+0000)
+Subject: mfd: Support configuration of WM831x /IRQ output in CMOS mode
+X-Git-Url: http://opensource.wolfsonmicro.com/cgi-bin/gitweb.cgi?p=linux-2.6-audioplus.git;a=commitdiff_plain;h=514dea30d1f8826f37e009730ea9d4d50bf9e998
+
+mfd: Support configuration of WM831x /IRQ output in CMOS mode
Provide platform data allowing the system to set the /IRQ pin into
CMOS mode rather than the default open drain. The default value of
@@ -10,15 +12,12 @@ there should be no change to existing users.
Signed-off-by: Mark Brown <br...@op...>
---
- drivers/mfd/wm831x-irq.c | 7 +++++++
- include/linux/mfd/wm831x/pdata.h | 3 +++
- 2 files changed, 10 insertions(+), 0 deletions(-)
diff --git a/drivers/mfd/wm831x-irq.c b/drivers/mfd/wm831x-irq.c
-index f7192d4..0d3cda4 100644
+index 299437d..7a24c66 100644
--- a/drivers/mfd/wm831x-irq.c
+++ b/drivers/mfd/wm831x-irq.c
-@@ -515,6 +515,13 @@ int wm831x_irq_init(struct wm831x *wm831x, int irq)
+@@ -506,6 +506,14 @@ int wm831x_irq_init(struct wm831x *wm831x, int irq)
return 0;
}
@@ -26,17 +25,18 @@ index f7192d4..0d3cda4 100644
+ i = 0;
+ else
+ i = WM831X_IRQ_OD;
++
+ wm831x_set_bits(wm831x, WM831X_IRQ_CONFIG,
+ WM831X_IRQ_OD, i);
+
- wm831x->irq = irq;
- wm831x->irq_base = pdata->irq_base;
-
+ /* Try to flag /IRQ as a wake source; there are a number of
+ * unconditional wake sources in the PMIC so this isn't
+ * conditional but we don't actually care *too* much if it
diff --git a/include/linux/mfd/wm831x/pdata.h b/include/linux/mfd/wm831x/pdata.h
index fd322ac..1ae8499 100644
--- a/include/linux/mfd/wm831x/pdata.h
+++ b/include/linux/mfd/wm831x/pdata.h
-@@ -109,6 +109,9 @@ struct wm831x_pdata {
+@@ -108,6 +108,9 @@ struct wm831x_pdata {
/** Called after subdevices are set up */
int (*post_init)(struct wm831x *wm831x);
@@ -46,6 +46,3 @@ index fd322ac..1ae8499 100644
int irq_base;
int gpio_base;
struct wm831x_backlight_pdata *backlight;
---
-1.7.2.3
-
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/414-wolfson-mfd-Leave-acknowledgement-of-WM831x-touchscreen-IRQs.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/414-wolfson-mfd-Leave-acknowledgement-of-WM831x-touchscreen-IRQs.patch
index f1371cc..61d4ecd 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/414-wolfson-mfd-Leave-acknowledgement-of-WM831x-touchscreen-IRQs.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/414-wolfson-mfd-Leave-acknowledgement-of-WM831x-touchscreen-IRQs.patch
@@ -1,7 +1,9 @@
->From c0ddb6e52161faaa4d88967fe955fd9df5bac477 Mon Sep 17 00:00:00 2001
From: Mark Brown <br...@op...>
-Date: Mon, 10 Jan 2011 18:15:56 +0000
-Subject: [PATCH 2/2] mfd: Leave acknowledgement of WM831x touchscreen IRQs to the driver
+Date: Mon, 10 Jan 2011 18:15:56 +0000 (+0000)
+Subject: mfd: Leave acknowledgement of WM831x touchscreen IRQs to the driver
+X-Git-Url: http://opensource.wolfsonmicro.com/cgi-bin/gitweb.cgi?p=linux-2.6-audioplus.git;a=commitdiff_plain;h=a12170399f6e1a06631a281fe085fd356dd7de37
+
+mfd: Leave acknowledgement of WM831x touchscreen IRQs to the driver
The WM831x touchscreen interrupts need acknowledgement even when using
direct signals to the CPU (which don't go through the core) so leave
@@ -9,14 +11,12 @@ the acknowledgement up to the touchscreen driver for simplicity.
Signed-off-by: Mark Brown <br...@op...>
---
- drivers/mfd/wm831x-irq.c | 3 +++
- 1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/mfd/wm831x-irq.c b/drivers/mfd/wm831x-irq.c
-index 0d3cda4..2f26f80 100644
+index 7a24c66..46db25b 100644
--- a/drivers/mfd/wm831x-irq.c
+++ b/drivers/mfd/wm831x-irq.c
-@@ -481,6 +481,9 @@ static irqreturn_t wm831x_irq_thread(int irq, void *data)
+@@ -470,6 +470,9 @@ static irqreturn_t wm831x_irq_thread(int irq, void *data)
}
out:
@@ -26,6 +26,3 @@ index 0d3cda4..2f26f80 100644
for (i = 0; i < ARRAY_SIZE(status_regs); i++) {
if (status_regs[i])
wm831x_reg_write(wm831x, WM831X_INTERRUPT_STATUS_1 + i,
---
-1.7.2.3
-
diff --git a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/417-armadeus-input-wm831x-driver_hacks.patch b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/417-armadeus-input-wm831x-driver_hacks.patch
index 0301ead..27cd89e 100644
--- a/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/417-armadeus-input-wm831x-driver_hacks.patch
+++ b/buildroot/target/device/armadeus/linux/kernel-patches/2.6.38/417-armadeus-input-wm831x-driver_hacks.patch
@@ -21,7 +21,7 @@ Index: linux-2.6.38-alpha/drivers/input/touchscreen/wm831x-ts.c
WARN_ON(pdata->pressure && pdata->fivewire);
wm831x_ts->pressure = false;
} else {
-@@ -316,6 +317,17 @@
+@@ -294,6 +295,17 @@
platform_set_drvdata(pdev, wm831x_ts);
@@ -36,6 +36,6 @@ Index: linux-2.6.38-alpha/drivers/input/touchscreen/wm831x-ts.c
+ wm831x_reg_write(wm831x, 0x404d, 0x0000); /* LED2 off */
+ wm831x_reg_write(wm831x, 0x4037 + 6, 0x0086);
+
- input_dev = input_allocate_device();
- if (input_dev == NULL) {
- ret = -ENOMEM;
+ /* set up touch configuration */
+ input_dev->name = "WM831x touchscreen";
+ input_dev->phys = "wm831x";
hooks/post-receive
--
armadeus
|