1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * TI LMU (Lighting Management Unit) Device Register Map 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright 2017 Texas Instruments 6*4882a593Smuzhiyun * 7*4882a593Smuzhiyun * Author: Milo Kim <milo.kim@ti.com> 8*4882a593Smuzhiyun */ 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun #ifndef __MFD_TI_LMU_REGISTER_H__ 11*4882a593Smuzhiyun #define __MFD_TI_LMU_REGISTER_H__ 12*4882a593Smuzhiyun 13*4882a593Smuzhiyun #include <linux/bitops.h> 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun /* LM3631 */ 16*4882a593Smuzhiyun #define LM3631_REG_DEVCTRL 0x00 17*4882a593Smuzhiyun #define LM3631_LCD_EN_MASK BIT(1) 18*4882a593Smuzhiyun #define LM3631_BL_EN_MASK BIT(0) 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun #define LM3631_REG_BRT_LSB 0x01 21*4882a593Smuzhiyun #define LM3631_REG_BRT_MSB 0x02 22*4882a593Smuzhiyun 23*4882a593Smuzhiyun #define LM3631_REG_BL_CFG 0x06 24*4882a593Smuzhiyun #define LM3631_BL_CHANNEL_MASK BIT(3) 25*4882a593Smuzhiyun #define LM3631_BL_DUAL_CHANNEL 0 26*4882a593Smuzhiyun #define LM3631_BL_SINGLE_CHANNEL BIT(3) 27*4882a593Smuzhiyun #define LM3631_MAP_MASK BIT(5) 28*4882a593Smuzhiyun #define LM3631_EXPONENTIAL_MAP 0 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun #define LM3631_REG_BRT_MODE 0x08 31*4882a593Smuzhiyun #define LM3631_MODE_MASK (BIT(1) | BIT(2) | BIT(3)) 32*4882a593Smuzhiyun #define LM3631_DEFAULT_MODE (BIT(1) | BIT(3)) 33*4882a593Smuzhiyun 34*4882a593Smuzhiyun #define LM3631_REG_SLOPE 0x09 35*4882a593Smuzhiyun #define LM3631_SLOPE_MASK 0xF0 36*4882a593Smuzhiyun #define LM3631_SLOPE_SHIFT 4 37*4882a593Smuzhiyun 38*4882a593Smuzhiyun #define LM3631_REG_LDO_CTRL1 0x0A 39*4882a593Smuzhiyun #define LM3631_EN_OREF_MASK BIT(0) 40*4882a593Smuzhiyun #define LM3631_EN_VNEG_MASK BIT(1) 41*4882a593Smuzhiyun #define LM3631_EN_VPOS_MASK BIT(2) 42*4882a593Smuzhiyun 43*4882a593Smuzhiyun #define LM3631_REG_LDO_CTRL2 0x0B 44*4882a593Smuzhiyun #define LM3631_EN_CONT_MASK BIT(0) 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun #define LM3631_REG_VOUT_CONT 0x0C 47*4882a593Smuzhiyun #define LM3631_VOUT_CONT_MASK (BIT(6) | BIT(7)) 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun #define LM3631_REG_VOUT_BOOST 0x0C 50*4882a593Smuzhiyun #define LM3631_REG_VOUT_POS 0x0D 51*4882a593Smuzhiyun #define LM3631_REG_VOUT_NEG 0x0E 52*4882a593Smuzhiyun #define LM3631_REG_VOUT_OREF 0x0F 53*4882a593Smuzhiyun #define LM3631_VOUT_MASK 0x3F 54*4882a593Smuzhiyun 55*4882a593Smuzhiyun #define LM3631_REG_ENTIME_VCONT 0x0B 56*4882a593Smuzhiyun #define LM3631_ENTIME_CONT_MASK 0x70 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun #define LM3631_REG_ENTIME_VOREF 0x0F 59*4882a593Smuzhiyun #define LM3631_REG_ENTIME_VPOS 0x10 60*4882a593Smuzhiyun #define LM3631_REG_ENTIME_VNEG 0x11 61*4882a593Smuzhiyun #define LM3631_ENTIME_MASK 0xF0 62*4882a593Smuzhiyun #define LM3631_ENTIME_SHIFT 4 63*4882a593Smuzhiyun 64*4882a593Smuzhiyun #define LM3631_MAX_REG 0x16 65*4882a593Smuzhiyun 66*4882a593Smuzhiyun /* LM3632 */ 67*4882a593Smuzhiyun #define LM3632_REG_CONFIG1 0x02 68*4882a593Smuzhiyun #define LM3632_OVP_MASK (BIT(5) | BIT(6) | BIT(7)) 69*4882a593Smuzhiyun #define LM3632_OVP_25V BIT(6) 70*4882a593Smuzhiyun 71*4882a593Smuzhiyun #define LM3632_REG_CONFIG2 0x03 72*4882a593Smuzhiyun #define LM3632_SWFREQ_MASK BIT(7) 73*4882a593Smuzhiyun #define LM3632_SWFREQ_1MHZ BIT(7) 74*4882a593Smuzhiyun 75*4882a593Smuzhiyun #define LM3632_REG_BRT_LSB 0x04 76*4882a593Smuzhiyun #define LM3632_REG_BRT_MSB 0x05 77*4882a593Smuzhiyun 78*4882a593Smuzhiyun #define LM3632_REG_IO_CTRL 0x09 79*4882a593Smuzhiyun #define LM3632_PWM_MASK BIT(6) 80*4882a593Smuzhiyun #define LM3632_I2C_MODE 0 81*4882a593Smuzhiyun #define LM3632_PWM_MODE BIT(6) 82*4882a593Smuzhiyun 83*4882a593Smuzhiyun #define LM3632_REG_ENABLE 0x0A 84*4882a593Smuzhiyun #define LM3632_BL_EN_MASK BIT(0) 85*4882a593Smuzhiyun #define LM3632_BL_CHANNEL_MASK (BIT(3) | BIT(4)) 86*4882a593Smuzhiyun #define LM3632_BL_SINGLE_CHANNEL BIT(4) 87*4882a593Smuzhiyun #define LM3632_BL_DUAL_CHANNEL BIT(3) 88*4882a593Smuzhiyun 89*4882a593Smuzhiyun #define LM3632_REG_BIAS_CONFIG 0x0C 90*4882a593Smuzhiyun #define LM3632_EXT_EN_MASK BIT(0) 91*4882a593Smuzhiyun #define LM3632_EN_VNEG_MASK BIT(1) 92*4882a593Smuzhiyun #define LM3632_EN_VPOS_MASK BIT(2) 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun #define LM3632_REG_VOUT_BOOST 0x0D 95*4882a593Smuzhiyun #define LM3632_REG_VOUT_POS 0x0E 96*4882a593Smuzhiyun #define LM3632_REG_VOUT_NEG 0x0F 97*4882a593Smuzhiyun #define LM3632_VOUT_MASK 0x3F 98*4882a593Smuzhiyun 99*4882a593Smuzhiyun #define LM3632_MAX_REG 0x10 100*4882a593Smuzhiyun 101*4882a593Smuzhiyun /* LM3633 */ 102*4882a593Smuzhiyun #define LM3633_REG_HVLED_OUTPUT_CFG 0x10 103*4882a593Smuzhiyun #define LM3633_HVLED1_CFG_MASK BIT(0) 104*4882a593Smuzhiyun #define LM3633_HVLED2_CFG_MASK BIT(1) 105*4882a593Smuzhiyun #define LM3633_HVLED3_CFG_MASK BIT(2) 106*4882a593Smuzhiyun #define LM3633_HVLED1_CFG_SHIFT 0 107*4882a593Smuzhiyun #define LM3633_HVLED2_CFG_SHIFT 1 108*4882a593Smuzhiyun #define LM3633_HVLED3_CFG_SHIFT 2 109*4882a593Smuzhiyun 110*4882a593Smuzhiyun #define LM3633_REG_BANK_SEL 0x11 111*4882a593Smuzhiyun 112*4882a593Smuzhiyun #define LM3633_REG_BL0_RAMP 0x12 113*4882a593Smuzhiyun #define LM3633_REG_BL1_RAMP 0x13 114*4882a593Smuzhiyun #define LM3633_BL_RAMPUP_MASK 0xF0 115*4882a593Smuzhiyun #define LM3633_BL_RAMPUP_SHIFT 4 116*4882a593Smuzhiyun #define LM3633_BL_RAMPDN_MASK 0x0F 117*4882a593Smuzhiyun #define LM3633_BL_RAMPDN_SHIFT 0 118*4882a593Smuzhiyun 119*4882a593Smuzhiyun #define LM3633_REG_BL_RAMP_CONF 0x1B 120*4882a593Smuzhiyun #define LM3633_BL_RAMP_MASK 0x0F 121*4882a593Smuzhiyun #define LM3633_BL_RAMP_EACH 0x05 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun #define LM3633_REG_PTN0_RAMP 0x1C 124*4882a593Smuzhiyun #define LM3633_REG_PTN1_RAMP 0x1D 125*4882a593Smuzhiyun #define LM3633_PTN_RAMPUP_MASK 0x70 126*4882a593Smuzhiyun #define LM3633_PTN_RAMPUP_SHIFT 4 127*4882a593Smuzhiyun #define LM3633_PTN_RAMPDN_MASK 0x07 128*4882a593Smuzhiyun #define LM3633_PTN_RAMPDN_SHIFT 0 129*4882a593Smuzhiyun 130*4882a593Smuzhiyun #define LM3633_REG_LED_MAPPING_MODE 0x1F 131*4882a593Smuzhiyun #define LM3633_LED_EXPONENTIAL BIT(1) 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun #define LM3633_REG_IMAX_HVLED_A 0x20 134*4882a593Smuzhiyun #define LM3633_REG_IMAX_HVLED_B 0x21 135*4882a593Smuzhiyun #define LM3633_REG_IMAX_LVLED_BASE 0x22 136*4882a593Smuzhiyun 137*4882a593Smuzhiyun #define LM3633_REG_BL_FEEDBACK_ENABLE 0x28 138*4882a593Smuzhiyun 139*4882a593Smuzhiyun #define LM3633_REG_ENABLE 0x2B 140*4882a593Smuzhiyun #define LM3633_LED_BANK_OFFSET 2 141*4882a593Smuzhiyun 142*4882a593Smuzhiyun #define LM3633_REG_PATTERN 0x2C 143*4882a593Smuzhiyun 144*4882a593Smuzhiyun #define LM3633_REG_BOOST_CFG 0x2D 145*4882a593Smuzhiyun #define LM3633_OVP_MASK (BIT(1) | BIT(2)) 146*4882a593Smuzhiyun #define LM3633_OVP_40V 0x6 147*4882a593Smuzhiyun 148*4882a593Smuzhiyun #define LM3633_REG_PWM_CFG 0x2F 149*4882a593Smuzhiyun #define LM3633_PWM_A_MASK BIT(0) 150*4882a593Smuzhiyun #define LM3633_PWM_B_MASK BIT(1) 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun #define LM3633_REG_BRT_HVLED_A_LSB 0x40 153*4882a593Smuzhiyun #define LM3633_REG_BRT_HVLED_A_MSB 0x41 154*4882a593Smuzhiyun #define LM3633_REG_BRT_HVLED_B_LSB 0x42 155*4882a593Smuzhiyun #define LM3633_REG_BRT_HVLED_B_MSB 0x43 156*4882a593Smuzhiyun 157*4882a593Smuzhiyun #define LM3633_REG_BRT_LVLED_BASE 0x44 158*4882a593Smuzhiyun 159*4882a593Smuzhiyun #define LM3633_REG_PTN_DELAY 0x50 160*4882a593Smuzhiyun 161*4882a593Smuzhiyun #define LM3633_REG_PTN_LOWTIME 0x51 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun #define LM3633_REG_PTN_HIGHTIME 0x52 164*4882a593Smuzhiyun 165*4882a593Smuzhiyun #define LM3633_REG_PTN_LOWBRT 0x53 166*4882a593Smuzhiyun 167*4882a593Smuzhiyun #define LM3633_REG_PTN_HIGHBRT LM3633_REG_BRT_LVLED_BASE 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun #define LM3633_REG_BL_OPEN_FAULT_STATUS 0xB0 170*4882a593Smuzhiyun 171*4882a593Smuzhiyun #define LM3633_REG_BL_SHORT_FAULT_STATUS 0xB2 172*4882a593Smuzhiyun 173*4882a593Smuzhiyun #define LM3633_REG_MONITOR_ENABLE 0xB4 174*4882a593Smuzhiyun 175*4882a593Smuzhiyun #define LM3633_MAX_REG 0xB4 176*4882a593Smuzhiyun 177*4882a593Smuzhiyun /* LM3695 */ 178*4882a593Smuzhiyun #define LM3695_REG_GP 0x10 179*4882a593Smuzhiyun #define LM3695_BL_CHANNEL_MASK BIT(3) 180*4882a593Smuzhiyun #define LM3695_BL_DUAL_CHANNEL 0 181*4882a593Smuzhiyun #define LM3695_BL_SINGLE_CHANNEL BIT(3) 182*4882a593Smuzhiyun #define LM3695_BRT_RW_MASK BIT(2) 183*4882a593Smuzhiyun #define LM3695_BL_EN_MASK BIT(0) 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun #define LM3695_REG_BRT_LSB 0x13 186*4882a593Smuzhiyun #define LM3695_REG_BRT_MSB 0x14 187*4882a593Smuzhiyun 188*4882a593Smuzhiyun #define LM3695_MAX_REG 0x14 189*4882a593Smuzhiyun 190*4882a593Smuzhiyun /* LM36274 */ 191*4882a593Smuzhiyun #define LM36274_REG_REV 0x01 192*4882a593Smuzhiyun #define LM36274_REG_BL_CFG_1 0x02 193*4882a593Smuzhiyun #define LM36274_REG_BL_CFG_2 0x03 194*4882a593Smuzhiyun #define LM36274_REG_BRT_LSB 0x04 195*4882a593Smuzhiyun #define LM36274_REG_BRT_MSB 0x05 196*4882a593Smuzhiyun #define LM36274_REG_BL_EN 0x08 197*4882a593Smuzhiyun 198*4882a593Smuzhiyun #define LM36274_REG_BIAS_CONFIG_1 0x09 199*4882a593Smuzhiyun #define LM36274_EXT_EN_MASK BIT(0) 200*4882a593Smuzhiyun #define LM36274_EN_VNEG_MASK BIT(1) 201*4882a593Smuzhiyun #define LM36274_EN_VPOS_MASK BIT(2) 202*4882a593Smuzhiyun 203*4882a593Smuzhiyun #define LM36274_REG_BIAS_CONFIG_2 0x0a 204*4882a593Smuzhiyun #define LM36274_REG_BIAS_CONFIG_3 0x0b 205*4882a593Smuzhiyun #define LM36274_REG_VOUT_BOOST 0x0c 206*4882a593Smuzhiyun #define LM36274_REG_VOUT_POS 0x0d 207*4882a593Smuzhiyun #define LM36274_REG_VOUT_NEG 0x0e 208*4882a593Smuzhiyun #define LM36274_VOUT_MASK 0x3F 209*4882a593Smuzhiyun 210*4882a593Smuzhiyun #define LM36274_MAX_REG 0x13 211*4882a593Smuzhiyun 212*4882a593Smuzhiyun #endif 213