Rewrite platform code to be smarter
SVN-Revision: 9094
This commit is contained in:
parent
cce66b1965
commit
db7bf6f616
1 changed files with 33 additions and 16 deletions
|
@ -28,12 +28,16 @@
|
||||||
#include <linux/list.h>
|
#include <linux/list.h>
|
||||||
#include <linux/device.h>
|
#include <linux/device.h>
|
||||||
#include <linux/platform_device.h>
|
#include <linux/platform_device.h>
|
||||||
|
#include <linux/version.h>
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
|
||||||
|
#include <linux/leds.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
#include <asm/gpio.h>
|
#include <asm/gpio.h>
|
||||||
|
|
||||||
#define PFX "rdc321x: "
|
#define PFX "rdc321x: "
|
||||||
|
|
||||||
/* FIXME : Flash */
|
/* Flash */
|
||||||
static struct resource rdc_flash_resource[] = {
|
static struct resource rdc_flash_resource[] = {
|
||||||
[0] = {
|
[0] = {
|
||||||
.start = (u32)-CONFIG_MTD_RDC3210_SIZE,
|
.start = (u32)-CONFIG_MTD_RDC3210_SIZE,
|
||||||
|
@ -50,34 +54,47 @@ static struct platform_device rdc_flash_device = {
|
||||||
};
|
};
|
||||||
|
|
||||||
/* LEDS */
|
/* LEDS */
|
||||||
|
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,23)
|
||||||
|
static struct gpio_led default_leds[] = {
|
||||||
|
{ .name = "rdc:dmz", .gpio = 1, .active_low = 1, },
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct gpio_led_platform_data rdc321x_led_data = {
|
||||||
|
.num_leds = ARRAY_SIZE(default_leds),
|
||||||
|
.leds = default_leds,
|
||||||
|
};
|
||||||
|
|
||||||
static struct platform_device rdc321x_leds = {
|
static struct platform_device rdc321x_leds = {
|
||||||
.name = "rdc321x-leds",
|
.name = "leds-gpio",
|
||||||
|
.id = -1,
|
||||||
|
.dev = {
|
||||||
|
.platform_data = &rdc321x_led_data,
|
||||||
|
}
|
||||||
|
};
|
||||||
|
#else
|
||||||
|
static struct platform_device rdc321x_leds = {
|
||||||
|
.name "rdc321x-leds",
|
||||||
.id = -1,
|
.id = -1,
|
||||||
.num_resources = 0,
|
.num_resources = 0,
|
||||||
};
|
};
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/* Watchdog */
|
||||||
static struct platform_device rdc321x_wdt = {
|
static struct platform_device rdc321x_wdt = {
|
||||||
.name = "rdc321x-wdt",
|
.name = "rdc321x-wdt",
|
||||||
.id = -1,
|
.id = -1,
|
||||||
.num_resources = 0,
|
.num_resources = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static struct platform_device *rdc321x_devs[] = {
|
||||||
|
&rdc_flash_device,
|
||||||
|
&rdc321x_leds,
|
||||||
|
&rdc321x_wdt
|
||||||
|
};
|
||||||
|
|
||||||
static int __init rdc_board_setup(void)
|
static int __init rdc_board_setup(void)
|
||||||
{
|
{
|
||||||
int err;
|
return platform_add_devices(rdc321x_devs, ARRAY_SIZE(rdc321x_devs));
|
||||||
|
|
||||||
err = platform_device_register(&rdc_flash_device);
|
|
||||||
if (err)
|
|
||||||
printk(KERN_ALERT PFX "failed to register flash\n");
|
|
||||||
|
|
||||||
err = platform_device_register(&rdc321x_leds);
|
|
||||||
if (err)
|
|
||||||
printk(KERN_ALERT PFX "failed to register LEDS\n");
|
|
||||||
|
|
||||||
err = platform_device_register(&rdc321x_wdt);
|
|
||||||
printk(KERN_ALERT PFX "failed to register watchdog\n");
|
|
||||||
|
|
||||||
return err;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
arch_initcall(rdc_board_setup);
|
arch_initcall(rdc_board_setup);
|
||||||
|
|
Loading…
Reference in a new issue