[PATCH V4 0/6] Introduce framework for SLIMbus device drivers

From: Sagar Dharia
Date: Sat Feb 06 2016 - 13:44:49 EST


SLIMbus (Serial Low Power Interchip Media Bus) is a specification
developed by MIPI (Mobile Industry Processor Interface) alliance.
SLIMbus is a 2-wire implementation, which is used to communicate with
peripheral components like audio-codec.
SLIMbus uses Time-Division-Multiplexing to accommodate multiple data
channels, and control channel. Control channel has messages to do
device-enumeration, messages to send/receive control-data to/from
slimbus devices, messages for port/channel management, and messages to
do bandwidth allocation.
Framework is introduced to support multiple instances of the bus
(1 controller per bus), and multiple slave devices per controller.
SPI and I2C frameworks, and comments from last time when I submitted
the patches were referred-to while working on this framework.

These patchsets introduce device-management, OF helpers, and messaging
APIs, controller driver for Qualcomm's slimbus controller, and
clock-pause feature for entering/exiting low-power mode for SLIMbus.
Framework patches to do channel, port and bandwidth
management are work-in-progress and will be sent out soon.

These patchsets were tested on Qualcomm Snapdragon processor board
using the controller driver, and a test slave device.

Changes from V3 to V4:
* Addressed inline-code review comments from Mark Brown and Rob Herring.
* Use existing device-model to get list of children of the controller.
* Use 4 cells to represent 4 components of the enumeration address.
* Commit-text and comments to document performance arguments in using
coherently mapped buffers for transaction buffer management.
* Tried to address clock-pause management suggestion by making sure
bus-framework votes/unvotes for runtime-PM while handling transfers.

Sagar Dharia (6):
SLIMbus: Device management on SLIMbus
of/slimbus: OF helper for SLIMbus
slimbus: Add messaging APIs to slimbus framework
slim: qcom: Add Qualcomm Slimbus controller driver
slimbus: Add support for 'clock-pause' feature
slim: qcom: Add runtime-pm support using clock-pause feature

Documentation/devicetree/bindings/slimbus/bus.txt | 54 ++
.../devicetree/bindings/slimbus/slim-qcom-ctrl.txt | 43 ++
Documentation/slimbus/summary | 109 +++
drivers/Kconfig | 2 +
drivers/Makefile | 1 +
drivers/slimbus/Kconfig | 21 +
drivers/slimbus/Makefile | 5 +
drivers/slimbus/slim-core.c | 852 +++++++++++++++++++++
drivers/slimbus/slim-messaging.c | 415 ++++++++++
drivers/slimbus/slim-qcom-ctrl.c | 678 ++++++++++++++++
drivers/slimbus/slim-qcom.h | 64 ++
drivers/slimbus/slim-sched.c | 122 +++
include/linux/mod_devicetable.h | 13 +
include/linux/slimbus.h | 678 ++++++++++++++++
14 files changed, 3057 insertions(+)
create mode 100644 Documentation/devicetree/bindings/slimbus/bus.txt
create mode 100644 Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt
create mode 100644 Documentation/slimbus/summary
create mode 100644 drivers/slimbus/Kconfig
create mode 100644 drivers/slimbus/Makefile
create mode 100644 drivers/slimbus/slim-core.c
create mode 100644 drivers/slimbus/slim-messaging.c
create mode 100644 drivers/slimbus/slim-qcom-ctrl.c
create mode 100644 drivers/slimbus/slim-qcom.h
create mode 100644 drivers/slimbus/slim-sched.c
create mode 100644 include/linux/slimbus.h

--
1.8.2.1