PCI driver architecture [repost]

Previous thread: Suggestion About Kernel Releases by Tarkan Erimer on Wednesday, May 21, 2008 - 6:08 am. (16 messages)

Next thread: PCI driver architecture by Thomas Nemeth on Wednesday, May 21, 2008 - 6:05 am. (1 message)
From: Thomas Nemeth
Date: Wednesday, May 21, 2008 - 6:14 am

[sorry - bad previous post]

    Hi!

    I was going to ask a few questions to Greg KH when he told me that
    my questions "look very reasonable for there, as long as I also
    post my code".

    So here is the context: we are developping 2 multi-IO boards at the
    request of our customer and, unfortunately, they asked us to
    develop their driver for Linux 2.4. As they are evaluating the
    possibility to switch to 2.6 in some months I'm writing the driver
    with 2.6 in mind.
    I have already made some basic char drivers for our custom ARM
    systems (GPIO/ADC/FPGA) and even begun a custom ARM-based
    architecture support. I have read, of course, a lot of documentation
    before: LDD2, LDD3 (of course), CodingStyle, How to NOT write a
    device driver, writing portable device drivers, Device Drivers DOs
    and DON'Ts and some other books, web sites and PDF about embedded
    linux.

    These boards will present the user a bunch of IO lines a bit like
    GPIO. Registers are to be mapped into memory. By now the design is
    not complete and we still are discussing if registers will present
    information for all lines (eg: a data register for all lines, an
    interrupt register holding information for all lines...) or 1
    register per line holding the all information related to that line
    (data, interrupt type, interrupt occured...). Anyway, that's not
    really important right now.

    I have already written some code for this driver. As I saw, in the
    FAQ, that I might be well advised to put my code on a website/ftp,
    here it is: http://tnemeth.free.fr/projets/btmio.c


    My questions are the following ones:

    - I use a probe() function that calls request_region() in order to
      have access to the boards' registers. I have called ioremap() on
      the requested region. Is that the right thing to do?

    - I think I should make a "char" driver to allow access to device
      nodes and this driver is registered at loading ...
Previous thread: Suggestion About Kernel Releases by Tarkan Erimer on Wednesday, May 21, 2008 - 6:08 am. (16 messages)

Next thread: PCI driver architecture by Thomas Nemeth on Wednesday, May 21, 2008 - 6:05 am. (1 message)