All of lore.kernel.org
 help / color / mirror / Atom feed
From: Felix Fietkau <nbd@nbd.name>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	Bartosz Golaszewski <brgl@bgdev.pl>,
	john@phrozen.org, linux-kernel@vger.kernel.org,
	linux-gpio@vger.kernel.org
Subject: Re: [PATCH v5 12/13] gpio: Add support for Airoha EN7523 GPIO controller
Date: Thu, 2 Dec 2021 18:59:03 +0100	[thread overview]
Message-ID: <c42f4ea0-2879-01cf-1db8-ed39844959fc@nbd.name> (raw)
In-Reply-To: <CACRpkdacgoT-K4qZoBpMx8RiPcvOf=YmrTP36LKyizcQk+VyUQ@mail.gmail.com>


On 2021-12-02 02:47, Linus Walleij wrote:
> Hi Felix!
> 
> Thanks for your patch!
> 
> On Mon, Nov 29, 2021 at 4:54 PM Felix Fietkau <nbd@nbd.name> wrote:
> 
>> From: John Crispin <john@phrozen.org>
>>
>> Airoha's GPIO controller on their ARM EN7523 SoCs consists of two banks of 32
>> GPIOs. Each instance in DT is for an single bank.
>>
>> Signed-off-by: John Crispin <john@phrozen.org>
>> Signed-off-by: Felix Fietkau <nbd@nbd.name>
> 
> (...)
>> +config GPIO_EN7523
>> +       tristate "Airoha GPIO support"
>> +       depends on ARCH_AIROHA
>> +       default ARCH_AIROHA
>> +       select GPIO_GENERIC
> 
> Yes that looks applicable, but why isn't it used?
> 
> The few 32-bit registers look like an ideal candidate for
> using the generic GPIO. Check similar drivers such as
> drivers/gpio/gpio-ftgpio010.c and how it uses
> bgpio_init() and the nice doc for bgpio_init() in
> drivers/gpio/gpio-mmio.c.
I just looked at the datasheet and the driver code again, and I think 
EN7523 is too strange for proper generic GPIO support.

For each bank there are two control registers (not consecutive), which 
have 2-bit fields for every GPIO line to control direction. No idea why 
2 bits per line, because only values 0 and 1 are valid, the rest are 
reserved.
For lines configured as output, an extra output-enable bit also needs to 
be set in a separate register before output values can be written.

The code does use bgpio to read/write values, but that's about it.
I don't think it would do the generic GPIO code any good to support this 
weirdness.

- Felix

WARNING: multiple messages have this Message-ID (diff)
From: Felix Fietkau <nbd@nbd.name>
To: Linus Walleij <linus.walleij@linaro.org>
Cc: linux-arm-kernel@lists.infradead.org,
	Bartosz Golaszewski <brgl@bgdev.pl>,
	john@phrozen.org, linux-kernel@vger.kernel.org,
	linux-gpio@vger.kernel.org
Subject: Re: [PATCH v5 12/13] gpio: Add support for Airoha EN7523 GPIO controller
Date: Thu, 2 Dec 2021 18:59:03 +0100	[thread overview]
Message-ID: <c42f4ea0-2879-01cf-1db8-ed39844959fc@nbd.name> (raw)
In-Reply-To: <CACRpkdacgoT-K4qZoBpMx8RiPcvOf=YmrTP36LKyizcQk+VyUQ@mail.gmail.com>


On 2021-12-02 02:47, Linus Walleij wrote:
> Hi Felix!
> 
> Thanks for your patch!
> 
> On Mon, Nov 29, 2021 at 4:54 PM Felix Fietkau <nbd@nbd.name> wrote:
> 
>> From: John Crispin <john@phrozen.org>
>>
>> Airoha's GPIO controller on their ARM EN7523 SoCs consists of two banks of 32
>> GPIOs. Each instance in DT is for an single bank.
>>
>> Signed-off-by: John Crispin <john@phrozen.org>
>> Signed-off-by: Felix Fietkau <nbd@nbd.name>
> 
> (...)
>> +config GPIO_EN7523
>> +       tristate "Airoha GPIO support"
>> +       depends on ARCH_AIROHA
>> +       default ARCH_AIROHA
>> +       select GPIO_GENERIC
> 
> Yes that looks applicable, but why isn't it used?
> 
> The few 32-bit registers look like an ideal candidate for
> using the generic GPIO. Check similar drivers such as
> drivers/gpio/gpio-ftgpio010.c and how it uses
> bgpio_init() and the nice doc for bgpio_init() in
> drivers/gpio/gpio-mmio.c.
I just looked at the datasheet and the driver code again, and I think 
EN7523 is too strange for proper generic GPIO support.

For each bank there are two control registers (not consecutive), which 
have 2-bit fields for every GPIO line to control direction. No idea why 
2 bits per line, because only values 0 and 1 are valid, the rest are 
reserved.
For lines configured as output, an extra output-enable bit also needs to 
be set in a separate register before output values can be written.

The code does use bgpio to read/write values, but that's about it.
I don't think it would do the generic GPIO code any good to support this 
weirdness.

- Felix

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  reply	other threads:[~2021-12-02 17:59 UTC|newest]

Thread overview: 56+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-29 15:33 [PATCH v5 00/13] Add support for Airoha EN7523 SoC Felix Fietkau
2021-11-29 15:33 ` Felix Fietkau
2021-11-29 15:33 ` [PATCH v5 01/13] dt-bindings: Add vendor prefix for Airoha Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-11-29 15:33 ` [PATCH v5 02/13] dt-bindings: arm: airoha: Add binding for EN7523 SoC and EVB Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-11-29 15:33 ` [PATCH v5 03/13] ARM: dts: Add basic support for Airoha EN7523 Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-11-29 15:33 ` [PATCH v5 04/13] ARM: Add basic support for Airoha EN7523 SoC Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-11-29 15:33 ` [PATCH v5 05/13] ARM: multi_v7_defconfig: Add " Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-11-29 15:33 ` [PATCH v5 06/13] dt-bindings: Add en7523-scu device tree binding documentation Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-11-29 15:33 ` [PATCH v5 07/13] clk: en7523: Add clock driver for Airoha EN7523 SoC Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-12-02 17:34   ` kernel test robot
2021-12-02 17:34     ` kernel test robot
2021-12-02 17:34     ` kernel test robot
2021-12-03  8:03   ` Stephen Boyd
2021-12-03  8:03     ` Stephen Boyd
2021-11-29 15:33 ` [PATCH v5 08/13] dt-bindings: PCI: Add support for Airoha EN7532 Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-11-29 15:33 ` [PATCH v5 09/13] PCI: mediatek: allow selecting controller driver for airoha arch Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-11-29 23:55   ` Bjorn Helgaas
2021-11-29 23:55     ` Bjorn Helgaas
2021-11-29 23:55     ` Bjorn Helgaas
2021-12-06 20:06     ` Bjorn Helgaas
2021-12-06 20:06       ` Bjorn Helgaas
2021-12-06 20:06       ` Bjorn Helgaas
2021-11-29 15:33 ` [PATCH v5 10/13] ARM: dts: Add PCIe support for Airoha EN7523 Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-11-29 15:33 ` [PATCH v5 11/13] dt-bindings: arm: airoha: Add binding for Airoha GPIO controller Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-11-29 15:33 ` [PATCH v5 12/13] gpio: Add support for Airoha EN7523 " Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau
2021-12-02  1:47   ` Linus Walleij
2021-12-02  1:47     ` Linus Walleij
2021-12-02 17:59     ` Felix Fietkau [this message]
2021-12-02 17:59       ` Felix Fietkau
2021-12-02 19:02       ` John Crispin
2021-12-02 19:02         ` John Crispin
2021-12-04 23:55         ` Linus Walleij
2021-12-04 23:55           ` Linus Walleij
2021-12-04 23:57       ` Linus Walleij
2021-12-04 23:57         ` Linus Walleij
2021-12-12  6:59         ` Felix Fietkau
2021-12-12  6:59           ` Felix Fietkau
2021-12-12 19:16   ` Andy Shevchenko
2021-12-12 19:16     ` Andy Shevchenko
2021-11-29 15:33 ` [PATCH v5 13/13] ARM: dts: add GPIO support for Airoha EN7523 Felix Fietkau
2021-11-29 15:33   ` Felix Fietkau

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c42f4ea0-2879-01cf-1db8-ed39844959fc@nbd.name \
    --to=nbd@nbd.name \
    --cc=brgl@bgdev.pl \
    --cc=john@phrozen.org \
    --cc=linus.walleij@linaro.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-gpio@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.