Commit 7e95d1f1 authored by Janusz Krzysztofik's avatar Janusz Krzysztofik Committed by David Woodhouse

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: default avatarJanusz Krzysztofik <jkrzyszt@tis.icnet.pl>
Acked-by: default avatarTony Lindgren <tony@atomide.com>
Signed-off-by: default avatarArtem Bityutskiy <Artem.Bityutskiy@nokia.com>
Signed-off-by: default avatarDavid Woodhouse <David.Woodhouse@intel.com>
parent 75c52a49
...@@ -181,6 +181,11 @@ static struct omap_board_config_kernel ams_delta_config[] = { ...@@ -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 = { ...@@ -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 @@ ...@@ -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) ...@@ -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) ...@@ -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;
}
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_cleanup); 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>");
......
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