162306a36Sopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */
262306a36Sopenharmony_ci/* Copyright (C) 2020 Texas Instruments Incorporated - http://www.ti.com/ */
362306a36Sopenharmony_ci
462306a36Sopenharmony_ci#ifndef BQ25980_CHARGER_H
562306a36Sopenharmony_ci#define BQ25980_CHARGER_H
662306a36Sopenharmony_ci
762306a36Sopenharmony_ci#define BQ25980_MANUFACTURER "Texas Instruments"
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci#define BQ25980_BATOVP			0x0
1062306a36Sopenharmony_ci#define BQ25980_BATOVP_ALM		0x1
1162306a36Sopenharmony_ci#define BQ25980_BATOCP			0x2
1262306a36Sopenharmony_ci#define BQ25980_BATOCP_ALM		0x3
1362306a36Sopenharmony_ci#define BQ25980_BATUCP_ALM		0x4
1462306a36Sopenharmony_ci#define BQ25980_CHRGR_CTRL_1	0x5
1562306a36Sopenharmony_ci#define BQ25980_BUSOVP			0x6
1662306a36Sopenharmony_ci#define BQ25980_BUSOVP_ALM		0x7
1762306a36Sopenharmony_ci#define BQ25980_BUSOCP			0x8
1862306a36Sopenharmony_ci#define BQ25980_BUSOCP_ALM		0x9
1962306a36Sopenharmony_ci#define BQ25980_TEMP_CONTROL		0xA
2062306a36Sopenharmony_ci#define BQ25980_TDIE_ALM		0xB
2162306a36Sopenharmony_ci#define BQ25980_TSBUS_FLT		0xC
2262306a36Sopenharmony_ci#define BQ25980_TSBAT_FLG		0xD
2362306a36Sopenharmony_ci#define BQ25980_VAC_CONTROL		0xE
2462306a36Sopenharmony_ci#define BQ25980_CHRGR_CTRL_2	0xF
2562306a36Sopenharmony_ci#define BQ25980_CHRGR_CTRL_3	0x10
2662306a36Sopenharmony_ci#define BQ25980_CHRGR_CTRL_4	0x11
2762306a36Sopenharmony_ci#define BQ25980_CHRGR_CTRL_5	0x12
2862306a36Sopenharmony_ci#define BQ25980_STAT1			0x13
2962306a36Sopenharmony_ci#define BQ25980_STAT2			0x14
3062306a36Sopenharmony_ci#define BQ25980_STAT3			0x15
3162306a36Sopenharmony_ci#define BQ25980_STAT4			0x16
3262306a36Sopenharmony_ci#define BQ25980_STAT5			0x17
3362306a36Sopenharmony_ci#define BQ25980_FLAG1			0x18
3462306a36Sopenharmony_ci#define BQ25980_FLAG2			0x19
3562306a36Sopenharmony_ci#define BQ25980_FLAG3			0x1A
3662306a36Sopenharmony_ci#define BQ25980_FLAG4			0x1B
3762306a36Sopenharmony_ci#define BQ25980_FLAG5			0x1C
3862306a36Sopenharmony_ci#define BQ25980_MASK1			0x1D
3962306a36Sopenharmony_ci#define BQ25980_MASK2			0x1E
4062306a36Sopenharmony_ci#define BQ25980_MASK3			0x1F
4162306a36Sopenharmony_ci#define BQ25980_MASK4			0x20
4262306a36Sopenharmony_ci#define BQ25980_MASK5			0x21
4362306a36Sopenharmony_ci#define BQ25980_DEVICE_INFO		0x22
4462306a36Sopenharmony_ci#define BQ25980_ADC_CONTROL1		0x23
4562306a36Sopenharmony_ci#define BQ25980_ADC_CONTROL2		0x24
4662306a36Sopenharmony_ci#define BQ25980_IBUS_ADC_MSB		0x25
4762306a36Sopenharmony_ci#define BQ25980_IBUS_ADC_LSB		0x26
4862306a36Sopenharmony_ci#define BQ25980_VBUS_ADC_MSB		0x27
4962306a36Sopenharmony_ci#define BQ25980_VBUS_ADC_LSB		0x28
5062306a36Sopenharmony_ci#define BQ25980_VAC1_ADC_MSB		0x29
5162306a36Sopenharmony_ci#define BQ25980_VAC1_ADC_LSB		0x2A
5262306a36Sopenharmony_ci#define BQ25980_VAC2_ADC_MSB		0x2B
5362306a36Sopenharmony_ci#define BQ25980_VAC2_ADC_LSB		0x2C
5462306a36Sopenharmony_ci#define BQ25980_VOUT_ADC_MSB		0x2D
5562306a36Sopenharmony_ci#define BQ25980_VOUT_ADC_LSB		0x2E
5662306a36Sopenharmony_ci#define BQ25980_VBAT_ADC_MSB		0x2F
5762306a36Sopenharmony_ci#define BQ25980_VBAT_ADC_LSB		0x30
5862306a36Sopenharmony_ci#define BQ25980_IBAT_ADC_MSB		0x31
5962306a36Sopenharmony_ci#define BQ25980_IBAT_ADC_LSB		0x32
6062306a36Sopenharmony_ci#define BQ25980_TSBUS_ADC_MSB		0x33
6162306a36Sopenharmony_ci#define BQ25980_TSBUS_ADC_LSB		0x34
6262306a36Sopenharmony_ci#define BQ25980_TSBAT_ADC_MSB		0x35
6362306a36Sopenharmony_ci#define BQ25980_TSBAT_ADC_LSB		0x36
6462306a36Sopenharmony_ci#define BQ25980_TDIE_ADC_MSB		0x37
6562306a36Sopenharmony_ci#define BQ25980_TDIE_ADC_LSB		0x38
6662306a36Sopenharmony_ci#define BQ25980_DEGLITCH_TIME		0x39
6762306a36Sopenharmony_ci#define BQ25980_CHRGR_CTRL_6	0x3A
6862306a36Sopenharmony_ci
6962306a36Sopenharmony_ci#define BQ25980_BUSOCP_STEP_uA		250000
7062306a36Sopenharmony_ci#define BQ25980_BUSOCP_OFFSET_uA	1000000
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci#define BQ25980_BUSOCP_DFLT_uA		4250000
7362306a36Sopenharmony_ci#define BQ25975_BUSOCP_DFLT_uA		4250000
7462306a36Sopenharmony_ci#define BQ25960_BUSOCP_DFLT_uA		3250000
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci#define BQ25980_BUSOCP_MIN_uA		1000000
7762306a36Sopenharmony_ci
7862306a36Sopenharmony_ci#define BQ25980_BUSOCP_SC_MAX_uA	5750000
7962306a36Sopenharmony_ci#define BQ25975_BUSOCP_SC_MAX_uA	5750000
8062306a36Sopenharmony_ci#define BQ25960_BUSOCP_SC_MAX_uA	3750000
8162306a36Sopenharmony_ci
8262306a36Sopenharmony_ci#define BQ25980_BUSOCP_BYP_MAX_uA	8500000
8362306a36Sopenharmony_ci#define BQ25975_BUSOCP_BYP_MAX_uA	8500000
8462306a36Sopenharmony_ci#define BQ25960_BUSOCP_BYP_MAX_uA	5750000
8562306a36Sopenharmony_ci
8662306a36Sopenharmony_ci#define BQ25980_BUSOVP_SC_STEP_uV	100000
8762306a36Sopenharmony_ci#define BQ25975_BUSOVP_SC_STEP_uV	50000
8862306a36Sopenharmony_ci#define BQ25960_BUSOVP_SC_STEP_uV	50000
8962306a36Sopenharmony_ci#define BQ25980_BUSOVP_SC_OFFSET_uV	14000000
9062306a36Sopenharmony_ci#define BQ25975_BUSOVP_SC_OFFSET_uV	7000000
9162306a36Sopenharmony_ci#define BQ25960_BUSOVP_SC_OFFSET_uV	7000000
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci#define BQ25980_BUSOVP_BYP_STEP_uV	50000
9462306a36Sopenharmony_ci#define BQ25975_BUSOVP_BYP_STEP_uV	25000
9562306a36Sopenharmony_ci#define BQ25960_BUSOVP_BYP_STEP_uV	25000
9662306a36Sopenharmony_ci#define BQ25980_BUSOVP_BYP_OFFSET_uV	7000000
9762306a36Sopenharmony_ci#define BQ25975_BUSOVP_BYP_OFFSET_uV	3500000
9862306a36Sopenharmony_ci#define BQ25960_BUSOVP_BYP_OFFSET_uV	3500000
9962306a36Sopenharmony_ci
10062306a36Sopenharmony_ci#define BQ25980_BUSOVP_DFLT_uV		17800000
10162306a36Sopenharmony_ci#define BQ25980_BUSOVP_BYPASS_DFLT_uV	8900000
10262306a36Sopenharmony_ci#define BQ25975_BUSOVP_DFLT_uV		8900000
10362306a36Sopenharmony_ci#define BQ25975_BUSOVP_BYPASS_DFLT_uV	4450000
10462306a36Sopenharmony_ci#define BQ25960_BUSOVP_DFLT_uV		8900000
10562306a36Sopenharmony_ci
10662306a36Sopenharmony_ci#define BQ25980_BUSOVP_SC_MIN_uV	14000000
10762306a36Sopenharmony_ci#define BQ25975_BUSOVP_SC_MIN_uV	7000000
10862306a36Sopenharmony_ci#define BQ25960_BUSOVP_SC_MIN_uV	7000000
10962306a36Sopenharmony_ci#define BQ25980_BUSOVP_BYP_MIN_uV	7000000
11062306a36Sopenharmony_ci#define BQ25975_BUSOVP_BYP_MIN_uV	3500000
11162306a36Sopenharmony_ci#define BQ25960_BUSOVP_BYP_MIN_uV	3500000
11262306a36Sopenharmony_ci
11362306a36Sopenharmony_ci#define BQ25980_BUSOVP_SC_MAX_uV	22000000
11462306a36Sopenharmony_ci#define BQ25975_BUSOVP_SC_MAX_uV	12750000
11562306a36Sopenharmony_ci#define BQ25960_BUSOVP_SC_MAX_uV	12750000
11662306a36Sopenharmony_ci
11762306a36Sopenharmony_ci#define BQ25980_BUSOVP_BYP_MAX_uV	12750000
11862306a36Sopenharmony_ci#define BQ25975_BUSOVP_BYP_MAX_uV	6500000
11962306a36Sopenharmony_ci#define BQ25960_BUSOVP_BYP_MAX_uV	6500000
12062306a36Sopenharmony_ci
12162306a36Sopenharmony_ci#define BQ25980_BATOVP_STEP_uV		20000
12262306a36Sopenharmony_ci#define BQ25975_BATOVP_STEP_uV		10000
12362306a36Sopenharmony_ci#define BQ25960_BATOVP_STEP_uV		10000
12462306a36Sopenharmony_ci
12562306a36Sopenharmony_ci#define BQ25980_BATOVP_OFFSET_uV	7000000
12662306a36Sopenharmony_ci#define BQ25975_BATOVP_OFFSET_uV	3500000
12762306a36Sopenharmony_ci#define BQ25960_BATOVP_OFFSET_uV	3500000
12862306a36Sopenharmony_ci
12962306a36Sopenharmony_ci#define BQ25980_BATOVP_DFLT_uV		14000000
13062306a36Sopenharmony_ci#define BQ25975_BATOVP_DFLT_uV		8900000
13162306a36Sopenharmony_ci#define BQ25960_BATOVP_DFLT_uV		8900000
13262306a36Sopenharmony_ci
13362306a36Sopenharmony_ci#define BQ25980_BATOVP_MIN_uV		7000000
13462306a36Sopenharmony_ci#define BQ25975_BATOVP_MIN_uV		3500000
13562306a36Sopenharmony_ci#define BQ25960_BATOVP_MIN_uV		3500000
13662306a36Sopenharmony_ci
13762306a36Sopenharmony_ci#define BQ25980_BATOVP_MAX_uV		9540000
13862306a36Sopenharmony_ci#define BQ25975_BATOVP_MAX_uV		4770000
13962306a36Sopenharmony_ci#define BQ25960_BATOVP_MAX_uV		4770000
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci#define BQ25980_BATOCP_STEP_uA		100000
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci#define BQ25980_BATOCP_MASK		GENMASK(6, 0)
14462306a36Sopenharmony_ci
14562306a36Sopenharmony_ci#define BQ25980_BATOCP_DFLT_uA		8100000
14662306a36Sopenharmony_ci#define BQ25960_BATOCP_DFLT_uA		6100000
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci#define BQ25980_BATOCP_MIN_uA		2000000
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci#define BQ25980_BATOCP_MAX_uA		11000000
15162306a36Sopenharmony_ci#define BQ25975_BATOCP_MAX_uA		11000000
15262306a36Sopenharmony_ci#define BQ25960_BATOCP_MAX_uA		7000000
15362306a36Sopenharmony_ci
15462306a36Sopenharmony_ci#define BQ25980_ENABLE_HIZ		0xff
15562306a36Sopenharmony_ci#define BQ25980_DISABLE_HIZ		0x0
15662306a36Sopenharmony_ci#define BQ25980_EN_BYPASS		BIT(3)
15762306a36Sopenharmony_ci#define BQ25980_STAT1_OVP_MASK		(BIT(6) | BIT(5) | BIT(0))
15862306a36Sopenharmony_ci#define BQ25980_STAT3_OVP_MASK		(BIT(7) | BIT(6))
15962306a36Sopenharmony_ci#define BQ25980_STAT1_OCP_MASK		BIT(3)
16062306a36Sopenharmony_ci#define BQ25980_STAT2_OCP_MASK		(BIT(6) | BIT(1))
16162306a36Sopenharmony_ci#define BQ25980_STAT4_TFLT_MASK		GENMASK(5, 1)
16262306a36Sopenharmony_ci#define BQ25980_WD_STAT			BIT(0)
16362306a36Sopenharmony_ci#define BQ25980_PRESENT_MASK		GENMASK(4, 2)
16462306a36Sopenharmony_ci#define BQ25980_CHG_EN			BIT(4)
16562306a36Sopenharmony_ci#define BQ25980_EN_HIZ			BIT(6)
16662306a36Sopenharmony_ci#define BQ25980_ADC_EN			BIT(7)
16762306a36Sopenharmony_ci
16862306a36Sopenharmony_ci#define BQ25980_ADC_VOLT_STEP_uV        1000
16962306a36Sopenharmony_ci#define BQ25980_ADC_CURR_STEP_uA        1000
17062306a36Sopenharmony_ci#define BQ25980_ADC_POLARITY_BIT	BIT(7)
17162306a36Sopenharmony_ci
17262306a36Sopenharmony_ci#define BQ25980_WATCHDOG_MASK	GENMASK(4, 3)
17362306a36Sopenharmony_ci#define BQ25980_WATCHDOG_DIS	BIT(2)
17462306a36Sopenharmony_ci#define BQ25980_WATCHDOG_MAX	300000
17562306a36Sopenharmony_ci#define BQ25980_WATCHDOG_MIN	0
17662306a36Sopenharmony_ci#define BQ25980_NUM_WD_VAL	4
17762306a36Sopenharmony_ci
17862306a36Sopenharmony_ci#endif /* BQ25980_CHARGER_H */
179