Squashed backup commit (no shallow-clone history issues) of xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2 branch, upstream commit 9eece662e) plus all fixes applied to get everpal_defconfig building clean against a modern (GCC 15.2.0) toolchain -- see the previous commit message on the lineage-23.2 branch (also in this repo history is not available here since this is a squashed snapshot; full incremental history lives in the local DL380 checkout and the upstream GitHub remote). Upstream: https://github.com/xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2)
144 lines
3.8 KiB
C
144 lines
3.8 KiB
C
/*
|
|
* Copyright (C) 2019 MediaTek Inc.
|
|
* ShuFanLee <shufan_lee@richtek.com>
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License 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 http://www.gnu.org/licenses/gpl-2.0.html for more details.
|
|
*/
|
|
|
|
#ifndef __RT9750_LOAD_SWITCH_H
|
|
#define __RT9750_LOAD_SWITCH_H
|
|
|
|
#define RT9750_SLAVE_ADDR 0x67
|
|
#define RT9750_DEVICE_ID 0x00
|
|
#define RT9750_CHIP_REV_E1 0x00
|
|
|
|
enum rt9466_reg_addr {
|
|
RT9750_REG_CORE_CTRL0 = 0x00,
|
|
RT9750_REG_EVENT1_MASK,
|
|
RT9750_REG_EVENT2_MASK,
|
|
RT9750_REG_EVENT1,
|
|
RT9750_REG_EVENT2,
|
|
RT9750_REG_EVENT1_EN,
|
|
RT9750_REG_CONTROL,
|
|
RT9750_REG_ADC_CTRL,
|
|
RT9750_REG_SAMPLE_EN,
|
|
RT9750_REG_PROT_DLYOCP,
|
|
RT9750_REG_VBUS_OVP,
|
|
RT9750_REG_VOUT_REG,
|
|
RT9750_REG_VDROP_OVP,
|
|
RT9750_REG_VDROP_ALM,
|
|
RT9750_REG_VBAT_REG,
|
|
RT9750_REG_IBUS_OCP = 0x10,
|
|
RT9750_REG_TBUS_OTP,
|
|
RT9750_REG_TBAT_OTP,
|
|
RT9750_REG_VBUS_ADC2,
|
|
RT9750_REG_VBUS_ADC1,
|
|
RT9750_REG_IBUS_ADC2,
|
|
RT9750_REG_IBUS_ADC1,
|
|
RT9750_REG_VOUT_ADC2,
|
|
RT9750_REG_VOUT_ADC1,
|
|
RT9750_REG_VDROP_ADC2,
|
|
RT9750_REG_VDROP_ADC1,
|
|
RT9750_REG_VBAT_ADC2,
|
|
RT9750_REG_VBAT_ADC1,
|
|
RT9750_REG_TBUS_ADC2 = 0x1F,
|
|
RT9750_REG_TBUS_ADC1,
|
|
RT9750_REG_TBAT_ADC2,
|
|
RT9750_REG_TBAT_ADC1,
|
|
RT9750_REG_TDIE_ADC1,
|
|
RT9750_REG_EVENT_STATUS1,
|
|
RT9750_REG_EVENT_STATUS2,
|
|
RT9750_REG_EVENT_STATUS,
|
|
};
|
|
|
|
|
|
#define RT9750_VOUT_MAX 5000000
|
|
#define RT9750_VOUT_MIN 4200000
|
|
#define RT9750_VOUT_STEP 10000
|
|
#define RT9750_VOUT_NUM 81
|
|
|
|
#define RT9750_VBAT_MAX 5000000
|
|
#define RT9750_VBAT_MIN 4200000
|
|
#define RT9750_VBAT_STEP 10000
|
|
#define RT9750_VBAT_NUM 81
|
|
|
|
#define RT9750_IOCOCP_MAX 6500000
|
|
#define RT9750_IOCOCP_MIN 0
|
|
#define RT9750_IOCOCP_STEP 500000
|
|
#define RT9750_IOCOCP_NUM 14
|
|
|
|
#define RT9750_IBUSOC_MAX 6350000
|
|
#define RT9750_IBUSOC_MIN 0
|
|
#define RT9750_IBUSOC_STEP 50000
|
|
#define RT9750_IBUSOC_NUM 128
|
|
|
|
#define RT9750_VBUSOV_MAX 6500000
|
|
#define RT9750_VBUSOV_MIN 4200000
|
|
#define RT9750_VBUSOV_STEP 25000
|
|
#define RT9750_VBUSOV_NUM 93
|
|
|
|
|
|
/* ========== RT9750_REG_CONTROL 0x06 ============ */
|
|
#define RT9750_SHIFT_CHG_EN 4
|
|
#define RT9750_SHIFT_WDT 2
|
|
#define RT9750_MASK_CHG_EN (1 << RT9750_SHIFT_CHG_EN)
|
|
#define RT9750_MASK_WDT 0x0C
|
|
|
|
/* ========== RT9750_REG_PROT_DLYOCP 0x09 ============ */
|
|
#define RT9750_SHIFT_IOCOCP 4
|
|
#define RT9750_MASK_IOCOCP 0xF0
|
|
|
|
/* ========== RT9750_REG_VBUS_OVP 0x09 ============ */
|
|
#define RT9750_SHIFT_VBUSOVP 0
|
|
#define RT9750_MASK_VBUSOVP 0x7F
|
|
|
|
/* ========== RT9750_REG_VOUT_REG 0x0B ============ */
|
|
#define RT9750_SHIFT_VOUT 0
|
|
#define RT9750_MASK_VOUT 0x7F
|
|
|
|
/* ========== RT9750_REG_VBAT_REG 0x0E ============ */
|
|
#define RT9750_SHIFT_VBAT 0
|
|
#define RT9750_MASK_VBAT 0x7F
|
|
|
|
/* ========== RT9750_REG_IBUS_OC 0x10 ============ */
|
|
#define RT9750_SHIFT_IBUS_OCP 0
|
|
#define RT9750_MASK_IBUS_OCP 0x7F
|
|
|
|
/* ========== RT9750_REG_VBUS_ADC2 0x13 ============ */
|
|
#define RT9750_SHIFT_VBUS_ADC2 0
|
|
#define RT9750_MASK_VBUS_ADC2 0x1F
|
|
|
|
/* ========== RT9750_REG_IBUS_ADC2 0x15 ============ */
|
|
#define RT9750_SHIFT_IBUS_ADC2 0
|
|
#define RT9750_MASK_IBUS_ADC2 0x1F
|
|
|
|
/* ========== RT9750_REG_VOUT_ADC2 0x17 ============ */
|
|
#define RT9750_SHIFT_VOUT_ADC2 0
|
|
#define RT9750_MASK_VOUT_ADC2 0x1F
|
|
|
|
/* ========== RT9750_REG_VDROP_ADC2 0x19 ============ */
|
|
#define RT9750_SHIFT_VDROP_ADC2 0
|
|
#define RT9750_MASK_VDROP_ADC2 0x03
|
|
|
|
/* ========== RT9750_REG_VBAT_ADC2 0x1B ============ */
|
|
#define RT9750_SHIFT_VBAT_ADC2 0
|
|
#define RT9750_MASK_VBAT_ADC2 0x1F
|
|
|
|
/* ========== RT9750_REG_TBUS_ADC2 0x1F ============ */
|
|
#define RT9750_SHIFT_TBUS_ADC2 0
|
|
#define RT9750_MASK_TBUS_ADC2 0x0F
|
|
|
|
/* ========== RT9750_REG_TBAT_ADC2 0x21 ============ */
|
|
#define RT9750_SHIFT_TBAT_ADC2 0
|
|
|
|
#define RT9750_MASK_TBAT_ADC2 0x0F
|
|
|
|
#endif /* __RT9750_LOAD_SWITCH_H */
|