[PATCH v4 2/3] pinctrl: bcm: Add STB family pin controller driver

Andrea della Porta andrea.porta at suse.com
Mon Sep 8 01:20:04 PDT 2025


Hi Peter,

On 17:24 Sun 07 Sep     , Peter Robinson wrote:
> Hey Andrea,
> 
> > On 21:06 Thu 04 Sep     , Linus Walleij wrote:
> > > On Thu, Aug 28, 2025 at 2:45 PM Andrea della Porta
> > > <andrea.porta at suse.com> wrote:
> > >
> > > > From: "Ivan T. Ivanov" <iivanov at suse.de>
> > > >
> > > > This driver provide pin muxing and configuration functionality
> > > > for BCM2712 SoC used by RPi5. According to [1] this chip is an
> > > > instance of the one used in Broadcom STB  product line.
> > > >
> > > > [1] https://lore.kernel.org/lkml/f6601f73-cb22-4ba3-88c5-241be8421fc3@broadcom.com/
> > > >
> > > > Cc: Jonathan Bell <jonathan at raspberrypi.com>
> > > > Cc: Phil Elwell <phil at raspberrypi.com>
> > > > Signed-off-by: Ivan T. Ivanov <iivanov at suse.de>
> > > > Reviewed-by: Phil Elwell <phil at raspberrypi.com>
> > > > Signed-off-by: Andrea della Porta <andrea.porta at suse.com>
> > >
> > > Patch applied!
> > >
> > > > +config PINCTRL_BRCMSTB
> > > > +        tristate "Broadcom STB product line pin controller driver"
> > > > +        depends on OF && (ARCH_BRCMSTB || COMPILE_TEST)
> > >
> > > I changed this to (ARCH_BCM2835 || ARCH_BRCMSTB || COMPILE_TEST)
> > > because Peter Robinson told me the Pi5 needs this driver too.
> > > See commit 1d99f92f71b6b4b2eee776562c991428490f71ef for details.
> >
> > Indeed, thanks for spotting this!
> 
> I've been testing this, and other associated patches, with Fedora
> (feel free to cc: me on any patches too) and I'm seeing the following
> crash on the 2Gb model, someone else reported to me they see it on
> their 16gb, I'm assuming there's some issue/nuance in the d0 rev of
> the SoC that causes issues. Wondering if you've done any testing with
> the newer SoC rev or know of any issues there?

I think you have to substitute 'd0' in place of 'c0' in bcm2712.dtsi:

s/brcm,bcm2712c0-aon-pinctrl/brcm,bcm2712d0-aon-pinctrl/
s/brcm,bcm2712c0-pinctrl/brcm,bcm2712d0-pinctrl/

that is, the compatible for the two SoC pin controller.

Which reminds me that we need to add this to the DTS specific for D0 silicon,
I'll work on that asap.

Many thanks,
Andrea


> 
> Peter
> 
> [   56.289183] SError Interrupt on CPU3, code 0x00000000be000011 -- SError
> [   56.289194] CPU: 3 UID: 0 PID: 341 Comm: (udev-worker) Tainted: G
> M               ------  ---  6.17.0-0.rc4.36.pr3.fc43.aarch64 #1
> PREEMPT(voluntary)
> [   56.289200] Tainted: [M]=MACHINE_CHECK
> [   56.289201] Hardware name: raspberrypi Raspberry Pi 5 Model B Rev
> 1.0/Raspberry Pi 5 Model B Rev 1.0, BIOS 2025.04 04/01/2025
> [   56.289204] pstate: 804000c9 (Nzcv daIF +PAN -UAO -TCO -DIT -SSBS BTYPE=--)
> [   56.289208] pc : brcmstb_pull_config_set+0x5c/0xd8
> [   56.289216] lr : brcmstb_pull_config_set+0x44/0xd8
> [   56.289220] sp : ffff800080663500
> [   56.289221] x29: ffff800080663500 x28: ffffbcba6aaab480 x27: 0000000000000370
> [   56.289227] x26: 0000ffffa9554298 x25: ffffbcbad6ad2360 x24: ffff000000776240
> [   56.289231] x23: ffff0000011352b8 x22: ffff000002a16080 x21: 0000000000000014
> [   56.289235] x20: 0000000000000118 x19: ffff000002a16080 x18: 00000000fffffffc
> [   56.289239] x17: ffff0000010f1180 x16: ffffbcbad419c418 x15: 000000000000000a
> [   56.289243] x14: ffffffffffffffff x13: 0000000000000001 x12: 0000000000000000
> [   56.289247] x11: 0000000000000040 x10: 0000000000000000 x9 : ffffbcbad3dda6d4
> [   56.289251] x8 : 0000000000000014 x7 : 0000000000000000 x6 : ffffbcbad3dda768
> [   56.289254] x5 : ffff00000204f480 x4 : 0000000000000020 x3 : 0000000000000000
> [   56.289258] x2 : 0000000000000001 x1 : 0000000000000000 x0 : 0000000000000000
> [   56.289262] Kernel panic - not syncing: Asynchronous SError Interrupt
> [   56.422659] CPU: 3 UID: 0 PID: 341 Comm: (udev-worker) Tainted: G
> M               ------  ---  6.17.0-0.rc4.36.pr3.fc43.aarch64 #1
> PREEMPT(voluntary)
> [   56.436367] Tainted: [M]=MACHINE_CHECK
> [   56.440123] Hardware name: raspberrypi Raspberry Pi 5 Model B Rev
> 1.0/Raspberry Pi 5 Model B Rev 1.0, BIOS 2025.04 04/01/2025
> [   56.451472] Call trace:
> [   56.453919]  show_stack+0x30/0x90 (C)
> [   56.457595]  dump_stack_lvl+0x7c/0xa0
> [   56.461268]  dump_stack+0x18/0x2c
> [   56.464590]  vpanic+0x140/0x338
> [   56.467737]  panic+0x68/0x70
> [   56.470622]  nmi_panic+0x90/0xa0
> [   56.473859]  arm64_serror_panic+0x78/0x90
> [   56.477878]  arm64_is_fatal_ras_serror+0x90/0x98
> [   56.482509]  do_serror+0x38/0x60
> [   56.485742]  el1h_64_error_handler+0x38/0x60
> [   56.490026]  el1h_64_error+0x84/0x88
> [   56.493609]  brcmstb_pull_config_set+0x5c/0xd8 (P)
> [   56.498416]  brcmstb_pinconf_set+0xbc/0xe8
> [   56.502523]  pinconf_apply_setting+0xc4/0x148
> [   56.506893]  pinctrl_commit_state+0x124/0x240
> [   56.511262]  pinctrl_select_state+0x24/0x40
> [   56.515456]  pinctrl_bind_pins+0x1ec/0x280
> [   56.519565]  really_probe+0x60/0x3a0
> [   56.523150]  __driver_probe_device+0x84/0x160
> [   56.527520]  driver_probe_device+0x48/0x130
> [   56.531716]  __driver_attach+0xd0/0x1f8
> [   56.535560]  bus_for_each_dev+0x84/0x100
> [   56.539494]  driver_attach+0x2c/0x40
> [   56.543078]  bus_add_driver+0x158/0x280
> [   56.546924]  driver_register+0x70/0x138
> [   56.550769]  __platform_driver_register+0x28/0x40
> [   56.555487]  gpio_keys_init+0x28/0xff8 [gpio_keys]
> [   56.560296]  do_one_initcall+0x5c/0x318
> [   56.564143]  do_init_module+0x9c/0x2b8
> [   56.567903]  load_module+0x7e0/0x998
> [   56.571486]  init_module_from_file+0x90/0xf0
> [   56.575769]  __arm64_sys_finit_module+0x270/0x380
> [   56.580488]  invoke_syscall.constprop.0+0x64/0xe8
> [   56.585208]  el0_svc_common.constprop.0+0xc0/0xe8
> [   56.589927]  do_el0_svc+0x24/0x38
> [   56.593250]  el0_svc+0x3c/0x168
> [   56.596398]  el0t_64_sync_handler+0xa0/0xf0
> [   56.600593]  el0t_64_sync+0x1b0/0x1b8
> [   56.604264] SMP: stopping secondary CPUs
> [   56.608198] Kernel Offset: 0x3cba532a0000 from 0xffff800080000000
> [   56.614310] PHYS_OFFSET: 0x0
> [   56.617194] CPU features: 0x080000,00017000,24023140,0401720b
> [   56.622958] Memory Limit: none
> [   56.626147] ---[ end Kernel panic - not syncing: Asynchronous
> SError Interrupt ]---



More information about the linux-arm-kernel mailing list