From: Billy Tsai <billy_tsai@aspeedtech.com>
To: <linus.walleij@linaro.org>, <brgl@bgdev.pl>, <robh@kernel.org>,
<krzk+dt@kernel.org>, <conor+dt@kernel.org>, <joel@jms.id.au>,
<andrew@codeconstruct.com.au>, <linux-gpio@vger.kernel.org>,
<devicetree@vger.kernel.org>,
<linux-arm-kernel@lists.infradead.org>,
<linux-aspeed@lists.ozlabs.org>, <linux-kernel@vger.kernel.org>,
<BMC-SW@aspeedtech.com>, <Peter.Yin@quantatw.com>,
<Jay_Zhang@wiwynn.com>
Subject: [PATCH v7 0/7] Add Aspeed G7 gpio support
Date: Tue, 8 Oct 2024 16:14:43 +0800 [thread overview]
Message-ID: <20241008081450.1490955-1-billy_tsai@aspeedtech.com> (raw)
The Aspeed 7th generation SoC features two GPIO controllers: one with 12
GPIO pins and another with 216 GPIO pins. The main difference from the
previous generation is that the control logic has been updated to support
per-pin control, allowing each pin to have its own 32-bit register for
configuring value, direction, interrupt type, and more.
This patch serial also add low-level operations (llops) to abstract the
register access for GPIO registers and the coprocessor request/release in
gpio-aspeed.c making it easier to extend the driver to support different
hardware register layouts.
Change since v6:
- Reorder the patch.
- Reoder the llops assignments in the same order as the member declarations.
- Add a comment explaining the logic used for the debounce timer array.
Change since v5:
- Reorder the aspeed_gpio_llops api
- Add aspeed_gpio prefix for all of the api
- Add mask value check before field_get and field_prep
- Separate the devm_clk_get_enabled modification into a new patch.
Change since v4:
- Add `reg_bank_get` callback
- `reg_bits_get` -> `reg_bit_get
- `dcache_require` -> `require_dcache`
- Use `devm_clk_get_enabled` to get the clock source
- g4 specific api doesn't need to use the callback function
Change since v3:
- Add `privilege_ctrl` and `privilege_init` callback
- Use `bool aspeed_gpio_support_copro()` api to replace the
`cmd_source_supoort` flag
- Add the `dcache_require` flag and move the dcache usage into the
reg_bit_set callback
- `reg_bits_set` -> `reg_bit_set` and `reg_bits_read` -> `reg_bits_get`
- `bool copro = 0` -> `bool copro = false`
- `if (!gpio->config->llops->reg_bit_set ||
!gpio->config->llops->reg_bits_get) return -EINVAL;`
- Correct the access of reg_irq_status
- Remove __init attribute to fix the compiler warning
Change since v2:
- Correct minItems for gpio-line names
- Remove the example for ast2700, because it's the same as the AST2600
- Fix the sparse warning which is reported by the test robot
- Remove the version and use the match data to replace it.
- Add another two patches one for deferred probe one for flush write.
Changes since v1:
- Merge the gpio-aspeed-g7.c into the gpio-aspeed.c.
- Create the llops in gpio-aspeed.c for flexibility.
Billy Tsai (7):
gpio: aspeed: Add the flush write to ensure the write complete.
gpio: aspeed: Use devm_clk api to manage clock source
gpio: aspeed: Change the macro to support deferred probe
gpio: aspeed: Remove the name for bank array
gpio: aspeed: Create llops to handle hardware access
dt-bindings: gpio: aspeed,ast2400-gpio: Support ast2700
gpio: aspeed: Support G7 Aspeed gpio controller
.../bindings/gpio/aspeed,ast2400-gpio.yaml | 19 +-
drivers/gpio/gpio-aspeed.c | 620 +++++++++++-------
2 files changed, 408 insertions(+), 231 deletions(-)
--
2.25.1
WARNING: multiple messages have this Message-ID (diff)
From: Billy Tsai <billy_tsai@aspeedtech.com>
To: linux-aspeed@lists.ozlabs.org
Subject: [PATCH v7 0/7] Add Aspeed G7 gpio support
Date: Tue, 8 Oct 2024 16:14:43 +0800 [thread overview]
Message-ID: <20241008081450.1490955-1-billy_tsai@aspeedtech.com> (raw)
The Aspeed 7th generation SoC features two GPIO controllers: one with 12
GPIO pins and another with 216 GPIO pins. The main difference from the
previous generation is that the control logic has been updated to support
per-pin control, allowing each pin to have its own 32-bit register for
configuring value, direction, interrupt type, and more.
This patch serial also add low-level operations (llops) to abstract the
register access for GPIO registers and the coprocessor request/release in
gpio-aspeed.c making it easier to extend the driver to support different
hardware register layouts.
Change since v6:
- Reorder the patch.
- Reoder the llops assignments in the same order as the member declarations.
- Add a comment explaining the logic used for the debounce timer array.
Change since v5:
- Reorder the aspeed_gpio_llops api
- Add aspeed_gpio prefix for all of the api
- Add mask value check before field_get and field_prep
- Separate the devm_clk_get_enabled modification into a new patch.
Change since v4:
- Add `reg_bank_get` callback
- `reg_bits_get` -> `reg_bit_get
- `dcache_require` -> `require_dcache`
- Use `devm_clk_get_enabled` to get the clock source
- g4 specific api doesn't need to use the callback function
Change since v3:
- Add `privilege_ctrl` and `privilege_init` callback
- Use `bool aspeed_gpio_support_copro()` api to replace the
`cmd_source_supoort` flag
- Add the `dcache_require` flag and move the dcache usage into the
reg_bit_set callback
- `reg_bits_set` -> `reg_bit_set` and `reg_bits_read` -> `reg_bits_get`
- `bool copro = 0` -> `bool copro = false`
- `if (!gpio->config->llops->reg_bit_set ||
!gpio->config->llops->reg_bits_get) return -EINVAL;`
- Correct the access of reg_irq_status
- Remove __init attribute to fix the compiler warning
Change since v2:
- Correct minItems for gpio-line names
- Remove the example for ast2700, because it's the same as the AST2600
- Fix the sparse warning which is reported by the test robot
- Remove the version and use the match data to replace it.
- Add another two patches one for deferred probe one for flush write.
Changes since v1:
- Merge the gpio-aspeed-g7.c into the gpio-aspeed.c.
- Create the llops in gpio-aspeed.c for flexibility.
Billy Tsai (7):
gpio: aspeed: Add the flush write to ensure the write complete.
gpio: aspeed: Use devm_clk api to manage clock source
gpio: aspeed: Change the macro to support deferred probe
gpio: aspeed: Remove the name for bank array
gpio: aspeed: Create llops to handle hardware access
dt-bindings: gpio: aspeed,ast2400-gpio: Support ast2700
gpio: aspeed: Support G7 Aspeed gpio controller
.../bindings/gpio/aspeed,ast2400-gpio.yaml | 19 +-
drivers/gpio/gpio-aspeed.c | 620 +++++++++++-------
2 files changed, 408 insertions(+), 231 deletions(-)
--
2.25.1
next reply other threads:[~2024-10-08 8:14 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-10-08 8:14 Billy Tsai [this message]
2024-10-08 8:14 ` [PATCH v7 0/7] Add Aspeed G7 gpio support Billy Tsai
2024-10-08 8:14 ` [PATCH v7 1/7] gpio: aspeed: Add the flush write to ensure the write complete Billy Tsai
2024-10-08 8:14 ` Billy Tsai
2024-10-08 8:14 ` [PATCH v7 2/7] gpio: aspeed: Use devm_clk api to manage clock source Billy Tsai
2024-10-08 8:14 ` Billy Tsai
2024-10-08 8:14 ` [PATCH v7 3/7] gpio: aspeed: Change the macro to support deferred probe Billy Tsai
2024-10-08 8:14 ` Billy Tsai
2024-10-08 8:14 ` [PATCH v7 4/7] gpio: aspeed: Remove the name for bank array Billy Tsai
2024-10-08 8:14 ` Billy Tsai
2024-10-08 8:14 ` [PATCH v7 5/7] gpio: aspeed: Create llops to handle hardware access Billy Tsai
2024-10-08 8:14 ` Billy Tsai
2024-10-09 1:57 ` Andrew Jeffery
2024-10-09 1:57 ` Andrew Jeffery
2024-10-08 8:14 ` [PATCH v7 6/7] dt-bindings: gpio: aspeed,ast2400-gpio: Support ast2700 Billy Tsai
2024-10-08 8:14 ` Billy Tsai
2024-10-08 8:14 ` [PATCH v7 7/7] gpio: aspeed: Support G7 Aspeed gpio controller Billy Tsai
2024-10-08 8:14 ` Billy Tsai
2024-10-09 2:12 ` Andrew Jeffery
2024-10-09 2:12 ` Andrew Jeffery
2024-10-09 2:28 ` Billy Tsai
2024-10-09 2:28 ` Billy Tsai
2024-10-09 6:47 ` Andrew Jeffery
2024-10-09 6:47 ` Andrew Jeffery
2024-10-08 14:02 ` (subset) [PATCH v7 0/7] Add Aspeed G7 gpio support Bartosz Golaszewski
2024-10-08 14:02 ` Bartosz Golaszewski
2024-10-08 14:04 ` Bartosz Golaszewski
2024-10-08 14:04 ` Bartosz Golaszewski
2024-10-14 7:04 ` (subset) " Bartosz Golaszewski
2024-10-14 7:04 ` Bartosz Golaszewski
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=20241008081450.1490955-1-billy_tsai@aspeedtech.com \
--to=billy_tsai@aspeedtech.com \
--cc=BMC-SW@aspeedtech.com \
--cc=Jay_Zhang@wiwynn.com \
--cc=Peter.Yin@quantatw.com \
--cc=andrew@codeconstruct.com.au \
--cc=brgl@bgdev.pl \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=joel@jms.id.au \
--cc=krzk+dt@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-aspeed@lists.ozlabs.org \
--cc=linux-gpio@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=robh@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.