Some BMIPS xDSL SoCs (BCM6362) integrate a Broadcom 802.11 backplane that is reachable
through bcma but differs from the BCM47xx SoCs host_soc was written for:
the AXI backplane is big-endian on a big-endian CPU, and the cores bcma must gate
(ChipCommon, the 802.11 core, the SHIM core) expose no per-core DMP wrappers — clock
and reset live in a small SoC-level SHIM Control register instead.
Rather than describe these quirks as DT properties on the bcma node, the SoC-specific
configuration is delivered to host_soc via platform_data from a parent bridge driver. The
bcma DT node stays a plain "brcm,bus-axi" and all the 6362-specific knowledge lives in the
bridge driver. The standard brcm,bus-axi path is unchanged.
The series is:
1/4 bcma: support driver specific quirks from soc pdata
2/4 bcma: allow SHIM-style mini-EROM wrapper-less cores in scan
3/4 dt-bindings: bus: add brcm,bcm6362-wlan
4/4 bus: add BCM6362 on-chip WLAN SHIM bridge driver
Patches 1-2 touch drivers/bcma (wireless tree); patch 3 is a new drivers/bus driver; patch 4 is
the binding. The patches are sent together to keep the whole context intact.
The original Broadcom driver materialized a fake PCI device, i don't think that would be allowed
in the kernel.
Tested on a D-Link DSL-3580L (BCM6362, d11 corerev 22, N-PHY):
- SHIM brings the backplane up,
- bcma enumerates ChipCommon + the 802.11 core,
- b43 binds.
b43 patches are necessary for the last point, but those has
already been sent in linux-wireless.
Assisted-by: Claude:claude-4.8-opus
Signed-off-by: Alessio Ferri <alessio.ferri@mythread.it>
---
Alessio Ferri (4):
bcma: support driver specific quirks from soc pdata
bcma: allow SHIM-style mini-EROM wrapper-less cores in scan
dt-bindings: bus: add brcm,bcm6362-wlan
bus: add BCM6362 on-chip WLAN SHIM bridge driver
.../devicetree/bindings/bus/brcm,bcm6362-wlan.yaml | 106 +++++++++
MAINTAINERS | 7 +
drivers/bcma/host_soc.c | 224 +++++++++++++++++-
drivers/bcma/scan.c | 19 +-
drivers/bus/Kconfig | 13 ++
drivers/bus/Makefile | 1 +
drivers/bus/bcm6362-wlan-shim.c | 252 +++++++++++++++++++++
include/linux/bcma/bcma.h | 14 ++
include/linux/platform_data/bcma_host_soc.h | 31 +++
9 files changed, 654 insertions(+), 13 deletions(-)
---
base-commit: 8fde5d1d47f69db6082dfa34500c27f8485389a5
change-id: 20260529-add-bcm6362-wlan-e3e72dbdeb8a
Best regards,
--
Alessio Ferri <alessio.ferri.3012@gmail.com>