[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CA+HBbNFGKeX5x92aw=Skry5Qrpm4s2emv7-todX+iVFfaaRR+g@mail.gmail.com>
Date: Thu, 9 Nov 2023 22:15:58 +0100
From: Robert Marko <robert.marko@...tura.hr>
To: Linus Walleij <linus.walleij@...aro.org>
Cc: "Russell King (Oracle)" <linux@...linux.org.uk>, wsa@...nel.org,
codrin.ciubotariu@...rochip.com, linux-i2c@...r.kernel.org,
linux-kernel@...r.kernel.org, linux-gpio@...r.kernel.org
Subject: Re: [PATCH] i2c: core: dont change pinmux state to GPIO during
recovery setup
On Thu, Nov 9, 2023 at 10:02 PM Linus Walleij <linus.walleij@...aro.org> wrote:
>
> On Thu, Nov 9, 2023 at 9:30 PM Russell King (Oracle)
> <linux@...linux.org.uk> wrote:
> > On Thu, Nov 09, 2023 at 09:04:29PM +0100, Linus Walleij wrote:
>
> > > > After it was converted to it, the I2C bus completely stopped working
> > > > on Armada 3720
> > > > if I2C recovery is enabled by making the recovery pinctrl available in DTS.
> > >
> > > Shouldn't we just revert that patch until we can figure this out then?
> >
> > Note that when I wrote the i2c-pxa recovery code (which was developed
> > and tested on Armada 3720 - the uDPU) it had to work... when the
> > suggestion came up to implement generic recovery, I stated:
> >
> > http://archive.lwn.net:8080/linux-kernel/20200705210942.GA1055@...ai/T/#mf7f862fcd53245f14fb650d33c29cf139d41039d
>
> Makes me even more convinced that we should just revert this. i.e.
> commit 0b01392c18b9993a584f36ace1d61118772ad0ca
> i2c: pxa: move to generic GPIO recovery
>
> There is even:
> https://lore.kernel.org/linux-i2c/20201209204645.GF3499@kunai/
>
> "In case we missed a glitch, we can still revert the patch later."
> Well this is later.
>
> Robert can you see if it possible to revert, that things work after a
> revert and send a revert patch?
Hi,
Yes, a revert still applies and "fixes" things so I2C starts working as before.
I can send the revert tomorrow, I was just hoping that there was an bug
that could be fixed instead of reverting, but seems its more complicated.
Regards,
Robert
>
> > > > I then spent quite a while trying to bisect the exact change that
> > > > causes this issue
> > > > in the conversion as code is almost identical to what the driver was
> > > > doing previously,
> > > > and have bisected it down to pinctrl_select_state(bri->pinctrl,
> > > > bri->pins_gpio) being
> > > > called before SDA and SCL pins are obtained via devm_gpiod_get().
> >
> > Yes, indeed. That's because the pinctrl internals get confused. I sent
> > you an email about it on 6th December 2019
> >
> > "pinctrl states vs pinmux vs gpio (i2c bus recovery)"
>
> I found it:
> https://lore.kernel.org/all/20191206173343.GX25745@shell.armlinux.org.uk/
>
> Sadly I had no good advice for any simple elegant solutions
> to the problem, but the more complicated solution does
> work so let's go for that.
>
> > which is why i2c-pxa did things the way it did in my commit
> > "i2c: pxa: implement generic i2c bus recovery".
>
> I think we need to go back to this.
>
> It's nice with the ambition to create generic code of course, but
> sometimes it is better to just roll something IP-unique.
>
> Yours,
> Linus Walleij
--
Robert Marko
Staff Embedded Linux Engineer
Sartura Ltd.
Lendavska ulica 16a
10000 Zagreb, Croatia
Email: robert.marko@...tura.hr
Web: www.sartura.hr
Powered by blists - more mailing lists