linux-input.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Heiko Schocher <hs@denx.de>
To: linux-input@vger.kernel.org
Subject: HowTo write a driver for 2 multiplexed PS/2 ports over 1 UART?
Date: Thu, 16 Apr 2009 08:22:34 +0200	[thread overview]
Message-ID: <49E6CEAA.9060608@denx.de> (raw)
In-Reply-To: <1239861274.29831.118.camel@linux-51e8.site>

Hello,

I maybe get a projekt, where I have 2 PS/2 ports (a keyboard and a mousse)
connected to one UART and the multiplexing is done by a PIC.

I searched in actual 2.6 Kernel sources for such a solution, but
couln;t find one. Overlooked I something?

For 2.4er Kernel there was such a driver, see

http://git.denx.de/?p=linuxppc_2_4_devel.git;a=blob;f=drivers/char/ps2mult.c

but, I think, this is no longer portable to 2.6.

So, thats why I am here and want to ask the experts how to solve
this problem in a mainline acceptable way, before I make a hack,
that never has a chance to go in mainline.

Some suggestions from me (maybe they are all bad)

I looked in drivers/input/serio/serio.c and could think of adding
the multiplexing in serio_interrupt(), and call serio_driver specific
serio->drv->interrupt functions, when I know, which byte come from
which device. But, if I see it right, I can only add one "struct
serio_driver *drv;" driver to one serio port, so it is not possible
to handle 2 or more devices over one serio port :-(
Maybe we enhance this too ... ?

Or I make a combinated (keyboard/mousse) driver which uses one
serio port ... but I think thats a bad idea, also no idea, in which
directory i have to add such a driver.

So I think it would nice to have the possibility to add more than
one serio_driver to a serio_port and add a "multiplexer" layer ...
but I am new to the input layer, so I ask the experts.

Hopefully I just missed something in actual code, and there is
better/easier way? ;-)

TIA
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany

  reply	other threads:[~2009-04-16  6:35 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-16  5:54 [PATCH 3/9] omap-keypad: Use disable_irq_nosync() from within irq handlers Ben Nizette
2009-04-16  6:22 ` Heiko Schocher [this message]
2009-04-18 23:46   ` HowTo write a driver for 2 multiplexed PS/2 ports over 1 UART? Dmitry Torokhov
2009-04-19 10:04     ` Heiko Schocher
2009-04-20  0:48       ` Dmitry Torokhov
2009-04-20  4:45         ` Heiko Schocher

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=49E6CEAA.9060608@denx.de \
    --to=hs@denx.de \
    --cc=linux-input@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).