busses/i2c-serport.c

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi,

I'm currently looking into using the
i2c-parport-light.c as a start for a
bus driver that communicates over the serial port flag
lines: (RTS, CTS,
DSR, DTR for SCL Write, SDA Write, SCL Read, SDA Read)
I have a device that is using these lines for
communication and I would
like to access the device.

The parport driver simply does a request_region() to
get access to the
parallel port range.
When you try to do that with the serial port range
then you get an error
message that another driver already occupied the
region: serial_core,
8250, and 8250_pnp. Unfortunately these drivers are
required in order to
have a working serial port at all. When I remove them,
reading from 0x3fc
always returns 0xff which means: "No port over there".
After searching the kernel for quite some time and
explaining my problem
on IRC #kernelnewbies the only solution would be to
use the same approach
as a user-space module, i.e. open the /dev/ttySx
device and use ioctl
calls to manipulate the serial lines.

The reason why I want to create a I2C bus driver
kernel module is that the
i2c-algo-bit provides all the low-level protocol stack
functions in order
to access the device. That is at least what I'm hoping
for, as I don't
want to write low-level I2C protocol code myself.

Can someone explain me what the cleanest approach is
here, from an I2C
kernel hacker point of view:
1. Use filp_open("/dev/ttySn", ...) from inside the
module.
2. Move completely to user-space. But how do I use the
I2C algo-bit
functionality then?
3. Don't care about region allocations and just call
inb or outb on the
address. This is somewhat tied to the i386
architecture and does not work
on other architectures.

Thanks in advance,
   Michael

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 




[Index of Archives]     [Linux Kernel]     [Linux Hardware Monitoring]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux