On 14/06/15 06:49, Sagar Dharia wrote:
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.
The framework supports multiple instances of the bus (1 controller per
bus), and multiple slave devices per controller.
This patch does device enumeration, logical address assignment,
informing device when the device reports present/absent etc.
Reporting present may need the driver to do the needful (e.g. turning
on voltage regulators powering the device). So probe is called
if the device is added to board-info list for a controller.
Additionally device is probed when it reports present if that device
doesn't need any such steps mentioned above.
Signed-off-by: Sagar Dharia <sdharia@xxxxxxxxxxxxxx>
drivers/Kconfig | 2 +
drivers/Makefile | 1 +
drivers/slimbus/Kconfig | 9 +
drivers/slimbus/Makefile | 4 +
drivers/slimbus/slimbus.c | 767 ++++++++++++++++++++++++++++++++++++++++
include/linux/mod_devicetable.h | 13 +
include/linux/slimbus.h | 393 ++++++++++++++++++++
7 files changed, 1189 insertions(+)
create mode 100644 drivers/slimbus/Kconfig
create mode 100644 drivers/slimbus/Makefile
create mode 100644 drivers/slimbus/slimbus.c
create mode 100644 include/linux/slimbus.h
Good to see the slimbus patches :-)
Can you also add patch to add MAINTAINERS to this?
I like to try these patches on APQ8064 or any upstream Qcom platform, Do you have other patches to test this on APQ8064 or any A family SOCs/ B family SOCs which have upstream support?
Also I keep getting lost as I start looking at code, Am missing understanding of how these exported functions are going to be used by consumers/clients/controllers?
It would help if
1> document which explains how these apis are supposed to be used.
2> split up this patch into small patches, so that you can get good review comments.