Browse Source

char: xillybus: remove direct dependency on DT functions

Drivers generally should not need to depend directly on OF_ADDRESS or
OF_IRQ. Convert xillybus to use the preferred platform_get_resource() and
platform_get_irq() functions to remove this dependency.

Cc: Eli Billauer <eli.billauer@gmail.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Rob Herring 7 years ago
parent
commit
74d83a5d74
2 changed files with 6 additions and 10 deletions
  1. 2 2
      drivers/char/xillybus/Kconfig
  2. 4 8
      drivers/char/xillybus/xillybus_of.c

+ 2 - 2
drivers/char/xillybus/Kconfig

@@ -4,7 +4,7 @@
 
 
 config XILLYBUS
 config XILLYBUS
 	tristate "Xillybus generic FPGA interface"
 	tristate "Xillybus generic FPGA interface"
-	depends on PCI || (OF_ADDRESS && OF_IRQ)
+	depends on PCI || OF
 	select CRC32
 	select CRC32
 	help
 	help
 	  Xillybus is a generic interface for peripherals designed on
 	  Xillybus is a generic interface for peripherals designed on
@@ -24,7 +24,7 @@ config XILLYBUS_PCIE
 
 
 config XILLYBUS_OF
 config XILLYBUS_OF
 	tristate "Xillybus over Device Tree"
 	tristate "Xillybus over Device Tree"
-	depends on OF_ADDRESS && OF_IRQ && HAS_DMA
+	depends on OF && HAS_DMA
 	help
 	help
 	  Set to M if you want Xillybus to find its resources from the
 	  Set to M if you want Xillybus to find its resources from the
 	  Open Firmware Flattened Device Tree. If the target is an embedded
 	  Open Firmware Flattened Device Tree. If the target is an embedded

+ 4 - 8
drivers/char/xillybus/xillybus_of.c

@@ -15,10 +15,6 @@
 #include <linux/slab.h>
 #include <linux/slab.h>
 #include <linux/platform_device.h>
 #include <linux/platform_device.h>
 #include <linux/of.h>
 #include <linux/of.h>
-#include <linux/of_irq.h>
-#include <linux/of_address.h>
-#include <linux/of_device.h>
-#include <linux/of_platform.h>
 #include <linux/err.h>
 #include <linux/err.h>
 #include "xillybus.h"
 #include "xillybus.h"
 
 
@@ -123,7 +119,7 @@ static int xilly_drv_probe(struct platform_device *op)
 	struct xilly_endpoint *endpoint;
 	struct xilly_endpoint *endpoint;
 	int rc;
 	int rc;
 	int irq;
 	int irq;
-	struct resource res;
+	struct resource *res;
 	struct xilly_endpoint_hardware *ephw = &of_hw;
 	struct xilly_endpoint_hardware *ephw = &of_hw;
 
 
 	if (of_property_read_bool(dev->of_node, "dma-coherent"))
 	if (of_property_read_bool(dev->of_node, "dma-coherent"))
@@ -136,13 +132,13 @@ static int xilly_drv_probe(struct platform_device *op)
 
 
 	dev_set_drvdata(dev, endpoint);
 	dev_set_drvdata(dev, endpoint);
 
 
-	rc = of_address_to_resource(dev->of_node, 0, &res);
-	endpoint->registers = devm_ioremap_resource(dev, &res);
+	res = platform_get_resource(op, IORESOURCE_MEM, 0);
+	endpoint->registers = devm_ioremap_resource(dev, res);
 
 
 	if (IS_ERR(endpoint->registers))
 	if (IS_ERR(endpoint->registers))
 		return PTR_ERR(endpoint->registers);
 		return PTR_ERR(endpoint->registers);
 
 
-	irq = irq_of_parse_and_map(dev->of_node, 0);
+	irq = platform_get_irq(op, 0);
 
 
 	rc = devm_request_irq(dev, irq, xillybus_isr, 0, xillyname, endpoint);
 	rc = devm_request_irq(dev, irq, xillybus_isr, 0, xillyname, endpoint);