mirror of
https://github.com/esphome/esphome.git
synced 2025-02-24 05:48:14 +00:00
* Add support for TI TLC59208F The chip is a 8-BIT FM+ I2C BUS LED DRIVER with 8 open-drain output channels. Its features include: - 256 linear levels - group dimming - group blinking - 64 slave addresses - customizable sub addresses and all call address - output update on stop or on ACK - 3.3V or 5V supply with 5V tolerant IO - no glitch startup - 50mA / output continuous current up to 17V * Convert macro to uint8_t Variables had to be renamed, clang-format would protest against mixed case in global variable name. * Change gen-call reset to use the correct i2c bus
25 lines
812 B
Python
25 lines
812 B
Python
import esphome.codegen as cg
|
|
import esphome.config_validation as cv
|
|
from esphome.components import output
|
|
from esphome.const import CONF_CHANNEL, CONF_ID
|
|
from . import TLC59208FOutput, tlc59208f_ns
|
|
|
|
DEPENDENCIES = ['tlc59208f']
|
|
|
|
TLC59208FChannel = tlc59208f_ns.class_('TLC59208FChannel', output.FloatOutput)
|
|
CONF_TLC59208F_ID = 'tlc59208f_id'
|
|
|
|
CONFIG_SCHEMA = output.FLOAT_OUTPUT_SCHEMA.extend({
|
|
cv.Required(CONF_ID): cv.declare_id(TLC59208FChannel),
|
|
cv.GenerateID(CONF_TLC59208F_ID): cv.use_id(TLC59208FOutput),
|
|
|
|
cv.Required(CONF_CHANNEL): cv.int_range(min=0, max=7),
|
|
})
|
|
|
|
|
|
def to_code(config):
|
|
paren = yield cg.get_variable(config[CONF_TLC59208F_ID])
|
|
rhs = paren.create_channel(config[CONF_CHANNEL])
|
|
var = cg.Pvariable(config[CONF_ID], rhs)
|
|
yield output.register_output(var, config)
|