From: Sudeep Holla <sudeep.holla@arm.com>
To: ALKML <linux-arm-kernel@lists.infradead.org>,
LKML <linux-kernel@vger.kernel.org>,
DTML <devicetree@vger.kernel.org>
Cc: Sudeep Holla <sudeep.holla@arm.com>,
Alexey Klimov <klimov.linux@gmail.com>,
Arnd Bergmann <arnd@arndb.de>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Subject: [PATCH v6 00/20] firmware: ARM System Control and Management Interface(SCMI) support
Date: Fri, 23 Feb 2018 16:23:30 +0000 [thread overview]
Message-ID: <1519403030-21189-1-git-send-email-sudeep.holla@arm.com> (raw)
Hi all,
ARM System Control and Management Interface(SCMI) is more flexible and
easily extensible than any of the existing interfaces. Many vendors were
involved in the making of this formal specification and is now published[1].
There is a strong trend in the industry to provide micro-controllers in
systems to abstract various power, or other system management tasks.
These controllers usually have similar interfaces, both in terms of the
functions that are provided by them, and in terms of how requests are
communicated to them.
This specification is to standardise and avoid (any further)
fragmentation in the design of such interface by various vendors.
It currently doesn't support notification, asynchronous/delayed response,
perf/power statistics region and sensor register region to name a few.
Some of the ideas of message allocation/management are borrowed from TI SCI.
Changes:
v5[7]->v6:
- Dropped notification APIs as it's not fully supported, leftovers
from development
- Removed unnecessary mutex usage for allocation
- Replace udelay with cpu_relax, found nice helper spin_until_cond
- Added inline to couple of functions in header files
- Fixed few checkpatch errors
v4[6]->v5:
- Rebased to v4.15-rc6
- Updated all the gathered Ack/Reviewed-by tags(which includes
all the drivers using SCMI protocol)
v3[5]->v4[6]:
- Added SCMI protocol bus to enumerate supported protocols as
suggested by Arnd
- Dropped the abstraction to mailbox as it may be optional
v2[4]->v3:
- Addressed various comments received so far(clock, hwmon and
cpufreq drivers along with scmi drivers)
- Hwmon driver now uses core layer to create and manage sysfs
attributes
- Added a shim layer to abstract the mailbox interface to support
any custom adaptation required by the controller driver
- Simple ARM MHU shim layer using newly added abstraction
v1[3]->v2[4]:
- Additional support for polling based DVFS and per protocol
channels
- Dependent drivers(clock, hwmon, cpufreq and power domains)
- Various other review comments and issued found during testing
addressed
- Explicit binding for method dropped as even SMC based method
are adviertised as mailbox
RFC[2]->v1[3]:
- Add generic mailbox binding for shared memory(Rob H)
- Dropped compatibles per protocol(Suggested by Matt S)
- Dropped lot of unnecessary pointer casting(Arnd B)
- Dropped packing of structures(Arnd B)
- Few other changes/additions based initial testing with firmware
providing SCMI interface to OSPM
--
Regards,
Sudeep
[1] http://infocenter.arm.com/help/topic/com.arm.doc.den0056a/index.html
[2] https://marc.info/?l=linux-kernel&m=149685193627620&w=2
[3] https://marc.info/?l=linux-arm-kernel&m=149849482623492&w=2
[4] https://marc.info/?l=devicetree&m=150185763105926&w=2
[5] https://marc.info/?l=devicetree&m=150660452015351&w=2
[6] https://marc.info/?l=devicetree&m=150972061408961&w=2
[7] https://marc.info/?l=devicetree&m=151846114506163&w=2
Sudeep Holla (20):
dt-bindings: mailbox: add support for mailbox client shared memory
dt-bindings: arm: add support for ARM System Control and Management
Interface(SCMI) protocol
firmware: arm_scmi: add basic driver infrastructure for SCMI
firmware: arm_scmi: add common infrastructure and support for base
protocol
firmware: arm_scmi: add scmi protocol bus to enumerate protocol
devices
firmware: arm_scmi: add initial support for performance protocol
firmware: arm_scmi: add initial support for clock protocol
firmware: arm_scmi: add initial support for power protocol
firmware: arm_scmi: add initial support for sensor protocol
firmware: arm_scmi: probe and initialise all the supported protocols
firmware: arm_scmi: add support for polling based SCMI transfers
firmware: arm_scmi: add option for polling based performance domain
operations
firmware: arm_scmi: refactor in preparation to support per-protocol
channels
firmware: arm_scmi: add per-protocol channels support using idr
objects
firmware: arm_scmi: add device power domain support using genpd
clk: add support for clocks provided by SCMI
hwmon: (core) Add hwmon_max to hwmon_sensor_types enumeration
hwmon: add support for sensors exported via ARM SCMI
cpufreq: add support for CPU DVFS based on SCMI message protocol
cpufreq: scmi: add support for fast frequency switching
Documentation/devicetree/bindings/arm/arm,scmi.txt | 179 +++++
.../devicetree/bindings/mailbox/mailbox.txt | 28 +
MAINTAINERS | 11 +-
drivers/clk/Kconfig | 10 +
drivers/clk/Makefile | 1 +
drivers/clk/clk-scmi.c | 213 +++++
drivers/cpufreq/Kconfig.arm | 11 +
drivers/cpufreq/Makefile | 1 +
drivers/cpufreq/scmi-cpufreq.c | 272 +++++++
drivers/firmware/Kconfig | 34 +
drivers/firmware/Makefile | 1 +
drivers/firmware/arm_scmi/Makefile | 5 +
drivers/firmware/arm_scmi/base.c | 264 ++++++
drivers/firmware/arm_scmi/bus.c | 232 ++++++
drivers/firmware/arm_scmi/clock.c | 353 +++++++++
drivers/firmware/arm_scmi/common.h | 116 +++
drivers/firmware/arm_scmi/driver.c | 882 +++++++++++++++++++++
drivers/firmware/arm_scmi/perf.c | 492 ++++++++++++
drivers/firmware/arm_scmi/power.c | 232 ++++++
drivers/firmware/arm_scmi/scmi_pm_domain.c | 140 ++++
drivers/firmware/arm_scmi/sensors.c | 302 +++++++
drivers/hwmon/Kconfig | 12 +
drivers/hwmon/Makefile | 1 +
drivers/hwmon/scmi-hwmon.c | 233 ++++++
include/linux/hwmon.h | 1 +
include/linux/scmi_protocol.h | 288 +++++++
26 files changed, 4309 insertions(+), 5 deletions(-)
create mode 100644 Documentation/devicetree/bindings/arm/arm,scmi.txt
create mode 100644 drivers/clk/clk-scmi.c
create mode 100644 drivers/cpufreq/scmi-cpufreq.c
create mode 100644 drivers/firmware/arm_scmi/Makefile
create mode 100644 drivers/firmware/arm_scmi/base.c
create mode 100644 drivers/firmware/arm_scmi/bus.c
create mode 100644 drivers/firmware/arm_scmi/clock.c
create mode 100644 drivers/firmware/arm_scmi/common.h
create mode 100644 drivers/firmware/arm_scmi/driver.c
create mode 100644 drivers/firmware/arm_scmi/perf.c
create mode 100644 drivers/firmware/arm_scmi/power.c
create mode 100644 drivers/firmware/arm_scmi/scmi_pm_domain.c
create mode 100644 drivers/firmware/arm_scmi/sensors.c
create mode 100644 drivers/hwmon/scmi-hwmon.c
create mode 100644 include/linux/scmi_protocol.h
--
2.7.4
next reply other threads:[~2018-02-23 16:23 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-02-23 16:23 Sudeep Holla [this message]
2018-02-23 16:23 ` [PATCH v6 01/20] dt-bindings: mailbox: add support for mailbox client shared memory Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 02/20] dt-bindings: arm: add support for ARM System Control and Management Interface(SCMI) protocol Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 03/20] firmware: arm_scmi: add basic driver infrastructure for SCMI Sudeep Holla
2018-02-26 15:57 ` Philippe Ombredanne
2018-02-26 17:10 ` Sudeep Holla
2018-03-05 13:52 ` Jonathan Cameron
2018-03-05 14:30 ` Sudeep Holla
2018-03-05 14:47 ` Jonathan Cameron
2018-02-23 16:23 ` [PATCH v6 04/20] firmware: arm_scmi: add common infrastructure and support for base protocol Sudeep Holla
2018-03-05 14:11 ` Jonathan Cameron
2018-02-23 16:23 ` [PATCH v6 05/20] firmware: arm_scmi: add scmi protocol bus to enumerate protocol devices Sudeep Holla
2018-03-05 14:23 ` Jonathan Cameron
2018-02-23 16:23 ` [PATCH v6 06/20] firmware: arm_scmi: add initial support for performance protocol Sudeep Holla
2018-03-05 14:29 ` Jonathan Cameron
2018-02-23 16:23 ` [PATCH v6 07/20] firmware: arm_scmi: add initial support for clock protocol Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 08/20] firmware: arm_scmi: add initial support for power protocol Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 09/20] firmware: arm_scmi: add initial support for sensor protocol Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 10/20] firmware: arm_scmi: probe and initialise all the supported protocols Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 11/20] firmware: arm_scmi: add support for polling based SCMI transfers Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 12/20] firmware: arm_scmi: add option for polling based performance domain operations Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 13/20] firmware: arm_scmi: refactor in preparation to support per-protocol channels Sudeep Holla
2018-03-05 14:35 ` Jonathan Cameron
2018-03-05 14:43 ` Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 14/20] firmware: arm_scmi: add per-protocol channels support using idr objects Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 15/20] firmware: arm_scmi: add device power domain support using genpd Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 16/20] clk: add support for clocks provided by SCMI Sudeep Holla
2018-03-16 23:02 ` Stephen Boyd
2018-03-20 12:08 ` Sudeep Holla
2018-03-20 16:22 ` Stephen Boyd
2018-03-20 12:11 ` [PATCH] clk: scmi: use devm_of_clk_add_hw_provider() API and drop scmi_clocks_remove Sudeep Holla
2018-03-20 14:42 ` Sudeep Holla
2018-03-20 16:22 ` Stephen Boyd
2018-02-23 16:23 ` [PATCH v6 17/20] hwmon: (core) Add hwmon_max to hwmon_sensor_types enumeration Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 18/20] hwmon: add support for sensors exported via ARM SCMI Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 19/20] cpufreq: add support for CPU DVFS based on SCMI message protocol Sudeep Holla
2018-02-23 16:23 ` [PATCH v6 20/20] cpufreq: scmi: add support for fast frequency switching Sudeep Holla
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1519403030-21189-1-git-send-email-sudeep.holla@arm.com \
--to=sudeep.holla@arm.com \
--cc=arnd@arndb.de \
--cc=devicetree@vger.kernel.org \
--cc=gregkh@linuxfoundation.org \
--cc=klimov.linux@gmail.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®