* [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042 [not found] <1289147348-31969-1-git-send-email-alchark@gmail.com> @ 2010-11-07 16:28 ` Alexey Charkov 2010-11-12 22:54 ` Alexey Charkov 0 siblings, 1 reply; 5+ messages in thread From: Alexey Charkov @ 2010-11-07 16:28 UTC (permalink / raw) To: linux-arm-kernel Cc: vt8500-wm8505-linux-kernel, Alexey Charkov, Dmitry Torokhov, Tony Lindgren, Feng Tang, Janusz Krzysztofik, Dmitry Eremin-Solenikov, linux-input, linux-kernel VIA and WonderMedia Systems-on-Chip feature a standard i8042-compatible keyboard and mouse controller. This adds necessary glue to enable use of the standard driver with these systems. Signed-off-by: Alexey Charkov <alchark@gmail.com> --- Please review and (if appropriate) commit to a relevant git tree for further integration in 2.6.38. Previous version of this code was 'Acked-by: Dmitry Torokhov <dtor@mail.ru>' This one only differs by using runtime-selected IRQ definitions instead of static compile-time preprocessor macros. Relevant register and interrupt definitions are provided by PATCH 1/6 in this series, so one would need that to make use of this code. drivers/input/serio/Kconfig | 3 +- drivers/input/serio/i8042-vt8500.h | 74 ++++++++++++++++++++++++++++++++++++ drivers/input/serio/i8042.h | 2 + 3 files changed, 78 insertions(+), 1 deletions(-) create mode 100644 drivers/input/serio/i8042-vt8500.h diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig index 6256233..ff799f3 100644 --- a/drivers/input/serio/Kconfig +++ b/drivers/input/serio/Kconfig @@ -21,7 +21,8 @@ if SERIO config SERIO_I8042 tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 default y - depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \ + depends on !PARISC && \ + (!ARM || ARCH_SHARK || ARCH_VT8500 || FOOTBRIDGE_HOST) && \ (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN help i8042 is the chip over which the standard AT keyboard and PS/2 diff --git a/drivers/input/serio/i8042-vt8500.h b/drivers/input/serio/i8042-vt8500.h new file mode 100644 index 0000000..4ff9e1c --- /dev/null +++ b/drivers/input/serio/i8042-vt8500.h @@ -0,0 +1,74 @@ +#ifndef _I8042_VT8500_H +#define _I8042_VT8500_H + +#include <mach/mmio_regs.h> +#include <mach/irq_defs.h> + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +static void __iomem *regbase; + +/* + * Names. + */ + +#define I8042_KBD_PHYS_DESC "vt8500ps2/serio0" +#define I8042_AUX_PHYS_DESC "vt8500ps2/serio1" +#define I8042_MUX_PHYS_DESC "vt8500ps2/serio%d" + +/* + * IRQs. + */ + +#define I8042_KBD_IRQ (wmt_current_irqs->ps2kbd) +#define I8042_AUX_IRQ (wmt_current_irqs->ps2mouse) + + +/* + * Register numbers. + */ + +#define I8042_COMMAND_REG (regbase + 0x4) +#define I8042_STATUS_REG (regbase + 0x4) +#define I8042_DATA_REG (regbase + 0x0) + +static inline int i8042_read_data(void) +{ + return readl(I8042_DATA_REG); +} + +static inline int i8042_read_status(void) +{ + return readl(I8042_STATUS_REG); +} + +static inline void i8042_write_data(int val) +{ + writel(val, I8042_DATA_REG); +} + +static inline void i8042_write_command(int val) +{ + writel(val, I8042_COMMAND_REG); +} + +static inline int i8042_platform_init(void) +{ + i8042_reset = true; + regbase = ioremap(wmt_current_regs->ps2, SZ_1K); + if (!regbase) + return -ENODEV; + + return 0; +} + +static inline void i8042_platform_exit(void) +{ + iounmap(regbase); +} + +#endif /* _I8042_VT8500_H */ diff --git a/drivers/input/serio/i8042.h b/drivers/input/serio/i8042.h index cbc1beb..bdb2aeb 100644 --- a/drivers/input/serio/i8042.h +++ b/drivers/input/serio/i8042.h @@ -16,6 +16,8 @@ #if defined(CONFIG_MACH_JAZZ) #include "i8042-jazzio.h" +#elif defined(CONFIG_ARCH_VT8500) +#include "i8042-vt8500.h" #elif defined(CONFIG_SGI_HAS_I8042) #include "i8042-ip22io.h" #elif defined(CONFIG_SNI_RM) -- 1.7.3.2 ^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042 2010-11-07 16:28 ` [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042 Alexey Charkov @ 2010-11-12 22:54 ` Alexey Charkov 2010-11-12 23:30 ` Dmitry Torokhov 0 siblings, 1 reply; 5+ messages in thread From: Alexey Charkov @ 2010-11-12 22:54 UTC (permalink / raw) To: linux-arm-kernel Cc: vt8500-wm8505-linux-kernel, Alexey Charkov, Dmitry Torokhov, Tony Lindgren, Feng Tang, Janusz Krzysztofik, Dmitry Eremin-Solenikov, linux-input, linux-kernel 2010/11/7 Alexey Charkov <alchark@gmail.com>: > VIA and WonderMedia Systems-on-Chip feature a standard i8042-compatible > keyboard and mouse controller. This adds necessary glue to enable use > of the standard driver with these systems. > > Signed-off-by: Alexey Charkov <alchark@gmail.com> > --- > > Please review and (if appropriate) commit to a relevant git tree for > further integration in 2.6.38. > > Previous version of this code was 'Acked-by: Dmitry Torokhov <dtor@mail.ru>' > This one only differs by using runtime-selected IRQ definitions instead > of static compile-time preprocessor macros. > > Relevant register and interrupt definitions are provided by PATCH 1/6 in > this series, so one would need that to make use of this code. > > drivers/input/serio/Kconfig | 3 +- > drivers/input/serio/i8042-vt8500.h | 74 ++++++++++++++++++++++++++++++++++++ > drivers/input/serio/i8042.h | 2 + > 3 files changed, 78 insertions(+), 1 deletions(-) > create mode 100644 drivers/input/serio/i8042-vt8500.h > > diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig > index 6256233..ff799f3 100644 > --- a/drivers/input/serio/Kconfig > +++ b/drivers/input/serio/Kconfig > @@ -21,7 +21,8 @@ if SERIO > config SERIO_I8042 > tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 > default y > - depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \ > + depends on !PARISC && \ > + (!ARM || ARCH_SHARK || ARCH_VT8500 || FOOTBRIDGE_HOST) && \ > (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN > help > i8042 is the chip over which the standard AT keyboard and PS/2 > diff --git a/drivers/input/serio/i8042-vt8500.h b/drivers/input/serio/i8042-vt8500.h > new file mode 100644 > index 0000000..4ff9e1c > --- /dev/null > +++ b/drivers/input/serio/i8042-vt8500.h > @@ -0,0 +1,74 @@ > +#ifndef _I8042_VT8500_H > +#define _I8042_VT8500_H > + > +#include <mach/mmio_regs.h> > +#include <mach/irq_defs.h> > + > +/* > + * This program is free software; you can redistribute it and/or modify it > + * under the terms of the GNU General Public License version 2 as published by > + * the Free Software Foundation. > + */ > + > +static void __iomem *regbase; > + > +/* > + * Names. > + */ > + > +#define I8042_KBD_PHYS_DESC "vt8500ps2/serio0" > +#define I8042_AUX_PHYS_DESC "vt8500ps2/serio1" > +#define I8042_MUX_PHYS_DESC "vt8500ps2/serio%d" > + > +/* > + * IRQs. > + */ > + > +#define I8042_KBD_IRQ (wmt_current_irqs->ps2kbd) > +#define I8042_AUX_IRQ (wmt_current_irqs->ps2mouse) > + > + > +/* > + * Register numbers. > + */ > + > +#define I8042_COMMAND_REG (regbase + 0x4) > +#define I8042_STATUS_REG (regbase + 0x4) > +#define I8042_DATA_REG (regbase + 0x0) > + > +static inline int i8042_read_data(void) > +{ > + return readl(I8042_DATA_REG); > +} > + > +static inline int i8042_read_status(void) > +{ > + return readl(I8042_STATUS_REG); > +} > + > +static inline void i8042_write_data(int val) > +{ > + writel(val, I8042_DATA_REG); > +} > + > +static inline void i8042_write_command(int val) > +{ > + writel(val, I8042_COMMAND_REG); > +} > + > +static inline int i8042_platform_init(void) > +{ > + i8042_reset = true; > + regbase = ioremap(wmt_current_regs->ps2, SZ_1K); > + if (!regbase) > + return -ENODEV; > + > + return 0; > +} > + > +static inline void i8042_platform_exit(void) > +{ > + iounmap(regbase); > +} > + > +#endif /* _I8042_VT8500_H */ > diff --git a/drivers/input/serio/i8042.h b/drivers/input/serio/i8042.h > index cbc1beb..bdb2aeb 100644 > --- a/drivers/input/serio/i8042.h > +++ b/drivers/input/serio/i8042.h > @@ -16,6 +16,8 @@ > > #if defined(CONFIG_MACH_JAZZ) > #include "i8042-jazzio.h" > +#elif defined(CONFIG_ARCH_VT8500) > +#include "i8042-vt8500.h" > #elif defined(CONFIG_SGI_HAS_I8042) > #include "i8042-ip22io.h" > #elif defined(CONFIG_SNI_RM) > -- > 1.7.3.2 > > Any comments about this? Thanks, Alexey -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042 2010-11-12 22:54 ` Alexey Charkov @ 2010-11-12 23:30 ` Dmitry Torokhov 2010-11-13 0:00 ` Alexey Charkov 2010-12-22 21:41 ` [PATCH 3/6 v3] " Alexey Charkov 0 siblings, 2 replies; 5+ messages in thread From: Dmitry Torokhov @ 2010-11-12 23:30 UTC (permalink / raw) To: Alexey Charkov Cc: linux-arm-kernel, vt8500-wm8505-linux-kernel, Tony Lindgren, Feng Tang, Janusz Krzysztofik, Dmitry Eremin-Solenikov, linux-input, linux-kernel On Sat, Nov 13, 2010 at 01:54:14AM +0300, Alexey Charkov wrote: > 2010/11/7 Alexey Charkov <alchark@gmail.com>: > > VIA and WonderMedia Systems-on-Chip feature a standard i8042-compatible > > keyboard and mouse controller. This adds necessary glue to enable use > > of the standard driver with these systems. > > > > Signed-off-by: Alexey Charkov <alchark@gmail.com> > > --- > > > > Please review and (if appropriate) commit to a relevant git tree for > > further integration in 2.6.38. > > > > Previous version of this code was 'Acked-by: Dmitry Torokhov <dtor@mail.ru>' > > This one only differs by using runtime-selected IRQ definitions instead > > of static compile-time preprocessor macros. > > > > Relevant register and interrupt definitions are provided by PATCH 1/6 in > > this series, so one would need that to make use of this code. > > > > drivers/input/serio/Kconfig | 3 +- > > drivers/input/serio/i8042-vt8500.h | 74 ++++++++++++++++++++++++++++++++++++ > > drivers/input/serio/i8042.h | 2 + > > 3 files changed, 78 insertions(+), 1 deletions(-) > > create mode 100644 drivers/input/serio/i8042-vt8500.h > > > > diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig > > index 6256233..ff799f3 100644 > > --- a/drivers/input/serio/Kconfig > > +++ b/drivers/input/serio/Kconfig > > @@ -21,7 +21,8 @@ if SERIO > > config SERIO_I8042 > > tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 > > default y > > - depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \ > > + depends on !PARISC && \ > > + (!ARM || ARCH_SHARK || ARCH_VT8500 || FOOTBRIDGE_HOST) && \ > > (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN > > help > > i8042 is the chip over which the standard AT keyboard and PS/2 > > diff --git a/drivers/input/serio/i8042-vt8500.h b/drivers/input/serio/i8042-vt8500.h > > new file mode 100644 > > index 0000000..4ff9e1c > > --- /dev/null > > +++ b/drivers/input/serio/i8042-vt8500.h > > @@ -0,0 +1,74 @@ > > +#ifndef _I8042_VT8500_H > > +#define _I8042_VT8500_H > > + > > +#include <mach/mmio_regs.h> > > +#include <mach/irq_defs.h> > > + > > +/* > > + * This program is free software; you can redistribute it and/or modify it > > + * under the terms of the GNU General Public License version 2 as published by > > + * the Free Software Foundation. > > + */ > > + > > +static void __iomem *regbase; > > + > > +/* > > + * Names. > > + */ > > + > > +#define I8042_KBD_PHYS_DESC "vt8500ps2/serio0" > > +#define I8042_AUX_PHYS_DESC "vt8500ps2/serio1" > > +#define I8042_MUX_PHYS_DESC "vt8500ps2/serio%d" > > + > > +/* > > + * IRQs. > > + */ > > + > > +#define I8042_KBD_IRQ (wmt_current_irqs->ps2kbd) > > +#define I8042_AUX_IRQ (wmt_current_irqs->ps2mouse) > > + > > + > > +/* > > + * Register numbers. > > + */ > > + > > +#define I8042_COMMAND_REG (regbase + 0x4) > > +#define I8042_STATUS_REG (regbase + 0x4) > > +#define I8042_DATA_REG (regbase + 0x0) > > + > > +static inline int i8042_read_data(void) > > +{ > > + return readl(I8042_DATA_REG); > > +} > > + > > +static inline int i8042_read_status(void) > > +{ > > + return readl(I8042_STATUS_REG); > > +} > > + > > +static inline void i8042_write_data(int val) > > +{ > > + writel(val, I8042_DATA_REG); > > +} > > + > > +static inline void i8042_write_command(int val) > > +{ > > + writel(val, I8042_COMMAND_REG); > > +} > > + > > +static inline int i8042_platform_init(void) > > +{ > > + i8042_reset = true; > > + regbase = ioremap(wmt_current_regs->ps2, SZ_1K); > > + if (!regbase) > > + return -ENODEV; > > + > > + return 0; > > +} > > + > > +static inline void i8042_platform_exit(void) > > +{ > > + iounmap(regbase); > > +} > > + > > +#endif /* _I8042_VT8500_H */ > > diff --git a/drivers/input/serio/i8042.h b/drivers/input/serio/i8042.h > > index cbc1beb..bdb2aeb 100644 > > --- a/drivers/input/serio/i8042.h > > +++ b/drivers/input/serio/i8042.h > > @@ -16,6 +16,8 @@ > > > > #if defined(CONFIG_MACH_JAZZ) > > #include "i8042-jazzio.h" > > +#elif defined(CONFIG_ARCH_VT8500) > > +#include "i8042-vt8500.h" > > #elif defined(CONFIG_SGI_HAS_I8042) > > #include "i8042-ip22io.h" > > #elif defined(CONFIG_SNI_RM) > > -- > > 1.7.3.2 > > > > > > Any comments about this? > Looks good to me (ignoring the fact that whole i8042 initialization needs to be reworked and pushed into arch/board code which is out of scope of these series). I expect it will be merged with the rest of VT8500 patches through whatever tree takes them. Thanks. -- Dmitry -- To unsubscribe from this list: send the line "unsubscribe linux-input" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042 2010-11-12 23:30 ` Dmitry Torokhov @ 2010-11-13 0:00 ` Alexey Charkov 2010-12-22 21:41 ` [PATCH 3/6 v3] " Alexey Charkov 1 sibling, 0 replies; 5+ messages in thread From: Alexey Charkov @ 2010-11-13 0:00 UTC (permalink / raw) To: Dmitry Torokhov Cc: linux-arm-kernel, vt8500-wm8505-linux-kernel, Tony Lindgren, Feng Tang, Janusz Krzysztofik, Dmitry Eremin-Solenikov, linux-input, linux-kernel 2010/11/13 Dmitry Torokhov <dmitry.torokhov@gmail.com>: > Looks good to me (ignoring the fact that whole i8042 initialization > needs to be reworked and pushed into arch/board code which is out of > scope of these series). > > I expect it will be merged with the rest of VT8500 patches through > whatever tree takes them. Thanks, Dmitry! Best regards, Alexey ^ permalink raw reply [flat|nested] 5+ messages in thread
* [PATCH 3/6 v3] input: Add support for VIA VT8500 and compatibles in i8042 2010-11-12 23:30 ` Dmitry Torokhov 2010-11-13 0:00 ` Alexey Charkov @ 2010-12-22 21:41 ` Alexey Charkov 1 sibling, 0 replies; 5+ messages in thread From: Alexey Charkov @ 2010-12-22 21:41 UTC (permalink / raw) To: Dmitry Torokhov Cc: Alexey Charkov, linux-arm-kernel, vt8500-wm8505-linux-kernel, Tony Lindgren, Feng Tang, Janusz Krzysztofik, Dmitry Eremin-Solenikov, linux-input, linux-kernel VIA and WonderMedia Systems-on-Chip feature a standard i8042-compatible keyboard and mouse controller. This adds necessary glue to enable use of the standard driver with these systems. Signed-off-by: Alexey Charkov <alchark@gmail.com> --- This version of the patch introduces yet another trivial update to follow changes in arch code (namely variables that hold the register and interrupt numbers). Otherwise it is identical to v2. Best regards, Alexey drivers/input/serio/Kconfig | 3 +- drivers/input/serio/i8042-vt8500.h | 73 ++++++++++++++++++++++++++++++++++++ drivers/input/serio/i8042.h | 2 + 3 files changed, 77 insertions(+), 1 deletions(-) create mode 100644 drivers/input/serio/i8042-vt8500.h diff --git a/drivers/input/serio/Kconfig b/drivers/input/serio/Kconfig index 6256233..ff799f3 100644 --- a/drivers/input/serio/Kconfig +++ b/drivers/input/serio/Kconfig @@ -21,7 +21,8 @@ if SERIO config SERIO_I8042 tristate "i8042 PC Keyboard controller" if EMBEDDED || !X86 default y - depends on !PARISC && (!ARM || ARCH_SHARK || FOOTBRIDGE_HOST) && \ + depends on !PARISC && \ + (!ARM || ARCH_SHARK || ARCH_VT8500 || FOOTBRIDGE_HOST) && \ (!SUPERH || SH_CAYMAN) && !M68K && !BLACKFIN help i8042 is the chip over which the standard AT keyboard and PS/2 diff --git a/drivers/input/serio/i8042-vt8500.h b/drivers/input/serio/i8042-vt8500.h new file mode 100644 index 0000000..a7e6673 --- /dev/null +++ b/drivers/input/serio/i8042-vt8500.h @@ -0,0 +1,73 @@ +#ifndef _I8042_VT8500_H +#define _I8042_VT8500_H + +#include <mach/i8042.h> + +/* + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License version 2 as published by + * the Free Software Foundation. + */ + +static void __iomem *regbase; + +/* + * Names. + */ + +#define I8042_KBD_PHYS_DESC "vt8500ps2/serio0" +#define I8042_AUX_PHYS_DESC "vt8500ps2/serio1" +#define I8042_MUX_PHYS_DESC "vt8500ps2/serio%d" + +/* + * IRQs. + */ + +#define I8042_KBD_IRQ (wmt_i8042_kbd_irq) +#define I8042_AUX_IRQ (wmt_i8042_aux_irq) + + +/* + * Register numbers. + */ + +#define I8042_COMMAND_REG (regbase + 0x4) +#define I8042_STATUS_REG (regbase + 0x4) +#define I8042_DATA_REG (regbase + 0x0) + +static inline int i8042_read_data(void) +{ + return readl(I8042_DATA_REG); +} + +static inline int i8042_read_status(void) +{ + return readl(I8042_STATUS_REG); +} + +static inline void i8042_write_data(int val) +{ + writel(val, I8042_DATA_REG); +} + +static inline void i8042_write_command(int val) +{ + writel(val, I8042_COMMAND_REG); +} + +static inline int i8042_platform_init(void) +{ + i8042_reset = true; + regbase = ioremap(wmt_i8042_base, SZ_1K); + if (!regbase) + return -ENODEV; + + return 0; +} + +static inline void i8042_platform_exit(void) +{ + iounmap(regbase); +} + +#endif /* _I8042_VT8500_H */ diff --git a/drivers/input/serio/i8042.h b/drivers/input/serio/i8042.h index cbc1beb..bdb2aeb 100644 --- a/drivers/input/serio/i8042.h +++ b/drivers/input/serio/i8042.h @@ -16,6 +16,8 @@ #if defined(CONFIG_MACH_JAZZ) #include "i8042-jazzio.h" +#elif defined(CONFIG_ARCH_VT8500) +#include "i8042-vt8500.h" #elif defined(CONFIG_SGI_HAS_I8042) #include "i8042-ip22io.h" #elif defined(CONFIG_SNI_RM) -- 1.7.3.4 ^ permalink raw reply related [flat|nested] 5+ messages in thread
end of thread, other threads:[~2010-12-22 21:41 UTC | newest] Thread overview: 5+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <1289147348-31969-1-git-send-email-alchark@gmail.com> 2010-11-07 16:28 ` [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042 Alexey Charkov 2010-11-12 22:54 ` Alexey Charkov 2010-11-12 23:30 ` Dmitry Torokhov 2010-11-13 0:00 ` Alexey Charkov 2010-12-22 21:41 ` [PATCH 3/6 v3] " Alexey Charkov
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).