/* SPDX-License-Identifier: GPL-2.0-only */
/*
* MFD core driver for Ricoh RN5T618 PMIC
*
* Copyright (C) 2014 Beniamino Galvani <b.galvani@gmail.com>
*/
#ifndef __LINUX_MFD_RN5T618_H
#define __LINUX_MFD_RN5T618_H
#include <linux/regmap.h>
#define RN5T618_LSIVER 0 x00
#define RN5T618_OTPVER 0 x01
#define RN5T618_IODAC 0 x02
#define RN5T618_VINDAC 0 x03
#define RN5T618_OUT32KEN 0 x05
#define RN5T618_CPUCNT 0 x06
#define RN5T618_PSWR 0 x07
#define RN5T618_PONHIS 0 x09
#define RN5T618_POFFHIS 0 x0a
#define RN5T618_WATCHDOG 0 x0b
#define RN5T618_WATCHDOGCNT 0 x0c
#define RN5T618_PWRFUNC 0 x0d
#define RN5T618_SLPCNT 0 x0e
#define RN5T618_REPCNT 0 x0f
#define RN5T618_PWRONTIMSET 0 x10
#define RN5T618_NOETIMSETCNT 0 x11
#define RN5T618_PWRIREN 0 x12
#define RN5T618_PWRIRQ 0 x13
#define RN5T618_PWRMON 0 x14
#define RN5T618_PWRIRSEL 0 x15
#define RN5T618_DC1_SLOT 0 x16
#define RN5T618_DC2_SLOT 0 x17
#define RN5T618_DC3_SLOT 0 x18
#define RN5T618_DC4_SLOT 0 x19
#define RN5T618_LDO1_SLOT 0 x1b
#define RN5T618_LDO2_SLOT 0 x1c
#define RN5T618_LDO3_SLOT 0 x1d
#define RN5T618_LDO4_SLOT 0 x1e
#define RN5T618_LDO5_SLOT 0 x1f
#define RN5T618_PSO0_SLOT 0 x25
#define RN5T618_PSO1_SLOT 0 x26
#define RN5T618_PSO2_SLOT 0 x27
#define RN5T618_PSO3_SLOT 0 x28
#define RN5T618_LDORTC1_SLOT 0 x2a
#define RN5T618_DC1CTL 0 x2c
#define RN5T618_DC1CTL2 0 x2d
#define RN5T618_DC2CTL 0 x2e
#define RN5T618_DC2CTL2 0 x2f
#define RN5T618_DC3CTL 0 x30
#define RN5T618_DC3CTL2 0 x31
#define RN5T618_DC4CTL 0 x32
#define RN5T618_DC4CTL2 0 x33
#define RN5T618_DC5CTL 0 x34
#define RN5T618_DC5CTL2 0 x35
#define RN5T618_DC1DAC 0 x36
#define RN5T618_DC2DAC 0 x37
#define RN5T618_DC3DAC 0 x38
#define RN5T618_DC4DAC 0 x39
#define RN5T618_DC5DAC 0 x3a
#define RN5T618_DC1DAC_SLP 0 x3b
#define RN5T618_DC2DAC_SLP 0 x3c
#define RN5T618_DC3DAC_SLP 0 x3d
#define RN5T618_DC4DAC_SLP 0 x3e
#define RN5T618_DCIREN 0 x40
#define RN5T618_DCIRQ 0 x41
#define RN5T618_DCIRMON 0 x42
#define RN5T618_LDOEN1 0 x44
#define RN5T618_LDOEN2 0 x45
#define RN5T618_LDODIS 0 x46
#define RN5T618_LDO1DAC 0 x4c
#define RN5T618_LDO2DAC 0 x4d
#define RN5T618_LDO3DAC 0 x4e
#define RN5T618_LDO4DAC 0 x4f
#define RN5T618_LDO5DAC 0 x50
#define RN5T618_LDO6DAC 0 x51
#define RN5T618_LDO7DAC 0 x52
#define RN5T618_LDO8DAC 0 x53
#define RN5T618_LDO9DAC 0 x54
#define RN5T618_LDO10DAC 0 x55
#define RN5T618_LDORTCDAC 0 x56
#define RN5T618_LDORTC2DAC 0 x57
#define RN5T618_LDO1DAC_SLP 0 x58
#define RN5T618_LDO2DAC_SLP 0 x59
#define RN5T618_LDO3DAC_SLP 0 x5a
#define RN5T618_LDO4DAC_SLP 0 x5b
#define RN5T618_LDO5DAC_SLP 0 x5c
#define RN5T618_ADCCNT1 0 x64
#define RN5T618_ADCCNT2 0 x65
#define RN5T618_ADCCNT3 0 x66
#define RN5T618_ILIMDATAH 0 x68
#define RN5T618_ILIMDATAL 0 x69
#define RN5T618_VBATDATAH 0 x6a
#define RN5T618_VBATDATAL 0 x6b
#define RN5T618_VADPDATAH 0 x6c
#define RN5T618_VADPDATAL 0 x6d
#define RN5T618_VUSBDATAH 0 x6e
#define RN5T618_VUSBDATAL 0 x6f
#define RN5T618_VSYSDATAH 0 x70
#define RN5T618_VSYSDATAL 0 x71
#define RN5T618_VTHMDATAH 0 x72
#define RN5T618_VTHMDATAL 0 x73
#define RN5T618_AIN1DATAH 0 x74
#define RN5T618_AIN1DATAL 0 x75
#define RN5T618_AIN0DATAH 0 x76
#define RN5T618_AIN0DATAL 0 x77
#define RN5T618_ILIMTHL 0 x78
#define RN5T618_ILIMTHH 0 x79
#define RN5T618_VBATTHL 0 x7a
#define RN5T618_VBATTHH 0 x7b
#define RN5T618_VADPTHL 0 x7c
#define RN5T618_VADPTHH 0 x7d
#define RN5T618_VUSBTHL 0 x7e
#define RN5T618_VUSBTHH 0 x7f
#define RN5T618_VSYSTHL 0 x80
#define RN5T618_VSYSTHH 0 x81
#define RN5T618_VTHMTHL 0 x82
#define RN5T618_VTHMTHH 0 x83
#define RN5T618_AIN1THL 0 x84
#define RN5T618_AIN1THH 0 x85
#define RN5T618_AIN0THL 0 x86
#define RN5T618_AIN0THH 0 x87
#define RN5T618_EN_ADCIR1 0 x88
#define RN5T618_EN_ADCIR2 0 x89
#define RN5T618_EN_ADCIR3 0 x8a
#define RN5T618_IR_ADC1 0 x8c
#define RN5T618_IR_ADC2 0 x8d
#define RN5T618_IR_ADC3 0 x8e
#define RN5T618_IOSEL 0 x90
#define RN5T618_IOOUT 0 x91
#define RN5T618_GPEDGE1 0 x92
#define RN5T618_GPEDGE2 0 x93
#define RN5T618_EN_GPIR 0 x94
#define RN5T618_IR_GPR 0 x95
#define RN5T618_IR_GPF 0 x96
#define RN5T618_MON_IOIN 0 x97
#define RN5T618_GPLED_FUNC 0 x98
#define RN5T618_INTPOL 0 x9c
#define RN5T618_INTEN 0 x9d
#define RN5T618_INTMON 0 x9e
#define RN5T618_RTC_SECONDS 0 xA0
#define RN5T618_RTC_MDAY 0 xA4
#define RN5T618_RTC_MONTH 0 xA5
#define RN5T618_RTC_YEAR 0 xA6
#define RN5T618_RTC_ADJUST 0 xA7
#define RN5T618_RTC_ALARM_Y_SEC 0 xA8
#define RN5T618_RTC_DAL_MONTH 0 xAC
#define RN5T618_RTC_CTRL1 0 xAE
#define RN5T618_RTC_CTRL2 0 xAF
#define RN5T618_PREVINDAC 0 xb0
#define RN5T618_BATDAC 0 xb1
#define RN5T618_CHGCTL1 0 xb3
#define RN5T618_CHGCTL2 0 xb4
#define RN5T618_VSYSSET 0 xb5
#define RN5T618_REGISET1 0 xb6
#define RN5T618_REGISET2 0 xb7
#define RN5T618_CHGISET 0 xb8
#define RN5T618_TIMSET 0 xb9
#define RN5T618_BATSET1 0 xba
#define RN5T618_BATSET2 0 xbb
#define RN5T618_DIESET 0 xbc
#define RN5T618_CHGSTATE 0 xbd
#define RN5T618_CHGCTRL_IRFMASK 0 xbe
#define RN5T618_CHGSTAT_IRFMASK1 0 xbf
#define RN5T618_CHGSTAT_IRFMASK2 0 xc0
#define RN5T618_CHGERR_IRFMASK 0 xc1
#define RN5T618_CHGCTRL_IRR 0 xc2
#define RN5T618_CHGSTAT_IRR1 0 xc3
#define RN5T618_CHGSTAT_IRR2 0 xc4
#define RN5T618_CHGERR_IRR 0 xc5
#define RN5T618_CHGCTRL_MONI 0 xc6
#define RN5T618_CHGSTAT_MONI1 0 xc7
#define RN5T618_CHGSTAT_MONI2 0 xc8
#define RN5T618_CHGERR_MONI 0 xc9
#define RN5T618_CHGCTRL_DETMOD1 0 xca
#define RN5T618_CHGCTRL_DETMOD2 0 xcb
#define RN5T618_CHGSTAT_DETMOD1 0 xcc
#define RN5T618_CHGSTAT_DETMOD2 0 xcd
#define RN5T618_CHGSTAT_DETMOD3 0 xce
#define RN5T618_CHGERR_DETMOD1 0 xcf
#define RN5T618_CHGERR_DETMOD2 0 xd0
#define RN5T618_CHGOSCCTL 0 xd4
#define RN5T618_CHGOSCSCORESET1 0 xd5
#define RN5T618_CHGOSCSCORESET2 0 xd6
#define RN5T618_CHGOSCSCORESET3 0 xd7
#define RN5T618_CHGOSCFREQSET1 0 xd8
#define RN5T618_CHGOSCFREQSET2 0 xd9
#define RN5T618_GCHGDET 0 xda
#define RN5T618_CONTROL 0 xe0
#define RN5T618_SOC 0 xe1
#define RN5T618_RE_CAP_H 0 xe2
#define RN5T618_RE_CAP_L 0 xe3
#define RN5T618_FA_CAP_H 0 xe4
#define RN5T618_FA_CAP_L 0 xe5
#define RN5T618_AGE 0 xe6
#define RN5T618_TT_EMPTY_H 0 xe7
#define RN5T618_TT_EMPTY_L 0 xe8
#define RN5T618_TT_FULL_H 0 xe9
#define RN5T618_TT_FULL_L 0 xea
#define RN5T618_VOLTAGE_1 0 xeb
#define RN5T618_VOLTAGE_0 0 xec
#define RN5T618_TEMP_1 0 xed
#define RN5T618_TEMP_0 0 xee
#define RN5T618_CC_CTRL 0 xef
#define RN5T618_CC_COUNT2 0 xf0
#define RN5T618_CC_COUNT1 0 xf1
#define RN5T618_CC_COUNT0 0 xf2
#define RN5T618_CC_SUMREG3 0 xf3
#define RN5T618_CC_SUMREG2 0 xf4
#define RN5T618_CC_SUMREG1 0 xf5
#define RN5T618_CC_SUMREG0 0 xf6
#define RN5T618_CC_OFFREG1 0 xf7
#define RN5T618_CC_OFFREG0 0 xf8
#define RN5T618_CC_GAINREG1 0 xf9
#define RN5T618_CC_GAINREG0 0 xfa
#define RN5T618_CC_AVEREG1 0 xfb
#define RN5T618_CC_AVEREG0 0 xfc
#define RN5T618_MAX_REG 0 xfc
#define RN5T618_REPCNT_REPWRON BIT(0 )
#define RN5T618_SLPCNT_SWPWROFF BIT(0 )
#define RN5T618_WATCHDOG_WDOGEN BIT(2 )
#define RN5T618_WATCHDOG_WDOGTIM_M (BIT(0 ) | BIT(1 ))
#define RN5T618_WATCHDOG_WDOGTIM_S 0
#define RN5T618_PWRIRQ_IR_WDOG BIT(6 )
#define RN5T618_POFFHIS_PWRON BIT(0 )
#define RN5T618_POFFHIS_TSHUT BIT(1 )
#define RN5T618_POFFHIS_VINDET BIT(2 )
#define RN5T618_POFFHIS_IODET BIT(3 )
#define RN5T618_POFFHIS_CPU BIT(4 )
#define RN5T618_POFFHIS_WDG BIT(5 )
#define RN5T618_POFFHIS_DCLIM BIT(6 )
#define RN5T618_POFFHIS_N_OE BIT(7 )
enum {
RN5T618_DCDC1,
RN5T618_DCDC2,
RN5T618_DCDC3,
RN5T618_DCDC4,
RN5T618_DCDC5,
RN5T618_LDO1,
RN5T618_LDO2,
RN5T618_LDO3,
RN5T618_LDO4,
RN5T618_LDO5,
RN5T618_LDO6,
RN5T618_LDO7,
RN5T618_LDO8,
RN5T618_LDO9,
RN5T618_LDO10,
RN5T618_LDORTC1,
RN5T618_LDORTC2,
RN5T618_REG_NUM,
};
enum {
RN5T567 = 0 ,
RN5T618,
RC5T619,
};
/* RN5T618 IRQ definitions */
enum {
RN5T618_IRQ_SYS = 0 ,
RN5T618_IRQ_DCDC,
RN5T618_IRQ_RTC,
RN5T618_IRQ_ADC,
RN5T618_IRQ_GPIO,
RN5T618_IRQ_CHG,
RN5T618_NR_IRQS,
};
struct rn5t618 {
struct regmap *regmap;
struct device *dev;
long variant;
int irq;
struct regmap_irq_chip_data *irq_data;
};
#endif /* __LINUX_MFD_RN5T618_H */
Messung V0.5 in Prozent C=70 H=100 G=86
¤ Dauer der Verarbeitung: 0.11 Sekunden
(vorverarbeitet am 2026-06-07)
¤
*© Formatika GbR, Deutschland