From: Artur Weber <aweber.kernel@gmail.com>
To: Linus Walleij <linus.walleij@linaro.org>,
Rob Herring <robh@kernel.org>,
Krzysztof Kozlowski <krzk+dt@kernel.org>,
Conor Dooley <conor+dt@kernel.org>,
Florian Fainelli <florian.fainelli@broadcom.com>,
Ray Jui <rjui@broadcom.com>,
Scott Branden <sbranden@broadcom.com>,
Broadcom internal kernel review list
<bcm-kernel-feedback-list@broadcom.com>
Cc: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org,
linux-arm-kernel@lists.infradead.org,
Stanislav Jakubek <stano.jakubek@gmail.com>,
~postmarketos/upstreaming@lists.sr.ht,
Artur Weber <aweber.kernel@gmail.com>
Subject: [PATCH v2 0/6] pinctrl: bcm281xx: Add support for BCM21664 pinmux
Date: Fri, 21 Feb 2025 21:32:36 +0100 [thread overview]
Message-ID: <20250221-bcm21664-pinctrl-v2-0-7d1f0279fe16@gmail.com> (raw)
BCM21664 is another chip from the Kona line of Broadcom SoCs, and
its pinmux shares a lot of similarities with the BCM281xx pinmux.
Add support for the BCM21664 pinmux controller to the BCM281xx driver.
This also enables pinmux support for the BCM23550, which has an
identical pinmux config to the BCM21664 (hence they can share a
single compatible, brcm,bcm21664-pinctrl).
While we're at it - fix a bug that affected higher registers in the
BCM281XX driver and replace bare "unsigned" with "unsigned int" to
comply with checkpatch requirements.
Signed-off-by: Artur Weber <aweber.kernel@gmail.com>
---
By the way - while working on this patch, I noticed two things that
are not implemented in mainline, but seem to be present in the pin
controller regs according to the RDB[1][2]:
- On both BCM21664 and BCM281XX, TRACE* pins only have two bits for
DRV_STR and no HYST bit. That seems like it deserves its own pin
type; however, since I don't know how to translate the reduced
DRV_STR value to a drive strength in mA, I did not implement it.
For now, I kept the same type for BCM21664 as for BCM281XX for these
pins (standard).
- On both BCM21664 and BCM281XX, two SIM-related pins (SIM and SIM2
on BCM281XX, SIMDAT and SSPDO on BCM21664) have extra PUPM0 and PUPM1
offsets (bits 11 and 12 respectively). Vendor kernel does not do
anything with these bits, so I don't know what they do.
If any Broadcom engineers could shed some light on these, I'd be
grateful. Otherwise, neither of these are pressing issues, and this
patchset is complete without them (they can be fixed in another
patchset).
[1] https://github.com/knuxdroid/android_kernel_samsung_baffinlite/blob/cm-12.1/arch/arm/mach-hawaii/include/mach/rdb/brcm_rdb_padctrlreg.h
[2] https://github.com/s2plus/android_kernel_samsung_galaxys2plus/blob/cm-10.1_base-4.2/arch/arm/mach-capri/include/mach/rdb/brcm_rdb_padctrlreg.h
---
Changes in v2:
- Rebase on linux-pinctrl.git for-next branch, drop patch 2 ("pinctrl:
bcm281xx: Fix incorrect regmap max_registers value") as it has been
applied separately
- Fix "initializer element is not a compile-time constant" warning
- Fix unused variable warning
- Simplify DT binding
- Link to v1: https://lore.kernel.org/r/20250207-bcm21664-pinctrl-v1-0-e7cfac9b2d3b@gmail.com
---
Artur Weber (6):
dt-bindings: pinctrl: Add bindings for BCM21664 pin controller
pinctrl: bcm281xx: Use "unsigned int" instead of bare "unsigned"
pinctrl: bcm281xx: Provide pinctrl device info as OF platform data
pinctrl: bcm281xx: Add support for BCM21664 pinmux
ARM: dts: bcm2166x-common: Add pinctrl node
ARM: dts: bcm2166x: Add bcm2166x-pinctrl DTSI
.../bindings/pinctrl/brcm,bcm21664-pinctrl.yaml | 138 ++++
arch/arm/boot/dts/broadcom/bcm2166x-common.dtsi | 7 +
arch/arm/boot/dts/broadcom/bcm2166x-pinctrl.dtsi | 297 +++++++
drivers/pinctrl/bcm/pinctrl-bcm281xx.c | 849 +++++++++++++++++++--
4 files changed, 1228 insertions(+), 63 deletions(-)
---
base-commit: d01895c5b11849113e70f012d9d142f1d88852f0
change-id: 20250206-bcm21664-pinctrl-13cd7d3f7866
Best regards,
--
Artur Weber <aweber.kernel@gmail.com>
next reply other threads:[~2025-02-21 20:32 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-21 20:32 Artur Weber [this message]
2025-02-21 20:32 ` [PATCH v2 1/6] dt-bindings: pinctrl: Add bindings for BCM21664 pin controller Artur Weber
2025-02-21 20:37 ` Artur Weber
2025-02-24 17:37 ` Rob Herring
2025-02-21 20:32 ` [PATCH v2 2/6] pinctrl: bcm281xx: Use "unsigned int" instead of bare "unsigned" Artur Weber
2025-02-21 20:32 ` [PATCH v2 3/6] pinctrl: bcm281xx: Provide pinctrl device info as OF platform data Artur Weber
2025-02-21 20:32 ` [PATCH v2 4/6] pinctrl: bcm281xx: Add support for BCM21664 pinmux Artur Weber
2025-02-21 20:32 ` [PATCH v2 5/6] ARM: dts: bcm2166x-common: Add pinctrl node Artur Weber
2025-02-21 20:32 ` [PATCH v2 6/6] ARM: dts: bcm2166x: Add bcm2166x-pinctrl DTSI Artur Weber
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=20250221-bcm21664-pinctrl-v2-0-7d1f0279fe16@gmail.com \
--to=aweber.kernel@gmail.com \
--cc=bcm-kernel-feedback-list@broadcom.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=florian.fainelli@broadcom.com \
--cc=krzk+dt@kernel.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 \
--cc=rjui@broadcom.com \
--cc=robh@kernel.org \
--cc=sbranden@broadcom.com \
--cc=stano.jakubek@gmail.com \
--cc=~postmarketos/upstreaming@lists.sr.ht \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox