Re: [PATCH v4 1/3] mfd: add support for Diolan DLN-2 devices

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

 



On Wed, 17 Sep 2014, Octavian Purdila wrote:
> On Wed, Sep 17, 2014 at 2:21 AM, Lee Jones <lee.jones@xxxxxxxxxx> wrote:
> >
> > On Tue, 09 Sep 2014, Octavian Purdila wrote:
> >
> > > This patch implements the USB part of the Diolan USB-I2C/SPI/GPIO
> > > Master Adapter DLN-2. Details about the device can be found here:
> > >
> > > https://www.diolan.com/i2c/i2c_interface.html.
> > >
> > > Information about the USB protocol can be found in the Programmer's
> > > Reference Manual [1], see section 1.7.
> > >
> > > Because the hardware has a single transmit endpoint and a single
> > > receive endpoint the communication between the various DLN2 drivers
> > > and the hardware will be muxed/demuxed by this driver.
> > >
> > > Each DLN2 module will be identified by the handle field within the DLN2
> > > message header. If a DLN2 module issues multiple commands in parallel
> > > they will be identified by the echo counter field in the message header.
> > >
> > > The DLN2 modules can use the dln2_transfer() function to issue a
> > > command and wait for its response. They can also register a callback
> > > that is going to be called when a specific event id is generated by
> > > the device (e.g. GPIO interrupts). The device uses handle 0 for
> > > sending events.
> > >
> > > [1] https://www.diolan.com/downloads/dln-api-manual.pdf
> > >
> > > Signed-off-by: Octavian Purdila <octavian.purdila@xxxxxxxxx>
> > > ---
> > >  drivers/mfd/Kconfig      |   9 +
> > >  drivers/mfd/Makefile     |   1 +
> > >  drivers/mfd/dln2.c       | 681 +++++++++++++++++++++++++++++++++++++++++++++++
> > >  include/linux/mfd/dln2.h |  71 +++++
> > >  4 files changed, 762 insertions(+)
> > >  create mode 100644 drivers/mfd/dln2.c
> > >  create mode 100644 include/linux/mfd/dln2.h

[...]

> > > diff --git a/include/linux/mfd/dln2.h b/include/linux/mfd/dln2.h
> > > new file mode 100644
> > > index 0000000..197565d
> > > --- /dev/null
> > > +++ b/include/linux/mfd/dln2.h
> > > @@ -0,0 +1,71 @@
> > > +#ifndef __LINUX_USB_DLN2_H
> > > +#define __LINUX_USB_DLN2_H
> > > +
> > > +#define DLN2_CMD(cmd, id)            ((cmd) | ((id) << 8))
> > > +
> > > +struct dln2_platform_data {
> > > +     u16 handle;
> > > +     union {
> > > +             struct {
> > > +                     u8 port;
> > > +             } i2c;
> > > +     };
> > > +};
> >
> > Why this complexity?
> 
> There is also an SPI interface on this adapter which will probably the
> port information and maybe some additional information. Would you
> prefer to add the union later, when we add the SPI driver?

Yes please.

-- 
Lee Jones
Linaro STMicroelectronics Landing Team Lead
Linaro.org │ Open source software for ARM SoCs
Follow Linaro: Facebook | Twitter | Blog
--
To unsubscribe from this list: send the line "unsubscribe linux-i2c" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux GPIO]     [Linux SPI]     [Linux Hardward Monitoring]     [LM Sensors]     [Linux USB Devel]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux