~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/leds/leds-lm3556.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

  1 ========================
  2 Kernel driver for lm3556
  3 ========================
  4 
  5 * Texas Instrument:
  6   1.5 A Synchronous Boost LED Flash Driver w/ High-Side Current Source
  7 * Datasheet: http://www.national.com/ds/LM/LM3556.pdf
  8 
  9 Authors:
 10       - Daniel Jeong
 11 
 12         Contact:Daniel Jeong(daniel.jeong-at-ti.com, gshark.jeong-at-gmail.com)
 13 
 14 Description
 15 -----------
 16 There are 3 functions in LM3556, Flash, Torch and Indicator.
 17 
 18 Flash Mode
 19 ^^^^^^^^^^
 20 
 21 In Flash Mode, the LED current source(LED) provides 16 target current levels
 22 from 93.75 mA to 1500 mA.The Flash currents are adjusted via the CURRENT
 23 CONTROL REGISTER(0x09).Flash mode is activated by the ENABLE REGISTER(0x0A),
 24 or by pulling the STROBE pin HIGH.
 25 
 26 LM3556 Flash can be controlled through /sys/class/leds/flash/brightness file
 27 
 28 * if STROBE pin is enabled, below example control brightness only, and
 29   ON / OFF will be controlled by STROBE pin.
 30 
 31 Flash Example:
 32 
 33 OFF::
 34 
 35         #echo 0 > /sys/class/leds/flash/brightness
 36 
 37 93.75 mA::
 38 
 39         #echo 1 > /sys/class/leds/flash/brightness
 40 
 41 ...
 42 
 43 1500  mA::
 44 
 45         #echo 16 > /sys/class/leds/flash/brightness
 46 
 47 Torch Mode
 48 ^^^^^^^^^^
 49 
 50 In Torch Mode, the current source(LED) is programmed via the CURRENT CONTROL
 51 REGISTER(0x09).Torch Mode is activated by the ENABLE REGISTER(0x0A) or by the
 52 hardware TORCH input.
 53 
 54 LM3556 torch can be controlled through /sys/class/leds/torch/brightness file.
 55 * if TORCH pin is enabled, below example control brightness only,
 56 and ON / OFF will be controlled by TORCH pin.
 57 
 58 Torch Example:
 59 
 60 OFF::
 61 
 62         #echo 0 > /sys/class/leds/torch/brightness
 63 
 64 46.88 mA::
 65 
 66         #echo 1 > /sys/class/leds/torch/brightness
 67 
 68 ...
 69 
 70 375 mA::
 71 
 72         #echo 8 > /sys/class/leds/torch/brightness
 73 
 74 Indicator Mode
 75 ^^^^^^^^^^^^^^
 76 
 77 Indicator pattern can be set through /sys/class/leds/indicator/pattern file,
 78 and 4 patterns are pre-defined in indicator_pattern array.
 79 
 80 According to N-lank, Pulse time and N Period values, different pattern wiill
 81 be generated.If you want new patterns for your own device, change
 82 indicator_pattern array with your own values and INDIC_PATTERN_SIZE.
 83 
 84 Please refer datasheet for more detail about N-Blank, Pulse time and N Period.
 85 
 86 Indicator pattern example:
 87 
 88 pattern 0::
 89 
 90         #echo 0 > /sys/class/leds/indicator/pattern
 91 
 92 ...
 93 
 94 pattern 3::
 95 
 96         #echo 3 > /sys/class/leds/indicator/pattern
 97 
 98 Indicator brightness can be controlled through
 99 sys/class/leds/indicator/brightness file.
100 
101 Example:
102 
103 OFF::
104 
105         #echo 0 > /sys/class/leds/indicator/brightness
106 
107 5.86 mA::
108 
109         #echo 1 > /sys/class/leds/indicator/brightness
110 
111 ...
112 
113 46.875mA::
114 
115         #echo 8 > /sys/class/leds/indicator/brightness
116 
117 Notes
118 -----
119 Driver expects it is registered using the i2c_board_info mechanism.
120 To register the chip at address 0x63 on specific adapter, set the platform data
121 according to include/linux/platform_data/leds-lm3556.h, set the i2c board info
122 
123 Example::
124 
125         static struct i2c_board_info board_i2c_ch4[] __initdata = {
126                 {
127                          I2C_BOARD_INFO(LM3556_NAME, 0x63),
128                          .platform_data = &lm3556_pdata,
129                  },
130         };
131 
132 and register it in the platform init function
133 
134 Example::
135 
136         board_register_i2c_bus(4, 400,
137                                 board_i2c_ch4, ARRAY_SIZE(board_i2c_ch4));

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php