Re: [PATCH v1 0/3] gpio: Add gpio-delay support

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

 



On Wed, May 31, 2023 at 9:53 AM Alexander Stein
<alexander.stein@xxxxxxxxxxxxxxx> wrote:
> Am Sonntag, 16. April 2023, 20:46:43 CEST schrieb Andy Shevchenko:
> > On Sun, Apr 16, 2023 at 2:42 PM Krzysztof Kozlowski
> > <krzysztof.kozlowski@xxxxxxxxxx> wrote:
> > > On 16/04/2023 13:33, Andy Shevchenko wrote:
> > > > On Sun, Apr 16, 2023 at 2:21 PM Krzysztof Kozlowski
> > > > <krzysztof.kozlowski@xxxxxxxxxx> wrote:
> > > >> On 16/04/2023 13:14, Andy Shevchenko wrote:
> > > >>> On Sun, Apr 16, 2023 at 2:04 PM Krzysztof Kozlowski
> > > >>> <krzysztof.kozlowski@xxxxxxxxxx> wrote:
> > > >>>> On 16/04/2023 11:36, Andy Shevchenko wrote:
> > > >>>>> On Sun, Apr 16, 2023 at 10:42 AM Krzysztof Kozlowski
> > > >>>>> <krzysztof.kozlowski@xxxxxxxxxx> wrote:
> > > >>>>>> On 15/04/2023 17:06, Andy Shevchenko wrote:
> > > >>>>>>> On Fri, Apr 14, 2023 at 9:37 AM Alexander Stein
> > > >>>>>>> <alexander.stein@xxxxxxxxxxxxxxx> wrote:
> > > >>>>>>>> Am Dienstag, 11. April 2023, 11:34:16 CEST schrieb Andy
> Shevchenko:
> > > >>>>>>>>> On Tue, Apr 11, 2023 at 10:19 AM Alexander Stein
> > > >>>>>>>>> <alexander.stein@xxxxxxxxxxxxxxx> wrote:

...

> > > >>>>>>>>> So, taking the above into consideration, why is it GPIO property
> > > >>>>>>>>> to
> > > >>>>>>>>> begin with? This is PCB property of the certain platform design
> > > >>>>>>>>> that
> > > >>>>>>>>> needs to be driven by a specific driver, correct?
> > > >>>>>>>>
> > > >>>>>>>> True this is induced by the PCB, but this property applies to the
> > > >>>>>>>> GPIO,
> > > >>>>>>>> neither the GPIO controller output, nor the GPIO consumer is
> > > >>>>>>>> aware of.
> > > >>>>>>>> So it has to be added in between. The original idea to add a
> > > >>>>>>>> property for the consumer driver is also rejected, because this
> > > >>>>>>>> kind of behavior is not limited to this specific driver.
> > > >>>>>>>> That's why the delay is inserted in between the GPIO output and
> > > >>>>>>>> GPIO consumer.> >>>>>>>>
> > > >>>>>>>>> At the very least this is pin configuration (but external to the
> > > >>>>>>>>> SoC),
> > > >>>>>>>>> so has to be a _separate_ pin control in my opinion.
> > > >>>>>>>>
> > > >>>>>>>> Sorry, I don't get what you mean by _separate_ pin control.
> > > >>>>>>>
> > > >>>>>>> As you mentioned above this can be applied theoretically to any
> > > >>>>>>> pin of
> > > >>>>>>> the SoC, That pin may or may not be a GPIO or a pin that can be
> > > >>>>>>> switched to the GPIO mode. Hence this entire idea shouldn't be
> > > >>>>>>> part of
> > > >>>>>>> the existing _in-SoC_ pin control driver if any. This is a purely
> > > >>>>>>> separate entity, but at the same time it adds a property to a pin,
> > > >>>>>>> hence pin control.
> > > >>>>>>> At the same time, it's not an SoC related one, it's a PCB. Hence
> > > >>>>>>> _separate_.> >>>>>>
> > > >>>>>> I don't think that anything here is related to pin control. Pin
> > > >>>>>> control
> > > >>>>>> is specific function of some device which allows different
> > > >>>>>> properties or
> > > >>>>>> different functions of a pin.
> > > >>>>>
> > > >>>>> Sorry, but from a hardware perspective I have to disagree with you.
> > > >>>>> It's a property of the _pin_ and not of a GPIO. Any pin might have
> > > >>>>> the
> > > >>>>> same property. That's why it's definitely _not_ a property of GPIO,
> > > >>>>> but wider than that.
> > > >>>>
> > > >>>> I did not say this is a property of GPIO. I said this is nothing to
> > > >>>> do
> > > >>>> with pin control, configuration and pinctrl as is.
> > > >>>
> > > >>> Ah, I see. But still is a property of the pin on the PCB level.
> > > >>
> > > >> No, it is property of a circuit, so property of two pins and a wire
> > > >> between them. Not a property of one pin.
> > > >
> > > > Electrically speaking -- yes, software speaking, no, this is the
> > > > property of the one end (platfrom abstraction in the software) and as
> > > > you said, consumer which may be SoC, or the device connected to the
> > > > SoC (depending on the signal direction), or both (like pull-up for
> > > > I2C).
> > > >
> > > >>> That's
> > > >>> why I said that it should be like a "proxy" driver that has to be a
> > > >>> consumer of the pins on one side and provide the pins with this
> > > >>> property on the other.
> > > >>
> > > >> Not sure, why do you need it for anything else than GPIOs? What is the
> > > >> real world use case for proxy driver of non-GPIO lines?
> > > >
> > > > I2C is an example where we have something in between, which both of
> > >
> > > Are you sure you have RC (not just resistor) in I2C?
> >
> > I'm talking about an analogue. In principle the pull-up is part of PCB
> > and not of the SoC.
> >
> > > > the ends are using and this is the property of PCB, but luckily we
> > > > don't need anything special in the software for that, right? But from
> > > > the electrical point of view it's exactly a non-GPIO property. That's
> > > > why "proxy".
> > >
> > > Still I do not see any reason to call it anything else than GPIO. If you
> > > think that there is any other usage, please bring it as an real,
> > > non-theoretical example.
> >
> > The first, which one I found, is time-stretched ADC. The idea is that
> > the portion of the signal is split to the phases and each phase is
> > passed via time stretcher for the low-speed ADC to be digitized. So,
> > if we have an SoC with 4+ ADCs, on the PCB one can add an externally
> > clocked mux and then 4+ time stretching lines and on the SoC side it
> > will be ADC (note, not a GPIO!).
>
> What do I need to do to get progress on this topic? Without this kind of delay
> handling the DSI-LVDS bridge on our hardware cannot be used in mainline.

I have looked into the entire thread and found no replies from Linus W and Bart.
They are GPIO maintainers and should fuel up this discussion.

-- 
With Best Regards,
Andy Shevchenko




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux