edef6ae040
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>
89 lines
2.7 KiB
C
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_ */
|