1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Simple driver for Texas Instruments LM3630A LED Flash driver chip 4*4882a593Smuzhiyun * Copyright (C) 2012 Texas Instruments 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #ifndef __LINUX_LM3630A_H 8*4882a593Smuzhiyun #define __LINUX_LM3630A_H 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #define LM3630A_NAME "lm3630a_bl" 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun enum lm3630a_pwm_ctrl { 13*4882a593Smuzhiyun LM3630A_PWM_DISABLE = 0x00, 14*4882a593Smuzhiyun LM3630A_PWM_BANK_A, 15*4882a593Smuzhiyun LM3630A_PWM_BANK_B, 16*4882a593Smuzhiyun LM3630A_PWM_BANK_ALL, 17*4882a593Smuzhiyun LM3630A_PWM_BANK_A_ACT_LOW = 0x05, 18*4882a593Smuzhiyun LM3630A_PWM_BANK_B_ACT_LOW, 19*4882a593Smuzhiyun LM3630A_PWM_BANK_ALL_ACT_LOW, 20*4882a593Smuzhiyun }; 21*4882a593Smuzhiyun 22*4882a593Smuzhiyun enum lm3630a_leda_ctrl { 23*4882a593Smuzhiyun LM3630A_LEDA_DISABLE = 0x00, 24*4882a593Smuzhiyun LM3630A_LEDA_ENABLE = 0x04, 25*4882a593Smuzhiyun LM3630A_LEDA_ENABLE_LINEAR = 0x14, 26*4882a593Smuzhiyun }; 27*4882a593Smuzhiyun 28*4882a593Smuzhiyun enum lm3630a_ledb_ctrl { 29*4882a593Smuzhiyun LM3630A_LEDB_DISABLE = 0x00, 30*4882a593Smuzhiyun LM3630A_LEDB_ON_A = 0x01, 31*4882a593Smuzhiyun LM3630A_LEDB_ENABLE = 0x02, 32*4882a593Smuzhiyun LM3630A_LEDB_ENABLE_LINEAR = 0x0A, 33*4882a593Smuzhiyun }; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun #define LM3630A_MAX_BRIGHTNESS 255 36*4882a593Smuzhiyun /* 37*4882a593Smuzhiyun *@leda_label : optional led a label. 38*4882a593Smuzhiyun *@leda_init_brt : led a init brightness. 4~255 39*4882a593Smuzhiyun *@leda_max_brt : led a max brightness. 4~255 40*4882a593Smuzhiyun *@leda_ctrl : led a disable, enable linear, enable exponential 41*4882a593Smuzhiyun *@ledb_label : optional led b label. 42*4882a593Smuzhiyun *@ledb_init_brt : led b init brightness. 4~255 43*4882a593Smuzhiyun *@ledb_max_brt : led b max brightness. 4~255 44*4882a593Smuzhiyun *@ledb_ctrl : led b disable, enable linear, enable exponential 45*4882a593Smuzhiyun *@pwm_period : pwm period 46*4882a593Smuzhiyun *@pwm_ctrl : pwm disable, bank a or b, active high or low 47*4882a593Smuzhiyun */ 48*4882a593Smuzhiyun struct lm3630a_platform_data { 49*4882a593Smuzhiyun 50*4882a593Smuzhiyun /* led a config. */ 51*4882a593Smuzhiyun const char *leda_label; 52*4882a593Smuzhiyun int leda_init_brt; 53*4882a593Smuzhiyun int leda_max_brt; 54*4882a593Smuzhiyun enum lm3630a_leda_ctrl leda_ctrl; 55*4882a593Smuzhiyun /* led b config. */ 56*4882a593Smuzhiyun const char *ledb_label; 57*4882a593Smuzhiyun int ledb_init_brt; 58*4882a593Smuzhiyun int ledb_max_brt; 59*4882a593Smuzhiyun enum lm3630a_ledb_ctrl ledb_ctrl; 60*4882a593Smuzhiyun /* pwm config. */ 61*4882a593Smuzhiyun unsigned int pwm_period; 62*4882a593Smuzhiyun enum lm3630a_pwm_ctrl pwm_ctrl; 63*4882a593Smuzhiyun }; 64*4882a593Smuzhiyun 65*4882a593Smuzhiyun #endif /* __LINUX_LM3630A_H */ 66