android_kernel_sony_sdm845/include/linux/incell.h
exer 360fd56746 include/linux: Import Sony Changes
*52.1.A.3.74

Signed-off-by: Sorayukii <sorayukii69@gmail.com>
2026-05-15 17:48:10 +07:00

117 lines
4 KiB
C

/*
* Copyright (c) 2012-2017, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
#ifndef __INCELL_H__
#define __INCELL_H__
#include <linux/types.h>
#define INCELL_OK ((int)0)
#define INCELL_ERROR ((int)(-1))
#define INCELL_ALREADY_LOCKED ((int)(-2))
#define INCELL_ALREADY_UNLOCKED ((int)(-3))
#define INCELL_EBUSY ((int)(-4))
#define INCELL_EALREADY ((int)(-5))
#define INCELL_POWER_ON ((bool)true)
#define INCELL_POWER_OFF ((bool)false)
#define INCELL_FORCE ((bool)true)
#define INCELL_UNFORCE ((bool)false)
typedef struct {
bool touch_power;
bool display_power;
} incell_pw_status;
typedef enum {
INCELL_TOUCH_RESET,
} incell_intf_mode;
typedef enum {
INCELL_DISPLAY_POWER_UNLOCK,
INCELL_DISPLAY_POWER_LOCK,
} incell_pw_lock;
/**
* @brief Get incell power status.
* @param[in] power_status : touch_power/display_power <br>
* INCELL_POWER_ON : Power on state <br>
* INCELL_POWER_OFF : Power off state.
* @return INCELL_OK : Get power status successfully <br>
* INCELL_ERROR : Failed to get power status.
*/
#ifdef CONFIG_DRM_SDE_SPECIFIC_PANEL
extern int incell_get_power_status(incell_pw_status *power_status);
#else
static inline int incell_get_power_status(incell_pw_status *power_status) {
power_status->display_power = INCELL_POWER_ON;
power_status->touch_power = INCELL_POWER_ON;
return INCELL_OK;}
#endif /* CONFIG_DRM_SDE_SPECIFIC_PANEL */
/**
* @brief Display control mode.
* @param[in] mode : INCELL_TOUCH_RESET(execute on/off) <br>
* @param[in] force : INCELL_FORCE - Forcibly execute an interface <br>
* INCELL_UNFORCE - Depending power lock or not.
* @return INCELL_OK : success <br>
* INCELL_ERROR : error detected <br>
* INCELL_EBUSY : try lock failed.
* @attention You cannot call this function from same fb_blank context.
*/
#ifdef CONFIG_DRM_SDE_SPECIFIC_PANEL
extern int incell_control_mode(incell_intf_mode mode, bool force);
#else
static inline int incell_control_mode(incell_intf_mode mode, bool force) {return INCELL_OK;}
#endif /* CONFIG_DRM_SDE_SPECIFIC_PANEL */
/**
* @brief LCD/Touch Power lock control.
* @param[in] lock : INCELL_DISPLAY_POWER_UNLOCK(not keep power supply) <br>
* INCELL_DISPLAY_POWER_LOCK(keep power supply) <br>
* @param[out] power_status : return power state of incell_pw_status
* by calling incell_get_power_status function.
* @return INCELL_OK : success <br>
* INCELL_ERROR : error detected <br>
* INCELL_ALREADY_LOCKED : Already power locked <br>
* INCELL_ALREADY_UNLOCKED : Already power unlocked.
*/
#ifdef CONFIG_DRM_SDE_SPECIFIC_PANEL
extern int incell_power_lock_ctrl(incell_pw_lock lock,
incell_pw_status *power_status);
#else
static inline int incell_power_lock_ctrl(incell_pw_lock lock,
incell_pw_status *power_status) {return INCELL_OK;}
#endif /* CONFIG_DRM_SDE_SPECIFIC_PANEL */
#ifdef CONFIG_DRM_SDE_SPECIFIC_PANEL
extern int incell_get_panel_name(void);
#else
static inline int incell_get_panel_name(void) {return 0; }
#endif /* CONFIG_DRM_SDE_SPECIFIC_PANEL */
#ifdef CONFIG_DRM_SDE_SPECIFIC_PANEL
extern bool incell_get_system_status(void);
#else
static inline bool incell_get_system_status(void) {return true; }
#endif /* CONFIG_DRM_SDE_SPECIFIC_PANEL */
#ifdef CONFIG_DRM_SDE_SPECIFIC_PANEL
extern int incell_get_display_sod(void);
#else
static inline int incell_get_display_sod(void) {return 0; }
#endif /* CONFIG_DRM_SDE_SPECIFIC_PANEL */
#endif /* __INCELL_H__ */