Commit 6427d450 authored by Eric Miao's avatar Eric Miao

[ARM] pxa: use platform_device_id table for SSP driver

Signed-off-by: default avatarEric Miao <eric.y.miao@gmail.com>
parent 4092855d
...@@ -342,8 +342,9 @@ void ssp_free(struct ssp_device *ssp) ...@@ -342,8 +342,9 @@ void ssp_free(struct ssp_device *ssp)
} }
EXPORT_SYMBOL(ssp_free); EXPORT_SYMBOL(ssp_free);
static int __devinit ssp_probe(struct platform_device *pdev, int type) static int __devinit ssp_probe(struct platform_device *pdev)
{ {
const struct platform_device_id *id = platform_get_device_id(pdev);
struct resource *res; struct resource *res;
struct ssp_device *ssp; struct ssp_device *ssp;
int ret = 0; int ret = 0;
...@@ -413,7 +414,7 @@ static int __devinit ssp_probe(struct platform_device *pdev, int type) ...@@ -413,7 +414,7 @@ static int __devinit ssp_probe(struct platform_device *pdev, int type)
*/ */
ssp->port_id = pdev->id + 1; ssp->port_id = pdev->id + 1;
ssp->use_count = 0; ssp->use_count = 0;
ssp->type = type; ssp->type = (int)id->driver_data;
mutex_lock(&ssp_lock); mutex_lock(&ssp_lock);
list_add(&ssp->node, &ssp_list); list_add(&ssp->node, &ssp_list);
...@@ -457,75 +458,31 @@ static int __devexit ssp_remove(struct platform_device *pdev) ...@@ -457,75 +458,31 @@ static int __devexit ssp_remove(struct platform_device *pdev)
return 0; return 0;
} }
static int __devinit pxa25x_ssp_probe(struct platform_device *pdev) static const struct platform_device_id ssp_id_table[] = {
{ { "pxa25x-ssp", PXA25x_SSP },
return ssp_probe(pdev, PXA25x_SSP); { "pxa25x-nssp", PXA25x_NSSP },
} { "pxa27x-ssp", PXA27x_SSP },
{ },
static int __devinit pxa25x_nssp_probe(struct platform_device *pdev)
{
return ssp_probe(pdev, PXA25x_NSSP);
}
static int __devinit pxa27x_ssp_probe(struct platform_device *pdev)
{
return ssp_probe(pdev, PXA27x_SSP);
}
static struct platform_driver pxa25x_ssp_driver = {
.driver = {
.name = "pxa25x-ssp",
},
.probe = pxa25x_ssp_probe,
.remove = __devexit_p(ssp_remove),
}; };
static struct platform_driver pxa25x_nssp_driver = { static struct platform_driver ssp_driver = {
.driver = { .probe = ssp_probe,
.name = "pxa25x-nssp",
},
.probe = pxa25x_nssp_probe,
.remove = __devexit_p(ssp_remove), .remove = __devexit_p(ssp_remove),
};
static struct platform_driver pxa27x_ssp_driver = {
.driver = { .driver = {
.name = "pxa27x-ssp", .owner = THIS_MODULE,
.name = "pxa2xx-ssp",
}, },
.probe = pxa27x_ssp_probe, .id_table = ssp_id_table,
.remove = __devexit_p(ssp_remove),
}; };
static int __init pxa_ssp_init(void) static int __init pxa_ssp_init(void)
{ {
int ret = 0; return platform_driver_register(&ssp_driver);
ret = platform_driver_register(&pxa25x_ssp_driver);
if (ret) {
printk(KERN_ERR "failed to register pxa25x_ssp_driver");
return ret;
}
ret = platform_driver_register(&pxa25x_nssp_driver);
if (ret) {
printk(KERN_ERR "failed to register pxa25x_nssp_driver");
return ret;
}
ret = platform_driver_register(&pxa27x_ssp_driver);
if (ret) {
printk(KERN_ERR "failed to register pxa27x_ssp_driver");
return ret;
}
return ret;
} }
static void __exit pxa_ssp_exit(void) static void __exit pxa_ssp_exit(void)
{ {
platform_driver_unregister(&pxa25x_ssp_driver); platform_driver_unregister(&ssp_driver);
platform_driver_unregister(&pxa25x_nssp_driver);
platform_driver_unregister(&pxa27x_ssp_driver);
} }
arch_initcall(pxa_ssp_init); arch_initcall(pxa_ssp_init);
......
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