[PATCH RFC 0/6] Introduce the Interconnect Subsystem
Neil Armstrong
neil.armstrong at linaro.org
Fri Oct 3 10:56:20 CEST 2025
Let's introduce the Interconnect subsystem based on the Linux framework
which is used to vote for bandwidth across multiple SoC busses.
Each bus endpoints are materialized as "nodes" wich are linked together,
and the DT will specify a pair of nodes to enable and set a bandwidth
on the route betweeen those endpoints.
The hardware resources that provide those nodes and provides the way
to vote for the bandwidth are called "providers".
The Interconnect uclass code is heavily based on the Linux one, with
some small differences:
- nodes are allocated as udevices instead of Linux idr_alloc()
- tag management is minimal, only normal xlate is supported
- dynamic IDs is not implemented
- getting nodes states at probe is not implemented
- providers are probed on demand while the nodes links are traversed
DM Testsuite is missing, will be added soon.
This is an RFC to make sure I'm correctly using the DM infrastructure,
since it's my first uclass implementation I would like some feedbacks.
Qcom implementation depends on:
- https://lore.kernel.org/all/20250711143851.1490617-2-aswin.murugan@oss.qualcomm.com/
Signed-off-by: Neil Armstrong <neil.armstrong at linaro.org>
---
Neil Armstrong (6):
Introduce Interconnect Subsystem
MAINTAINERS: add myself as Maintainer of Interconnect
interconnect: add support for the Qualcomm RPMh helpers
interconnect: add support for the SM8650 SoC
ufs: qcom: vote for interconnect bandwidth on probe
qcom_defconfig: enable interconnect for SM8650
MAINTAINERS | 8 +
configs/qcom_defconfig | 3 +
drivers/Kconfig | 2 +
drivers/Makefile | 1 +
drivers/interconnect/Kconfig | 16 +
drivers/interconnect/Makefile | 7 +
drivers/interconnect/interconnect-uclass.c | 560 ++++++++++
drivers/interconnect/qcom/Kconfig | 12 +
drivers/interconnect/qcom/Makefile | 7 +
drivers/interconnect/qcom/bcm-voter.c | 340 ++++++
drivers/interconnect/qcom/bcm-voter.h | 19 +
drivers/interconnect/qcom/icc-rpmh.c | 226 ++++
drivers/interconnect/qcom/icc-rpmh.h | 128 +++
drivers/interconnect/qcom/sm8650.c | 1662 ++++++++++++++++++++++++++++
drivers/interconnect/qcom/sm8650.h | 144 +++
drivers/ufs/ufs-qcom.c | 13 +
include/dm/uclass-id.h | 2 +
include/interconnect-uclass.h | 77 ++
include/interconnect.h | 80 ++
19 files changed, 3307 insertions(+)
---
base-commit: 5f04cd73e8051849fb495c001bfb4adc2fc544e6
change-id: 20251003-topic-interconnect-next-4ed75aecc01c
Best regards,
--
Neil Armstrong <neil.armstrong at linaro.org>
More information about the U-Boot
mailing list