cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

leds-lp55xx.h (2171B)


      1/* SPDX-License-Identifier: GPL-2.0-only */
      2/*
      3 * LP55XX Platform Data Header
      4 *
      5 * Copyright (C) 2012 Texas Instruments
      6 *
      7 * Author: Milo(Woogyom) Kim <milo.kim@ti.com>
      8 *
      9 * Derived from leds-lp5521.h, leds-lp5523.h
     10 */
     11
     12#ifndef _LEDS_LP55XX_H
     13#define _LEDS_LP55XX_H
     14
     15#include <linux/gpio/consumer.h>
     16#include <linux/led-class-multicolor.h>
     17
     18/* Clock configuration */
     19#define LP55XX_CLOCK_AUTO	0
     20#define LP55XX_CLOCK_INT	1
     21#define LP55XX_CLOCK_EXT	2
     22
     23#define LP55XX_MAX_GROUPED_CHAN	4
     24
     25struct lp55xx_led_config {
     26	const char *name;
     27	const char *default_trigger;
     28	u8 chan_nr;
     29	u8 led_current; /* mA x10, 0 if led is not connected */
     30	u8 max_current;
     31	int num_colors;
     32	unsigned int max_channel;
     33	int color_id[LED_COLOR_ID_MAX];
     34	int output_num[LED_COLOR_ID_MAX];
     35};
     36
     37struct lp55xx_predef_pattern {
     38	const u8 *r;
     39	const u8 *g;
     40	const u8 *b;
     41	u8 size_r;
     42	u8 size_g;
     43	u8 size_b;
     44};
     45
     46enum lp8501_pwr_sel {
     47	LP8501_ALL_VDD,		/* D1~9 are connected to VDD */
     48	LP8501_6VDD_3VOUT,	/* D1~6 with VDD, D7~9 with VOUT */
     49	LP8501_3VDD_6VOUT,	/* D1~6 with VOUT, D7~9 with VDD */
     50	LP8501_ALL_VOUT,	/* D1~9 are connected to VOUT */
     51};
     52
     53/*
     54 * struct lp55xx_platform_data
     55 * @led_config        : Configurable led class device
     56 * @num_channels      : Number of LED channels
     57 * @label             : Used for naming LEDs
     58 * @clock_mode        : Input clock mode. LP55XX_CLOCK_AUTO or _INT or _EXT
     59 * @setup_resources   : Platform specific function before enabling the chip
     60 * @release_resources : Platform specific function after  disabling the chip
     61 * @enable_gpiod      : enable GPIO descriptor
     62 * @patterns          : Predefined pattern data for RGB channels
     63 * @num_patterns      : Number of patterns
     64 * @update_config     : Value of CONFIG register
     65 */
     66struct lp55xx_platform_data {
     67
     68	/* LED channel configuration */
     69	struct lp55xx_led_config *led_config;
     70	u8 num_channels;
     71	const char *label;
     72
     73	/* Clock configuration */
     74	u8 clock_mode;
     75
     76	/* optional enable GPIO */
     77	struct gpio_desc *enable_gpiod;
     78
     79	/* Predefined pattern data */
     80	struct lp55xx_predef_pattern *patterns;
     81	unsigned int num_patterns;
     82
     83	/* LP8501 specific */
     84	enum lp8501_pwr_sel pwr_sel;
     85};
     86
     87#endif /* _LEDS_LP55XX_H */