123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- /* SPDX-License-Identifier: GPL-2.0+ */
- /*
- * Copyright (C) 2015 Google, Inc
- * Written by Simon Glass <sjg@chromium.org>
- */
- #ifndef _PMIC_RK8XX_H_
- #define _PMIC_RK8XX_H_
- enum {
- REG_SECONDS = 0x00,
- REG_MINUTES,
- REG_HOURS,
- REG_DAYS,
- REG_MONTHS,
- REG_YEARS,
- REG_WEEKS,
- REG_ALARM_SECONDS,
- REG_ALARM_MINUTES,
- REG_ALARM_HOURS,
- REG_ALARM_DAYS,
- REG_ALARM_MONTHS,
- REG_ALARM_YEARS,
- REG_RTC_CTRL = 0x10,
- REG_RTC_STATUS,
- REG_RTC_INT,
- REG_RTC_COMP_LSB,
- REG_RTC_COMP_MSB,
- ID_MSB = 0x17,
- ID_LSB,
- REG_CLK32OUT = 0x20,
- REG_VB_MON,
- REG_THERMAL,
- REG_DCDC_EN,
- REG_LDO_EN,
- REG_SLEEP_SET_OFF1,
- REG_SLEEP_SET_OFF2,
- REG_DCDC_UV_STS,
- REG_DCDC_UV_ACT,
- REG_LDO_UV_STS,
- REG_LDO_UV_ACT,
- REG_DCDC_PG,
- REG_LDO_PG,
- REG_VOUT_MON_TDB,
- REG_BUCK1_CONFIG,
- REG_BUCK1_ON_VSEL,
- REG_BUCK1_SLP_VSEL,
- REG_BUCK1_DVS_VSEL,
- REG_BUCK2_CONFIG,
- REG_BUCK2_ON_VSEL,
- REG_BUCK2_SLP_VSEL,
- REG_BUCK2_DVS_VSEL,
- REG_BUCK3_CONFIG,
- REG_BUCK4_CONFIG,
- REG_BUCK4_ON_VSEL,
- REG_BUCK4_SLP_VSEL,
- REG_BOOST_CONFIG_REG,
- REG_LDO1_ON_VSEL,
- REG_LDO1_SLP_VSEL,
- REG_LDO2_ON_VSEL,
- REG_LDO2_SLP_VSEL,
- REG_LDO3_ON_VSEL,
- REG_LDO3_SLP_VSEL,
- REG_LDO4_ON_VSEL,
- REG_LDO4_SLP_VSEL,
- REG_LDO5_ON_VSEL,
- REG_LDO5_SLP_VSEL,
- REG_LDO6_ON_VSEL,
- REG_LDO6_SLP_VSEL,
- REG_LDO7_ON_VSEL,
- REG_LDO7_SLP_VSEL,
- REG_LDO8_ON_VSEL,
- REG_LDO8_SLP_VSEL,
- REG_DEVCTRL,
- REG_INT_STS1,
- REG_INT_STS_MSK1,
- REG_INT_STS2,
- REG_INT_STS_MSK2,
- REG_IO_POL,
- REG_OTP_VDD_EN,
- REG_H5V_EN,
- REG_SLEEP_SET_OFF,
- REG_BOOST_LDO9_ON_VSEL,
- REG_BOOST_LDO9_SLP_VSEL,
- REG_BOOST_CTRL,
- /* Not sure what this does */
- REG_DCDC_ILMAX = 0x90,
- REG_CHRG_COMP = 0x9a,
- REG_SUP_STS = 0xa0,
- REG_USB_CTRL,
- REG1_CHRG_CTRL,
- REG2_CHRG_CTRL,
- REG3_CHRG_CTRL,
- REG_BAT_CTRL,
- REG_BAT_HTS_TS1,
- REG_BAT_LTS_TS1,
- REG_BAT_HTS_TS2,
- REG_BAT_LTS_TS2,
- REG_TS_CTRL,
- REG_ADC_CTRL,
- REG_ON_SOURCE,
- REG_OFF_SOURCE,
- REG_GGCON,
- REG_GGSTS,
- REG_FRAME_SMP_INTERV,
- REG_AUTO_SLP_CUR_THR,
- REG3_GASCNT_CAL,
- REG2_GASCNT_CAL,
- REG1_GASCNT_CAL,
- REG0_GASCNT_CAL,
- REG3_GASCNT,
- REG2_GASCNT,
- REG1_GASCNT,
- REG0_GASCNT,
- REGH_BAT_CUR_AVG,
- REGL_BAT_CUR_AVG,
- REGH_TS1_ADC,
- REGL_TS1_ADC,
- REGH_TS2_ADC,
- REGL_TS2_ADC,
- REGH_BAT_OCV,
- REGL_BAT_OCV,
- REGH_BAT_VOL,
- REGL_BAT_VOL,
- REGH_RELAX_ENTRY_THRES,
- REGL_RELAX_ENTRY_THRES,
- REGH_RELAX_EXIT_THRES,
- REGL_RELAX_EXIT_THRES,
- REGH_RELAX_VOL1,
- REGL_RELAX_VOL1,
- REGH_RELAX_VOL2,
- REGL_RELAX_VOL2,
- REGH_BAT_CUR_R_CALC,
- REGL_BAT_CUR_R_CALC,
- REGH_BAT_VOL_R_CALC,
- REGL_BAT_VOL_R_CALC,
- REGH_CAL_OFFSET,
- REGL_CAL_OFFSET,
- REG_NON_ACT_TIMER_CNT,
- REGH_VCALIB0,
- REGL_VCALIB0,
- REGH_VCALIB1,
- REGL_VCALIB1,
- REGH_IOFFSET,
- REGL_IOFFSET,
- REG_SOC,
- REG3_REMAIN_CAP,
- REG2_REMAIN_CAP,
- REG1_REMAIN_CAP,
- REG0_REMAIN_CAP,
- REG_UPDAT_LEVE,
- REG3_NEW_FCC,
- REG2_NEW_FCC,
- REG1_NEW_FCC,
- REG0_NEW_FCC,
- REG_NON_ACT_TIMER_CNT_SAVE,
- REG_OCV_VOL_VALID,
- REG_REBOOT_CNT,
- REG_POFFSET,
- REG_MISC_MARK,
- REG_HALT_CNT,
- REGH_CALC_REST,
- REGL_CALC_REST,
- SAVE_DATA19,
- RK808_NUM_OF_REGS,
- };
- enum {
- RK817_REG_SYS_CFG3 = 0xf4,
- };
- enum {
- RK816_REG_DCDC_EN1 = 0x23,
- RK816_REG_DCDC_EN2,
- RK816_REG_DCDC_SLP_EN,
- RK816_REG_LDO_SLP_EN,
- RK816_REG_LDO_EN1 = 0x27,
- RK816_REG_LDO_EN2,
- };
- enum {
- RK805_ID = 0x8050,
- RK808_ID = 0x0000,
- RK809_ID = 0x8090,
- RK816_ID = 0x8160,
- RK817_ID = 0x8170,
- RK818_ID = 0x8180,
- };
- enum {
- RK817_POWER_EN0 = 0xb1,
- RK817_POWER_EN1,
- RK817_POWER_EN2,
- RK817_POWER_EN3,
- };
- #define RK817_POWER_EN_SAVE0 0x99
- #define RK817_POWER_EN_SAVE1 0xa4
- #define RK817_ID_MSB 0xed
- #define RK817_ID_LSB 0xee
- #define RK8XX_ID_MSK 0xfff0
- #define RK817_PMIC_SYS_CFG3 0xf4
- #define RK817_GPIO_INT_CFG 0xfe
- #define RK8XX_ON_SOURCE 0xae
- #define RK8XX_OFF_SOURCE 0xaf
- #define RK817_BUCK4_CMIN 0xc6
- #define RK817_ON_SOURCE 0xf5
- #define RK817_OFF_SOURCE 0xf6
- struct reg_data {
- u8 reg;
- u8 val;
- u8 mask;
- };
- struct rk8xx_reg_table {
- char *name;
- u8 reg_ctl;
- u8 reg_vol;
- };
- struct rk8xx_priv {
- int variant;
- };
- int rk8xx_spl_configure_buck(struct udevice *pmic, int buck, int uvolt);
- int rk818_spl_configure_usb_input_current(struct udevice *pmic, int current_ma);
- int rk818_spl_configure_usb_chrg_shutdown(struct udevice *pmic, int uvolt);
- #endif
|