[PATCH v2 00/11] firmware: arm_scmi: Add support for multiple device per protocol

From: Sudeep Holla
Date: Wed Dec 18 2019 - 06:18:35 EST


Currently only one scmi device is created for each protocol enumerated.
However, there is requirement to make use of some procotols by multiple
kernel subsystems/frameworks. One such example is SCMI PERFORMANCE
protocol which can be used by both cpufreq and devfreq drivers.
Similarly, SENSOR protocol may be used by either hwmon or iio subsystems,
and POWER protocol may be used by genpd and regulator drivers.

This series adds support for multiple device per protocol using scmi device
name if one is available. It also updates existing drivers to add
scmi device names to driver id tables.

Regards,
Sudeep

v1[1]->v2:
- Dropped all the changes that mixes up the device specific init
with the protocol
- Used idr_replace to skip protocol initialisation as suggested
- Added collected reviewed/acked-by
- Reworded hwmon changes to reflect that hwmon/iio drivers will
be mutually exclusive and hwmon needs to be removed if IIO
support is added

[1] https://lore.kernel.org/lkml/20191210145345.11616-1-sudeep.holla@xxxxxxx/

Sudeep Holla (11):
firmware: arm_scmi: Add support for multiple device per protocol
firmware: arm_scmi: Skip scmi mbox channel setup for addtional devices
firmware: arm_scmi: Add names to scmi devices created
firmware: arm_scmi: Add versions and identifier attributes using dev_groups
firmware: arm_scmi: Match scmi device by both name and protocol id
firmware: arm_scmi: Stash version in protocol init functions
firmware: arm_scmi: Skip protocol initialisation for additional devices
clk: scmi: Match scmi device by both name and protocol id
cpufreq: scmi: Match scmi device by both name and protocol id
hwmon: (scmi-hwmon) Match scmi device by both name and protocol id
reset: reset-scmi: Match scmi device by both name and protocol id

drivers/clk/clk-scmi.c | 2 +-
drivers/cpufreq/scmi-cpufreq.c | 2 +-
drivers/firmware/arm_scmi/bus.c | 29 ++++++-
drivers/firmware/arm_scmi/clock.c | 2 +
drivers/firmware/arm_scmi/driver.c | 92 +++++++++++++++++++++-
drivers/firmware/arm_scmi/perf.c | 2 +
drivers/firmware/arm_scmi/power.c | 2 +
drivers/firmware/arm_scmi/reset.c | 2 +
drivers/firmware/arm_scmi/scmi_pm_domain.c | 2 +-
drivers/firmware/arm_scmi/sensors.c | 2 +
drivers/hwmon/scmi-hwmon.c | 2 +-
drivers/reset/reset-scmi.c | 2 +-
include/linux/scmi_protocol.h | 5 +-
13 files changed, 134 insertions(+), 12 deletions(-)

--
2.17.1