USB: misc: Add IPC bridge driver
USB IPC bridge driver acts as a transport layer for the IPC router.
The IPC router provides communication between APPS processor and
MODEM processor.
This driver manages an interface that is similar to USB CDC control
interface. A platform device with "ipc_bridge" name is created when
the MODEM USB is enumerated. The platform data is populated with
open, read, write and close function pointers. The suspend/resume
functionality is hidden from IPC router driver. The driver supports
auto suspend and ensures that USB is not suspended when a write/read
request is in progress. Platform device is unregistered when MODEM
USB is disconnected. IPC router driver is expected to synchronize
I/O with disconnect and close the channel from platform device removal
context.
The driver currently supports only one instance of IPC bridge. The
design is flexible and easily can be extended to support multiple
instances.
CRs-Fixed: 492801
Change-Id: Ida71a0d5d89d946c81eada8e9453cf55b2b06881
Signed-off-by: Pavankumar Kondeti <pkondeti@codeaurora.org>
diff --git a/drivers/usb/misc/Kconfig b/drivers/usb/misc/Kconfig
index 3aa2e5c..804d7cd 100644
--- a/drivers/usb/misc/Kconfig
+++ b/drivers/usb/misc/Kconfig
@@ -303,3 +303,12 @@
boot images, ram-dumps and efs sync
To compile this driver as a module, choose M here: the module
will be called ks_bridge. If unsure, choose N.
+
+config USB_QCOM_IPC_BRIDGE
+ tristate "USB Qualcomm IPC bridge bridge"
+ depends on USB
+ help
+ Say Y here if you have a Qualcomm modem device connected via USB that
+ will be bridged in kernel space. This driver works as a transport
+ layer for IPC router module that enables communication between
+ APPS processor and MODEM processor.