1/* SPDX-License-Identifier: GPL-2.0 */ 2// TI LMU Common Core 3// Copyright (C) 2018 Texas Instruments Incorporated - https://www.ti.com/ 4 5#ifndef _TI_LMU_COMMON_H_ 6#define _TI_LMU_COMMON_H_ 7 8#include <linux/delay.h> 9#include <linux/device.h> 10#include <linux/init.h> 11#include <linux/leds.h> 12#include <linux/module.h> 13#include <linux/regmap.h> 14#include <linux/slab.h> 15#include <uapi/linux/uleds.h> 16 17#define LMU_11BIT_LSB_MASK (BIT(0) | BIT(1) | BIT(2)) 18#define LMU_11BIT_MSB_SHIFT 3 19 20#define MAX_BRIGHTNESS_8BIT 255 21#define MAX_BRIGHTNESS_11BIT 2047 22 23struct ti_lmu_bank { 24 struct regmap *regmap; 25 26 int max_brightness; 27 28 u8 lsb_brightness_reg; 29 u8 msb_brightness_reg; 30 31 u8 runtime_ramp_reg; 32 u32 ramp_up_usec; 33 u32 ramp_down_usec; 34}; 35 36int ti_lmu_common_set_brightness(struct ti_lmu_bank *lmu_bank, int brightness); 37 38int ti_lmu_common_set_ramp(struct ti_lmu_bank *lmu_bank); 39 40int ti_lmu_common_get_ramp_params(struct device *dev, 41 struct fwnode_handle *child, 42 struct ti_lmu_bank *lmu_data); 43 44int ti_lmu_common_get_brt_res(struct device *dev, struct fwnode_handle *child, 45 struct ti_lmu_bank *lmu_data); 46 47#endif /* _TI_LMU_COMMON_H_ */ 48