kernel_samsung_a34x-permissive/drivers/misc/mediatek/include/mt-plat/upmu_common.h

287 lines
6.9 KiB
C
Raw Normal View History

/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (C) 2021 MediaTek Inc.
*/
#ifndef _MT_PMIC_COMMON_H_
#define _MT_PMIC_COMMON_H_
#include <linux/types.h>
#if defined(CONFIG_MACH_MT8173)
#include <mach/upmu_sw.h>
#include <mach/upmu_hw.h>
#endif
#if defined(CONFIG_MACH_MT6739)
#include <mach/upmu_sw.h>
#include <mach/upmu_hw.h>
#endif
#if defined(CONFIG_MACH_MT6768)
#include <mach/upmu_sw.h>
#include <mach/upmu_hw.h>
#endif
#if defined(CONFIG_MACH_MT6771)
#include <mach/upmu_sw.h>
#include <mach/upmu_hw.h>
#endif
#if defined(CONFIG_MACH_MT6781)
#include <mach/upmu_sw.h>
#include <mach/upmu_hw.h>
#endif
#if defined(CONFIG_MACH_MT6785)
#include <mach/upmu_sw.h>
#include <mach/upmu_hw.h>
#endif
#if defined(CONFIG_MACH_MT6877)
#include <mach/upmu_sw.h>
#include <mach/upmu_hw.h>
#endif
#if defined(CONFIG_MACH_MT6833)
#include <mach/upmu_sw.h>
#include <mach/upmu_hw.h>
#endif
#if defined(CONFIG_MACH_MT6873)
#include <mach/upmu_sw.h>
#include <mach/upmu_hw.h>
#endif
#if defined(CONFIG_MACH_MT6853)
#include <mach/upmu_sw.h>
#include <mach/upmu_hw.h>
#endif
#if defined(CONFIG_MACH_MT6893)
#include "mt6885/include/mach/upmu_sw.h"
#include "mt6885/include/mach/upmu_hw.h"
#endif
#if defined(CONFIG_MACH_MT6885)
#include "mt6885/include/mach/upmu_sw.h"
#include "mt6885/include/mach/upmu_hw.h"
#endif
#define MAX_DEVICE 32
#define MAX_MOD_NAME 32
#define NON_OP "NOP"
/* Debug message event */
#define DBG_PMAPI_NONE 0x00000000
#define DBG_PMAPI_CG 0x00000001
#define DBG_PMAPI_PLL 0x00000002
#define DBG_PMAPI_SUB 0x00000004
#define DBG_PMAPI_PMIC 0x00000008
#define DBG_PMAPI_ALL 0xFFFFFFFF
#define DBG_PMAPI_MASK (DBG_PMAPI_ALL)
enum MT65XX_POWER_VOL_TAG {
VOL_DEFAULT,
VOL_0200 = 200,
VOL_0220 = 220,
VOL_0240 = 240,
VOL_0260 = 260,
VOL_0280 = 280,
VOL_0300 = 300,
VOL_0320 = 320,
VOL_0340 = 340,
VOL_0360 = 360,
VOL_0380 = 380,
VOL_0400 = 400,
VOL_0420 = 420,
VOL_0440 = 440,
VOL_0460 = 460,
VOL_0480 = 480,
VOL_0500 = 500,
VOL_0520 = 520,
VOL_0540 = 540,
VOL_0560 = 560,
VOL_0580 = 580,
VOL_0600 = 600,
VOL_0620 = 620,
VOL_0640 = 640,
VOL_0660 = 660,
VOL_0680 = 680,
VOL_0700 = 700,
VOL_0720 = 720,
VOL_0740 = 740,
VOL_0760 = 760,
VOL_0780 = 780,
VOL_0800 = 800,
VOL_0900 = 900,
VOL_0950 = 950,
VOL_1000 = 1000,
VOL_1050 = 1050,
VOL_1100 = 1100,
VOL_1150 = 1150,
VOL_1200 = 1200,
VOL_1220 = 1220,
VOL_1250 = 1250,
VOL_1300 = 1300,
VOL_1350 = 1350,
VOL_1360 = 1360,
VOL_1400 = 1400,
VOL_1450 = 1450,
VOL_1500 = 1500,
VOL_1550 = 1550,
VOL_1600 = 1600,
VOL_1650 = 1650,
VOL_1700 = 1700,
VOL_1750 = 1750,
VOL_1800 = 1800,
VOL_1850 = 1850,
VOL_1860 = 1860,
VOL_1900 = 1900,
VOL_1950 = 1950,
VOL_2000 = 2000,
VOL_2050 = 2050,
VOL_2100 = 2100,
VOL_2150 = 2150,
VOL_2200 = 2200,
VOL_2250 = 2250,
VOL_2300 = 2300,
VOL_2350 = 2350,
VOL_2400 = 2400,
VOL_2450 = 2450,
VOL_2500 = 2500,
VOL_2550 = 2550,
VOL_2600 = 2600,
VOL_2650 = 2650,
VOL_2700 = 2700,
VOL_2750 = 2750,
VOL_2760 = 2760,
VOL_2800 = 2800,
VOL_2850 = 2850,
VOL_2900 = 2900,
VOL_2950 = 2950,
VOL_3000 = 3000,
VOL_3050 = 3050,
VOL_3100 = 3100,
VOL_3150 = 3150,
VOL_3200 = 3200,
VOL_3250 = 3250,
VOL_3300 = 3300,
VOL_3350 = 3350,
VOL_3400 = 3400,
VOL_3450 = 3450,
VOL_3500 = 3500,
VOL_3550 = 3550,
VOL_3600 = 3600
};
/*
* PMIC Exported Function for power service
*/
extern signed int g_I_SENSE_offset;
/*
* PMIC extern functions
*/
extern unsigned int pmic_read_interface(unsigned int RegNum,
unsigned int *val,
unsigned int MASK,
unsigned int SHIFT);
extern unsigned int pmic_config_interface(unsigned int RegNum,
unsigned int val,
unsigned int MASK,
unsigned int SHIFT);
extern unsigned int pmic_read_interface_nolock(unsigned int RegNum,
unsigned int *val,
unsigned int MASK,
unsigned int SHIFT);
extern unsigned int pmic_config_interface_nolock(unsigned int RegNum,
unsigned int val,
unsigned int MASK,
unsigned int SHIFT);
extern unsigned int pmic_config_interface_nospinlock(unsigned int RegNum,
unsigned int val,
unsigned int MASK,
unsigned int SHIFT);
#ifdef CONFIG_MTK_PMIC_COMMON
extern unsigned short pmic_set_register_value(PMU_FLAGS_LIST_ENUM flagname,
unsigned int val);
extern unsigned short pmic_get_register_value(PMU_FLAGS_LIST_ENUM flagname);
extern unsigned short pmic_set_register_value_nolock(
PMU_FLAGS_LIST_ENUM flagname,
unsigned int val);
extern unsigned short pmic_get_register_value_nolock(
PMU_FLAGS_LIST_ENUM flagname);
extern unsigned short pmic_set_register_value_nospinlock(
PMU_FLAGS_LIST_ENUM flagname,
unsigned int val);
extern unsigned short bc11_set_register_value(PMU_FLAGS_LIST_ENUM flagname,
unsigned int val);
extern unsigned short bc11_get_register_value(PMU_FLAGS_LIST_ENUM flagname);
#endif
extern void upmu_set_reg_value(unsigned int reg, unsigned int reg_val);
extern unsigned int upmu_get_reg_value(unsigned int reg);
extern void pmic_lock(void);
extern void pmic_unlock(void);
extern void pmic_enable_interrupt(unsigned int intNo,
unsigned int en,
char *str);
extern void pmic_mask_interrupt(unsigned int intNo, char *str);
extern void pmic_unmask_interrupt(unsigned int intNo, char *str);
extern void pmic_register_interrupt_callback(unsigned int intNo
, void (EINT_FUNC_PTR)(void));
extern unsigned short is_battery_remove_pmic(void);
extern void lockadcch3(void);
extern void unlockadcch3(void);
extern unsigned int pmic_Read_Efuse_HPOffset(int i);
extern void Charger_Detect_Init(void);
extern void Charger_Detect_Release(void);
extern int get_dlpt_imix_spm(void);
extern int get_dlpt_imix(void);
extern int dlpt_check_power_off(void);
extern unsigned int pmic_read_vbif28_volt(unsigned int *val);
extern unsigned int pmic_get_vbif28_volt(void);
extern void pmic_auxadc_debug(int index);
extern int PMIC_IMM_GetOneChannelValue(unsigned int dwChannel,
int deCount,
int trimd);
extern int get_battery_plug_out_status(void);
extern void pmic_turn_on_clock(unsigned int enable);
extern int do_ptim_ex(bool isSuspend, unsigned int *bat, signed int *cur);
extern void get_ptim_value(bool isSuspend, unsigned int *bat, signed int *cur);
extern int pmic_pre_wdt_reset(void);
extern int pmic_pre_condition1(void);
extern int pmic_pre_condition2(void);
extern int pmic_pre_condition3(void);
extern int pmic_post_condition1(void);
extern int pmic_post_condition2(void);
extern int pmic_post_condition3(void);
extern int pmic_dump_all_reg(void);
extern int pmic_force_vcore_pwm(bool enable);
extern int is_ext_buck_gpio_exist(void);
extern int is_ext_buck_exist(void);
extern int is_ext_buck2_exist(void);
extern int is_ext_buck_gpio_exist(void);
extern int is_ext_vbat_boost_exist(void);
extern int is_ext_swchr_exist(void);
/*----- Smart Reset -----*/
extern void pmic_enable_smart_reset(unsigned char smart_en,
unsigned char smart_sdn_en);
/*----- BAT_TEMP detection -----*/
extern void enable_bat_temp_det(bool en);
#endif /* _MT_PMIC_COMMON_H_ */