You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
leds: Add new LED driver for lm355x chips
This driver is a general version for LM355x,lm3554 and lm3556,led chips of TI. LM3554 : The LM3554 is a 2 MHz fixed-frequency synchronous boost converter with 1.2A dual high side led drivers. Datasheet: www.ti.com/lit/ds/symlink/lm3554.pdf LM3556 : The LM3556 is a 4 MHz fixed-frequency synchronous boost converter plus 1.5A constant current driver for a high-current white LED. Datasheet: www.national.com/ds/LM/LM3556.pdf (bryan.wu@canonical.com: use flush_work() to replace flush_work_sync() which is deprecated) Signed-off-by: G.Shark Jeong <gshark.jeong@gmail.com> Signed-off-by: Bryan Wu <bryan.wu@canonical.com>
This commit is contained in:
@@ -423,13 +423,13 @@ config LEDS_MAX8997
|
||||
This option enables support for on-chip LED drivers on
|
||||
MAXIM MAX8997 PMIC.
|
||||
|
||||
config LEDS_LM3556
|
||||
tristate "LED support for LM3556 Chip"
|
||||
config LEDS_LM355x
|
||||
tristate "LED support for LM355x Chips, LM3554 and LM3556"
|
||||
depends on LEDS_CLASS && I2C
|
||||
select REGMAP_I2C
|
||||
help
|
||||
This option enables support for LEDs connected to LM3556.
|
||||
LM3556 includes Torch, Flash and Indicator functions.
|
||||
This option enables support for LEDs connected to LM355x.
|
||||
LM355x includes Torch, Flash and Indicator functions.
|
||||
|
||||
config LEDS_OT200
|
||||
tristate "LED support for the Bachmann OT200"
|
||||
|
||||
@@ -48,7 +48,7 @@ obj-$(CONFIG_LEDS_NETXBIG) += leds-netxbig.o
|
||||
obj-$(CONFIG_LEDS_ASIC3) += leds-asic3.o
|
||||
obj-$(CONFIG_LEDS_RENESAS_TPU) += leds-renesas-tpu.o
|
||||
obj-$(CONFIG_LEDS_MAX8997) += leds-max8997.o
|
||||
obj-$(CONFIG_LEDS_LM3556) += leds-lm3556.o
|
||||
obj-$(CONFIG_LEDS_LM355x) += leds-lm355x.o
|
||||
obj-$(CONFIG_LEDS_BLINKM) += leds-blinkm.o
|
||||
|
||||
# LED SPI Drivers
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -1,50 +0,0 @@
|
||||
/*
|
||||
* Simple driver for Texas Instruments LM3556 LED Flash driver chip (Rev0x03)
|
||||
* Copyright (C) 2012 Texas Instruments
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
*/
|
||||
|
||||
#ifndef __LINUX_LM3556_H
|
||||
#define __LINUX_LM3556_H
|
||||
|
||||
#define LM3556_NAME "leds-lm3556"
|
||||
|
||||
enum lm3556_pin_polarity {
|
||||
PIN_LOW_ACTIVE = 0,
|
||||
PIN_HIGH_ACTIVE,
|
||||
};
|
||||
|
||||
enum lm3556_pin_enable {
|
||||
PIN_DISABLED = 0,
|
||||
PIN_ENABLED,
|
||||
};
|
||||
|
||||
enum lm3556_strobe_usuage {
|
||||
STROBE_EDGE_DETECT = 0,
|
||||
STROBE_LEVEL_DETECT,
|
||||
};
|
||||
|
||||
enum lm3556_indic_mode {
|
||||
INDIC_MODE_INTERNAL = 0,
|
||||
INDIC_MODE_EXTERNAL,
|
||||
};
|
||||
|
||||
struct lm3556_platform_data {
|
||||
enum lm3556_pin_enable torch_pin_en;
|
||||
enum lm3556_pin_polarity torch_pin_polarity;
|
||||
|
||||
enum lm3556_strobe_usuage strobe_usuage;
|
||||
enum lm3556_pin_enable strobe_pin_en;
|
||||
enum lm3556_pin_polarity strobe_pin_polarity;
|
||||
|
||||
enum lm3556_pin_enable tx_pin_en;
|
||||
enum lm3556_pin_polarity tx_pin_polarity;
|
||||
|
||||
enum lm3556_indic_mode indicator_mode;
|
||||
};
|
||||
|
||||
#endif /* __LINUX_LM3556_H */
|
||||
@@ -0,0 +1,66 @@
|
||||
/*
|
||||
* Copyright (C) 2012 Texas Instruments
|
||||
*
|
||||
* License Terms: GNU General Public License v2
|
||||
*
|
||||
* Simple driver for Texas Instruments LM355x LED driver chip
|
||||
*
|
||||
* Author: G.Shark Jeong <gshark.jeong@gmail.com>
|
||||
* Daniel Jeong <daniel.jeong@ti.com>
|
||||
*/
|
||||
|
||||
#define LM355x_NAME "leds-lm355x"
|
||||
#define LM3554_NAME "leds-lm3554"
|
||||
#define LM3556_NAME "leds-lm3556"
|
||||
|
||||
/* lm3554 : strobe def. on */
|
||||
enum lm355x_strobe {
|
||||
LM355x_PIN_STROBE_DISABLE = 0x00,
|
||||
LM355x_PIN_STROBE_ENABLE = 0x01,
|
||||
};
|
||||
|
||||
enum lm355x_torch {
|
||||
LM355x_PIN_TORCH_DISABLE = 0,
|
||||
LM3554_PIN_TORCH_ENABLE = 0x80,
|
||||
LM3556_PIN_TORCH_ENABLE = 0x10,
|
||||
};
|
||||
|
||||
enum lm355x_tx2 {
|
||||
LM355x_PIN_TX_DISABLE = 0,
|
||||
LM3554_PIN_TX_ENABLE = 0x20,
|
||||
LM3556_PIN_TX_ENABLE = 0x40,
|
||||
};
|
||||
|
||||
enum lm355x_ntc {
|
||||
LM355x_PIN_NTC_DISABLE = 0,
|
||||
LM3554_PIN_NTC_ENABLE = 0x08,
|
||||
LM3556_PIN_NTC_ENABLE = 0x80,
|
||||
};
|
||||
|
||||
enum lm355x_pmode {
|
||||
LM355x_PMODE_DISABLE = 0,
|
||||
LM355x_PMODE_ENABLE = 0x04,
|
||||
};
|
||||
|
||||
/*
|
||||
* struct lm3554_platform_data
|
||||
* @pin_strobe: strobe input
|
||||
* @pin_torch : input pin
|
||||
* lm3554-tx1/torch/gpio1
|
||||
* lm3556-torch
|
||||
* @pin_tx2 : input pin
|
||||
* lm3554-envm/tx2/gpio2
|
||||
* lm3556-tx pin
|
||||
* @ntc_pin : output pin
|
||||
* lm3554-ledi/ntc
|
||||
* lm3556-temp pin
|
||||
* @pass_mode : pass mode
|
||||
*/
|
||||
struct lm355x_platform_data {
|
||||
enum lm355x_strobe pin_strobe;
|
||||
enum lm355x_torch pin_tx1;
|
||||
enum lm355x_tx2 pin_tx2;
|
||||
enum lm355x_ntc ntc_pin;
|
||||
|
||||
enum lm355x_pmode pass_mode;
|
||||
};
|
||||
Reference in New Issue
Block a user