#define DRVNAME "sead3-led"
-static struct platform_device *pdev;
-
static void sead3_pled_set(struct led_classdev *led_cdev,
enum led_brightness value)
{
static int __init sead3_led_init(void)
{
- int ret;
-
- ret = platform_driver_register(&sead3_led_driver);
- if (ret < 0)
- goto out;
-
- pdev = platform_device_register_simple(DRVNAME, -1, NULL, 0);
- if (IS_ERR(pdev)) {
- ret = PTR_ERR(pdev);
- platform_driver_unregister(&sead3_led_driver);
- goto out;
- }
-
-out:
- return ret;
+ return platform_driver_register(&sead3_led_driver);
}
static void __exit sead3_led_exit(void)
{
- platform_device_unregister(pdev);
platform_driver_unregister(&sead3_led_driver);
}
.resource = fled_resources
};
-static int __init led_init(void)
+static struct platform_device sead3_led_device = {
+ .name = "sead3-led",
+ .id = -1,
+};
+
+struct platform_device *sead3_led_devices[] = {
+ &pled_device,
+ &fled_device,
+ &sead3_led_device,
+};
+
+static int __init sead3_led_init(void)
{
- platform_device_register(&pled_device);
- return platform_device_register(&fled_device);
+ return platform_add_devices(sead3_led_devices, ARRAY_SIZE(sead3_led_devices));
}
-device_initcall(led_init);
+device_initcall(sead3_led_init);