From mboxrd@z Thu Jan 1 00:00:00 1970 From: Sagar Dharia Subject: [PATCH V2 0/6] Introduce framework for SLIMbus device drivers Date: Tue, 16 Jun 2015 19:45:58 -0600 Message-ID: <1434505564-14333-1-git-send-email-sdharia@codeaurora.org> Return-path: Sender: linux-kernel-owner@vger.kernel.org To: gregkh@linuxfoundation.org, bp@suse.de, poeschel@lemonage.de, sdharia@codeaurora.org, treding@nvidia.com, broonie@kernel.org, gong.chen@linux.intel.com, andreas.noever@gmail.com, alan@linux.intel.com, mathieu.poirier@linaro.org, daniel@ffwll.ch, oded.gabbay@amd.com, jkosina@suse.cz, sharon.dvir1@mail.huji.ac.il, joe@perches.com, davem@davemloft.net, james.hogan@imgtec.com, michael.opdenacker@free-electrons.com, daniel.thompson@linaro.org, linux-kernel@vger.kernel.org Cc: nkaje@codeaurora.org, kheitke@audience.com, mlocke@codeaurora.org, agross@codeaurora.org, linux-arm-msm@vger.kernel.org List-Id: linux-arm-msm@vger.kernel.org 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, 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 a controller driver. Changes from V1 to V2: * Addressed inline-code review comments from Joe and Mark Brown. * Added initial binding document for slimbus * Added initial version of Qualcomm controller driver and initial binding document for it. * Added clock-pause feature for entering/exiting low power mode * Added runtime-pm to Qualcomm controller driver 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 | 34 + .../devicetree/bindings/slimbus/slim-qcom-ctrl.txt | 45 + drivers/Kconfig | 2 + drivers/Makefile | 1 + drivers/slimbus/Kconfig | 19 + drivers/slimbus/Makefile | 6 + drivers/slimbus/slim-qcom-ctrl.c | 852 ++++++++++++++ drivers/slimbus/slim-qcom.c | 96 ++ drivers/slimbus/slim-qcom.h | 90 ++ drivers/slimbus/slimbus.c | 1174 ++++++++++++++++++++ include/linux/mod_devicetable.h | 13 + include/linux/slimbus.h | 589 ++++++++++ 12 files changed, 2921 insertions(+) create mode 100644 Documentation/devicetree/bindings/slimbus/bus.txt create mode 100644 Documentation/devicetree/bindings/slimbus/slim-qcom-ctrl.txt create mode 100644 drivers/slimbus/Kconfig create mode 100644 drivers/slimbus/Makefile create mode 100644 drivers/slimbus/slim-qcom-ctrl.c create mode 100644 drivers/slimbus/slim-qcom.c create mode 100644 drivers/slimbus/slim-qcom.h create mode 100644 drivers/slimbus/slimbus.c create mode 100644 include/linux/slimbus.h -- 1.8.2.1