diff options
| -rw-r--r-- | arch/arm/mach-ixp4xx/common.c | 6 | ||||
| -rw-r--r-- | drivers/soc/ixp4xx/ixp4xx-npe.c | 23 |
2 files changed, 19 insertions, 10 deletions
diff --git a/arch/arm/mach-ixp4xx/common.c b/arch/arm/mach-ixp4xx/common.c index fc4c9b21ca96..e7789d06c39b 100644 --- a/arch/arm/mach-ixp4xx/common.c +++ b/arch/arm/mach-ixp4xx/common.c | |||
| @@ -150,7 +150,13 @@ static struct platform_device ixp4xx_udc_device = { | |||
| 150 | }, | 150 | }, |
| 151 | }; | 151 | }; |
| 152 | 152 | ||
| 153 | static struct platform_device ixp4xx_npe_device = { | ||
| 154 | .name = "ixp4xx-npe", | ||
| 155 | .id = -1, | ||
| 156 | }; | ||
| 157 | |||
| 153 | static struct platform_device *ixp4xx_devices[] __initdata = { | 158 | static struct platform_device *ixp4xx_devices[] __initdata = { |
| 159 | &ixp4xx_npe_device, | ||
| 154 | &ixp4xx_gpio_device, | 160 | &ixp4xx_gpio_device, |
| 155 | &ixp4xx_udc_device, | 161 | &ixp4xx_udc_device, |
| 156 | }; | 162 | }; |
diff --git a/drivers/soc/ixp4xx/ixp4xx-npe.c b/drivers/soc/ixp4xx/ixp4xx-npe.c index 1f6e01369d54..e3294457b5de 100644 --- a/drivers/soc/ixp4xx/ixp4xx-npe.c +++ b/drivers/soc/ixp4xx/ixp4xx-npe.c | |||
| @@ -21,6 +21,7 @@ | |||
| 21 | #include <linux/kernel.h> | 21 | #include <linux/kernel.h> |
| 22 | #include <linux/module.h> | 22 | #include <linux/module.h> |
| 23 | #include <linux/of.h> | 23 | #include <linux/of.h> |
| 24 | #include <linux/platform_device.h> | ||
| 24 | #include <linux/soc/ixp4xx/npe.h> | 25 | #include <linux/soc/ixp4xx/npe.h> |
| 25 | 26 | ||
| 26 | #define DEBUG_MSG 0 | 27 | #define DEBUG_MSG 0 |
| @@ -683,16 +684,10 @@ void npe_release(struct npe *npe) | |||
| 683 | module_put(THIS_MODULE); | 684 | module_put(THIS_MODULE); |
| 684 | } | 685 | } |
| 685 | 686 | ||
| 686 | 687 | static int ixp4xx_npe_probe(struct platform_device *pdev) | |
| 687 | static int __init npe_init_module(void) | ||
| 688 | { | 688 | { |
| 689 | |||
| 690 | int i, found = 0; | 689 | int i, found = 0; |
| 691 | 690 | ||
| 692 | /* This driver does not work with device tree */ | ||
| 693 | if (of_have_populated_dt()) | ||
| 694 | return -ENODEV; | ||
| 695 | |||
| 696 | for (i = 0; i < NPE_COUNT; i++) { | 691 | for (i = 0; i < NPE_COUNT; i++) { |
| 697 | struct npe *npe = &npe_tab[i]; | 692 | struct npe *npe = &npe_tab[i]; |
| 698 | if (!(ixp4xx_read_feature_bits() & | 693 | if (!(ixp4xx_read_feature_bits() & |
| @@ -717,7 +712,7 @@ static int __init npe_init_module(void) | |||
| 717 | return 0; | 712 | return 0; |
| 718 | } | 713 | } |
| 719 | 714 | ||
| 720 | static void __exit npe_cleanup_module(void) | 715 | static int ixp4xx_npe_remove(struct platform_device *pdev) |
| 721 | { | 716 | { |
| 722 | int i; | 717 | int i; |
| 723 | 718 | ||
| @@ -726,10 +721,18 @@ static void __exit npe_cleanup_module(void) | |||
| 726 | npe_reset(&npe_tab[i]); | 721 | npe_reset(&npe_tab[i]); |
| 727 | release_resource(npe_tab[i].mem_res); | 722 | release_resource(npe_tab[i].mem_res); |
| 728 | } | 723 | } |
| 724 | |||
| 725 | return 0; | ||
| 729 | } | 726 | } |
| 730 | 727 | ||
| 731 | module_init(npe_init_module); | 728 | static struct platform_driver ixp4xx_npe_driver = { |
| 732 | module_exit(npe_cleanup_module); | 729 | .driver = { |
| 730 | .name = "ixp4xx-npe", | ||
| 731 | }, | ||
| 732 | .probe = ixp4xx_npe_probe, | ||
| 733 | .remove = ixp4xx_npe_remove, | ||
| 734 | }; | ||
| 735 | module_platform_driver(ixp4xx_npe_driver); | ||
| 733 | 736 | ||
| 734 | MODULE_AUTHOR("Krzysztof Halasa"); | 737 | MODULE_AUTHOR("Krzysztof Halasa"); |
| 735 | MODULE_LICENSE("GPL v2"); | 738 | MODULE_LICENSE("GPL v2"); |
