Linux kernel mirror (for testing)
git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel
os
linux
1/* SPDX-License-Identifier: GPL-2.0+ */
2// s2dos05.h
3//
4// Copyright (c) 2016 Samsung Electronics Co., Ltd
5// http://www.samsung.com
6// Copyright (C) 2024 Dzmitry Sankouski <dsankouski@gmail.com>
7
8#ifndef __LINUX_S2DOS05_H
9#define __LINUX_S2DOS05_H
10
11// S2DOS05 registers
12// Slave Addr : 0xC0
13enum S2DOS05_reg {
14 S2DOS05_REG_DEV_ID,
15 S2DOS05_REG_TOPSYS_STAT,
16 S2DOS05_REG_STAT,
17 S2DOS05_REG_EN,
18 S2DOS05_REG_LDO1_CFG,
19 S2DOS05_REG_LDO2_CFG,
20 S2DOS05_REG_LDO3_CFG,
21 S2DOS05_REG_LDO4_CFG,
22 S2DOS05_REG_BUCK_CFG,
23 S2DOS05_REG_BUCK_VOUT,
24 S2DOS05_REG_IRQ_MASK = 0x0D,
25 S2DOS05_REG_SSD_TSD = 0x0E,
26 S2DOS05_REG_OCL = 0x10,
27 S2DOS05_REG_IRQ = 0x11
28};
29
30// S2DOS05 regulator ids
31enum S2DOS05_regulators {
32 S2DOS05_LDO1,
33 S2DOS05_LDO2,
34 S2DOS05_LDO3,
35 S2DOS05_LDO4,
36 S2DOS05_BUCK1,
37 S2DOS05_REG_MAX,
38};
39
40#define S2DOS05_IRQ_PWRMT_MASK BIT(5)
41#define S2DOS05_IRQ_TSD_MASK BIT(4)
42#define S2DOS05_IRQ_SSD_MASK BIT(3)
43#define S2DOS05_IRQ_SCP_MASK BIT(2)
44#define S2DOS05_IRQ_UVLO_MASK BIT(1)
45#define S2DOS05_IRQ_OCD_MASK BIT(0)
46
47#define S2DOS05_BUCK_MIN1 506250
48#define S2DOS05_LDO_MIN1 1500000
49#define S2DOS05_LDO_MIN2 2700000
50#define S2DOS05_BUCK_STEP1 6250
51#define S2DOS05_LDO_STEP1 25000
52#define S2DOS05_LDO_VSEL_MASK 0x7F
53#define S2DOS05_LDO_FD_MASK 0x80
54#define S2DOS05_BUCK_VSEL_MASK 0xFF
55#define S2DOS05_BUCK_FD_MASK 0x08
56
57#define S2DOS05_ENABLE_MASK_L1 BIT(0)
58#define S2DOS05_ENABLE_MASK_L2 BIT(1)
59#define S2DOS05_ENABLE_MASK_L3 BIT(2)
60#define S2DOS05_ENABLE_MASK_L4 BIT(3)
61#define S2DOS05_ENABLE_MASK_B1 BIT(4)
62
63#define S2DOS05_RAMP_DELAY 12000
64
65#define S2DOS05_ENABLE_TIME_LDO 50
66#define S2DOS05_ENABLE_TIME_BUCK 350
67
68#define S2DOS05_LDO_N_VOLTAGES (S2DOS05_LDO_VSEL_MASK + 1)
69#define S2DOS05_BUCK_N_VOLTAGES (S2DOS05_BUCK_VSEL_MASK + 1)
70
71#define S2DOS05_REGULATOR_MAX (S2DOS05_REG_MAX)
72
73#endif // __LINUX_S2DOS05_H