Documentation/leds/leds-lp5521.rst

Source file repositories/reference/linux-study-clean/Documentation/leds/leds-lp5521.rst

File Facts

System
Linux kernel
Corpus path
Documentation/leds/leds-lp5521.rst
Extension
.rst
Size
2947 bytes
Lines
116
Domain
Support Tooling And Documentation
Bucket
Documentation
Inferred role
Support Tooling And Documentation: documentation
Status
atlas-only

Why This File Exists

Repository support layer: documentation, build tooling, samples, user-space helper tools, generated initramfs support, licenses, and validation utilities.

Dependency Surface

Detected Declarations

Annotated Snippet

========================
Kernel driver for lp5521
========================

* National Semiconductor LP5521 led driver chip
* Datasheet: http://www.national.com/pf/LP/LP5521.html

Authors: Mathias Nyman, Yuri Zaporozhets, Samu Onkalo

Contact: Samu Onkalo (samu.p.onkalo-at-nokia.com)

Description
-----------

LP5521 can drive up to 3 channels. Leds can be controlled directly via
the led class control interface. Channels have generic names:
lp5521:channelx, where x is 0 .. 2

All three channels can be also controlled using the engine micro programs.
More details of the instructions can be found from the public data sheet.

LP5521 has the internal program memory for running various LED patterns.
There are two ways to run LED patterns.

1) sysfs interface - enginex_mode and enginex_load
   Control interface for the engines:

   x is 1 .. 3

   enginex_mode:
	disabled, load, run
   enginex_load:
	store program (visible only in engine load mode)

  Example (start to blink the channel 2 led)::

	cd   /sys/class/leds/lp5521:channel2/device
	echo "load" > engine3_mode
	echo "037f4d0003ff6000" > engine3_load
	echo "run" > engine3_mode

  To stop the engine::

	echo "disabled" > engine3_mode

2) Firmware interface - LP55xx common interface

For the details, please refer to 'firmware' section in leds-lp55xx.txt

sysfs contains a selftest entry.

The test communicates with the chip and checks that
the clock mode is automatically set to the requested one.

Each channel has its own led current settings.

- /sys/class/leds/lp5521:channel0/led_current - RW
- /sys/class/leds/lp5521:channel0/max_current - RO

Format: 10x mA i.e 10 means 1.0 mA

example platform data::

  static struct lp55xx_led_config lp5521_led_config[] = {
	  {
		.name = "red",
		  .chan_nr        = 0,
		  .led_current    = 50,
		.max_current    = 130,
	  }, {

Annotation

Implementation Notes