All of lore.kernel.org
 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.