* %-EBUSY physical address already marked in-use.
* %0 successful.
*/
-static int
+static int __init
__sa1111_probe(struct device *me, struct resource *mem, int irq)
{
struct sa1111 *sachip;
static int sa1111_probe(struct device *dev)
{
struct platform_device *pdev = to_platform_device(dev);
- struct resource *mem;
- int irq;
-
- mem = platform_get_resource(pdev, IORESOURCE_MEM, 0);
- if (!mem)
- return -EINVAL;
- irq = platform_get_irq(pdev, 0);
+ struct resource *mem = NULL, *irq = NULL;
+ int i;
- return __sa1111_probe(dev, mem, irq);
+ for (i = 0; i < pdev->num_resources; i++) {
+ if (pdev->resource[i].flags & IORESOURCE_MEM)
+ mem = &pdev->resource[i];
+ if (pdev->resource[i].flags & IORESOURCE_IRQ)
+ irq = &pdev->resource[i];
+ }
+ return __sa1111_probe(dev, mem, irq ? irq->start : NO_IRQ);
}
static int sa1111_remove(struct device *dev)