123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- /* SPDX-License-Identifier: GPL-2.0-only */
- /*
- * LP55XX Platform Data Header
- *
- * Copyright (C) 2012 Texas Instruments
- *
- * Author: Milo(Woogyom) Kim <[email protected]>
- *
- * Derived from leds-lp5521.h, leds-lp5523.h
- */
- #ifndef _LEDS_LP55XX_H
- #define _LEDS_LP55XX_H
- #include <linux/gpio/consumer.h>
- #include <linux/led-class-multicolor.h>
- /* Clock configuration */
- #define LP55XX_CLOCK_AUTO 0
- #define LP55XX_CLOCK_INT 1
- #define LP55XX_CLOCK_EXT 2
- #define LP55XX_MAX_GROUPED_CHAN 4
- struct lp55xx_led_config {
- const char *name;
- const char *default_trigger;
- u8 chan_nr;
- u8 led_current; /* mA x10, 0 if led is not connected */
- u8 max_current;
- int num_colors;
- unsigned int max_channel;
- int color_id[LED_COLOR_ID_MAX];
- int output_num[LED_COLOR_ID_MAX];
- };
- struct lp55xx_predef_pattern {
- const u8 *r;
- const u8 *g;
- const u8 *b;
- u8 size_r;
- u8 size_g;
- u8 size_b;
- };
- enum lp8501_pwr_sel {
- LP8501_ALL_VDD, /* D1~9 are connected to VDD */
- LP8501_6VDD_3VOUT, /* D1~6 with VDD, D7~9 with VOUT */
- LP8501_3VDD_6VOUT, /* D1~6 with VOUT, D7~9 with VDD */
- LP8501_ALL_VOUT, /* D1~9 are connected to VOUT */
- };
- /*
- * struct lp55xx_platform_data
- * @led_config : Configurable led class device
- * @num_channels : Number of LED channels
- * @label : Used for naming LEDs
- * @clock_mode : Input clock mode. LP55XX_CLOCK_AUTO or _INT or _EXT
- * @setup_resources : Platform specific function before enabling the chip
- * @release_resources : Platform specific function after disabling the chip
- * @enable_gpiod : enable GPIO descriptor
- * @patterns : Predefined pattern data for RGB channels
- * @num_patterns : Number of patterns
- * @update_config : Value of CONFIG register
- */
- struct lp55xx_platform_data {
- /* LED channel configuration */
- struct lp55xx_led_config *led_config;
- u8 num_channels;
- const char *label;
- /* Clock configuration */
- u8 clock_mode;
- /* optional enable GPIO */
- struct gpio_desc *enable_gpiod;
- /* Predefined pattern data */
- struct lp55xx_predef_pattern *patterns;
- unsigned int num_patterns;
- /* LP8501 specific */
- enum lp8501_pwr_sel pwr_sel;
- };
- #endif /* _LEDS_LP55XX_H */
|