On Thu, 22 Nov 2018 17:54:54 +0000
Vitor Soares <vitor.soares@xxxxxxxxxxxx> wrote:
From: Vitor Soares <soares@xxxxxxxxxxxx>Isn't it too early to do this change? Can't we wait until we have a SoC
This patch slipts dw-i3c-master.c into three pieces:
dw-i3c-master.c - contains the code that interacts directly with the
core in master mode.
dw-i3c-platdrv.c - contains the code specific to the platform driver.
dw-i3c-core.h - contains the definitions and declarations shared by
dw-i3c-master and dw-i3c-platdrv
This patch will allow SOC integrators to add their code specific to
DesignWare I3C IP.
that actually embeds this IP?
Signed-off-by: Vitor Soares <soares@xxxxxxxxxxxx>I'd prefer to have a dw/ subdir where you'd place all dw files.
---
drivers/i3c/master/Kconfig | 9 +-
drivers/i3c/master/Makefile | 5 +-
drivers/i3c/master/dw-i3c-core.h | 214 ++++++++++++++++++++++++++
drivers/i3c/master/dw-i3c-master.c | 299 ++----------------------------------
drivers/i3c/master/dw-i3c-platdrv.c | 112 ++++++++++++++
5 files changed, 349 insertions(+), 290 deletions(-)Do we really have to create one module for the core and one per SoC?
create mode 100644 drivers/i3c/master/dw-i3c-core.h
create mode 100644 drivers/i3c/master/dw-i3c-platdrv.c
diff --git a/drivers/i3c/master/Kconfig b/drivers/i3c/master/Kconfig
index 8ee1ce6..fdc6e46 100644
--- a/drivers/i3c/master/Kconfig
+++ b/drivers/i3c/master/Kconfig
@@ -5,9 +5,14 @@ config CDNS_I3C_MASTER
help
Enable this driver if you want to support Cadence I3C master block.
-config DW_I3C_MASTER
- tristate "Synospsys DesignWare I3C master driver"
+config DW_I3C_CORE
+ tristate
+
+config DW_I3C_PLATFORM
+ tristate "Synospsys DesignWare I3C Platform driver"
+ select DW_I3C_CORE
depends on I3C
+ depends on HAS_IOMEM
depends on !(ALPHA || PARISC)
# ALPHA and PARISC needs {read,write}sl()
help
diff --git a/drivers/i3c/master/Makefile b/drivers/i3c/master/Makefile
index fc53939..004ad1c 100644
--- a/drivers/i3c/master/Makefile
+++ b/drivers/i3c/master/Makefile
@@ -1,2 +1,5 @@
obj-$(CONFIG_CDNS_I3C_MASTER) += i3c-master-cdns.o
-obj-$(CONFIG_DW_I3C_MASTER) += dw-i3c-master.o
+obj-$(CONFIG_DW_I3C_CORE) += dw-i3c-core.o
+dw-i3c-core-objs := dw-i3c-master.o
+obj-$(CONFIG_DW_I3C_PLATFORM) += dw-i3c-platform.o
+dw-i3c-platform-objs := dw-i3c-platdrv.o
Can't we have everything in the same .ko?