unplugged-kernel/drivers/misc/mediatek/pmic/mt6370/inc/mt6370_pmu_bled.h

72 lines
1.7 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2019 MediaTek Inc.
*/
#ifndef __LINUX_MT6370_PMU_BLED_H
#define __LINUX_MT6370_PMU_BLED_H
struct mt6370_pmu_bled_platdata {
uint8_t ext_en_pin:1;
uint8_t chan_en:4;
uint8_t map_linear:1;
uint8_t bl_ovp_level:2;
uint8_t bl_ocp_level:2;
uint8_t use_pwm:1;
uint8_t pwm_fsample:2;
uint8_t pwm_deglitch:2;
uint8_t pwm_hys_en:1;
uint8_t pwm_hys:2;
uint8_t pwm_avg_cycle:3;
uint8_t bled_ramptime:4;
uint8_t bled_flash_ramp:3;
uint8_t bled_curr_scale:2;
uint8_t pwm_lpf_coef:2;
uint8_t pwm_lpf_en:1;
uint8_t bled_curr_mode:1;
uint32_t max_bled_brightness;
const char *bled_name;
};
/* MT6370_PMU_REG_BLEN : 0xA0 */
#define MT6370_BLED_EN (0x40)
#define MT6370_BLED_EXTEN (0x80)
#define MT6370_BLED_CHANENSHFT 2
#define MT6370_BLED_MAPLINEAR (0x02)
/* MT6370_PMU_REG_BLBSTCTRL : 0xA1 */
#define MT6370_BLED_OVOCSHDNDIS (0x88)
#define MT6370_BLED_OVPSHFT (5)
#define MT6370_BLED_OCPSHFT (1)
/* MT6370_PMU_REG_BLPWM : 0xA2 */
#define MT6370_BLED_PWMSHIFT (7)
#define MT6370_BLED_PWMDSHFT (5)
#define MT6370_BLED_PWMFSHFT (3)
#define MT6370_BLED_PWMHESHFT (2)
#define MT6370_BLED_PWMHSHFT (0)
/* MT6370_PMU_REG_BLCTRL : 0xA3 */
#define MT6370_BLED_RAMPTSHFT (4)
/* MT6370_PMU_REG_BLDIM2 : 0xA6 */
#define MT6370_DIM2_MASK (0x07)
/* MT6370_PMU_REG_BLDIM1 : 0xA5 */
#define MT6370_DIM_MASK (0xFF)
/* MT6370_PMU_REG_BLFL : 0xA7 */
#define MT6370_BLFLMODE_MASK (0xC0)
#define MT6370_BLFLMODE_SHFT (6)
#define MT6370_BLFLRAMP_SHFT (3)
/* MT6370_PMU_REG_BLFLTO : 0xA8 */
#define MT6370_BLSTRB_TOMASK (0x7F)
/* MT6370_PMU_REG_BLMODECTRL : 0xAD */
#define MT6370_BLED_CURR_SCALESHFT (4)
#define MT6370_PWM_LPF_COEFSHFT (2)
#define MT6370_PWM_LPF_ENSHFT (1)
#define MT6370_BLED_CURR_MODESHFT (0)
#endif