mtd: nand: ams-delta: convert to platform driver
In its current form, the driver may interfere with different hardware on different boards if built into the kernel, hence is not suitable for inclusion into a defconfig, inteded to be usable with multiple OMAP1 cpu and machine types. Convert it to a platform driver, that should be free from this issue. Created and tested against linux-2.6.37-rc5 on Amstrad Delta. Signed-off-by: Janusz Krzysztofik <jkrzyszt@tis.icnet.pl> Acked-by: Tony Lindgren <tony@atomide.com> Signed-off-by: Artem Bityutskiy <Artem.Bityutskiy@nokia.com> Signed-off-by: David Woodhouse <David.Woodhouse@intel.com>
This commit is contained in:
parent
75c52a4963
commit
7e95d1f171
2 changed files with 32 additions and 5 deletions
|
@ -181,6 +181,11 @@ static struct omap_board_config_kernel ams_delta_config[] = {
|
||||||
{ OMAP_TAG_LCD, &ams_delta_lcd_config },
|
{ OMAP_TAG_LCD, &ams_delta_lcd_config },
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct platform_device ams_delta_nand_device = {
|
||||||
|
.name = "ams-delta-nand",
|
||||||
|
.id = -1
|
||||||
|
};
|
||||||
|
|
||||||
static struct resource ams_delta_kp_resources[] = {
|
static struct resource ams_delta_kp_resources[] = {
|
||||||
[0] = {
|
[0] = {
|
||||||
.start = INT_KEYBOARD,
|
.start = INT_KEYBOARD,
|
||||||
|
@ -263,6 +268,7 @@ static struct omap1_cam_platform_data ams_delta_camera_platform_data = {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct platform_device *ams_delta_devices[] __initdata = {
|
static struct platform_device *ams_delta_devices[] __initdata = {
|
||||||
|
&ams_delta_nand_device,
|
||||||
&ams_delta_kp_device,
|
&ams_delta_kp_device,
|
||||||
&ams_delta_lcd_device,
|
&ams_delta_lcd_device,
|
||||||
&ams_delta_led_device,
|
&ams_delta_led_device,
|
||||||
|
|
|
@ -4,6 +4,7 @@
|
||||||
* Copyright (C) 2006 Jonathan McDowell <noodles@earth.li>
|
* Copyright (C) 2006 Jonathan McDowell <noodles@earth.li>
|
||||||
*
|
*
|
||||||
* Derived from drivers/mtd/toto.c
|
* Derived from drivers/mtd/toto.c
|
||||||
|
* Converted to platform driver by Janusz Krzysztofik <jkrzyszt@tis.icnet.pl>
|
||||||
*
|
*
|
||||||
* This program is free software; you can redistribute it and/or modify
|
* This program is free software; you can redistribute it and/or modify
|
||||||
* it under the terms of the GNU General Public License version 2 as
|
* it under the terms of the GNU General Public License version 2 as
|
||||||
|
@ -151,7 +152,7 @@ static int ams_delta_nand_ready(struct mtd_info *mtd)
|
||||||
/*
|
/*
|
||||||
* Main initialization routine
|
* Main initialization routine
|
||||||
*/
|
*/
|
||||||
static int __init ams_delta_init(void)
|
static int __devinit ams_delta_init(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
struct nand_chip *this;
|
struct nand_chip *this;
|
||||||
int err = 0;
|
int err = 0;
|
||||||
|
@ -219,20 +220,40 @@ static int __init ams_delta_init(void)
|
||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
module_init(ams_delta_init);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Clean up routine
|
* Clean up routine
|
||||||
*/
|
*/
|
||||||
static void __exit ams_delta_cleanup(void)
|
static int __devexit ams_delta_cleanup(struct platform_device *pdev)
|
||||||
{
|
{
|
||||||
/* Release resources, unregister device */
|
/* Release resources, unregister device */
|
||||||
nand_release(ams_delta_mtd);
|
nand_release(ams_delta_mtd);
|
||||||
|
|
||||||
/* Free the MTD device structure */
|
/* Free the MTD device structure */
|
||||||
kfree(ams_delta_mtd);
|
kfree(ams_delta_mtd);
|
||||||
|
|
||||||
|
return 0;
|
||||||
}
|
}
|
||||||
module_exit(ams_delta_cleanup);
|
|
||||||
|
static struct platform_driver ams_delta_nand_driver = {
|
||||||
|
.probe = ams_delta_init,
|
||||||
|
.remove = __devexit_p(ams_delta_cleanup),
|
||||||
|
.driver = {
|
||||||
|
.name = "ams-delta-nand",
|
||||||
|
.owner = THIS_MODULE,
|
||||||
|
},
|
||||||
|
};
|
||||||
|
|
||||||
|
static int __init ams_delta_nand_init(void)
|
||||||
|
{
|
||||||
|
return platform_driver_register(&ams_delta_nand_driver);
|
||||||
|
}
|
||||||
|
module_init(ams_delta_nand_init);
|
||||||
|
|
||||||
|
static void __exit ams_delta_nand_exit(void)
|
||||||
|
{
|
||||||
|
platform_driver_unregister(&ams_delta_nand_driver);
|
||||||
|
}
|
||||||
|
module_exit(ams_delta_nand_exit);
|
||||||
|
|
||||||
MODULE_LICENSE("GPL");
|
MODULE_LICENSE("GPL");
|
||||||
MODULE_AUTHOR("Jonathan McDowell <noodles@earth.li>");
|
MODULE_AUTHOR("Jonathan McDowell <noodles@earth.li>");
|
||||||
|
|
Loading…
Add table
Reference in a new issue