kernel-brax3-ubuntu-touch/drivers/clk/mediatek/mtk-pd-chk.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

57 lines
1.5 KiB
C

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2021 MediaTek Inc.
*/
#ifndef __MTK_PD_CHK_H
#define __MTK_PD_CHK_H
#include "clkchk.h"
#define PD_PWR_ON 1
#define PD_PWR_OFF 0
#define SWCG(_name) { \
.name = _name, \
}
/*
* Before MTCMOS off procedure, perform the Subsys CGs sanity check.
*/
struct pd_check_swcg {
struct clk *c;
const char *name;
};
struct pd_sta {
int pd_id;
u32 base;
u32 ofs;
u32 msk;
};
struct pdchk_ops {
struct pd_check_swcg *(*get_subsys_cg)(unsigned int id);
void (*dump_subsys_reg)(unsigned int pd_id);
bool (*is_in_pd_list)(unsigned int id);
void (*debug_dump)(unsigned int pd_id, unsigned int pwr_sta);
void (*log_dump)(unsigned int pd_id, unsigned int pwr_sta);
struct pd_msk *(*get_pd_pwr_msk)(int pd_id);
u32 (*get_pd_pwr_status)(int pd_id);
int (*get_pd_pwr_idx)(int pd_id);
int *(*get_off_mtcmos_id)(void);
int *(*get_notice_mtcmos_id)(void);
bool (*is_mtcmos_chk_bug_on)(void);
int *(*get_suspend_allow_id)(void);
void (*trace_power_event)(unsigned int pd_id, unsigned int pwr_sta);
void (*dump_power_event)(void);
void (*check_hwv_irq_sta)(void);
bool (*pdchk_suspend_retry)(bool reset_cnt);
};
void pdchk_common_init(const struct pdchk_ops *ops);
void pdchk_hwv_irq_init(struct platform_device *pdev);
extern const struct dev_pm_ops pdchk_dev_pm_ops;
extern struct clk *clk_chk_lookup(const char *name);
extern int pwr_hw_is_on(enum PWR_STA_TYPE type, s32 mask);
#endif /* __MTK_PD_CHK_H */