android_kernel_xiaomi_sm8350/msm/dsi/dsi_pwr.h
Satya Rama Aditya Pinapala edef6ae040 disp: msm: dsi: snapshot of dsi from 4.14 to 4.19
This change is a snapshot of dsi files taken of 4.14
as of commit 764f7c2 (Merge remote-tracking branch
'quic/dev/msm-4.14-display' into msm-4.14)

Change-Id: I8361a844c35a4450f7800964a8da2741676fd6c7
Signed-off-by: Satya Rama Aditya Pinapala <psraditya30@codeaurora.org>
2019-07-11 12:29:10 -07:00

89 lines
2.7 KiB
C

/* SPDX-License-Identifier: GPL-2.0-only */
/*
* Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
*/
#ifndef _DSI_PWR_H_
#define _DSI_PWR_H_
#include <linux/device.h>
#include <linux/platform_device.h>
#include <linux/types.h>
#include <linux/regulator/consumer.h>
struct dsi_parser_utils;
/**
* struct dsi_vreg - regulator information for DSI regulators
* @vreg: Handle to the regulator.
* @vreg_name: Regulator name.
* @min_voltage: Minimum voltage in uV.
* @max_voltage: Maximum voltage in uV.
* @enable_load: Load, in uA, when enabled.
* @disable_load: Load, in uA, when disabled.
* @off_min_voltage: Minimum voltage in uV when regulator is disabled.
* @pre_on_sleep: Sleep, in ms, before enabling the regulator.
* @post_on_sleep: Sleep, in ms, after enabling the regulator.
* @pre_off_sleep: Sleep, in ms, before disabling the regulator.
* @post_off_sleep: Sleep, in ms, after disabling the regulator.
*/
struct dsi_vreg {
struct regulator *vreg;
char vreg_name[32];
u32 min_voltage;
u32 max_voltage;
u32 enable_load;
u32 disable_load;
u32 off_min_voltage;
u32 pre_on_sleep;
u32 post_on_sleep;
u32 pre_off_sleep;
u32 post_off_sleep;
};
/**
* struct dsi_regulator_info - set of vregs that are turned on/off together.
* @vregs: Array of dsi_vreg structures.
* @count: Number of vregs.
* @refcount: Reference counting for enabling.
*/
struct dsi_regulator_info {
struct dsi_vreg *vregs;
u32 count;
u32 refcount;
};
/**
* dsi_pwr_of_get_vreg_data - parse regulator supply information
* @of_node: Device of node to parse for supply information.
* @regs: Pointer where regulator information will be copied to.
* @supply_name: Name of the supply node.
*
* return: error code in case of failure or 0 for success.
*/
int dsi_pwr_of_get_vreg_data(struct dsi_parser_utils *utils,
struct dsi_regulator_info *regs,
char *supply_name);
/**
* dsi_pwr_get_dt_vreg_data - parse regulator supply information
* @dev: Device whose of_node needs to be parsed.
* @regs: Pointer where regulator information will be copied to.
* @supply_name: Name of the supply node.
*
* return: error code in case of failure or 0 for success.
*/
int dsi_pwr_get_dt_vreg_data(struct device *dev,
struct dsi_regulator_info *regs,
char *supply_name);
/**
* dsi_pwr_enable_regulator() - enable a set of regulators
* @regs: Pointer to set of regulators to enable or disable.
* @enable: Enable/Disable regulators.
*
* return: error code in case of failure or 0 for success.
*/
int dsi_pwr_enable_regulator(struct dsi_regulator_info *regs, bool enable);
#endif /* _DSI_PWR_H_ */