[PATCH v3 0/3] Add pin control driver for BCM2712 SoC
Andrea della Porta
andrea.porta at suse.com
Mon Aug 11 07:46:50 PDT 2025
*important note* - For clarity's sake, here's the revision list from which
this patchset derives:
V3 (this patchset, split-up to deal exclusively with pin controller stuff)
V2 (missing v2 in the mail subject): https://lore.kernel.org/all/cover.1752584387.git.andrea.porta@suse.com/
V1 (original by Ivan): https://lore.kernel.org/all/20240731062814.215833-1-iivanov@suse.de/
Also, in V3 the patchset has been split into two:
- patches 1, 2 and 7 from V2 form the new revision V3 to deal with
core pinctrl stuff only.
- all remaining patches will respawn as a new patchset that adds new DT
nodes for the peripherals that use the pinctrl. As a consequence, it
will require the above mentioned V3 patchset as a prerequisite.
---
Hi,
The following patches add a pin control driver for the BCM2712 SoC.
Device driver is follow up version on what Andrea posted in April [1].
It is based on sources from here [2]. I just made few cosmetic changes
and addressed review comments from earlier submission. I don't have
documentation for this controller.
A separate patchset will add peripheral nodes that rely on the SoC pin
controller to setup and config the pins.
All this have been tested as kernel was directly booted RPi5 via
kernel= config.txt option and cmdline.txt file with following content
(Note I am using Tumbleweed RPi raw images)
# cat /boot/efi/cmdline.txt
root=/dev/mmcblk0p3 rootwait rw systemd.show_status=1 console=tty ignore_loglevel earlycon console=ttyAMA10,115200
With all these patches Bluetooth and Wifi are working fine (tm) with
firmware files provided by openSUSE Tumbleweed.
All comments and suggestions are welcome!
Happy hacking!
Ivan and Andrea
[1] https://lore.kernel.org/lkml/f6601f73-cb22-4ba3-88c5-241be8421fc3@broadcom.com/
[2] https://github.com/raspberrypi/linux/blob/rpi-6.6.y/drivers/pinctrl/bcm/pinctrl-bcm2712.c
[3] https://lore.kernel.org/lkml/20240605120712.3523290-1-florian.fainelli@broadcom.com/#t
[4] https://lore.kernel.org/all/bfc60a7e-54d2-48a6-a288-4fe76d66507a@gmx.net/
CHANGES in V3:
--- PATCHES ---
- The V2 patchset has been split into two. This patchset (V3) contains reworked
patches 1,2,7 from V2 while the remaining (again, reworked) patches will
respawn as an entirely new patchset.
--- DT BINDINGS ---
- brcm,bcm2712c0-pinctrl.yaml: emmc_* pins are specific and do not provide
other alternate function, so the function property can be dropped for those
pins.
- brcm,bcm2712c0-pinctrl.yaml: fixed the schema ID reflecting the current
filename.
--- DRIVER ---
- pinctrl-brcmstb.c: wrapped a couple of lines exceeding 100 columns.
Andrea della Porta (1):
arm64: defconfig: Enable BCM2712 on-chip pin controller driver
Ivan T. Ivanov (2):
dt-bindings: pinctrl: Add support for Broadcom STB pin controller
pinctrl: bcm: Add STB family pin controller driver
.../pinctrl/brcm,bcm2712c0-pinctrl.yaml | 135 ++
arch/arm64/configs/defconfig | 1 +
drivers/pinctrl/bcm/Kconfig | 13 +
drivers/pinctrl/bcm/Makefile | 1 +
drivers/pinctrl/bcm/pinctrl-brcmstb.c | 1197 +++++++++++++++++
5 files changed, 1347 insertions(+)
create mode 100644 Documentation/devicetree/bindings/pinctrl/brcm,bcm2712c0-pinctrl.yaml
create mode 100644 drivers/pinctrl/bcm/pinctrl-brcmstb.c
--
2.35.3
More information about the linux-arm-kernel
mailing list