From: <gregkh@linuxfoundation.org>
To: bcm-kernel-feedback-list@broadcom.com, eric@anholt.net,
f.fainelli@gmail.com, gregkh@linuxfoundation.org,
linus.walleij@linaro.org, linux-arm-kernel@lists.infradead.org,
linux-rpi-kernel@lists.infradead.org, mark.rutland@arm.com,
nsaenz@kernel.org, nsaenzjulienne@suse.de, phil@raspberrypi.com,
rjui@broadcom.com, robh+dt@kernel.org, sbranden@broadcom.com,
stefan.wahren@i2se.com, wahrenst@gmx.net
Cc: <stable-commits@vger.kernel.org>
Subject: Patch "pinctrl: bcm2835: Add support for all GPIOs on BCM2711" has been added to the 5.4-stable tree
Date: Thu, 27 Jan 2022 17:01:49 +0100 [thread overview]
Message-ID: <164329930924135@kroah.com> (raw)
In-Reply-To: <20220125194222.12783-4-f.fainelli@gmail.com>
This is a note to let you know that I've just added the patch titled
pinctrl: bcm2835: Add support for all GPIOs on BCM2711
to the 5.4-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
pinctrl-bcm2835-add-support-for-all-gpios-on-bcm2711.patch
and it can be found in the queue-5.4 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@vger.kernel.org> know about it.
From foo@baz Thu Jan 27 04:40:37 PM CET 2022
From: Florian Fainelli <f.fainelli@gmail.com>
Date: Tue, 25 Jan 2022 11:42:18 -0800
Subject: pinctrl: bcm2835: Add support for all GPIOs on BCM2711
To: stable@vger.kernel.org
Cc: Stefan Wahren <stefan.wahren@i2se.com>, Nicolas Saenz Julienne <nsaenzjulienne@suse.de>, Linus Walleij <linus.walleij@linaro.org>, Florian Fainelli <f.fainelli@gmail.com>, Rob Herring <robh+dt@kernel.org>, Mark Rutland <mark.rutland@arm.com>, Ray Jui <rjui@broadcom.com>, Scott Branden <sbranden@broadcom.com>, bcm-kernel-feedback-list@broadcom.com (maintainer:BROADCOM BCM281XX/BCM11XXX/BCM216XX ARM ARCHITE...), Eric Anholt <eric@anholt.net>, Stefan Wahren <wahrenst@gmx.net>, Nicolas Saenz Julienne <nsaenz@kernel.org>, Phil Elwell <phil@raspberrypi.com>, devicetree@vger.kernel.org (open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS), linux-kernel@vger.kernel.org (open list), linux-gpio@vger.kernel.org (open list:PIN CONTROL SUBSYSTEM), linux-rpi-kernel@lists.infradead.org (moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE), linux-arm-kernel@lists.infradead.org (moderated list:BROADCOM BCM2711/BCM2835 ARM ARCHITECTURE)
Message-ID: <20220125194222.12783-4-f.fainelli@gmail.com>
From: Stefan Wahren <stefan.wahren@i2se.com>
commit b1d84a3d0a26c5844a22bc09a42704b9371208bb upstream
The BCM2711 supports 58 GPIOs. So extend pinctrl and GPIOs accordingly.
Signed-off-by: Stefan Wahren <stefan.wahren@i2se.com>
Link: https://lore.kernel.org/r/1581166975-22949-4-git-send-email-stefan.wahren@i2se.com
Reviewed-by: Nicolas Saenz Julienne <nsaenzjulienne@suse.de>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
drivers/pinctrl/bcm/pinctrl-bcm2835.c | 54 ++++++++++++++++++++++++++--------
1 file changed, 42 insertions(+), 12 deletions(-)
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -37,6 +37,7 @@
#define MODULE_NAME "pinctrl-bcm2835"
#define BCM2835_NUM_GPIOS 54
+#define BCM2711_NUM_GPIOS 58
#define BCM2835_NUM_BANKS 2
#define BCM2835_NUM_IRQS 3
@@ -78,7 +79,7 @@ struct bcm2835_pinctrl {
/* note: locking assumes each bank will have its own unsigned long */
unsigned long enabled_irq_map[BCM2835_NUM_BANKS];
- unsigned int irq_type[BCM2835_NUM_GPIOS];
+ unsigned int irq_type[BCM2711_NUM_GPIOS];
struct pinctrl_dev *pctl_dev;
struct gpio_chip gpio_chip;
@@ -145,6 +146,10 @@ static struct pinctrl_pin_desc bcm2835_g
BCM2835_GPIO_PIN(51),
BCM2835_GPIO_PIN(52),
BCM2835_GPIO_PIN(53),
+ BCM2835_GPIO_PIN(54),
+ BCM2835_GPIO_PIN(55),
+ BCM2835_GPIO_PIN(56),
+ BCM2835_GPIO_PIN(57),
};
/* one pin per group */
@@ -203,6 +208,10 @@ static const char * const bcm2835_gpio_g
"gpio51",
"gpio52",
"gpio53",
+ "gpio54",
+ "gpio55",
+ "gpio56",
+ "gpio57",
};
enum bcm2835_fsel {
@@ -353,6 +362,22 @@ static const struct gpio_chip bcm2835_gp
.can_sleep = false,
};
+static const struct gpio_chip bcm2711_gpio_chip = {
+ .label = "pinctrl-bcm2711",
+ .owner = THIS_MODULE,
+ .request = gpiochip_generic_request,
+ .free = gpiochip_generic_free,
+ .direction_input = bcm2835_gpio_direction_input,
+ .direction_output = bcm2835_gpio_direction_output,
+ .get_direction = bcm2835_gpio_get_direction,
+ .get = bcm2835_gpio_get,
+ .set = bcm2835_gpio_set,
+ .set_config = gpiochip_generic_config,
+ .base = -1,
+ .ngpio = BCM2711_NUM_GPIOS,
+ .can_sleep = false,
+};
+
static void bcm2835_gpio_irq_handle_bank(struct bcm2835_pinctrl *pc,
unsigned int bank, u32 mask)
{
@@ -399,7 +424,7 @@ static void bcm2835_gpio_irq_handler(str
bcm2835_gpio_irq_handle_bank(pc, 0, 0xf0000000);
bcm2835_gpio_irq_handle_bank(pc, 1, 0x00003fff);
break;
- case 2: /* IRQ2 covers GPIOs 46-53 */
+ case 2: /* IRQ2 covers GPIOs 46-57 */
bcm2835_gpio_irq_handle_bank(pc, 1, 0x003fc000);
break;
}
@@ -618,7 +643,7 @@ static struct irq_chip bcm2835_gpio_irq_
static int bcm2835_pctl_get_groups_count(struct pinctrl_dev *pctldev)
{
- return ARRAY_SIZE(bcm2835_gpio_groups);
+ return BCM2835_NUM_GPIOS;
}
static const char *bcm2835_pctl_get_group_name(struct pinctrl_dev *pctldev,
@@ -776,7 +801,7 @@ static int bcm2835_pctl_dt_node_to_map(s
err = of_property_read_u32_index(np, "brcm,pins", i, &pin);
if (err)
goto out;
- if (pin >= ARRAY_SIZE(bcm2835_gpio_pins)) {
+ if (pin >= pc->pctl_desc.npins) {
dev_err(pc->dev, "%pOF: invalid brcm,pins value %d\n",
np, pin);
err = -EINVAL;
@@ -852,7 +877,7 @@ static int bcm2835_pmx_get_function_grou
{
/* every pin can do every function */
*groups = bcm2835_gpio_groups;
- *num_groups = ARRAY_SIZE(bcm2835_gpio_groups);
+ *num_groups = BCM2835_NUM_GPIOS;
return 0;
}
@@ -1055,7 +1080,7 @@ static const struct pinconf_ops bcm2711_
static const struct pinctrl_desc bcm2835_pinctrl_desc = {
.name = MODULE_NAME,
.pins = bcm2835_gpio_pins,
- .npins = ARRAY_SIZE(bcm2835_gpio_pins),
+ .npins = BCM2835_NUM_GPIOS,
.pctlops = &bcm2835_pctl_ops,
.pmxops = &bcm2835_pmx_ops,
.confops = &bcm2835_pinconf_ops,
@@ -1063,9 +1088,9 @@ static const struct pinctrl_desc bcm2835
};
static const struct pinctrl_desc bcm2711_pinctrl_desc = {
- .name = MODULE_NAME,
+ .name = "pinctrl-bcm2711",
.pins = bcm2835_gpio_pins,
- .npins = ARRAY_SIZE(bcm2835_gpio_pins),
+ .npins = BCM2711_NUM_GPIOS,
.pctlops = &bcm2835_pctl_ops,
.pmxops = &bcm2835_pmx_ops,
.confops = &bcm2711_pinconf_ops,
@@ -1077,6 +1102,11 @@ static const struct pinctrl_gpio_range b
.npins = BCM2835_NUM_GPIOS,
};
+static const struct pinctrl_gpio_range bcm2711_pinctrl_gpio_range = {
+ .name = "pinctrl-bcm2711",
+ .npins = BCM2711_NUM_GPIOS,
+};
+
struct bcm_plat_data {
const struct gpio_chip *gpio_chip;
const struct pinctrl_desc *pctl_desc;
@@ -1090,9 +1120,9 @@ static const struct bcm_plat_data bcm283
};
static const struct bcm_plat_data bcm2711_plat_data = {
- .gpio_chip = &bcm2835_gpio_chip,
+ .gpio_chip = &bcm2711_gpio_chip,
.pctl_desc = &bcm2711_pinctrl_desc,
- .gpio_range = &bcm2835_pinctrl_gpio_range,
+ .gpio_range = &bcm2711_pinctrl_gpio_range,
};
static const struct of_device_id bcm2835_pinctrl_match[] = {
@@ -1118,8 +1148,8 @@ static int bcm2835_pinctrl_probe(struct
int err, i;
const struct of_device_id *match;
- BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_pins) != BCM2835_NUM_GPIOS);
- BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_groups) != BCM2835_NUM_GPIOS);
+ BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_pins) != BCM2711_NUM_GPIOS);
+ BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_groups) != BCM2711_NUM_GPIOS);
pc = devm_kzalloc(dev, sizeof(*pc), GFP_KERNEL);
if (!pc)
Patches currently in stable-queue which might be from f.fainelli@gmail.com are
queue-5.4/pinctrl-bcm2835-drop-unused-define.patch
queue-5.4/arm-dts-gpio-ranges-property-is-now-required.patch
queue-5.4/pinctrl-bcm2835-add-support-for-wake-up-interrupts.patch
queue-5.4/pinctrl-bcm2835-change-init-order-for-gpio-hogs.patch
queue-5.4/pinctrl-bcm2835-refactor-platform-data.patch
queue-5.4/pinctrl-bcm2835-match-bcm7211-compatible-string.patch
queue-5.4/pinctrl-bcm2835-add-support-for-all-gpios-on-bcm2711.patch
_______________________________________________
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:[~2022-01-27 16:03 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-25 19:42 [PATCH stable 5.4 0/7] pinctrl-bcm2835 gpio-ranges bugfix Florian Fainelli
2022-01-25 19:42 ` Florian Fainelli
2022-01-25 19:42 ` [PATCH stable 5.4 1/7] pinctrl: bcm2835: Drop unused define Florian Fainelli
2022-01-25 19:42 ` Florian Fainelli
2022-01-27 16:01 ` Patch "pinctrl: bcm2835: Drop unused define" has been added to the 5.4-stable tree gregkh
2022-01-25 19:42 ` [PATCH stable 5.4 2/7] pinctrl: bcm2835: Refactor platform data Florian Fainelli
2022-01-25 19:42 ` Florian Fainelli
2022-01-27 16:01 ` Patch "pinctrl: bcm2835: Refactor platform data" has been added to the 5.4-stable tree gregkh
2022-01-25 19:42 ` [PATCH stable 5.4 3/7] pinctrl: bcm2835: Add support for all GPIOs on BCM2711 Florian Fainelli
2022-01-25 19:42 ` Florian Fainelli
2022-01-27 16:01 ` gregkh [this message]
2022-01-25 19:42 ` [PATCH stable 5.4 4/7] pinctrl: bcm2835: Match BCM7211 compatible string Florian Fainelli
2022-01-25 19:42 ` Florian Fainelli
2022-01-27 16:01 ` Patch "pinctrl: bcm2835: Match BCM7211 compatible string" has been added to the 5.4-stable tree gregkh
2022-01-25 19:42 ` [PATCH stable 5.4 5/7] pinctrl: bcm2835: Add support for wake-up interrupts Florian Fainelli
2022-01-25 19:42 ` Florian Fainelli
2022-01-27 16:01 ` Patch "pinctrl: bcm2835: Add support for wake-up interrupts" has been added to the 5.4-stable tree gregkh
2022-01-25 19:42 ` [PATCH stable 5.4 6/7] pinctrl: bcm2835: Change init order for gpio hogs Florian Fainelli
2022-01-25 19:42 ` Florian Fainelli
2022-01-27 16:01 ` Patch "pinctrl: bcm2835: Change init order for gpio hogs" has been added to the 5.4-stable tree gregkh
2022-01-25 19:42 ` [PATCH stable 5.4 7/7] ARM: dts: gpio-ranges property is now required Florian Fainelli
2022-01-25 19:42 ` Florian Fainelli
2022-01-27 16:01 ` Patch "ARM: dts: gpio-ranges property is now required" has been added to the 5.4-stable tree gregkh
2022-01-27 15:41 ` [PATCH stable 5.4 0/7] pinctrl-bcm2835 gpio-ranges bugfix Greg KH
2022-01-27 15:41 ` Greg KH
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=164329930924135@kroah.com \
--to=gregkh@linuxfoundation.org \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=eric@anholt.net \
--cc=f.fainelli@gmail.com \
--cc=linus.walleij@linaro.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-rpi-kernel@lists.infradead.org \
--cc=mark.rutland@arm.com \
--cc=nsaenz@kernel.org \
--cc=nsaenzjulienne@suse.de \
--cc=phil@raspberrypi.com \
--cc=rjui@broadcom.com \
--cc=robh+dt@kernel.org \
--cc=sbranden@broadcom.com \
--cc=stable-commits@vger.kernel.org \
--cc=stefan.wahren@i2se.com \
--cc=wahrenst@gmx.net \
/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.