kernel-brax3-ubuntu-touch/drivers/thermal/mediatek/charger_cooling.h
erascape f319b992b1 kernel-5.15: Initial import brax3 UT kernel
* halium configs enabled

Signed-off-by: erascape <erascape@proton.me>
2025-09-23 15:17:10 +00:00

64 lines
1.9 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2020 MediaTek Inc.
*/
#ifndef _CHARGER_COOLING_H
#define _CHARGER_COOLING_H
#include <linux/thermal.h>
/*===========================================================
* Macro Definitions
*===========================================================
*/
#define CHARGER_COOLING_UNLIMITED_STATE (0)
#define CHARGER_STATE_NUM 9
#define MAX_CHARGER_COOLER_NAME_LEN (20)
/*==================================================
* Type Definitions
*==================================================
*/
enum charger_type {
SINGLE_CHARGER,
DUAL_CHARGER,
NUM_CHARGER_TYPE
};
/**
* struct charger_cooling_device - data for charger cooling device
* @name: naming string for this cooling device
* @target_state: target cooling state which is set in set_cur_state()
* callback.
* @max_state: maximum state supported for this cooling device
* @cdev: thermal_cooling_device pointer to keep track of the
* registered cooling device.
* @throttle: callback function to handle throttle request
* @dev: device node pointer
* @chg_psy: master charger power supply handle
* @s_chg_psy: slave charger power supply handle
*/
struct charger_cooling_device {
char name[MAX_CHARGER_COOLER_NAME_LEN];
unsigned long target_state;
unsigned long max_state;
struct thermal_cooling_device *cdev;
int (*throttle)(struct charger_cooling_device *charger_cdev, unsigned long state);
struct device *dev;
enum charger_type type;
struct power_supply *chg_psy;
struct power_supply *s_chg_psy;
const struct charger_cooling_platform_data *pdata;
};
/**
* struct charger_cooling_platform_data - charger cooler platform dependent data
* @state_to_charger_lv: callback function to transfer cooling state
* to chargering current LV
* @max_lv: max cooler LV supported by charger
*/
struct charger_cooling_platform_data {
int (*state_to_charger_limit)(struct charger_cooling_device *chg);
};
#endif