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
next prev parent 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.