Files
android/drivers/power/supply/mediatek/charger/rt9465.h
T
threeeye bc1d038eac REVVL 6 Pro kernel bring-up: full working tree snapshot (2026-09-12)
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)
2026-09-12 13:36:46 +00:00

153 lines
3.8 KiB
C

/*
* Copyright (C) 2016 MediaTek Inc.
*
* 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 __RT9465_CHARGER_H
#define __RT9465_CHARGER_H
#define RT9465_SLAVE_ADDR 0x4B
#define RT9465_VERSION_E1 0x00
#define RT9465_VERSION_E2 0x01
#define RT9465_VERSION_E3 0x02
#define RT9465_VERSION_E4 0x03
#define RT9465_VERSION_E5 0x04
enum rt9465_reg_addr {
RT9465_REG_CHG_CTRL0,
RT9465_REG_CHG_CTRL1,
RT9465_REG_CHG_CTRL2,
RT9465_REG_CHG_CTRL3,
RT9465_REG_CHG_CTRL4,
RT9465_REG_CHG_CTRL5,
RT9465_REG_CHG_CTRL6,
RT9465_REG_CHG_CTRL7,
RT9465_REG_CHG_CTRL8,
RT9465_REG_CHG_CTRL9,
RT9465_REG_CHG_CTRL10,
RT9465_REG_CHG_CTRL12 = 0x0C,
RT9465_REG_CHG_CTRL13,
RT9465_REG_HIDDEN_CTRL2 = 0x12,
RT9465_REG_HIDDEN_CTRL6 = 0x16,
RT9465_REG_SYSTEM1 = 0x20,
RT9465_REG_CHG_STATC = 0x30,
RT9465_REG_CHG_FAULT,
RT9465_REG_CHG_IRQ1,
RT9465_REG_CHG_IRQ2,
RT9465_REG_CHG_STATC_MASK = 0x40,
RT9465_REG_CHG_FAULT_MASK,
RT9465_REG_CHG_IRQ1_MASK,
RT9465_REG_CHG_IRQ2_MASK,
RT9465_REG_MAX,
};
/* =========================== */
/* RT9465 Parameter */
/* =========================== */
/* uA */
#define RT9465_ICHG_NUM 20
#define RT9465_ICHG_MIN 600000
#define RT9465_ICHG_MAX 2500000
#define RT9465_ICHG_STEP 100000
/* uA */
#define RT9465_IEOC_NUM 11
#define RT9465_IEOC_MIN 600000
#define RT9465_IEOC_MAX 1600000
#define RT9465_IEOC_STEP 100000
/* uV */
#define RT9465_MIVR_NUM 128
#define RT9465_MIVR_MIN 3900000
#define RT9465_MIVR_MAX 13400000
#define RT9465_MIVR_STEP 100000
/* uV */
#define RT9465_BAT_VOREG_NUM 64
#define RT9465_BAT_VOREG_MIN 3800000
#define RT9465_BAT_VOREG_MAX 5060000
#define RT9465_BAT_VOREG_STEP 20000
/* ADC Temperature */
/* degree */
#define RT9465_ADC_RPT_NUM 15
#define RT9465_ADC_RPT_MIN 60
#define RT9465_ADC_RPT_MAX 116
#define RT9465_ADC_RPT_STEP 4
/* ========== CHG_CTRL0 0x00 ============ */
#define RT9465_SHIFT_RST 7
#define RT9465_MASK_RST (1 << RT9465_SHIFT_RST)
/* ========== CHG_CTRL1 0x01 ============ */
#define RT9465_SHIFT_CHG_EN 7
#define RT9465_MASK_CHG_EN (1 << RT9465_SHIFT_CHG_EN)
/* ========== CHG_CTRL3 0x03 ============ */
#define RT9465_SHIFT_BAT_VOREG 2
#define RT9465_MASK_BAT_VOREG 0xFC
/* ========== CHG_CTRL5 0x05 ============ */
#define RT9465_SHIFT_MIVR 1
#define RT9465_SHIFT_MIVR_EN 0
#define RT9465_MASK_MIVR 0xFE
#define RT9465_MASK_MIVR_EN (1 << RT9465_SHIFT_MIVR_EN)
/* ========== CHG_CTRL6 0x06 ============ */
#define RT9465_SHIFT_ICHG 3
#define RT9465_MASK_ICHG 0xF8
/* ========== CHG_CTRL7 0x07 ============ */
#define RT9465_SHIFT_IEOC 4
#define RT9465_MASK_IEOC 0xF0
/* ========== CHG_CTRL8 0x08 ============ */
#define RT9465_SHIFT_TE_EN 7
#define RT9465_MASK_TE_EN (1 << RT9465_SHIFT_TE_EN)
/* ========== CHG_CTRL9 0x09 ============ */
#define RT9465_SHIFT_TMR_EN 3
#define RT9465_SHIFT_WT_FC 5
#define RT9465_MASK_TMR_EN (1 << RT9465_SHIFT_TMR_EN)
#define RT9465_MASK_WT_FC 0xE0
/* ========== CHG_CTRL10 0x0A ============ */
#define RT9465_SHIFT_WDT_EN 7
#define RT9465_MASK_WDT_EN (1 << RT9465_SHIFT_WDT_EN)
/* ========== CHG_CTRL12 0x0C ============ */
#define RT9465_SHIFT_ADC_RPT 4
#define RT9465_MASK_ADC_RPT 0xF0
/* ========== SYSTEM1 0x20 ============ */
#define RT9465_SHIFT_CHG_STAT 6
#define RT9465_SHIFT_VERSION 1
#define RT9465_MASK_CHG_STAT 0xC0
#define RT9465_MASK_VERSION 0x0E
/* ========== STATC 0x30 ============ */
#define RT9465_SHIFT_CHG_MIVR 6
#define RT9465_MASK_CHG_MIVR (1 << RT9465_SHIFT_CHG_MIVR)
#endif /* __RT9465_CHARGER_H */