diff options
Diffstat (limited to 'drivers')
41 files changed, 116 insertions, 212 deletions
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_slave.c b/drivers/gpu/drm/tilcdc/tilcdc_slave.c index dfffaf014022..a19f657dfa59 100644 --- a/drivers/gpu/drm/tilcdc/tilcdc_slave.c +++ b/drivers/gpu/drm/tilcdc/tilcdc_slave.c | |||
@@ -16,7 +16,6 @@ | |||
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/i2c.h> | 18 | #include <linux/i2c.h> |
19 | #include <linux/of_i2c.h> | ||
20 | #include <linux/pinctrl/pinmux.h> | 19 | #include <linux/pinctrl/pinmux.h> |
21 | #include <linux/pinctrl/consumer.h> | 20 | #include <linux/pinctrl/consumer.h> |
22 | #include <drm/drm_encoder_slave.h> | 21 | #include <drm/drm_encoder_slave.h> |
diff --git a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c index 925c7cddeff9..c38b56b268ac 100644 --- a/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c +++ b/drivers/gpu/drm/tilcdc/tilcdc_tfp410.c | |||
@@ -16,7 +16,6 @@ | |||
16 | */ | 16 | */ |
17 | 17 | ||
18 | #include <linux/i2c.h> | 18 | #include <linux/i2c.h> |
19 | #include <linux/of_i2c.h> | ||
20 | #include <linux/gpio.h> | 19 | #include <linux/gpio.h> |
21 | #include <linux/of_gpio.h> | 20 | #include <linux/of_gpio.h> |
22 | #include <linux/pinctrl/pinmux.h> | 21 | #include <linux/pinctrl/pinmux.h> |
diff --git a/drivers/gpu/host1x/drm/output.c b/drivers/gpu/host1x/drm/output.c index 8140fc6c34d8..137ae81ab80e 100644 --- a/drivers/gpu/host1x/drm/output.c +++ b/drivers/gpu/host1x/drm/output.c | |||
@@ -9,7 +9,7 @@ | |||
9 | 9 | ||
10 | #include <linux/module.h> | 10 | #include <linux/module.h> |
11 | #include <linux/of_gpio.h> | 11 | #include <linux/of_gpio.h> |
12 | #include <linux/of_i2c.h> | 12 | #include <linux/i2c.h> |
13 | 13 | ||
14 | #include "drm.h" | 14 | #include "drm.h" |
15 | 15 | ||
diff --git a/drivers/i2c/busses/i2c-at91.c b/drivers/i2c/busses/i2c-at91.c index 6bb839b688be..fd059308affa 100644 --- a/drivers/i2c/busses/i2c-at91.c +++ b/drivers/i2c/busses/i2c-at91.c | |||
@@ -28,7 +28,6 @@ | |||
28 | #include <linux/module.h> | 28 | #include <linux/module.h> |
29 | #include <linux/of.h> | 29 | #include <linux/of.h> |
30 | #include <linux/of_device.h> | 30 | #include <linux/of_device.h> |
31 | #include <linux/of_i2c.h> | ||
32 | #include <linux/platform_device.h> | 31 | #include <linux/platform_device.h> |
33 | #include <linux/slab.h> | 32 | #include <linux/slab.h> |
34 | #include <linux/platform_data/dma-atmel.h> | 33 | #include <linux/platform_data/dma-atmel.h> |
@@ -775,8 +774,6 @@ static int at91_twi_probe(struct platform_device *pdev) | |||
775 | return rc; | 774 | return rc; |
776 | } | 775 | } |
777 | 776 | ||
778 | of_i2c_register_devices(&dev->adapter); | ||
779 | |||
780 | dev_info(dev->dev, "AT91 i2c bus driver.\n"); | 777 | dev_info(dev->dev, "AT91 i2c bus driver.\n"); |
781 | return 0; | 778 | return 0; |
782 | } | 779 | } |
diff --git a/drivers/i2c/busses/i2c-cpm.c b/drivers/i2c/busses/i2c-cpm.c index 2e1f7eb55bf4..b2b8aa9adc0e 100644 --- a/drivers/i2c/busses/i2c-cpm.c +++ b/drivers/i2c/busses/i2c-cpm.c | |||
@@ -42,7 +42,6 @@ | |||
42 | #include <linux/dma-mapping.h> | 42 | #include <linux/dma-mapping.h> |
43 | #include <linux/of_device.h> | 43 | #include <linux/of_device.h> |
44 | #include <linux/of_platform.h> | 44 | #include <linux/of_platform.h> |
45 | #include <linux/of_i2c.h> | ||
46 | #include <sysdev/fsl_soc.h> | 45 | #include <sysdev/fsl_soc.h> |
47 | #include <asm/cpm.h> | 46 | #include <asm/cpm.h> |
48 | 47 | ||
@@ -681,11 +680,6 @@ static int cpm_i2c_probe(struct platform_device *ofdev) | |||
681 | dev_dbg(&ofdev->dev, "hw routines for %s registered.\n", | 680 | dev_dbg(&ofdev->dev, "hw routines for %s registered.\n", |
682 | cpm->adap.name); | 681 | cpm->adap.name); |
683 | 682 | ||
684 | /* | ||
685 | * register OF I2C devices | ||
686 | */ | ||
687 | of_i2c_register_devices(&cpm->adap); | ||
688 | |||
689 | return 0; | 683 | return 0; |
690 | out_shut: | 684 | out_shut: |
691 | cpm_i2c_shutdown(cpm); | 685 | cpm_i2c_shutdown(cpm); |
diff --git a/drivers/i2c/busses/i2c-davinci.c b/drivers/i2c/busses/i2c-davinci.c index cf90bfff9676..57473415be10 100644 --- a/drivers/i2c/busses/i2c-davinci.c +++ b/drivers/i2c/busses/i2c-davinci.c | |||
@@ -38,7 +38,6 @@ | |||
38 | #include <linux/slab.h> | 38 | #include <linux/slab.h> |
39 | #include <linux/cpufreq.h> | 39 | #include <linux/cpufreq.h> |
40 | #include <linux/gpio.h> | 40 | #include <linux/gpio.h> |
41 | #include <linux/of_i2c.h> | ||
42 | #include <linux/of_device.h> | 41 | #include <linux/of_device.h> |
43 | #include <linux/platform_data/i2c-davinci.h> | 42 | #include <linux/platform_data/i2c-davinci.h> |
44 | 43 | ||
@@ -726,7 +725,6 @@ static int davinci_i2c_probe(struct platform_device *pdev) | |||
726 | dev_err(&pdev->dev, "failure adding adapter\n"); | 725 | dev_err(&pdev->dev, "failure adding adapter\n"); |
727 | goto err_unuse_clocks; | 726 | goto err_unuse_clocks; |
728 | } | 727 | } |
729 | of_i2c_register_devices(adap); | ||
730 | 728 | ||
731 | return 0; | 729 | return 0; |
732 | 730 | ||
diff --git a/drivers/i2c/busses/i2c-designware-platdrv.c b/drivers/i2c/busses/i2c-designware-platdrv.c index 64ffb908641c..ded77c3bd59c 100644 --- a/drivers/i2c/busses/i2c-designware-platdrv.c +++ b/drivers/i2c/busses/i2c-designware-platdrv.c | |||
@@ -35,7 +35,6 @@ | |||
35 | #include <linux/err.h> | 35 | #include <linux/err.h> |
36 | #include <linux/interrupt.h> | 36 | #include <linux/interrupt.h> |
37 | #include <linux/of.h> | 37 | #include <linux/of.h> |
38 | #include <linux/of_i2c.h> | ||
39 | #include <linux/platform_device.h> | 38 | #include <linux/platform_device.h> |
40 | #include <linux/pm.h> | 39 | #include <linux/pm.h> |
41 | #include <linux/pm_runtime.h> | 40 | #include <linux/pm_runtime.h> |
@@ -172,7 +171,6 @@ static int dw_i2c_probe(struct platform_device *pdev) | |||
172 | dev_err(&pdev->dev, "failure adding adapter\n"); | 171 | dev_err(&pdev->dev, "failure adding adapter\n"); |
173 | return r; | 172 | return r; |
174 | } | 173 | } |
175 | of_i2c_register_devices(adap); | ||
176 | acpi_i2c_register_devices(adap); | 174 | acpi_i2c_register_devices(adap); |
177 | 175 | ||
178 | pm_runtime_set_autosuspend_delay(&pdev->dev, 1000); | 176 | pm_runtime_set_autosuspend_delay(&pdev->dev, 1000); |
diff --git a/drivers/i2c/busses/i2c-gpio.c b/drivers/i2c/busses/i2c-gpio.c index 8cdb4f743e19..bfa02c6c2dda 100644 --- a/drivers/i2c/busses/i2c-gpio.c +++ b/drivers/i2c/busses/i2c-gpio.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/gpio.h> | 17 | #include <linux/gpio.h> |
18 | #include <linux/of_gpio.h> | 18 | #include <linux/of_gpio.h> |
19 | #include <linux/of_i2c.h> | ||
20 | 19 | ||
21 | struct i2c_gpio_private_data { | 20 | struct i2c_gpio_private_data { |
22 | struct i2c_adapter adap; | 21 | struct i2c_adapter adap; |
@@ -224,8 +223,6 @@ static int i2c_gpio_probe(struct platform_device *pdev) | |||
224 | if (ret) | 223 | if (ret) |
225 | goto err_add_bus; | 224 | goto err_add_bus; |
226 | 225 | ||
227 | of_i2c_register_devices(adap); | ||
228 | |||
229 | platform_set_drvdata(pdev, priv); | 226 | platform_set_drvdata(pdev, priv); |
230 | 227 | ||
231 | dev_info(&pdev->dev, "using pins %u (SDA) and %u (SCL%s)\n", | 228 | dev_info(&pdev->dev, "using pins %u (SDA) and %u (SCL%s)\n", |
diff --git a/drivers/i2c/busses/i2c-i801.c b/drivers/i2c/busses/i2c-i801.c index 4ebceed6bc66..4296d1721272 100644 --- a/drivers/i2c/busses/i2c-i801.c +++ b/drivers/i2c/busses/i2c-i801.c | |||
@@ -87,7 +87,6 @@ | |||
87 | #include <linux/slab.h> | 87 | #include <linux/slab.h> |
88 | #include <linux/wait.h> | 88 | #include <linux/wait.h> |
89 | #include <linux/err.h> | 89 | #include <linux/err.h> |
90 | #include <linux/of_i2c.h> | ||
91 | 90 | ||
92 | #if (defined CONFIG_I2C_MUX_GPIO || defined CONFIG_I2C_MUX_GPIO_MODULE) && \ | 91 | #if (defined CONFIG_I2C_MUX_GPIO || defined CONFIG_I2C_MUX_GPIO_MODULE) && \ |
93 | defined CONFIG_DMI | 92 | defined CONFIG_DMI |
@@ -1230,7 +1229,6 @@ static int i801_probe(struct pci_dev *dev, const struct pci_device_id *id) | |||
1230 | goto exit_free_irq; | 1229 | goto exit_free_irq; |
1231 | } | 1230 | } |
1232 | 1231 | ||
1233 | of_i2c_register_devices(&priv->adapter); | ||
1234 | i801_probe_optional_slaves(priv); | 1232 | i801_probe_optional_slaves(priv); |
1235 | /* We ignore errors - multiplexing is optional */ | 1233 | /* We ignore errors - multiplexing is optional */ |
1236 | i801_add_mux(priv); | 1234 | i801_add_mux(priv); |
diff --git a/drivers/i2c/busses/i2c-ibm_iic.c b/drivers/i2c/busses/i2c-ibm_iic.c index 973f51688276..ff3caa0c28cd 100644 --- a/drivers/i2c/busses/i2c-ibm_iic.c +++ b/drivers/i2c/busses/i2c-ibm_iic.c | |||
@@ -42,7 +42,6 @@ | |||
42 | #include <linux/io.h> | 42 | #include <linux/io.h> |
43 | #include <linux/i2c.h> | 43 | #include <linux/i2c.h> |
44 | #include <linux/of_platform.h> | 44 | #include <linux/of_platform.h> |
45 | #include <linux/of_i2c.h> | ||
46 | 45 | ||
47 | #include "i2c-ibm_iic.h" | 46 | #include "i2c-ibm_iic.h" |
48 | 47 | ||
@@ -759,9 +758,6 @@ static int iic_probe(struct platform_device *ofdev) | |||
759 | dev_info(&ofdev->dev, "using %s mode\n", | 758 | dev_info(&ofdev->dev, "using %s mode\n", |
760 | dev->fast_mode ? "fast (400 kHz)" : "standard (100 kHz)"); | 759 | dev->fast_mode ? "fast (400 kHz)" : "standard (100 kHz)"); |
761 | 760 | ||
762 | /* Now register all the child nodes */ | ||
763 | of_i2c_register_devices(adap); | ||
764 | |||
765 | return 0; | 761 | return 0; |
766 | 762 | ||
767 | error_cleanup: | 763 | error_cleanup: |
diff --git a/drivers/i2c/busses/i2c-imx.c b/drivers/i2c/busses/i2c-imx.c index a231d2fd91ce..ccf46656bdad 100644 --- a/drivers/i2c/busses/i2c-imx.c +++ b/drivers/i2c/busses/i2c-imx.c | |||
@@ -52,7 +52,6 @@ | |||
52 | #include <linux/slab.h> | 52 | #include <linux/slab.h> |
53 | #include <linux/of.h> | 53 | #include <linux/of.h> |
54 | #include <linux/of_device.h> | 54 | #include <linux/of_device.h> |
55 | #include <linux/of_i2c.h> | ||
56 | #include <linux/platform_data/i2c-imx.h> | 55 | #include <linux/platform_data/i2c-imx.h> |
57 | 56 | ||
58 | /** Defines ******************************************************************** | 57 | /** Defines ******************************************************************** |
@@ -682,8 +681,6 @@ static int __init i2c_imx_probe(struct platform_device *pdev) | |||
682 | return ret; | 681 | return ret; |
683 | } | 682 | } |
684 | 683 | ||
685 | of_i2c_register_devices(&i2c_imx->adapter); | ||
686 | |||
687 | /* Set up platform driver data */ | 684 | /* Set up platform driver data */ |
688 | platform_set_drvdata(pdev, i2c_imx); | 685 | platform_set_drvdata(pdev, i2c_imx); |
689 | clk_disable_unprepare(i2c_imx->clk); | 686 | clk_disable_unprepare(i2c_imx->clk); |
diff --git a/drivers/i2c/busses/i2c-mpc.c b/drivers/i2c/busses/i2c-mpc.c index ffac2145b94a..f4060939e959 100644 --- a/drivers/i2c/busses/i2c-mpc.c +++ b/drivers/i2c/busses/i2c-mpc.c | |||
@@ -18,7 +18,6 @@ | |||
18 | #include <linux/sched.h> | 18 | #include <linux/sched.h> |
19 | #include <linux/init.h> | 19 | #include <linux/init.h> |
20 | #include <linux/of_platform.h> | 20 | #include <linux/of_platform.h> |
21 | #include <linux/of_i2c.h> | ||
22 | #include <linux/slab.h> | 21 | #include <linux/slab.h> |
23 | 22 | ||
24 | #include <linux/io.h> | 23 | #include <linux/io.h> |
@@ -694,7 +693,6 @@ static int fsl_i2c_probe(struct platform_device *op) | |||
694 | dev_err(i2c->dev, "failed to add adapter\n"); | 693 | dev_err(i2c->dev, "failed to add adapter\n"); |
695 | goto fail_add; | 694 | goto fail_add; |
696 | } | 695 | } |
697 | of_i2c_register_devices(&i2c->adap); | ||
698 | 696 | ||
699 | return result; | 697 | return result; |
700 | 698 | ||
diff --git a/drivers/i2c/busses/i2c-mv64xxx.c b/drivers/i2c/busses/i2c-mv64xxx.c index bc60f9ac7c04..7f3a47443494 100644 --- a/drivers/i2c/busses/i2c-mv64xxx.c +++ b/drivers/i2c/busses/i2c-mv64xxx.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <linux/of.h> | 21 | #include <linux/of.h> |
22 | #include <linux/of_device.h> | 22 | #include <linux/of_device.h> |
23 | #include <linux/of_irq.h> | 23 | #include <linux/of_irq.h> |
24 | #include <linux/of_i2c.h> | ||
25 | #include <linux/clk.h> | 24 | #include <linux/clk.h> |
26 | #include <linux/err.h> | 25 | #include <linux/err.h> |
27 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
@@ -871,8 +870,6 @@ mv64xxx_i2c_probe(struct platform_device *pd) | |||
871 | goto exit_free_irq; | 870 | goto exit_free_irq; |
872 | } | 871 | } |
873 | 872 | ||
874 | of_i2c_register_devices(&drv_data->adapter); | ||
875 | |||
876 | return 0; | 873 | return 0; |
877 | 874 | ||
878 | exit_free_irq: | 875 | exit_free_irq: |
diff --git a/drivers/i2c/busses/i2c-mxs.c b/drivers/i2c/busses/i2c-mxs.c index 46cda0b02fd1..f4a01675fa71 100644 --- a/drivers/i2c/busses/i2c-mxs.c +++ b/drivers/i2c/busses/i2c-mxs.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include <linux/stmp_device.h> | 27 | #include <linux/stmp_device.h> |
28 | #include <linux/of.h> | 28 | #include <linux/of.h> |
29 | #include <linux/of_device.h> | 29 | #include <linux/of_device.h> |
30 | #include <linux/of_i2c.h> | ||
31 | #include <linux/dma-mapping.h> | 30 | #include <linux/dma-mapping.h> |
32 | #include <linux/dmaengine.h> | 31 | #include <linux/dmaengine.h> |
33 | 32 | ||
@@ -752,8 +751,6 @@ static int mxs_i2c_probe(struct platform_device *pdev) | |||
752 | return err; | 751 | return err; |
753 | } | 752 | } |
754 | 753 | ||
755 | of_i2c_register_devices(adap); | ||
756 | |||
757 | return 0; | 754 | return 0; |
758 | } | 755 | } |
759 | 756 | ||
diff --git a/drivers/i2c/busses/i2c-nomadik.c b/drivers/i2c/busses/i2c-nomadik.c index 1909e8073541..8bf9ac01301a 100644 --- a/drivers/i2c/busses/i2c-nomadik.c +++ b/drivers/i2c/busses/i2c-nomadik.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/pm_runtime.h> | 24 | #include <linux/pm_runtime.h> |
25 | #include <linux/platform_data/i2c-nomadik.h> | 25 | #include <linux/platform_data/i2c-nomadik.h> |
26 | #include <linux/of.h> | 26 | #include <linux/of.h> |
27 | #include <linux/of_i2c.h> | ||
28 | #include <linux/pinctrl/consumer.h> | 27 | #include <linux/pinctrl/consumer.h> |
29 | 28 | ||
30 | #define DRIVER_NAME "nmk-i2c" | 29 | #define DRIVER_NAME "nmk-i2c" |
@@ -1045,8 +1044,6 @@ static int nmk_i2c_probe(struct amba_device *adev, const struct amba_id *id) | |||
1045 | goto err_add_adap; | 1044 | goto err_add_adap; |
1046 | } | 1045 | } |
1047 | 1046 | ||
1048 | of_i2c_register_devices(adap); | ||
1049 | |||
1050 | pm_runtime_put(&adev->dev); | 1047 | pm_runtime_put(&adev->dev); |
1051 | 1048 | ||
1052 | return 0; | 1049 | return 0; |
diff --git a/drivers/i2c/busses/i2c-ocores.c b/drivers/i2c/busses/i2c-ocores.c index e14182cd87ff..c61f37a10a07 100644 --- a/drivers/i2c/busses/i2c-ocores.c +++ b/drivers/i2c/busses/i2c-ocores.c | |||
@@ -24,7 +24,6 @@ | |||
24 | #include <linux/i2c-ocores.h> | 24 | #include <linux/i2c-ocores.h> |
25 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
26 | #include <linux/io.h> | 26 | #include <linux/io.h> |
27 | #include <linux/of_i2c.h> | ||
28 | #include <linux/log2.h> | 27 | #include <linux/log2.h> |
29 | 28 | ||
30 | struct ocores_i2c { | 29 | struct ocores_i2c { |
@@ -432,8 +431,6 @@ static int ocores_i2c_probe(struct platform_device *pdev) | |||
432 | if (pdata) { | 431 | if (pdata) { |
433 | for (i = 0; i < pdata->num_devices; i++) | 432 | for (i = 0; i < pdata->num_devices; i++) |
434 | i2c_new_device(&i2c->adap, pdata->devices + i); | 433 | i2c_new_device(&i2c->adap, pdata->devices + i); |
435 | } else { | ||
436 | of_i2c_register_devices(&i2c->adap); | ||
437 | } | 434 | } |
438 | 435 | ||
439 | return 0; | 436 | return 0; |
diff --git a/drivers/i2c/busses/i2c-octeon.c b/drivers/i2c/busses/i2c-octeon.c index 956fe320f313..b929ba271b47 100644 --- a/drivers/i2c/busses/i2c-octeon.c +++ b/drivers/i2c/busses/i2c-octeon.c | |||
@@ -15,7 +15,6 @@ | |||
15 | #include <linux/interrupt.h> | 15 | #include <linux/interrupt.h> |
16 | #include <linux/kernel.h> | 16 | #include <linux/kernel.h> |
17 | #include <linux/module.h> | 17 | #include <linux/module.h> |
18 | #include <linux/of_i2c.h> | ||
19 | #include <linux/delay.h> | 18 | #include <linux/delay.h> |
20 | #include <linux/sched.h> | 19 | #include <linux/sched.h> |
21 | #include <linux/slab.h> | 20 | #include <linux/slab.h> |
@@ -599,8 +598,6 @@ static int octeon_i2c_probe(struct platform_device *pdev) | |||
599 | } | 598 | } |
600 | dev_info(i2c->dev, "version %s\n", DRV_VERSION); | 599 | dev_info(i2c->dev, "version %s\n", DRV_VERSION); |
601 | 600 | ||
602 | of_i2c_register_devices(&i2c->adap); | ||
603 | |||
604 | return 0; | 601 | return 0; |
605 | 602 | ||
606 | out: | 603 | out: |
diff --git a/drivers/i2c/busses/i2c-omap.c b/drivers/i2c/busses/i2c-omap.c index 9ccb7b9cb6fc..6d8308d5dc4e 100644 --- a/drivers/i2c/busses/i2c-omap.c +++ b/drivers/i2c/busses/i2c-omap.c | |||
@@ -38,7 +38,6 @@ | |||
38 | #include <linux/clk.h> | 38 | #include <linux/clk.h> |
39 | #include <linux/io.h> | 39 | #include <linux/io.h> |
40 | #include <linux/of.h> | 40 | #include <linux/of.h> |
41 | #include <linux/of_i2c.h> | ||
42 | #include <linux/of_device.h> | 41 | #include <linux/of_device.h> |
43 | #include <linux/slab.h> | 42 | #include <linux/slab.h> |
44 | #include <linux/i2c-omap.h> | 43 | #include <linux/i2c-omap.h> |
@@ -1231,8 +1230,6 @@ omap_i2c_probe(struct platform_device *pdev) | |||
1231 | dev_info(dev->dev, "bus %d rev%d.%d at %d kHz\n", adap->nr, | 1230 | dev_info(dev->dev, "bus %d rev%d.%d at %d kHz\n", adap->nr, |
1232 | major, minor, dev->speed); | 1231 | major, minor, dev->speed); |
1233 | 1232 | ||
1234 | of_i2c_register_devices(adap); | ||
1235 | |||
1236 | pm_runtime_mark_last_busy(dev->dev); | 1233 | pm_runtime_mark_last_busy(dev->dev); |
1237 | pm_runtime_put_autosuspend(dev->dev); | 1234 | pm_runtime_put_autosuspend(dev->dev); |
1238 | 1235 | ||
diff --git a/drivers/i2c/busses/i2c-pnx.c b/drivers/i2c/busses/i2c-pnx.c index 1713b3ee61f5..d09577a05d00 100644 --- a/drivers/i2c/busses/i2c-pnx.c +++ b/drivers/i2c/busses/i2c-pnx.c | |||
@@ -23,7 +23,6 @@ | |||
23 | #include <linux/err.h> | 23 | #include <linux/err.h> |
24 | #include <linux/clk.h> | 24 | #include <linux/clk.h> |
25 | #include <linux/slab.h> | 25 | #include <linux/slab.h> |
26 | #include <linux/of_i2c.h> | ||
27 | 26 | ||
28 | #define I2C_PNX_TIMEOUT_DEFAULT 10 /* msec */ | 27 | #define I2C_PNX_TIMEOUT_DEFAULT 10 /* msec */ |
29 | #define I2C_PNX_SPEED_KHZ_DEFAULT 100 | 28 | #define I2C_PNX_SPEED_KHZ_DEFAULT 100 |
@@ -741,8 +740,6 @@ static int i2c_pnx_probe(struct platform_device *pdev) | |||
741 | goto out_irq; | 740 | goto out_irq; |
742 | } | 741 | } |
743 | 742 | ||
744 | of_i2c_register_devices(&alg_data->adapter); | ||
745 | |||
746 | dev_dbg(&pdev->dev, "%s: Master at %#8x, irq %d.\n", | 743 | dev_dbg(&pdev->dev, "%s: Master at %#8x, irq %d.\n", |
747 | alg_data->adapter.name, res->start, alg_data->irq); | 744 | alg_data->adapter.name, res->start, alg_data->irq); |
748 | 745 | ||
diff --git a/drivers/i2c/busses/i2c-powermac.c b/drivers/i2c/busses/i2c-powermac.c index 06858d576552..37e8cfad625b 100644 --- a/drivers/i2c/busses/i2c-powermac.c +++ b/drivers/i2c/busses/i2c-powermac.c | |||
@@ -440,7 +440,9 @@ static int i2c_powermac_probe(struct platform_device *dev) | |||
440 | adapter->algo = &i2c_powermac_algorithm; | 440 | adapter->algo = &i2c_powermac_algorithm; |
441 | i2c_set_adapdata(adapter, bus); | 441 | i2c_set_adapdata(adapter, bus); |
442 | adapter->dev.parent = &dev->dev; | 442 | adapter->dev.parent = &dev->dev; |
443 | adapter->dev.of_node = dev->dev.of_node; | 443 | |
444 | /* Clear of_node to skip automatic registration of i2c child nodes */ | ||
445 | adapter->dev.of_node = NULL; | ||
444 | rc = i2c_add_adapter(adapter); | 446 | rc = i2c_add_adapter(adapter); |
445 | if (rc) { | 447 | if (rc) { |
446 | printk(KERN_ERR "i2c-powermac: Adapter %s registration " | 448 | printk(KERN_ERR "i2c-powermac: Adapter %s registration " |
@@ -451,9 +453,8 @@ static int i2c_powermac_probe(struct platform_device *dev) | |||
451 | 453 | ||
452 | printk(KERN_INFO "PowerMac i2c bus %s registered\n", adapter->name); | 454 | printk(KERN_INFO "PowerMac i2c bus %s registered\n", adapter->name); |
453 | 455 | ||
454 | /* Cannot use of_i2c_register_devices() due to Apple device-tree | 456 | /* Use custom child registration due to Apple device-tree funkyness */ |
455 | * funkyness | 457 | adapter->dev.of_node = dev->dev.of_node; |
456 | */ | ||
457 | i2c_powermac_register_devices(adapter, bus); | 458 | i2c_powermac_register_devices(adapter, bus); |
458 | 459 | ||
459 | return 0; | 460 | return 0; |
diff --git a/drivers/i2c/busses/i2c-pxa.c b/drivers/i2c/busses/i2c-pxa.c index 3dbc1acdc28a..bbe6dfbc5c05 100644 --- a/drivers/i2c/busses/i2c-pxa.c +++ b/drivers/i2c/busses/i2c-pxa.c | |||
@@ -31,7 +31,6 @@ | |||
31 | #include <linux/i2c-pxa.h> | 31 | #include <linux/i2c-pxa.h> |
32 | #include <linux/of.h> | 32 | #include <linux/of.h> |
33 | #include <linux/of_device.h> | 33 | #include <linux/of_device.h> |
34 | #include <linux/of_i2c.h> | ||
35 | #include <linux/platform_device.h> | 34 | #include <linux/platform_device.h> |
36 | #include <linux/err.h> | 35 | #include <linux/err.h> |
37 | #include <linux/clk.h> | 36 | #include <linux/clk.h> |
@@ -1247,7 +1246,6 @@ static int i2c_pxa_probe(struct platform_device *dev) | |||
1247 | printk(KERN_INFO "I2C: Failed to add bus\n"); | 1246 | printk(KERN_INFO "I2C: Failed to add bus\n"); |
1248 | goto eadapt; | 1247 | goto eadapt; |
1249 | } | 1248 | } |
1250 | of_i2c_register_devices(&i2c->adap); | ||
1251 | 1249 | ||
1252 | platform_set_drvdata(dev, i2c); | 1250 | platform_set_drvdata(dev, i2c); |
1253 | 1251 | ||
diff --git a/drivers/i2c/busses/i2c-s3c2410.c b/drivers/i2c/busses/i2c-s3c2410.c index 0a077b1ef94f..3535f3c0f7b4 100644 --- a/drivers/i2c/busses/i2c-s3c2410.c +++ b/drivers/i2c/busses/i2c-s3c2410.c | |||
@@ -36,7 +36,6 @@ | |||
36 | #include <linux/cpufreq.h> | 36 | #include <linux/cpufreq.h> |
37 | #include <linux/slab.h> | 37 | #include <linux/slab.h> |
38 | #include <linux/io.h> | 38 | #include <linux/io.h> |
39 | #include <linux/of_i2c.h> | ||
40 | #include <linux/of_gpio.h> | 39 | #include <linux/of_gpio.h> |
41 | #include <linux/pinctrl/consumer.h> | 40 | #include <linux/pinctrl/consumer.h> |
42 | 41 | ||
@@ -1154,7 +1153,6 @@ static int s3c24xx_i2c_probe(struct platform_device *pdev) | |||
1154 | return ret; | 1153 | return ret; |
1155 | } | 1154 | } |
1156 | 1155 | ||
1157 | of_i2c_register_devices(&i2c->adap); | ||
1158 | platform_set_drvdata(pdev, i2c); | 1156 | platform_set_drvdata(pdev, i2c); |
1159 | 1157 | ||
1160 | pm_runtime_enable(&pdev->dev); | 1158 | pm_runtime_enable(&pdev->dev); |
diff --git a/drivers/i2c/busses/i2c-sh_mobile.c b/drivers/i2c/busses/i2c-sh_mobile.c index 4e86a3190d46..55110ddbed1f 100644 --- a/drivers/i2c/busses/i2c-sh_mobile.c +++ b/drivers/i2c/busses/i2c-sh_mobile.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include <linux/platform_device.h> | 27 | #include <linux/platform_device.h> |
28 | #include <linux/interrupt.h> | 28 | #include <linux/interrupt.h> |
29 | #include <linux/i2c.h> | 29 | #include <linux/i2c.h> |
30 | #include <linux/of_i2c.h> | ||
31 | #include <linux/err.h> | 30 | #include <linux/err.h> |
32 | #include <linux/pm_runtime.h> | 31 | #include <linux/pm_runtime.h> |
33 | #include <linux/clk.h> | 32 | #include <linux/clk.h> |
@@ -758,7 +757,6 @@ static int sh_mobile_i2c_probe(struct platform_device *dev) | |||
758 | "I2C adapter %d with bus speed %lu Hz (L/H=%x/%x)\n", | 757 | "I2C adapter %d with bus speed %lu Hz (L/H=%x/%x)\n", |
759 | adap->nr, pd->bus_speed, pd->iccl, pd->icch); | 758 | adap->nr, pd->bus_speed, pd->iccl, pd->icch); |
760 | 759 | ||
761 | of_i2c_register_devices(adap); | ||
762 | return 0; | 760 | return 0; |
763 | 761 | ||
764 | err_all: | 762 | err_all: |
diff --git a/drivers/i2c/busses/i2c-sirf.c b/drivers/i2c/busses/i2c-sirf.c index a63c7d506836..0ff22e29e7df 100644 --- a/drivers/i2c/busses/i2c-sirf.c +++ b/drivers/i2c/busses/i2c-sirf.c | |||
@@ -12,7 +12,6 @@ | |||
12 | #include <linux/slab.h> | 12 | #include <linux/slab.h> |
13 | #include <linux/platform_device.h> | 13 | #include <linux/platform_device.h> |
14 | #include <linux/i2c.h> | 14 | #include <linux/i2c.h> |
15 | #include <linux/of_i2c.h> | ||
16 | #include <linux/clk.h> | 15 | #include <linux/clk.h> |
17 | #include <linux/err.h> | 16 | #include <linux/err.h> |
18 | #include <linux/io.h> | 17 | #include <linux/io.h> |
@@ -366,8 +365,6 @@ static int i2c_sirfsoc_probe(struct platform_device *pdev) | |||
366 | 365 | ||
367 | clk_disable(clk); | 366 | clk_disable(clk); |
368 | 367 | ||
369 | of_i2c_register_devices(adap); | ||
370 | |||
371 | dev_info(&pdev->dev, " I2C adapter ready to operate\n"); | 368 | dev_info(&pdev->dev, " I2C adapter ready to operate\n"); |
372 | 369 | ||
373 | return 0; | 370 | return 0; |
diff --git a/drivers/i2c/busses/i2c-stu300.c b/drivers/i2c/busses/i2c-stu300.c index 19a40afaf172..f8f6f2e552db 100644 --- a/drivers/i2c/busses/i2c-stu300.c +++ b/drivers/i2c/busses/i2c-stu300.c | |||
@@ -17,7 +17,6 @@ | |||
17 | #include <linux/clk.h> | 17 | #include <linux/clk.h> |
18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
19 | #include <linux/slab.h> | 19 | #include <linux/slab.h> |
20 | #include <linux/of_i2c.h> | ||
21 | 20 | ||
22 | /* the name of this kernel module */ | 21 | /* the name of this kernel module */ |
23 | #define NAME "stu300" | 22 | #define NAME "stu300" |
@@ -933,7 +932,6 @@ stu300_probe(struct platform_device *pdev) | |||
933 | platform_set_drvdata(pdev, dev); | 932 | platform_set_drvdata(pdev, dev); |
934 | dev_info(&pdev->dev, "ST DDC I2C @ %p, irq %d\n", | 933 | dev_info(&pdev->dev, "ST DDC I2C @ %p, irq %d\n", |
935 | dev->virtbase, dev->irq); | 934 | dev->virtbase, dev->irq); |
936 | of_i2c_register_devices(adap); | ||
937 | 935 | ||
938 | return 0; | 936 | return 0; |
939 | } | 937 | } |
diff --git a/drivers/i2c/busses/i2c-tegra.c b/drivers/i2c/busses/i2c-tegra.c index 9aa1b60f7fdd..c457cb447c66 100644 --- a/drivers/i2c/busses/i2c-tegra.c +++ b/drivers/i2c/busses/i2c-tegra.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <linux/interrupt.h> | 25 | #include <linux/interrupt.h> |
26 | #include <linux/delay.h> | 26 | #include <linux/delay.h> |
27 | #include <linux/slab.h> | 27 | #include <linux/slab.h> |
28 | #include <linux/of_i2c.h> | ||
29 | #include <linux/of_device.h> | 28 | #include <linux/of_device.h> |
30 | #include <linux/module.h> | 29 | #include <linux/module.h> |
31 | #include <linux/clk/tegra.h> | 30 | #include <linux/clk/tegra.h> |
@@ -802,8 +801,6 @@ static int tegra_i2c_probe(struct platform_device *pdev) | |||
802 | return ret; | 801 | return ret; |
803 | } | 802 | } |
804 | 803 | ||
805 | of_i2c_register_devices(&i2c_dev->adapter); | ||
806 | |||
807 | return 0; | 804 | return 0; |
808 | } | 805 | } |
809 | 806 | ||
diff --git a/drivers/i2c/busses/i2c-versatile.c b/drivers/i2c/busses/i2c-versatile.c index f3a8790a07e8..6bb3a89a440f 100644 --- a/drivers/i2c/busses/i2c-versatile.c +++ b/drivers/i2c/busses/i2c-versatile.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/slab.h> | 17 | #include <linux/slab.h> |
18 | #include <linux/io.h> | 18 | #include <linux/io.h> |
19 | #include <linux/of_i2c.h> | ||
20 | 19 | ||
21 | #define I2C_CONTROL 0x00 | 20 | #define I2C_CONTROL 0x00 |
22 | #define I2C_CONTROLS 0x00 | 21 | #define I2C_CONTROLS 0x00 |
@@ -108,7 +107,6 @@ static int i2c_versatile_probe(struct platform_device *dev) | |||
108 | ret = i2c_bit_add_numbered_bus(&i2c->adap); | 107 | ret = i2c_bit_add_numbered_bus(&i2c->adap); |
109 | if (ret >= 0) { | 108 | if (ret >= 0) { |
110 | platform_set_drvdata(dev, i2c); | 109 | platform_set_drvdata(dev, i2c); |
111 | of_i2c_register_devices(&i2c->adap); | ||
112 | return 0; | 110 | return 0; |
113 | } | 111 | } |
114 | 112 | ||
diff --git a/drivers/i2c/busses/i2c-wmt.c b/drivers/i2c/busses/i2c-wmt.c index baaa7d15b73e..c65da3d913a0 100644 --- a/drivers/i2c/busses/i2c-wmt.c +++ b/drivers/i2c/busses/i2c-wmt.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <linux/module.h> | 21 | #include <linux/module.h> |
22 | #include <linux/of.h> | 22 | #include <linux/of.h> |
23 | #include <linux/of_address.h> | 23 | #include <linux/of_address.h> |
24 | #include <linux/of_i2c.h> | ||
25 | #include <linux/of_irq.h> | 24 | #include <linux/of_irq.h> |
26 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
27 | 26 | ||
@@ -439,8 +438,6 @@ static int wmt_i2c_probe(struct platform_device *pdev) | |||
439 | 438 | ||
440 | platform_set_drvdata(pdev, i2c_dev); | 439 | platform_set_drvdata(pdev, i2c_dev); |
441 | 440 | ||
442 | of_i2c_register_devices(adap); | ||
443 | |||
444 | return 0; | 441 | return 0; |
445 | } | 442 | } |
446 | 443 | ||
diff --git a/drivers/i2c/busses/i2c-xiic.c b/drivers/i2c/busses/i2c-xiic.c index 433f377b3869..4c8b368d463b 100644 --- a/drivers/i2c/busses/i2c-xiic.c +++ b/drivers/i2c/busses/i2c-xiic.c | |||
@@ -40,7 +40,6 @@ | |||
40 | #include <linux/i2c-xiic.h> | 40 | #include <linux/i2c-xiic.h> |
41 | #include <linux/io.h> | 41 | #include <linux/io.h> |
42 | #include <linux/slab.h> | 42 | #include <linux/slab.h> |
43 | #include <linux/of_i2c.h> | ||
44 | 43 | ||
45 | #define DRIVER_NAME "xiic-i2c" | 44 | #define DRIVER_NAME "xiic-i2c" |
46 | 45 | ||
@@ -752,8 +751,6 @@ static int xiic_i2c_probe(struct platform_device *pdev) | |||
752 | i2c_new_device(&i2c->adap, pdata->devices + i); | 751 | i2c_new_device(&i2c->adap, pdata->devices + i); |
753 | } | 752 | } |
754 | 753 | ||
755 | of_i2c_register_devices(&i2c->adap); | ||
756 | |||
757 | return 0; | 754 | return 0; |
758 | 755 | ||
759 | add_adapter_failed: | 756 | add_adapter_failed: |
diff --git a/drivers/i2c/i2c-core.c b/drivers/i2c/i2c-core.c index 3d9ca2d3d77e..e874b052b4f8 100644 --- a/drivers/i2c/i2c-core.c +++ b/drivers/i2c/i2c-core.c | |||
@@ -23,7 +23,11 @@ | |||
23 | SMBus 2.0 support by Mark Studebaker <mdsxyz123@yahoo.com> and | 23 | SMBus 2.0 support by Mark Studebaker <mdsxyz123@yahoo.com> and |
24 | Jean Delvare <khali@linux-fr.org> | 24 | Jean Delvare <khali@linux-fr.org> |
25 | Mux support by Rodolfo Giometti <giometti@enneenne.com> and | 25 | Mux support by Rodolfo Giometti <giometti@enneenne.com> and |
26 | Michael Lawnick <michael.lawnick.ext@nsn.com> */ | 26 | Michael Lawnick <michael.lawnick.ext@nsn.com> |
27 | OF support is copyright (c) 2008 Jochen Friedrich <jochen@scram.de> | ||
28 | (based on a previous patch from Jon Smirl <jonsmirl@gmail.com>) and | ||
29 | (c) 2013 Wolfram Sang <wsa@the-dreams.de> | ||
30 | */ | ||
27 | 31 | ||
28 | #include <linux/module.h> | 32 | #include <linux/module.h> |
29 | #include <linux/kernel.h> | 33 | #include <linux/kernel.h> |
@@ -35,7 +39,9 @@ | |||
35 | #include <linux/init.h> | 39 | #include <linux/init.h> |
36 | #include <linux/idr.h> | 40 | #include <linux/idr.h> |
37 | #include <linux/mutex.h> | 41 | #include <linux/mutex.h> |
42 | #include <linux/of.h> | ||
38 | #include <linux/of_device.h> | 43 | #include <linux/of_device.h> |
44 | #include <linux/of_irq.h> | ||
39 | #include <linux/completion.h> | 45 | #include <linux/completion.h> |
40 | #include <linux/hardirq.h> | 46 | #include <linux/hardirq.h> |
41 | #include <linux/irqflags.h> | 47 | #include <linux/irqflags.h> |
@@ -954,6 +960,104 @@ static void i2c_scan_static_board_info(struct i2c_adapter *adapter) | |||
954 | up_read(&__i2c_board_lock); | 960 | up_read(&__i2c_board_lock); |
955 | } | 961 | } |
956 | 962 | ||
963 | /* OF support code */ | ||
964 | |||
965 | #if IS_ENABLED(CONFIG_OF) | ||
966 | static void of_i2c_register_devices(struct i2c_adapter *adap) | ||
967 | { | ||
968 | void *result; | ||
969 | struct device_node *node; | ||
970 | |||
971 | /* Only register child devices if the adapter has a node pointer set */ | ||
972 | if (!adap->dev.of_node) | ||
973 | return; | ||
974 | |||
975 | dev_dbg(&adap->dev, "of_i2c: walking child nodes\n"); | ||
976 | |||
977 | for_each_available_child_of_node(adap->dev.of_node, node) { | ||
978 | struct i2c_board_info info = {}; | ||
979 | struct dev_archdata dev_ad = {}; | ||
980 | const __be32 *addr; | ||
981 | int len; | ||
982 | |||
983 | dev_dbg(&adap->dev, "of_i2c: register %s\n", node->full_name); | ||
984 | |||
985 | if (of_modalias_node(node, info.type, sizeof(info.type)) < 0) { | ||
986 | dev_err(&adap->dev, "of_i2c: modalias failure on %s\n", | ||
987 | node->full_name); | ||
988 | continue; | ||
989 | } | ||
990 | |||
991 | addr = of_get_property(node, "reg", &len); | ||
992 | if (!addr || (len < sizeof(int))) { | ||
993 | dev_err(&adap->dev, "of_i2c: invalid reg on %s\n", | ||
994 | node->full_name); | ||
995 | continue; | ||
996 | } | ||
997 | |||
998 | info.addr = be32_to_cpup(addr); | ||
999 | if (info.addr > (1 << 10) - 1) { | ||
1000 | dev_err(&adap->dev, "of_i2c: invalid addr=%x on %s\n", | ||
1001 | info.addr, node->full_name); | ||
1002 | continue; | ||
1003 | } | ||
1004 | |||
1005 | info.irq = irq_of_parse_and_map(node, 0); | ||
1006 | info.of_node = of_node_get(node); | ||
1007 | info.archdata = &dev_ad; | ||
1008 | |||
1009 | if (of_get_property(node, "wakeup-source", NULL)) | ||
1010 | info.flags |= I2C_CLIENT_WAKE; | ||
1011 | |||
1012 | request_module("%s%s", I2C_MODULE_PREFIX, info.type); | ||
1013 | |||
1014 | result = i2c_new_device(adap, &info); | ||
1015 | if (result == NULL) { | ||
1016 | dev_err(&adap->dev, "of_i2c: Failure registering %s\n", | ||
1017 | node->full_name); | ||
1018 | of_node_put(node); | ||
1019 | irq_dispose_mapping(info.irq); | ||
1020 | continue; | ||
1021 | } | ||
1022 | } | ||
1023 | } | ||
1024 | |||
1025 | static int of_dev_node_match(struct device *dev, void *data) | ||
1026 | { | ||
1027 | return dev->of_node == data; | ||
1028 | } | ||
1029 | |||
1030 | /* must call put_device() when done with returned i2c_client device */ | ||
1031 | struct i2c_client *of_find_i2c_device_by_node(struct device_node *node) | ||
1032 | { | ||
1033 | struct device *dev; | ||
1034 | |||
1035 | dev = bus_find_device(&i2c_bus_type, NULL, node, | ||
1036 | of_dev_node_match); | ||
1037 | if (!dev) | ||
1038 | return NULL; | ||
1039 | |||
1040 | return i2c_verify_client(dev); | ||
1041 | } | ||
1042 | EXPORT_SYMBOL(of_find_i2c_device_by_node); | ||
1043 | |||
1044 | /* must call put_device() when done with returned i2c_adapter device */ | ||
1045 | struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node *node) | ||
1046 | { | ||
1047 | struct device *dev; | ||
1048 | |||
1049 | dev = bus_find_device(&i2c_bus_type, NULL, node, | ||
1050 | of_dev_node_match); | ||
1051 | if (!dev) | ||
1052 | return NULL; | ||
1053 | |||
1054 | return i2c_verify_adapter(dev); | ||
1055 | } | ||
1056 | EXPORT_SYMBOL(of_find_i2c_adapter_by_node); | ||
1057 | #else | ||
1058 | static void of_i2c_register_devices(struct i2c_adapter *adap) { } | ||
1059 | #endif /* CONFIG_OF */ | ||
1060 | |||
957 | static int i2c_do_add_adapter(struct i2c_driver *driver, | 1061 | static int i2c_do_add_adapter(struct i2c_driver *driver, |
958 | struct i2c_adapter *adap) | 1062 | struct i2c_adapter *adap) |
959 | { | 1063 | { |
@@ -1058,6 +1162,8 @@ static int i2c_register_adapter(struct i2c_adapter *adap) | |||
1058 | 1162 | ||
1059 | exit_recovery: | 1163 | exit_recovery: |
1060 | /* create pre-declared device nodes */ | 1164 | /* create pre-declared device nodes */ |
1165 | of_i2c_register_devices(adap); | ||
1166 | |||
1061 | if (adap->nr < __i2c_first_dynamic_bus_num) | 1167 | if (adap->nr < __i2c_first_dynamic_bus_num) |
1062 | i2c_scan_static_board_info(adap); | 1168 | i2c_scan_static_board_info(adap); |
1063 | 1169 | ||
@@ -1282,7 +1388,6 @@ void i2c_del_adapter(struct i2c_adapter *adap) | |||
1282 | } | 1388 | } |
1283 | EXPORT_SYMBOL(i2c_del_adapter); | 1389 | EXPORT_SYMBOL(i2c_del_adapter); |
1284 | 1390 | ||
1285 | |||
1286 | /* ------------------------------------------------------------------------- */ | 1391 | /* ------------------------------------------------------------------------- */ |
1287 | 1392 | ||
1288 | int i2c_for_each_dev(void *data, int (*fn)(struct device *, void *)) | 1393 | int i2c_for_each_dev(void *data, int (*fn)(struct device *, void *)) |
diff --git a/drivers/i2c/i2c-mux.c b/drivers/i2c/i2c-mux.c index 7409ebb33c47..797e3117bef7 100644 --- a/drivers/i2c/i2c-mux.c +++ b/drivers/i2c/i2c-mux.c | |||
@@ -25,7 +25,6 @@ | |||
25 | #include <linux/i2c.h> | 25 | #include <linux/i2c.h> |
26 | #include <linux/i2c-mux.h> | 26 | #include <linux/i2c-mux.h> |
27 | #include <linux/of.h> | 27 | #include <linux/of.h> |
28 | #include <linux/of_i2c.h> | ||
29 | 28 | ||
30 | /* multiplexer per channel data */ | 29 | /* multiplexer per channel data */ |
31 | struct i2c_mux_priv { | 30 | struct i2c_mux_priv { |
@@ -185,8 +184,6 @@ struct i2c_adapter *i2c_add_mux_adapter(struct i2c_adapter *parent, | |||
185 | dev_info(&parent->dev, "Added multiplexed i2c bus %d\n", | 184 | dev_info(&parent->dev, "Added multiplexed i2c bus %d\n", |
186 | i2c_adapter_id(&priv->adap)); | 185 | i2c_adapter_id(&priv->adap)); |
187 | 186 | ||
188 | of_i2c_register_devices(&priv->adap); | ||
189 | |||
190 | return &priv->adap; | 187 | return &priv->adap; |
191 | } | 188 | } |
192 | EXPORT_SYMBOL_GPL(i2c_add_mux_adapter); | 189 | EXPORT_SYMBOL_GPL(i2c_add_mux_adapter); |
diff --git a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c index f7bf24375f81..74b41ae690f3 100644 --- a/drivers/i2c/muxes/i2c-arb-gpio-challenge.c +++ b/drivers/i2c/muxes/i2c-arb-gpio-challenge.c | |||
@@ -21,7 +21,6 @@ | |||
21 | #include <linux/i2c-mux.h> | 21 | #include <linux/i2c-mux.h> |
22 | #include <linux/init.h> | 22 | #include <linux/init.h> |
23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
24 | #include <linux/of_i2c.h> | ||
25 | #include <linux/of_gpio.h> | 24 | #include <linux/of_gpio.h> |
26 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
27 | #include <linux/slab.h> | 26 | #include <linux/slab.h> |
diff --git a/drivers/i2c/muxes/i2c-mux-gpio.c b/drivers/i2c/muxes/i2c-mux-gpio.c index 6a206e8d58f4..5d4a99ba743e 100644 --- a/drivers/i2c/muxes/i2c-mux-gpio.c +++ b/drivers/i2c/muxes/i2c-mux-gpio.c | |||
@@ -16,7 +16,6 @@ | |||
16 | #include <linux/module.h> | 16 | #include <linux/module.h> |
17 | #include <linux/slab.h> | 17 | #include <linux/slab.h> |
18 | #include <linux/gpio.h> | 18 | #include <linux/gpio.h> |
19 | #include <linux/of_i2c.h> | ||
20 | #include <linux/of_gpio.h> | 19 | #include <linux/of_gpio.h> |
21 | 20 | ||
22 | struct gpiomux { | 21 | struct gpiomux { |
diff --git a/drivers/i2c/muxes/i2c-mux-pinctrl.c b/drivers/i2c/muxes/i2c-mux-pinctrl.c index 0d082027c29a..69a91732ae65 100644 --- a/drivers/i2c/muxes/i2c-mux-pinctrl.c +++ b/drivers/i2c/muxes/i2c-mux-pinctrl.c | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <linux/i2c-mux.h> | 20 | #include <linux/i2c-mux.h> |
21 | #include <linux/init.h> | 21 | #include <linux/init.h> |
22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
23 | #include <linux/of_i2c.h> | ||
24 | #include <linux/pinctrl/consumer.h> | 23 | #include <linux/pinctrl/consumer.h> |
25 | #include <linux/i2c-mux-pinctrl.h> | 24 | #include <linux/i2c-mux-pinctrl.h> |
26 | #include <linux/platform_device.h> | 25 | #include <linux/platform_device.h> |
diff --git a/drivers/media/platform/exynos4-is/fimc-is-i2c.c b/drivers/media/platform/exynos4-is/fimc-is-i2c.c index 617a798d9235..993055605214 100644 --- a/drivers/media/platform/exynos4-is/fimc-is-i2c.c +++ b/drivers/media/platform/exynos4-is/fimc-is-i2c.c | |||
@@ -12,7 +12,7 @@ | |||
12 | 12 | ||
13 | #include <linux/clk.h> | 13 | #include <linux/clk.h> |
14 | #include <linux/module.h> | 14 | #include <linux/module.h> |
15 | #include <linux/of_i2c.h> | 15 | #include <linux/i2c.h> |
16 | #include <linux/platform_device.h> | 16 | #include <linux/platform_device.h> |
17 | #include <linux/pm_runtime.h> | 17 | #include <linux/pm_runtime.h> |
18 | #include <linux/slab.h> | 18 | #include <linux/slab.h> |
@@ -67,8 +67,6 @@ static int fimc_is_i2c_probe(struct platform_device *pdev) | |||
67 | pm_runtime_enable(&pdev->dev); | 67 | pm_runtime_enable(&pdev->dev); |
68 | pm_runtime_enable(&i2c_adap->dev); | 68 | pm_runtime_enable(&i2c_adap->dev); |
69 | 69 | ||
70 | of_i2c_register_devices(i2c_adap); | ||
71 | |||
72 | return 0; | 70 | return 0; |
73 | } | 71 | } |
74 | 72 | ||
diff --git a/drivers/media/platform/exynos4-is/fimc-is.c b/drivers/media/platform/exynos4-is/fimc-is.c index 967f6a939340..2276fdc213c5 100644 --- a/drivers/media/platform/exynos4-is/fimc-is.c +++ b/drivers/media/platform/exynos4-is/fimc-is.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #include <linux/interrupt.h> | 21 | #include <linux/interrupt.h> |
22 | #include <linux/kernel.h> | 22 | #include <linux/kernel.h> |
23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
24 | #include <linux/of_i2c.h> | 24 | #include <linux/i2c.h> |
25 | #include <linux/of_irq.h> | 25 | #include <linux/of_irq.h> |
26 | #include <linux/of_address.h> | 26 | #include <linux/of_address.h> |
27 | #include <linux/of_platform.h> | 27 | #include <linux/of_platform.h> |
diff --git a/drivers/media/platform/exynos4-is/media-dev.c b/drivers/media/platform/exynos4-is/media-dev.c index 19f556c5957f..f8c66b434fd6 100644 --- a/drivers/media/platform/exynos4-is/media-dev.c +++ b/drivers/media/platform/exynos4-is/media-dev.c | |||
@@ -20,7 +20,6 @@ | |||
20 | #include <linux/of.h> | 20 | #include <linux/of.h> |
21 | #include <linux/of_platform.h> | 21 | #include <linux/of_platform.h> |
22 | #include <linux/of_device.h> | 22 | #include <linux/of_device.h> |
23 | #include <linux/of_i2c.h> | ||
24 | #include <linux/platform_device.h> | 23 | #include <linux/platform_device.h> |
25 | #include <linux/pm_runtime.h> | 24 | #include <linux/pm_runtime.h> |
26 | #include <linux/types.h> | 25 | #include <linux/types.h> |
diff --git a/drivers/of/Kconfig b/drivers/of/Kconfig index 80e5c13b930d..78cc76053328 100644 --- a/drivers/of/Kconfig +++ b/drivers/of/Kconfig | |||
@@ -48,12 +48,6 @@ config OF_IRQ | |||
48 | def_bool y | 48 | def_bool y |
49 | depends on !SPARC | 49 | depends on !SPARC |
50 | 50 | ||
51 | config OF_I2C | ||
52 | def_tristate I2C | ||
53 | depends on I2C | ||
54 | help | ||
55 | OpenFirmware I2C accessors | ||
56 | |||
57 | config OF_NET | 51 | config OF_NET |
58 | depends on NETDEVICES | 52 | depends on NETDEVICES |
59 | def_bool y | 53 | def_bool y |
diff --git a/drivers/of/Makefile b/drivers/of/Makefile index 1f9c0c492ef9..efd05102c405 100644 --- a/drivers/of/Makefile +++ b/drivers/of/Makefile | |||
@@ -3,7 +3,6 @@ obj-$(CONFIG_OF_FLATTREE) += fdt.o | |||
3 | obj-$(CONFIG_OF_PROMTREE) += pdt.o | 3 | obj-$(CONFIG_OF_PROMTREE) += pdt.o |
4 | obj-$(CONFIG_OF_ADDRESS) += address.o | 4 | obj-$(CONFIG_OF_ADDRESS) += address.o |
5 | obj-$(CONFIG_OF_IRQ) += irq.o | 5 | obj-$(CONFIG_OF_IRQ) += irq.o |
6 | obj-$(CONFIG_OF_I2C) += of_i2c.o | ||
7 | obj-$(CONFIG_OF_NET) += of_net.o | 6 | obj-$(CONFIG_OF_NET) += of_net.o |
8 | obj-$(CONFIG_OF_SELFTEST) += selftest.o | 7 | obj-$(CONFIG_OF_SELFTEST) += selftest.o |
9 | obj-$(CONFIG_OF_MDIO) += of_mdio.o | 8 | obj-$(CONFIG_OF_MDIO) += of_mdio.o |
diff --git a/drivers/of/of_i2c.c b/drivers/of/of_i2c.c deleted file mode 100644 index b667264222cc..000000000000 --- a/drivers/of/of_i2c.c +++ /dev/null | |||
@@ -1,114 +0,0 @@ | |||
1 | /* | ||
2 | * OF helpers for the I2C API | ||
3 | * | ||
4 | * Copyright (c) 2008 Jochen Friedrich <jochen@scram.de> | ||
5 | * | ||
6 | * Based on a previous patch from Jon Smirl <jonsmirl@gmail.com> | ||
7 | * | ||
8 | * This program is free software; you can redistribute it and/or modify | ||
9 | * it under the terms of the GNU General Public License as published by | ||
10 | * the Free Software Foundation; either version 2 of the License, or | ||
11 | * (at your option) any later version. | ||
12 | */ | ||
13 | |||
14 | #include <linux/i2c.h> | ||
15 | #include <linux/irq.h> | ||
16 | #include <linux/of.h> | ||
17 | #include <linux/of_i2c.h> | ||
18 | #include <linux/of_irq.h> | ||
19 | #include <linux/module.h> | ||
20 | |||
21 | void of_i2c_register_devices(struct i2c_adapter *adap) | ||
22 | { | ||
23 | void *result; | ||
24 | struct device_node *node; | ||
25 | |||
26 | /* Only register child devices if the adapter has a node pointer set */ | ||
27 | if (!adap->dev.of_node) | ||
28 | return; | ||
29 | |||
30 | dev_dbg(&adap->dev, "of_i2c: walking child nodes\n"); | ||
31 | |||
32 | for_each_available_child_of_node(adap->dev.of_node, node) { | ||
33 | struct i2c_board_info info = {}; | ||
34 | struct dev_archdata dev_ad = {}; | ||
35 | const __be32 *addr; | ||
36 | int len; | ||
37 | |||
38 | dev_dbg(&adap->dev, "of_i2c: register %s\n", node->full_name); | ||
39 | |||
40 | if (of_modalias_node(node, info.type, sizeof(info.type)) < 0) { | ||
41 | dev_err(&adap->dev, "of_i2c: modalias failure on %s\n", | ||
42 | node->full_name); | ||
43 | continue; | ||
44 | } | ||
45 | |||
46 | addr = of_get_property(node, "reg", &len); | ||
47 | if (!addr || (len < sizeof(int))) { | ||
48 | dev_err(&adap->dev, "of_i2c: invalid reg on %s\n", | ||
49 | node->full_name); | ||
50 | continue; | ||
51 | } | ||
52 | |||
53 | info.addr = be32_to_cpup(addr); | ||
54 | if (info.addr > (1 << 10) - 1) { | ||
55 | dev_err(&adap->dev, "of_i2c: invalid addr=%x on %s\n", | ||
56 | info.addr, node->full_name); | ||
57 | continue; | ||
58 | } | ||
59 | |||
60 | info.irq = irq_of_parse_and_map(node, 0); | ||
61 | info.of_node = of_node_get(node); | ||
62 | info.archdata = &dev_ad; | ||
63 | |||
64 | if (of_get_property(node, "wakeup-source", NULL)) | ||
65 | info.flags |= I2C_CLIENT_WAKE; | ||
66 | |||
67 | request_module("%s%s", I2C_MODULE_PREFIX, info.type); | ||
68 | |||
69 | result = i2c_new_device(adap, &info); | ||
70 | if (result == NULL) { | ||
71 | dev_err(&adap->dev, "of_i2c: Failure registering %s\n", | ||
72 | node->full_name); | ||
73 | of_node_put(node); | ||
74 | irq_dispose_mapping(info.irq); | ||
75 | continue; | ||
76 | } | ||
77 | } | ||
78 | } | ||
79 | EXPORT_SYMBOL(of_i2c_register_devices); | ||
80 | |||
81 | static int of_dev_node_match(struct device *dev, void *data) | ||
82 | { | ||
83 | return dev->of_node == data; | ||
84 | } | ||
85 | |||
86 | /* must call put_device() when done with returned i2c_client device */ | ||
87 | struct i2c_client *of_find_i2c_device_by_node(struct device_node *node) | ||
88 | { | ||
89 | struct device *dev; | ||
90 | |||
91 | dev = bus_find_device(&i2c_bus_type, NULL, node, | ||
92 | of_dev_node_match); | ||
93 | if (!dev) | ||
94 | return NULL; | ||
95 | |||
96 | return i2c_verify_client(dev); | ||
97 | } | ||
98 | EXPORT_SYMBOL(of_find_i2c_device_by_node); | ||
99 | |||
100 | /* must call put_device() when done with returned i2c_adapter device */ | ||
101 | struct i2c_adapter *of_find_i2c_adapter_by_node(struct device_node *node) | ||
102 | { | ||
103 | struct device *dev; | ||
104 | |||
105 | dev = bus_find_device(&i2c_bus_type, NULL, node, | ||
106 | of_dev_node_match); | ||
107 | if (!dev) | ||
108 | return NULL; | ||
109 | |||
110 | return i2c_verify_adapter(dev); | ||
111 | } | ||
112 | EXPORT_SYMBOL(of_find_i2c_adapter_by_node); | ||
113 | |||
114 | MODULE_LICENSE("GPL"); | ||
diff --git a/drivers/staging/imx-drm/imx-tve.c b/drivers/staging/imx-drm/imx-tve.c index a56797d88edc..2d76fd47c3d7 100644 --- a/drivers/staging/imx-drm/imx-tve.c +++ b/drivers/staging/imx-drm/imx-tve.c | |||
@@ -21,7 +21,7 @@ | |||
21 | #include <linux/clk.h> | 21 | #include <linux/clk.h> |
22 | #include <linux/clk-provider.h> | 22 | #include <linux/clk-provider.h> |
23 | #include <linux/module.h> | 23 | #include <linux/module.h> |
24 | #include <linux/of_i2c.h> | 24 | #include <linux/i2c.h> |
25 | #include <linux/regmap.h> | 25 | #include <linux/regmap.h> |
26 | #include <linux/regulator/consumer.h> | 26 | #include <linux/regulator/consumer.h> |
27 | #include <linux/spinlock.h> | 27 | #include <linux/spinlock.h> |