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