Leds

Simon Kagstrom simon.kagstrom at ericsson.com
Fri Feb 8 22:26:25 EST 2008


On Fri, 08 Feb 2008 11:43:25 +0100
Marco Stornelli <marco.stornelli at coritel.it> wrote:

> > Although I'm not sure if it's the "standard" way, we just added a
> > "home-made" node like this:
> > 
> > 	resetLED at c0018000 {
> > 		device_type = "leds";
> > 		compatible = "reset-leds";
> > 		reg = <c0018000 00008000>;
> > 	};
> > 
> Thanks. In this case where have you added the device registration? In
> the probe function? Have you registered the driver with
> of_register_platform_driver()?

We put it in the module init function and registered it as a platform
device:

static int __init led_init(void)
{
	int ret;

	ret = platform_driver_register(&led_driver);

	if (ret < 0)
		return -ENODEV;

	pdev = platform_device_register_simple(DRVNAME, -1, NULL, 0);
	if (IS_ERR(pdev)) {
		ret = PTR_ERR(pdev);
		platform_driver_unregister(&led_driver);
	}

	return ret;
}

And just use the device tree stuff to read out the device address. The
driver itself is quite similar to other led drivers found in the same
directory, so you can probably base your work on those.

This was for kernel 2.6.21, I'm not sure if these things have changed
for newer kernels (although I would guess most of it is the same).

// Simon


More information about the Linuxppc-embedded mailing list