Commit d2e539a5 authored by Russell King's avatar Russell King

ARM: sa11x0: neponset: place smc91x and sa1111 resources in neponset device

Complete the neponset device resources by covering the children's
memory resources in the parent neponset device.
Signed-off-by: default avatarRussell King <rmk+kernel@arm.linux.org.uk>
parent b6bdfcf5
...@@ -179,6 +179,7 @@ static struct sa1111_platform_data sa1111_info = { ...@@ -179,6 +179,7 @@ static struct sa1111_platform_data sa1111_info = {
static int __devinit neponset_probe(struct platform_device *dev) static int __devinit neponset_probe(struct platform_device *dev)
{ {
struct neponset_drvdata *d; struct neponset_drvdata *d;
struct resource *sa1111_res, *smc91x_res;
struct resource sa1111_resources[] = { struct resource sa1111_resources[] = {
DEFINE_RES_MEM(0x40000000, SZ_8K), DEFINE_RES_MEM(0x40000000, SZ_8K),
{ .flags = IORESOURCE_IRQ }, { .flags = IORESOURCE_IRQ },
...@@ -213,6 +214,13 @@ static int __devinit neponset_probe(struct platform_device *dev) ...@@ -213,6 +214,13 @@ static int __devinit neponset_probe(struct platform_device *dev)
if (ret < 0) if (ret < 0)
goto err_alloc; goto err_alloc;
smc91x_res = platform_get_resource(dev, IORESOURCE_MEM, 1);
sa1111_res = platform_get_resource(dev, IORESOURCE_MEM, 2);
if (!smc91x_res || !sa1111_res) {
ret = -ENXIO;
goto err_alloc;
}
d = kzalloc(sizeof(*d), GFP_KERNEL); d = kzalloc(sizeof(*d), GFP_KERNEL);
if (!d) { if (!d) {
ret = -ENOMEM; ret = -ENOMEM;
...@@ -258,10 +266,13 @@ static int __devinit neponset_probe(struct platform_device *dev) ...@@ -258,10 +266,13 @@ static int __devinit neponset_probe(struct platform_device *dev)
/* Disable GPIO 0/1 drivers so the buttons work on the Assabet */ /* Disable GPIO 0/1 drivers so the buttons work on the Assabet */
NCR_0 = NCR_GP01_OFF; NCR_0 = NCR_GP01_OFF;
sa1111_resources[0].parent = sa1111_res;
sa1111_resources[1].start = d->irq_base + NEP_IRQ_SA1111; sa1111_resources[1].start = d->irq_base + NEP_IRQ_SA1111;
sa1111_resources[1].end = d->irq_base + NEP_IRQ_SA1111; sa1111_resources[1].end = d->irq_base + NEP_IRQ_SA1111;
d->sa1111 = platform_device_register_full(&sa1111_devinfo); d->sa1111 = platform_device_register_full(&sa1111_devinfo);
smc91x_resources[0].parent = smc91x_res;
smc91x_resources[1].parent = smc91x_res;
smc91x_resources[2].start = d->irq_base + NEP_IRQ_SMC91X; smc91x_resources[2].start = d->irq_base + NEP_IRQ_SMC91X;
smc91x_resources[2].end = d->irq_base + NEP_IRQ_SMC91X; smc91x_resources[2].end = d->irq_base + NEP_IRQ_SMC91X;
d->smc91x = platform_device_register_full(&smc91x_devinfo); d->smc91x = platform_device_register_full(&smc91x_devinfo);
...@@ -331,6 +342,8 @@ static struct platform_driver neponset_device_driver = { ...@@ -331,6 +342,8 @@ static struct platform_driver neponset_device_driver = {
static struct resource neponset_resources[] = { static struct resource neponset_resources[] = {
DEFINE_RES_MEM(0x10000000, 0x08000000), DEFINE_RES_MEM(0x10000000, 0x08000000),
DEFINE_RES_MEM(0x18000000, 0x04000000),
DEFINE_RES_MEM(0x40000000, SZ_8K),
DEFINE_RES_IRQ(IRQ_GPIO25), DEFINE_RES_IRQ(IRQ_GPIO25),
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment