* [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042 [not found] <1287608139-21354-1-git-send-email-alchark@gmail.com> @ 2010-10-20 20:55 ` Alexey Charkov 2010-10-20 21:15 ` Dmitry Torokhov 2010-10-30 22:23 ` [PATCH 3/6] " Ben Dooks 0 siblings, 2 replies; 11+ messages in thread From: Alexey Charkov @ 2010-10-20 20:55 UTC (permalink / raw) To: vt8500-wm8505-linux-kernel Cc: linux-arm-kernel, Alexey Charkov, Dmitry Torokhov, 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 state whether this could be acceptable for a merge to mainline in the coming 2.6.37 window. If possible, I would deeply appreciate a merge to a relevant git tree for integration prior to asking Linus to pull the changes. I could rebase the code if needed, currently this is against Linus' master branch. This patch relies on the basic architecture support for VT8500/WM8505 to be in place, as introduced by PATCH 1/6 in this series. Due credits go to the community for providing feedback, advice and testing. NB: The development is being done at: http://gitorious.org/linux-on-via-vt8500/vt8500-kernel Relevant code may be pulled from a git tree in there. drivers/input/serio/Kconfig | 3 +- drivers/input/serio/i8042-vt8500.h | 71 ++++++++++++++++++++++++++++++++++++ drivers/input/serio/i8042.h | 2 + 3 files changed, 75 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 3bfe8fa..2b86774 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..d30df82 --- /dev/null +++ b/drivers/input/serio/i8042-vt8500.h @@ -0,0 +1,71 @@ +#ifndef _I8042_VT8500_H +#define _I8042_VT8500_H + +#include <mach/irqs.h> +#include <mach/vt8500.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 IRQ_PS2KBD +#define I8042_AUX_IRQ IRQ_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 = 1; + regbase = ioremap(VT8500_PS2_BASE, SZ_1K); + 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.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042 2010-10-20 20:55 ` [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042 Alexey Charkov @ 2010-10-20 21:15 ` Dmitry Torokhov 2010-10-20 21:24 ` Alexey Charkov 2010-10-20 22:14 ` [PATCH 3/6 v2] " Alexey Charkov 2010-10-30 22:23 ` [PATCH 3/6] " Ben Dooks 1 sibling, 2 replies; 11+ messages in thread From: Dmitry Torokhov @ 2010-10-20 21:15 UTC (permalink / raw) To: Alexey Charkov Cc: vt8500-wm8505-linux-kernel, linux-arm-kernel, linux-input, linux-kernel On Wednesday, October 20, 2010 01:55:35 pm Alexey Charkov wrote: > 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 state whether this could be acceptable for a merge > to mainline in the coming 2.6.37 window. If possible, I would deeply > appreciate a merge to a relevant git tree for integration prior to > asking Linus to pull the changes. I could rebase the code if needed, > currently this is against Linus' master branch. > > This patch relies on the basic architecture support for VT8500/WM8505 > to be in place, as introduced by PATCH 1/6 in this series. What tree this code will be coming through through? > + > +static inline int i8042_platform_init(void) > +{ > + i8042_reset = 1; = true; - it's a boolean. > + regbase = ioremap(VT8500_PS2_BASE, SZ_1K); Error handling? Thanks. -- Dmitry ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042 2010-10-20 21:15 ` Dmitry Torokhov @ 2010-10-20 21:24 ` Alexey Charkov 2010-10-20 22:14 ` [PATCH 3/6 v2] " Alexey Charkov 1 sibling, 0 replies; 11+ messages in thread From: Alexey Charkov @ 2010-10-20 21:24 UTC (permalink / raw) To: Dmitry Torokhov Cc: vt8500-wm8505-linux-kernel, linux-arm-kernel, linux-input, linux-kernel 2010/10/21 Dmitry Torokhov <dmitry.torokhov@gmail.com> > > On Wednesday, October 20, 2010 01:55:35 pm Alexey Charkov wrote: > > 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 state whether this could be acceptable for a merge > > to mainline in the coming 2.6.37 window. If possible, I would deeply > > appreciate a merge to a relevant git tree for integration prior to > > asking Linus to pull the changes. I could rebase the code if needed, > > currently this is against Linus' master branch. > > > > This patch relies on the basic architecture support for VT8500/WM8505 > > to be in place, as introduced by PATCH 1/6 in this series. > > What tree this code will be coming through through? > Should be Russel King's ARM tree, probably. The whole series is CC'd to linux-arm-kernel and to the relevant subsystems maintainers, as I was instructed to do at a previous submission attempt. > > + > > +static inline int i8042_platform_init(void) > > +{ > > + i8042_reset = 1; > > = true; - it's a boolean. > Got it, thanks. > > + regbase = ioremap(VT8500_PS2_BASE, SZ_1K); > > Error handling? > Ok, I've missed this. Will be fixed. > Thanks. > > -- > Dmitry Thanks for your review, Dmitry! Are there any other issues with this or is it otherwise good enough to receive your Ack? -- 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] 11+ messages in thread
* [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042 2010-10-20 21:15 ` Dmitry Torokhov 2010-10-20 21:24 ` Alexey Charkov @ 2010-10-20 22:14 ` Alexey Charkov 2010-10-20 23:46 ` Dmitry Torokhov 1 sibling, 1 reply; 11+ messages in thread From: Alexey Charkov @ 2010-10-20 22:14 UTC (permalink / raw) To: Dmitry Torokhov Cc: Alexey Charkov, vt8500-wm8505-linux-kernel, linux-arm-kernel, 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 is to incorporate fixes to issues noted by Dmitry at the first attempt. 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 3bfe8fa..2b86774 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..6a709b6 --- /dev/null +++ b/drivers/input/serio/i8042-vt8500.h @@ -0,0 +1,74 @@ +#ifndef _I8042_VT8500_H +#define _I8042_VT8500_H + +#include <mach/irqs.h> +#include <mach/vt8500.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 IRQ_PS2KBD +#define I8042_AUX_IRQ IRQ_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(VT8500_PS2_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.1 ^ permalink raw reply related [flat|nested] 11+ messages in thread
* Re: [PATCH 3/6 v2] input: Add support for VIA VT8500 and compatibles in i8042 2010-10-20 22:14 ` [PATCH 3/6 v2] " Alexey Charkov @ 2010-10-20 23:46 ` Dmitry Torokhov 0 siblings, 0 replies; 11+ messages in thread From: Dmitry Torokhov @ 2010-10-20 23:46 UTC (permalink / raw) To: Alexey Charkov Cc: vt8500-wm8505-linux-kernel, linux-arm-kernel, linux-input, linux-kernel On Thu, Oct 21, 2010 at 02:14:49AM +0400, Alexey Charkov wrote: > 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> Acked-by: Dmitry Torokhov <dtor@mail.ru> Thanks. -- Dmitry ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042 2010-10-20 20:55 ` [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042 Alexey Charkov 2010-10-20 21:15 ` Dmitry Torokhov @ 2010-10-30 22:23 ` Ben Dooks 2010-11-01 18:31 ` Alexey Charkov 1 sibling, 1 reply; 11+ messages in thread From: Ben Dooks @ 2010-10-30 22:23 UTC (permalink / raw) To: Alexey Charkov Cc: vt8500-wm8505-linux-kernel, Dmitry Torokhov, linux-kernel, linux-arm-kernel, linux-input On 20/10/10 21:55, Alexey Charkov wrote: > 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 state whether this could be acceptable for a merge > to mainline in the coming 2.6.37 window. If possible, I would deeply > appreciate a merge to a relevant git tree for integration prior to > asking Linus to pull the changes. I could rebase the code if needed, > currently this is against Linus' master branch. > > This patch relies on the basic architecture support for VT8500/WM8505 > to be in place, as introduced by PATCH 1/6 in this series. > > Due credits go to the community for providing feedback, advice and > testing. > > NB: The development is being done at: > http://gitorious.org/linux-on-via-vt8500/vt8500-kernel > > Relevant code may be pulled from a git tree in there. > > drivers/input/serio/Kconfig | 3 +- > drivers/input/serio/i8042-vt8500.h | 71 ++++++++++++++++++++++++++++++++++++ > drivers/input/serio/i8042.h | 2 + > 3 files changed, 75 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 3bfe8fa..2b86774 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 this looks like someone could do with a HAS_SERIO_I8042 Kconfig entry and have the relevant archs select it instead of having this mess. > 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..d30df82 > --- /dev/null > +++ b/drivers/input/serio/i8042-vt8500.h > @@ -0,0 +1,71 @@ > +#ifndef _I8042_VT8500_H > +#define _I8042_VT8500_H > + > +#include <mach/irqs.h> > +#include <mach/vt8500.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 IRQ_PS2KBD > +#define I8042_AUX_IRQ IRQ_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 = 1; > + regbase = ioremap(VT8500_PS2_BASE, SZ_1K); > + 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) yeurk... how about having a core i8042 implementation and having a structure with the necessary callbacks for the code, so that we don't end up having to select what is builtin for the system we're compiling for? -- Ben ^ permalink raw reply [flat|nested] 11+ messages in thread
* Re: [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042 2010-10-30 22:23 ` [PATCH 3/6] " Ben Dooks @ 2010-11-01 18:31 ` Alexey Charkov 0 siblings, 0 replies; 11+ messages in thread From: Alexey Charkov @ 2010-11-01 18:31 UTC (permalink / raw) To: Ben Dooks Cc: vt8500-wm8505-linux-kernel, Dmitry Torokhov, linux-kernel, linux-arm-kernel, linux-input 2010/10/31 Ben Dooks <ben-linux@fluff.org>: > On 20/10/10 21:55, Alexey Charkov wrote: >> 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 state whether this could be acceptable for a merge >> to mainline in the coming 2.6.37 window. If possible, I would deeply >> appreciate a merge to a relevant git tree for integration prior to >> asking Linus to pull the changes. I could rebase the code if needed, >> currently this is against Linus' master branch. >> >> This patch relies on the basic architecture support for VT8500/WM8505 >> to be in place, as introduced by PATCH 1/6 in this series. >> >> Due credits go to the community for providing feedback, advice and >> testing. >> >> NB: The development is being done at: >> http://gitorious.org/linux-on-via-vt8500/vt8500-kernel >> >> Relevant code may be pulled from a git tree in there. >> >> drivers/input/serio/Kconfig | 3 +- >> drivers/input/serio/i8042-vt8500.h | 71 ++++++++++++++++++++++++++++++++++++ >> drivers/input/serio/i8042.h | 2 + >> 3 files changed, 75 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 3bfe8fa..2b86774 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 > > this looks like someone could do with a HAS_SERIO_I8042 Kconfig entry > and have the relevant archs select it instead of having this mess. > > True, it would make things much cleaner. However, that's probably out of scope of adding VT8500 support here, thus not for me to decide :) <snip> > > yeurk... how about having a core i8042 implementation and having > a structure with the necessary callbacks for the code, so that > we don't end up having to select what is builtin for the system > we're compiling for? > I would really like to see this implemented as a standard platform driver (accepting resources and platform_data as necessary). This would be a way cleaner approach, with less code duplication and less patching of the driver itself whenever a new platform is to be added. However, I don't know how that kind of a change would affect other arches. > -- > Ben > 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] 11+ messages in thread
[parent not found: <1289147348-31969-1-git-send-email-alchark@gmail.com>]
* [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; 11+ 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] 11+ 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] " Alexey Charkov @ 2010-11-12 22:54 ` Alexey Charkov 2010-11-12 23:30 ` Dmitry Torokhov 0 siblings, 1 reply; 11+ 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] 11+ 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 0 siblings, 1 reply; 11+ 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] 11+ 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 0 siblings, 0 replies; 11+ 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] 11+ messages in thread
end of thread, other threads:[~2010-11-13 0:00 UTC | newest] Thread overview: 11+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- [not found] <1287608139-21354-1-git-send-email-alchark@gmail.com> 2010-10-20 20:55 ` [PATCH 3/6] input: Add support for VIA VT8500 and compatibles in i8042 Alexey Charkov 2010-10-20 21:15 ` Dmitry Torokhov 2010-10-20 21:24 ` Alexey Charkov 2010-10-20 22:14 ` [PATCH 3/6 v2] " Alexey Charkov 2010-10-20 23:46 ` Dmitry Torokhov 2010-10-30 22:23 ` [PATCH 3/6] " Ben Dooks 2010-11-01 18:31 ` Alexey Charkov [not found] <1289147348-31969-1-git-send-email-alchark@gmail.com> 2010-11-07 16:28 ` [PATCH 3/6 v2] " Alexey Charkov 2010-11-12 22:54 ` Alexey Charkov 2010-11-12 23:30 ` Dmitry Torokhov 2010-11-13 0:00 ` 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).