Re: [PATCH 1/3] gpio: dt-bindings: add new property to wd,mbl-gpio bindings

From: Rob Herring
Date: Mon Jan 30 2023 - 13:38:26 EST


On Mon, Jan 30, 2023 at 01:20:55PM +0000, Leonard, Niall wrote:
> On 29/01/2023 15:59, Krzysztof Kozlowski wrote:
> > *External Message* - Use caution before opening links or attachments
> >
> > On 27/01/2023 12:39, Leonard, Niall wrote:
> >>
> >>
> >>> -----Original Message-----
> >>> From: Krzysztof Kozlowski <krzysztof.kozlowski@xxxxxxxxxx>
> >>> Sent: 26 January 2023 12:29
> >>> To: Leonard, Niall <Niall.Leonard@xxxxxxx>; Linus Walleij
> >>> <linus.walleij@xxxxxxxxxx>; Bartosz Golaszewski <brgl@xxxxxxxx>; Rob
> >>> Herring <robh+dt@xxxxxxxxxx>; Krzysztof Kozlowski
> >>> <krzysztof.kozlowski+dt@xxxxxxxxxx>
> >>> Cc: linux-gpio@xxxxxxxxxxxxxxx; devicetree@xxxxxxxxxxxxxxx; linux-
> >>> kernel@xxxxxxxxxxxxxxx
> >>> Subject: Re: [PATCH 1/3] gpio: dt-bindings: add new property to wd,mbl-gpio
> >>> bindings
> >>>
> >>> *External Message* - Use caution before opening links or attachments
> >>>
> >>> On 26/01/2023 11:17, Niall Leonard via B4 Submission Endpoint wrote:
> >>>> From: Niall Leonard <nl250060@xxxxxxx>
> >>>
> >>> Subject: missing "wd,mbl-gpio:" prefix.
> >>>
> >>> Subject: drop second/last, redundant "bindings". The "dt-bindings"
> >>> prefix is already stating that these are bindings.
> >>>
> >>>>
> >>>> Added optional "no-input" property
> >>>
> >>> Missing full stop.
> >>>
> >>>>
> >>>> Signed-off-by: Niall Leonard <nl250060@xxxxxxx>
> >>>> ---
> >>>> Documentation/devicetree/bindings/gpio/wd,mbl-gpio.txt | 1 +
> >>>> 1 file changed, 1 insertion(+)
> >>>>
> >>>> diff --git a/Documentation/devicetree/bindings/gpio/wd,mbl-gpio.txt
> >>>> b/Documentation/devicetree/bindings/gpio/wd,mbl-gpio.txt
> >>>> index 038c3a6a1f4d..9405f9dad522 100644
> >>>> --- a/Documentation/devicetree/bindings/gpio/wd,mbl-gpio.txt
> >>>> +++ b/Documentation/devicetree/bindings/gpio/wd,mbl-gpio.txt
> >>>> @@ -18,6 +18,7 @@ Required properties:
> >>>>
> >>>> Optional properties:
> >>>> - no-output: GPIOs are read-only.
> >>>> + - no-input: GPIOs are write-only. Read is via a shadow register.
> >>>
> >>> Why this property is needed? Why driver cannot always use shadow
> >>> register?
> >>>
> >> The shadow register is currently only used during the write operation. It is not available during the read operation.
> >
> > You just wrote above that reading is via shadow register, so how can it
> > not be available for reads? Again, why you cannot always read via shadow
> > register and need to make a property? You mean that for other GPIOs
> > there is no shadow register at all?
> >
> The existing read method does not use the shadow register.
>
> static int bgpio_get(struct gpio_chip *gc, unsigned int gpio)
> {
> return !!(gc->read_reg(gc->reg_dat) & bgpio_line2mask(gc, gpio));
> }
>
> > What changes between one board and another that justifies this property?
>
> I have a couple of boards where the electronics engineer decided to only
> use the chip select line, so no read/write signal is connected. This
> means that reading the address activates the chip select and drives the
> contents of the data bus to the port.

This part makes sense as you explained the h/w.

> For example is someone reads the
> file /sys/kernel/debug/gpio this corrupts the port. So I have had to add
> this property to avoid that situation.

Not quite relevant to the DT binding being a Linux detail.

>
> If you are strongly against this then just reject it and I will look
> after it myself. I thought there may be others who would find this
> change useful.

A property for a board level quirk is appropriate. You just need to
explain that in the commit message rather than stating what the diff
already tells us.

Rob