interconnect: Add generic on-chip interconnect API
authorGeorgi Djakov <georgi.djakov@linaro.org>
Wed, 16 Jan 2019 16:10:56 +0000 (18:10 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 22 Jan 2019 12:37:25 +0000 (13:37 +0100)
commit11f1ceca7031deefc1a34236ab7b94360016b71d
tree36f1f8c883a4d268b8b9e5c55d0b22e85cda8a8e
parent2ca46ed207d5d4e3c7a183fe11e8a2d02f86e7c6
interconnect: Add generic on-chip interconnect API

This patch introduces a new API to get requirements and configure the
interconnect buses across the entire chipset to fit with the current
demand.

The API is using a consumer/provider-based model, where the providers are
the interconnect buses and the consumers could be various drivers.
The consumers request interconnect resources (path) between endpoints and
set the desired constraints on this data flow path. The providers receive
requests from consumers and aggregate these requests for all master-slave
pairs on that path. Then the providers configure each node along the path
to support a bandwidth that satisfies all bandwidth requests that cross
through that node. The topology could be complicated and multi-tiered and
is SoC specific.

Reviewed-by: Evan Green <evgreen@chromium.org>
Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Documentation/interconnect/interconnect.rst [new file with mode: 0644]
drivers/Kconfig
drivers/Makefile
drivers/interconnect/Kconfig [new file with mode: 0644]
drivers/interconnect/Makefile [new file with mode: 0644]
drivers/interconnect/core.c [new file with mode: 0644]
include/linux/interconnect-provider.h [new file with mode: 0644]
include/linux/interconnect.h [new file with mode: 0644]