[U-Boot] [PATCH] arm: mvebu: switch clearfog to use device-tree i2c and gpio

Stefan Roese sr at denx.de
Tue May 29 10:38:41 UTC 2018


Hi Jon,

On 29.05.2018 11:02, Jon Nettleton wrote:
> On Tue, May 29, 2018 at 7:37 AM Stefan Roese <sr at denx.de 
> <mailto:sr at denx.de>> wrote:
> 
>     On 29.05.2018 07:10, Chris Packham wrote:
>      > On Tue, May 29, 2018 at 4:58 PM Baruch Siach <baruch at tkos.co.il
>     <mailto:baruch at tkos.co.il>> wrote:
>      >
>      >> Hi Chris,
>      >
>      >> On Tue, May 29, 2018 at 10:53:38AM +1200, Chris Packham wrote:
>      >>> On Tue, May 29, 2018 at 4:11 AM Baruch Siach <baruch at tkos.co.il
>     <mailto:baruch at tkos.co.il>> wrote:
>      >>>
>      >>>> From: Jon Nettleton <jon at solid-run.com <mailto:jon at solid-run.com>>
>      >>>
>      >>>> This switches the clearfog boards to use DM based gpio and i2c
>      >>>> drivers.  The io expanders are configured via their device-tree
>      >>>> entries.
>      >>>
>      >>>> Signed-off-by: Jon Nettleton <jon at solid-run.com
>     <mailto:jon at solid-run.com>>
>      >>>> [baruch: add DT i2c aliases]
>      >>>> Signed-off-by: Baruch Siach <baruch at tkos.co.il
>     <mailto:baruch at tkos.co.il>>
>      >>>> ---
>      >
>      >> [snip]
>      >
>      >>>> -static struct marvell_io_exp io_exp[] = {
>      >>>> -       { 0x20, 2, 0x40 },      /* Deassert both mini pcie reset
>      > signals
>      >>> */
>      >>>> -       { 0x20, 6, 0xf9 },
>      >>>> -       { 0x20, 2, 0x46 },      /* rst signals and ena USB3
>     current
>      >>> limiter */
>      >>>> -       { 0x20, 6, 0xb9 },
>      >>>> -       { 0x20, 3, 0x00 },      /* Set SFP_TX_DIS to zero */
>      >>>> -       { 0x20, 7, 0xbf },      /* Drive SFP_TX_DIS to zero */
>      >>>> -};
>      >>>> -
>      >>>
>      >>> Will this actually work? As far as I can see u-boot lacks a
>     gpio-hog
>      >>> implementation so despite the fact that these are all
>     enumerated in the
>      > dts
>      >>> they won't have the same effect.
>      >>>
>      >>> I'd be glad to be proven wrong because I'd like to use a
>     gpio-hog for
>      > some
>      >>> other boards.
>      >
>      >> I asked Jon (back on Cc) exactly that before submitting this
>     patch. His
>      >> response:
>      >
>      >>     I think that is fine. They can still be toggled and
>     controlled via the
>      > gpio
>      >>     interface within u-boot. I assume once a proper patch is
>     mainline this
>      > will
>      >>     just start to work.
>      >
>      >> My testing showed now regression because of this patch.
>      >
>      > OK. Did you test with a power cycle? I know some of the pca gpio
>     chips
>      > don't have a reset line so the state may be different depending
>     on if you
>      > power cycled or just used the reset/reboot command. It could also
>     be that
>      > u-boot doesn't access these devices so there's no problem.
>      >
>      > I kinda was hoping for "here's a gpio-hog implementation @
>     patchwork/1234"
>      > :) but I guess I'll have to look into making one myself.
> 
>     I would prefer to not drop these I2C accesses from the ClearFog board
>     C code now, as we don't have a way to do this via the DT right now.
>     Why are they dropped with this patch? Because of the I2C API
>     changes? Please move to the DM I2C API then (dm_i2c_read/write).
> 
>     Thanks,
>     Stefan
> 
> 
> Stefan,
> 
> These do not need to be setup independently any longer.  Moving to 
> DM_GPIO allows the PCI driver to handle the reset lines.  The USB3 reset 
> and current limiter should be handled in board_xhci_enable() which can 
> be done, although I have never seen an issue using USB3 with this 
> configuration since I have implemented it.  Since u-boot doesn't 
> understand the SFP setup at all I would prefer if it left SFP 
> configuration up to Linux.  Just enabling TX on an SFP module without 
> understanding any of the specifics of the configuration is a bit 
> dangerous when dealing with modules that aren't just SGMII 1000base-Tx.

Thanks for the explanation. With this I'm okay with removing the
I2C code from the board file:

Reviewed-by: Stefan Roese <sr at denx.de>

> I will follow up with a patch for board_xhci_enable().

Good.

Thanks,
Stefan


More information about the U-Boot mailing list