[PATCH V2] i2c: move of helpers into the core
From: s.nawrocki@samsung.com (Sylwester Nawrocki)
Date: 2013-08-21 14:46:56
Also in:
linux-acpi, linux-i2c, linux-media, linux-omap, linux-samsung-soc, linux-tegra, linuxppc-dev, lkml
On 08/21/2013 03:47 PM, Wolfram Sang wrote:
I2C of helpers used to live in of_i2c.c but experience (from SPI) shows that it is much cleaner to have this in the core. This also removes a circular dependency between the helpers and the core, and so we can finally register child nodes in the core instead of doing this manually in each driver. So, fix the drivers and documentation, too. Acked-by: Sylwester Nawrocki <redacted> Acked-by: Rob Herring <redacted> Reviewed-by: Felipe Balbi <redacted> Acked-by: Rafael J. Wysocki <redacted> Signed-off-by: Wolfram Sang <redacted>
With this patch there are still couple of of_i2c.h header file inclusions: $ git grep of_i2c.h arch/powerpc/platforms/44x/warp.c:#include <linux/of_i2c.h> drivers/gpu/drm/tilcdc/tilcdc_slave.c:#include <linux/of_i2c.h> drivers/gpu/drm/tilcdc/tilcdc_tfp410.c:#include <linux/of_i2c.h> drivers/gpu/host1x/drm/output.c:#include <linux/of_i2c.h> drivers/media/platform/exynos4-is/fimc-is.c:#include <linux/of_i2c.h> drivers/media/platform/exynos4-is/media-dev.c:#include <linux/of_i2c.h> drivers/staging/imx-drm/imx-tve.c:#include <linux/of_i2c.h> sound/soc/fsl/imx-sgtl5000.c:#include <linux/of_i2c.h> sound/soc/fsl/imx-wm8962.c:#include <linux/of_i2c.h> Please include also this chunk, without it I'm getting build errors. --------------8<---------------------
diff --git a/drivers/media/platform/exynos4-is/fimc-is-i2c.cb/drivers/media/platform/exynos4-is/fimc-is-i2c.c index ca07b48..e38e9dc 100644
--- a/drivers/media/platform/exynos4-is/fimc-is-i2c.c
+++ b/drivers/media/platform/exynos4-is/fimc-is-i2c.c@@ -11,6 +11,7 @@ */ #include <linux/clk.h> +#include <linux/i2c.h> #include <linux/module.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h>
diff --git a/drivers/media/platform/exynos4-is/fimc-is.cb/drivers/media/platform/exynos4-is/fimc-is.c index 6743ae3..63e4f1d 100644
--- a/drivers/media/platform/exynos4-is/fimc-is.c
+++ b/drivers/media/platform/exynos4-is/fimc-is.c@@ -21,7 +21,6 @@ #include <linux/interrupt.h> #include <linux/kernel.h> #include <linux/module.h> -#include <linux/of_i2c.h> #include <linux/of_irq.h> #include <linux/of_address.h> #include <linux/of_platform.h>
diff --git a/drivers/media/platform/exynos4-is/media-dev.cb/drivers/media/platform/exynos4-is/media-dev.c index c10dee2..00e5f91 100644
--- a/drivers/media/platform/exynos4-is/media-dev.c
+++ b/drivers/media/platform/exynos4-is/media-dev.c@@ -22,7 +22,6 @@ #include <linux/of.h> #include <linux/of_platform.h> #include <linux/of_device.h> -#include <linux/of_i2c.h> #include <linux/platform_device.h> #include <linux/pm_runtime.h> #include <linux/types.h> --------------8<---------------------
--- V1 -> V2: * Add #else branch to #if CONFIG_OF * EXPORT_SYMBOLs got attached to wrong functions * cosmetic change (of -> OF) * properly based on 3.11-rc4 Documentation/acpi/enumeration.txt | 1 - drivers/i2c/busses/i2c-at91.c | 3 - drivers/i2c/busses/i2c-cpm.c | 6 -- drivers/i2c/busses/i2c-davinci.c | 2 - drivers/i2c/busses/i2c-designware-platdrv.c | 2 - drivers/i2c/busses/i2c-gpio.c | 3 - drivers/i2c/busses/i2c-i801.c | 2 - drivers/i2c/busses/i2c-ibm_iic.c | 4 - drivers/i2c/busses/i2c-imx.c | 3 - drivers/i2c/busses/i2c-mpc.c | 2 - drivers/i2c/busses/i2c-mv64xxx.c | 3 - drivers/i2c/busses/i2c-mxs.c | 3 - drivers/i2c/busses/i2c-nomadik.c | 3 - drivers/i2c/busses/i2c-ocores.c | 3 - drivers/i2c/busses/i2c-octeon.c | 3 - drivers/i2c/busses/i2c-omap.c | 3 - drivers/i2c/busses/i2c-pnx.c | 3 - drivers/i2c/busses/i2c-powermac.c | 9 +- drivers/i2c/busses/i2c-pxa.c | 2 - drivers/i2c/busses/i2c-s3c2410.c | 2 - drivers/i2c/busses/i2c-sh_mobile.c | 2 - drivers/i2c/busses/i2c-sirf.c | 3 - drivers/i2c/busses/i2c-stu300.c | 2 - drivers/i2c/busses/i2c-tegra.c | 3 - drivers/i2c/busses/i2c-versatile.c | 2 - drivers/i2c/busses/i2c-wmt.c | 3 - drivers/i2c/busses/i2c-xiic.c | 3 - drivers/i2c/i2c-core.c | 109 +++++++++++++++++++++- drivers/i2c/i2c-mux.c | 3 - drivers/i2c/muxes/i2c-arb-gpio-challenge.c | 1 - drivers/i2c/muxes/i2c-mux-gpio.c | 1 - drivers/i2c/muxes/i2c-mux-pinctrl.c | 1 - drivers/media/platform/exynos4-is/fimc-is-i2c.c | 3 - drivers/of/Kconfig | 6 -- drivers/of/Makefile | 1 - drivers/of/of_i2c.c | 114 ----------------------- include/linux/i2c.h | 20 ++++ include/linux/of_i2c.h | 46 --------- 38 files changed, 132 insertions(+), 253 deletions(-) delete mode 100644 drivers/of/of_i2c.c delete mode 100644 include/linux/of_i2c.h
I've tested this patch on Exynos4412 SoC based board, so this covers i2c-s3c2410 and fimc-is-i2c. Compiled with CONFIG_OF enabled. I guess after removing all remaining occurrences of #include <linux/of_i2c.h> you could add: Tested-by: Sylwester Nawrocki <s.nawrocki@samsung.com> -- Thanks, Sylwester