lkml.org 
[lkml]   [2018]   [Oct]   [12]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectRe: [PATCH 5/7] mfd: ds90ux9xx: add I2C bridge/alias and link connection driver
    Date
    Hi Vladimir,

    (CC'ing Wolfram)

    On Friday, 12 October 2018 10:32:32 EEST Vladimir Zapolskiy wrote:
    > On 10/12/2018 09:04 AM, Lee Jones wrote:
    > > On Tue, 09 Oct 2018, Vladimir Zapolskiy wrote:
    > >> From: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
    > >>
    > >> The change adds TI DS90Ux9xx I2C bridge/alias subdevice driver and
    > >> FPD Link connection handling mechanism.
    > >>
    > >> Access to I2C devices connected to a remote de-/serializer is done in
    > >> a transparent way, on established link detection event such devices
    > >> are registered on an I2C bus, which serves a local de-/serializer IC.
    > >>
    > >> The development of the driver was a collaborative work, the
    > >> contribution done by Balasubramani Vivekanandan includes:
    > >> * original simplistic implementation of the driver,
    > >> * support of implicitly specified devices in device tree,
    > >> * support of multiple FPD links for TI DS90Ux9xx,
    > >> * other kind of valuable review comments, clean-ups and fixes.
    > >>
    > >> Also Steve Longerbeam made the following changes:
    > >> * clear address maps after linked device removal,
    > >> * disable pass-through in disconnection,
    > >> * qualify locked status with non-zero remote address.
    > >>
    > >> Signed-off-by: Vladimir Zapolskiy <vladimir_zapolskiy@mentor.com>
    > >> ---
    > >>
    > >> drivers/mfd/Kconfig | 8 +
    > >> drivers/mfd/Makefile | 1 +
    > >> drivers/mfd/ds90ux9xx-i2c-bridge.c | 764 +++++++++++++++++++++++++++++
    > >> 3 files changed, 773 insertions(+)
    > >> create mode 100644 drivers/mfd/ds90ux9xx-i2c-bridge.c
    > >
    > > Shouldn't this live in drivers/i2c?
    >
    > no, the driver is not for an I2C controller of any kind, and the driver does
    > not register itself in the I2C subsystem by calling i2c_add_adapter() or
    > i2c_add_numbered_adapter() or i2c_mux_add_adapter() etc, this topic was
    > discussed with Wolfram also.

    (Who is now on CC)

    > Formally the driver converts the managed IC into a multi-address I2C
    > slave device, I understand that it does not sound like a well suited driver
    > for MFD, but ds90ux9xx-core.c and ds90ux9xx-i2c-bridge.c drivers are quite
    > tightly coupled.

    As mentioned in other e-mails in this thread I don't think this should be
    split out to a separate driver, I would move the functionality to the
    ds90ux9xx driver. You may want to register an I2C mux, but as you have a
    single port, that could be overkill. I haven't studied in details how to best
    support this chip using the existing I2C subsystems APIs (which we may want to
    extend if it needed), but I believe that (in your use cases) the deserializer
    should be a child of the serializer, and modeled as an I2C device.

    --
    Regards,

    Laurent Pinchart



    \
     
     \ /
      Last update: 2018-10-12 15:12    [W:4.033 / U:0.112 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site