26 Mar, 2015

1 commit


22 Jan, 2015

2 commits

  • Without suspend/resume functionality in the USB driver the USB core
    will disconnect and reconnect the DLN2 port and because the GPIO
    framework does not yet support removal of an in-use controller a
    suspend/resume operation will result in a crash.

    This patch provides suspend and resume functions for the DLN2 driver
    so that the above scenario is avoided, if the host controller does not
    drop VBUS during suspend, since in this case the device state is
    preserved.

    We chose not implemented reset_resume so that if the host controller
    does drop VBUS the resume path will go through above the
    disconnect/reconnect process since it is probably better to fix the
    GPIO framework disconnect issue then to save and restore the device
    state for every driver.

    Signed-off-by: Octavian Purdila
    Reviewed-by: Johan Hovold
    Signed-off-by: Lee Jones

    Octavian Purdila
     
  • This is in preparation for adding suspend / resume support.

    Signed-off-by: Octavian Purdila
    Reviewed-by: Johan Hovold
    Signed-off-by: Lee Jones

    Octavian Purdila
     

26 Nov, 2014

1 commit


20 Nov, 2014

3 commits


11 Nov, 2014

1 commit

  • 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
    Reviewed-by: Johan Hovold
    Signed-off-by: Lee Jones

    Octavian Purdila