13d0407baSopenharmony_ci/* SPDX-License-Identifier: GPL-2.0-only */ 23d0407baSopenharmony_ci/* 33d0407baSopenharmony_ci * Register definitions for Rockchip's RK808/RK818 PMIC 43d0407baSopenharmony_ci * 53d0407baSopenharmony_ci * Copyright (c) 2014, Fuzhou Rockchip Electronics Co., Ltd 63d0407baSopenharmony_ci * 73d0407baSopenharmony_ci * Author: Chris Zhong <zyw@rock-chips.com> 83d0407baSopenharmony_ci * Author: Zhang Qing <zhangqing@rock-chips.com> 93d0407baSopenharmony_ci * 103d0407baSopenharmony_ci * Copyright (C) 2016 PHYTEC Messtechnik GmbH 113d0407baSopenharmony_ci * 123d0407baSopenharmony_ci * Author: Wadim Egorov <w.egorov@phytec.de> 133d0407baSopenharmony_ci */ 143d0407baSopenharmony_ci 153d0407baSopenharmony_ci#ifndef __LINUX_REGULATOR_RK808_H 163d0407baSopenharmony_ci#define __LINUX_REGULATOR_RK808_H 173d0407baSopenharmony_ci 183d0407baSopenharmony_ci#include <linux/regulator/machine.h> 193d0407baSopenharmony_ci#include <linux/regmap.h> 203d0407baSopenharmony_ci 213d0407baSopenharmony_ci/* 223d0407baSopenharmony_ci * rk808 Global Register Map. 233d0407baSopenharmony_ci */ 243d0407baSopenharmony_ci 253d0407baSopenharmony_ci#define RK808_DCDC1 0 /* (0+RK808_START) */ 263d0407baSopenharmony_ci#define RK808_LDO1 4 /* (4+RK808_START) */ 273d0407baSopenharmony_ci#define RK808_NUM_REGULATORS 14 283d0407baSopenharmony_ci 293d0407baSopenharmony_cienum rk808_reg { 303d0407baSopenharmony_ci RK808_ID_DCDC1, 313d0407baSopenharmony_ci RK808_ID_DCDC2, 323d0407baSopenharmony_ci RK808_ID_DCDC3, 333d0407baSopenharmony_ci RK808_ID_DCDC4, 343d0407baSopenharmony_ci RK808_ID_LDO1, 353d0407baSopenharmony_ci RK808_ID_LDO2, 363d0407baSopenharmony_ci RK808_ID_LDO3, 373d0407baSopenharmony_ci RK808_ID_LDO4, 383d0407baSopenharmony_ci RK808_ID_LDO5, 393d0407baSopenharmony_ci RK808_ID_LDO6, 403d0407baSopenharmony_ci RK808_ID_LDO7, 413d0407baSopenharmony_ci RK808_ID_LDO8, 423d0407baSopenharmony_ci RK808_ID_SWITCH1, 433d0407baSopenharmony_ci RK808_ID_SWITCH2, 443d0407baSopenharmony_ci}; 453d0407baSopenharmony_ci 463d0407baSopenharmony_ci#define RK808_SECONDS_REG 0x00 473d0407baSopenharmony_ci#define RK808_MINUTES_REG 0x01 483d0407baSopenharmony_ci#define RK808_HOURS_REG 0x02 493d0407baSopenharmony_ci#define RK808_DAYS_REG 0x03 503d0407baSopenharmony_ci#define RK808_MONTHS_REG 0x04 513d0407baSopenharmony_ci#define RK808_YEARS_REG 0x05 523d0407baSopenharmony_ci#define RK808_WEEKS_REG 0x06 533d0407baSopenharmony_ci#define RK808_ALARM_SECONDS_REG 0x08 543d0407baSopenharmony_ci#define RK808_ALARM_MINUTES_REG 0x09 553d0407baSopenharmony_ci#define RK808_ALARM_HOURS_REG 0x0a 563d0407baSopenharmony_ci#define RK808_ALARM_DAYS_REG 0x0b 573d0407baSopenharmony_ci#define RK808_ALARM_MONTHS_REG 0x0c 583d0407baSopenharmony_ci#define RK808_ALARM_YEARS_REG 0x0d 593d0407baSopenharmony_ci#define RK808_RTC_CTRL_REG 0x10 603d0407baSopenharmony_ci#define RK808_RTC_STATUS_REG 0x11 613d0407baSopenharmony_ci#define RK808_RTC_INT_REG 0x12 623d0407baSopenharmony_ci#define RK808_RTC_COMP_LSB_REG 0x13 633d0407baSopenharmony_ci#define RK808_RTC_COMP_MSB_REG 0x14 643d0407baSopenharmony_ci#define RK808_ID_MSB 0x17 653d0407baSopenharmony_ci#define RK808_ID_LSB 0x18 663d0407baSopenharmony_ci#define RK808_CLK32OUT_REG 0x20 673d0407baSopenharmony_ci#define RK808_VB_MON_REG 0x21 683d0407baSopenharmony_ci#define RK808_THERMAL_REG 0x22 693d0407baSopenharmony_ci#define RK808_DCDC_EN_REG 0x23 703d0407baSopenharmony_ci#define RK808_LDO_EN_REG 0x24 713d0407baSopenharmony_ci#define RK808_SLEEP_SET_OFF_REG1 0x25 723d0407baSopenharmony_ci#define RK808_SLEEP_SET_OFF_REG2 0x26 733d0407baSopenharmony_ci#define RK808_DCDC_UV_STS_REG 0x27 743d0407baSopenharmony_ci#define RK808_DCDC_UV_ACT_REG 0x28 753d0407baSopenharmony_ci#define RK808_LDO_UV_STS_REG 0x29 763d0407baSopenharmony_ci#define RK808_LDO_UV_ACT_REG 0x2a 773d0407baSopenharmony_ci#define RK808_DCDC_PG_REG 0x2b 783d0407baSopenharmony_ci#define RK808_LDO_PG_REG 0x2c 793d0407baSopenharmony_ci#define RK808_VOUT_MON_TDB_REG 0x2d 803d0407baSopenharmony_ci#define RK808_BUCK1_CONFIG_REG 0x2e 813d0407baSopenharmony_ci#define RK808_BUCK1_ON_VSEL_REG 0x2f 823d0407baSopenharmony_ci#define RK808_BUCK1_SLP_VSEL_REG 0x30 833d0407baSopenharmony_ci#define RK808_BUCK1_DVS_VSEL_REG 0x31 843d0407baSopenharmony_ci#define RK808_BUCK2_CONFIG_REG 0x32 853d0407baSopenharmony_ci#define RK808_BUCK2_ON_VSEL_REG 0x33 863d0407baSopenharmony_ci#define RK808_BUCK2_SLP_VSEL_REG 0x34 873d0407baSopenharmony_ci#define RK808_BUCK2_DVS_VSEL_REG 0x35 883d0407baSopenharmony_ci#define RK808_BUCK3_CONFIG_REG 0x36 893d0407baSopenharmony_ci#define RK808_BUCK4_CONFIG_REG 0x37 903d0407baSopenharmony_ci#define RK808_BUCK4_ON_VSEL_REG 0x38 913d0407baSopenharmony_ci#define RK808_BUCK4_SLP_VSEL_REG 0x39 923d0407baSopenharmony_ci#define RK808_BOOST_CONFIG_REG 0x3a 933d0407baSopenharmony_ci#define RK808_LDO1_ON_VSEL_REG 0x3b 943d0407baSopenharmony_ci#define RK808_LDO1_SLP_VSEL_REG 0x3c 953d0407baSopenharmony_ci#define RK808_LDO2_ON_VSEL_REG 0x3d 963d0407baSopenharmony_ci#define RK808_LDO2_SLP_VSEL_REG 0x3e 973d0407baSopenharmony_ci#define RK808_LDO3_ON_VSEL_REG 0x3f 983d0407baSopenharmony_ci#define RK808_LDO3_SLP_VSEL_REG 0x40 993d0407baSopenharmony_ci#define RK808_LDO4_ON_VSEL_REG 0x41 1003d0407baSopenharmony_ci#define RK808_LDO4_SLP_VSEL_REG 0x42 1013d0407baSopenharmony_ci#define RK808_LDO5_ON_VSEL_REG 0x43 1023d0407baSopenharmony_ci#define RK808_LDO5_SLP_VSEL_REG 0x44 1033d0407baSopenharmony_ci#define RK808_LDO6_ON_VSEL_REG 0x45 1043d0407baSopenharmony_ci#define RK808_LDO6_SLP_VSEL_REG 0x46 1053d0407baSopenharmony_ci#define RK808_LDO7_ON_VSEL_REG 0x47 1063d0407baSopenharmony_ci#define RK808_LDO7_SLP_VSEL_REG 0x48 1073d0407baSopenharmony_ci#define RK808_LDO8_ON_VSEL_REG 0x49 1083d0407baSopenharmony_ci#define RK808_LDO8_SLP_VSEL_REG 0x4a 1093d0407baSopenharmony_ci#define RK808_DEVCTRL_REG 0x4b 1103d0407baSopenharmony_ci#define RK808_INT_STS_REG1 0x4c 1113d0407baSopenharmony_ci#define RK808_INT_STS_MSK_REG1 0x4d 1123d0407baSopenharmony_ci#define RK808_INT_STS_REG2 0x4e 1133d0407baSopenharmony_ci#define RK808_INT_STS_MSK_REG2 0x4f 1143d0407baSopenharmony_ci#define RK808_IO_POL_REG 0x50 1153d0407baSopenharmony_ci 1163d0407baSopenharmony_ci/* RK816 */ 1173d0407baSopenharmony_cienum rk816_reg { 1183d0407baSopenharmony_ci RK816_ID_DCDC1, 1193d0407baSopenharmony_ci RK816_ID_DCDC2, 1203d0407baSopenharmony_ci RK816_ID_DCDC3, 1213d0407baSopenharmony_ci RK816_ID_DCDC4, 1223d0407baSopenharmony_ci RK816_ID_LDO1, 1233d0407baSopenharmony_ci RK816_ID_LDO2, 1243d0407baSopenharmony_ci RK816_ID_LDO3, 1253d0407baSopenharmony_ci RK816_ID_LDO4, 1263d0407baSopenharmony_ci RK816_ID_LDO5, 1273d0407baSopenharmony_ci RK816_ID_LDO6, 1283d0407baSopenharmony_ci}; 1293d0407baSopenharmony_ci 1303d0407baSopenharmony_ci/* VERSION REGISTER */ 1313d0407baSopenharmony_ci#define RK816_CHIP_NAME_REG 0x17 1323d0407baSopenharmony_ci#define RK816_CHIP_VER_REG 0x18 1333d0407baSopenharmony_ci#define RK816_OTP_VER_REG 0x19 1343d0407baSopenharmony_ci#define RK816_NUM_REGULATORS 10 1353d0407baSopenharmony_ci 1363d0407baSopenharmony_ci/* POWER ON/OFF REGISTER */ 1373d0407baSopenharmony_ci#define RK816_VB_MON_REG 0x21 1383d0407baSopenharmony_ci#define RK816_THERMAL_REG 0x22 1393d0407baSopenharmony_ci#define RK816_PWRON_LP_INT_TIME_REG 0x47 1403d0407baSopenharmony_ci#define RK816_PWRON_DB_REG 0x48 1413d0407baSopenharmony_ci#define RK816_DEV_CTRL_REG 0x4B 1423d0407baSopenharmony_ci#define RK816_ON_SOURCE_REG 0xAE 1433d0407baSopenharmony_ci#define RK816_OFF_SOURCE_REG 0xAF 1443d0407baSopenharmony_ci 1453d0407baSopenharmony_ci/* POWER CHANNELS ENABLE REGISTER */ 1463d0407baSopenharmony_ci#define RK816_DCDC_EN_REG1 0x23 1473d0407baSopenharmony_ci#define RK816_DCDC_EN_REG2 0x24 1483d0407baSopenharmony_ci#define RK816_SLP_DCDC_EN_REG 0x25 1493d0407baSopenharmony_ci#define RK816_SLP_LDO_EN_REG 0x26 1503d0407baSopenharmony_ci#define RK816_LDO_EN_REG1 0x27 1513d0407baSopenharmony_ci#define RK816_LDO_EN_REG2 0x28 1523d0407baSopenharmony_ci 1533d0407baSopenharmony_ci/* BUCK AND LDO CONFIG REGISTER */ 1543d0407baSopenharmony_ci#define RK816_BUCK1_CONFIG_REG 0x2E 1553d0407baSopenharmony_ci#define RK816_BUCK1_ON_VSEL_REG 0x2F 1563d0407baSopenharmony_ci#define RK816_BUCK1_SLP_VSEL_REG 0x30 1573d0407baSopenharmony_ci#define RK816_BUCK2_CONFIG_REG 0x32 1583d0407baSopenharmony_ci#define RK816_BUCK2_ON_VSEL_REG 0x33 1593d0407baSopenharmony_ci#define RK816_BUCK2_SLP_VSEL_REG 0x34 1603d0407baSopenharmony_ci#define RK816_BUCK3_CONFIG_REG 0x36 1613d0407baSopenharmony_ci#define RK816_BUCK4_CONFIG_REG 0x37 1623d0407baSopenharmony_ci#define RK816_BUCK4_ON_VSEL_REG 0x38 1633d0407baSopenharmony_ci#define RK816_BUCK4_SLP_VSEL_REG 0x39 1643d0407baSopenharmony_ci#define RK816_LDO1_ON_VSEL_REG 0x3B 1653d0407baSopenharmony_ci#define RK816_LDO1_SLP_VSEL_REG 0x3C 1663d0407baSopenharmony_ci#define RK816_LDO2_ON_VSEL_REG 0x3D 1673d0407baSopenharmony_ci#define RK816_LDO2_SLP_VSEL_REG 0x3E 1683d0407baSopenharmony_ci#define RK816_LDO3_ON_VSEL_REG 0x3F 1693d0407baSopenharmony_ci#define RK816_LDO3_SLP_VSEL_REG 0x40 1703d0407baSopenharmony_ci#define RK816_LDO4_ON_VSEL_REG 0x41 1713d0407baSopenharmony_ci#define RK816_LDO4_SLP_VSEL_REG 0x42 1723d0407baSopenharmony_ci#define RK816_LDO5_ON_VSEL_REG 0x43 1733d0407baSopenharmony_ci#define RK816_LDO5_SLP_VSEL_REG 0x44 1743d0407baSopenharmony_ci#define RK816_LDO6_ON_VSEL_REG 0x45 1753d0407baSopenharmony_ci#define RK816_LDO6_SLP_VSEL_REG 0x46 1763d0407baSopenharmony_ci#define RK816_GPIO_IO_POL_REG 0x50 1773d0407baSopenharmony_ci 1783d0407baSopenharmony_ci/* CHARGER BOOST AND OTG REGISTER */ 1793d0407baSopenharmony_ci#define RK816_OTG_BUCK_LDO_CONFIG_REG 0x2A 1803d0407baSopenharmony_ci#define RK816_CHRG_CONFIG_REG 0x2B 1813d0407baSopenharmony_ci#define RK816_BOOST_ON_VESL_REG 0x54 1823d0407baSopenharmony_ci#define RK816_BOOST_SLP_VSEL_REG 0x55 1833d0407baSopenharmony_ci#define RK816_CHRG_BOOST_CONFIG_REG 0x9A 1843d0407baSopenharmony_ci#define RK816_SUP_STS_REG 0xA0 1853d0407baSopenharmony_ci#define RK816_USB_CTRL_REG 0xA1 1863d0407baSopenharmony_ci#define RK816_CHRG_CTRL_REG1 0xA3 1873d0407baSopenharmony_ci#define RK816_CHRG_CTRL_REG2 0xA4 1883d0407baSopenharmony_ci#define RK816_CHRG_CTRL_REG3 0xA5 1893d0407baSopenharmony_ci#define RK816_BAT_CTRL_REG 0xA6 1903d0407baSopenharmony_ci#define RK816_BAT_HTS_TS_REG 0xA8 1913d0407baSopenharmony_ci#define RK816_BAT_LTS_TS_REG 0xA9 1923d0407baSopenharmony_ci 1933d0407baSopenharmony_ci#define RK816_TS_CTRL_REG 0xAC 1943d0407baSopenharmony_ci#define RK816_ADC_CTRL_REG 0xAD 1953d0407baSopenharmony_ci#define RK816_GGCON_REG 0xB0 1963d0407baSopenharmony_ci#define RK816_GGSTS_REG 0xB1 1973d0407baSopenharmony_ci#define RK816_ZERO_CUR_ADC_REGH 0xB2 1983d0407baSopenharmony_ci#define RK816_ZERO_CUR_ADC_REGL 0xB3 1993d0407baSopenharmony_ci#define RK816_GASCNT_CAL_REG3 0xB4 2003d0407baSopenharmony_ci#define RK816_GASCNT_CAL_REG2 0xB5 2013d0407baSopenharmony_ci#define RK816_GASCNT_CAL_REG1 0xB6 2023d0407baSopenharmony_ci#define RK816_GASCNT_CAL_REG0 0xB7 2033d0407baSopenharmony_ci#define RK816_GASCNT_REG3 0xB8 2043d0407baSopenharmony_ci#define RK816_GASCNT_REG2 0xB9 2053d0407baSopenharmony_ci#define RK816_GASCNT_REG1 0xBA 2063d0407baSopenharmony_ci#define RK816_GASCNT_REG0 0xBB 2073d0407baSopenharmony_ci#define RK816_BAT_CUR_AVG_REGH 0xBC 2083d0407baSopenharmony_ci#define RK816_BAT_CUR_AVG_REGL 0xBD 2093d0407baSopenharmony_ci#define RK816_TS_ADC_REGH 0xBE 2103d0407baSopenharmony_ci#define RK816_TS_ADC_REGL 0xBF 2113d0407baSopenharmony_ci#define RK816_USB_ADC_REGH 0xC0 2123d0407baSopenharmony_ci#define RK816_USB_ADC_REGL 0xC1 2133d0407baSopenharmony_ci#define RK816_BAT_OCV_REGH 0xC2 2143d0407baSopenharmony_ci#define RK816_BAT_OCV_REGL 0xC3 2153d0407baSopenharmony_ci#define RK816_BAT_VOL_REGH 0xC4 2163d0407baSopenharmony_ci#define RK816_BAT_VOL_REGL 0xC5 2173d0407baSopenharmony_ci#define RK816_RELAX_ENTRY_THRES_REGH 0xC6 2183d0407baSopenharmony_ci#define RK816_RELAX_ENTRY_THRES_REGL 0xC7 2193d0407baSopenharmony_ci#define RK816_RELAX_EXIT_THRES_REGH 0xC8 2203d0407baSopenharmony_ci#define RK816_RELAX_EXIT_THRES_REGL 0xC9 2213d0407baSopenharmony_ci#define RK816_RELAX_VOL1_REGH 0xCA 2223d0407baSopenharmony_ci#define RK816_RELAX_VOL1_REGL 0xCB 2233d0407baSopenharmony_ci#define RK816_RELAX_VOL2_REGH 0xCC 2243d0407baSopenharmony_ci#define RK816_RELAX_VOL2_REGL 0xCD 2253d0407baSopenharmony_ci#define RK816_RELAX_CUR1_REGH 0xCE 2263d0407baSopenharmony_ci#define RK816_RELAX_CUR1_REGL 0xCF 2273d0407baSopenharmony_ci#define RK816_RELAX_CUR2_REGH 0xD0 2283d0407baSopenharmony_ci#define RK816_RELAX_CUR2_REGL 0xD1 2293d0407baSopenharmony_ci#define RK816_CAL_OFFSET_REGH 0xD2 2303d0407baSopenharmony_ci#define RK816_CAL_OFFSET_REGL 0xD3 2313d0407baSopenharmony_ci#define RK816_NON_ACT_TIMER_CNT_REG 0xD4 2323d0407baSopenharmony_ci#define RK816_VCALIB0_REGH 0xD5 2333d0407baSopenharmony_ci#define RK816_VCALIB0_REGL 0xD6 2343d0407baSopenharmony_ci#define RK816_VCALIB1_REGH 0xD7 2353d0407baSopenharmony_ci#define RK816_VCALIB1_REGL 0xD8 2363d0407baSopenharmony_ci#define RK816_FCC_GASCNT_REG3 0xD9 2373d0407baSopenharmony_ci#define RK816_FCC_GASCNT_REG2 0xDA 2383d0407baSopenharmony_ci#define RK816_FCC_GASCNT_REG1 0xDB 2393d0407baSopenharmony_ci#define RK816_FCC_GASCNT_REG0 0xDC 2403d0407baSopenharmony_ci#define RK816_IOFFSET_REGH 0xDD 2413d0407baSopenharmony_ci#define RK816_IOFFSET_REGL 0xDE 2423d0407baSopenharmony_ci#define RK816_SLEEP_CON_SAMP_CUR_REG 0xDF 2433d0407baSopenharmony_ci 2443d0407baSopenharmony_ci/* DATA REGISTER */ 2453d0407baSopenharmony_ci#define RK816_SOC_REG 0xE0 2463d0407baSopenharmony_ci#define RK816_REMAIN_CAP_REG3 0xE1 2473d0407baSopenharmony_ci#define RK816_REMAIN_CAP_REG2 0xE2 2483d0407baSopenharmony_ci#define RK816_REMAIN_CAP_REG1 0xE3 2493d0407baSopenharmony_ci#define RK816_REMAIN_CAP_REG0 0xE4 2503d0407baSopenharmony_ci#define RK816_UPDATE_LEVE_REG 0xE5 2513d0407baSopenharmony_ci#define RK816_NEW_FCC_REG3 0xE6 2523d0407baSopenharmony_ci#define RK816_NEW_FCC_REG2 0xE7 2533d0407baSopenharmony_ci#define RK816_NEW_FCC_REG1 0xE8 2543d0407baSopenharmony_ci#define RK816_NEW_FCC_REG0 0xE9 2553d0407baSopenharmony_ci#define RK816_NON_ACT_TIMER_CNT_REG_SAVE 0xEA 2563d0407baSopenharmony_ci#define RK816_OCV_VOL_VALID_REG 0xEB 2573d0407baSopenharmony_ci#define RK816_REBOOT_CNT_REG 0xEC 2583d0407baSopenharmony_ci#define RK816_PCB_IOFFSET_REG 0xED 2593d0407baSopenharmony_ci#define RK816_MISC_MARK_REG 0xEE 2603d0407baSopenharmony_ci#define RK816_HALT_CNT_REG 0xEF 2613d0407baSopenharmony_ci#define RK816_CALC_REST_REGH 0xF0 2623d0407baSopenharmony_ci#define RK816_CALC_REST_REGL 0xF1 2633d0407baSopenharmony_ci#define DATA18_REG 0xF2 2643d0407baSopenharmony_ci 2653d0407baSopenharmony_ci/* INTERRUPT REGISTER */ 2663d0407baSopenharmony_ci#define RK816_INT_STS_REG1 0x49 2673d0407baSopenharmony_ci#define RK816_INT_STS_MSK_REG1 0x4A 2683d0407baSopenharmony_ci#define RK816_INT_STS_REG2 0x4C 2693d0407baSopenharmony_ci#define RK816_INT_STS_MSK_REG2 0x4D 2703d0407baSopenharmony_ci#define RK816_INT_STS_REG3 0x4E 2713d0407baSopenharmony_ci#define RK816_INT_STS_MSK_REG3 0x4F 2723d0407baSopenharmony_ci#define RK816_GPIO_IO_POL_REG 0x50 2733d0407baSopenharmony_ci 2743d0407baSopenharmony_ci#define RK816_DATA18_REG 0xF2 2753d0407baSopenharmony_ci 2763d0407baSopenharmony_ci/* IRQ Definitions */ 2773d0407baSopenharmony_ci#define RK816_IRQ_PWRON_FALL 0 2783d0407baSopenharmony_ci#define RK816_IRQ_PWRON_RISE 1 2793d0407baSopenharmony_ci#define RK816_IRQ_VB_LOW 2 2803d0407baSopenharmony_ci#define RK816_IRQ_PWRON 3 2813d0407baSopenharmony_ci#define RK816_IRQ_PWRON_LP 4 2823d0407baSopenharmony_ci#define RK816_IRQ_HOTDIE 5 2833d0407baSopenharmony_ci#define RK816_IRQ_RTC_ALARM 6 2843d0407baSopenharmony_ci#define RK816_IRQ_RTC_PERIOD 7 2853d0407baSopenharmony_ci#define RK816_IRQ_USB_OV 8 2863d0407baSopenharmony_ci#define RK816_IRQ_PLUG_IN 9 2873d0407baSopenharmony_ci#define RK816_IRQ_PLUG_OUT 10 2883d0407baSopenharmony_ci#define RK816_IRQ_CHG_OK 11 2893d0407baSopenharmony_ci#define RK816_IRQ_CHG_TE 12 2903d0407baSopenharmony_ci#define RK816_IRQ_CHG_TS 13 2913d0407baSopenharmony_ci#define RK816_IRQ_CHG_CVTLIM 14 2923d0407baSopenharmony_ci#define RK816_IRQ_DISCHG_ILIM 15 2933d0407baSopenharmony_ci 2943d0407baSopenharmony_ci#define RK816_IRQ_PWRON_FALL_MSK BIT(5) 2953d0407baSopenharmony_ci#define RK816_IRQ_PWRON_RISE_MSK BIT(6) 2963d0407baSopenharmony_ci#define RK816_IRQ_VB_LOW_MSK BIT(1) 2973d0407baSopenharmony_ci#define RK816_IRQ_PWRON_MSK BIT(2) 2983d0407baSopenharmony_ci#define RK816_IRQ_PWRON_LP_MSK BIT(3) 2993d0407baSopenharmony_ci#define RK816_IRQ_HOTDIE_MSK BIT(4) 3003d0407baSopenharmony_ci#define RK816_IRQ_RTC_ALARM_MSK BIT(5) 3013d0407baSopenharmony_ci#define RK816_IRQ_RTC_PERIOD_MSK BIT(6) 3023d0407baSopenharmony_ci#define RK816_IRQ_USB_OV_MSK BIT(7) 3033d0407baSopenharmony_ci#define RK816_IRQ_PLUG_IN_MSK BIT(0) 3043d0407baSopenharmony_ci#define RK816_IRQ_PLUG_OUT_MSK BIT(1) 3053d0407baSopenharmony_ci#define RK816_IRQ_CHG_OK_MSK BIT(2) 3063d0407baSopenharmony_ci#define RK816_IRQ_CHG_TE_MSK BIT(3) 3073d0407baSopenharmony_ci#define RK816_IRQ_CHG_TS_MSK BIT(4) 3083d0407baSopenharmony_ci#define RK816_IRQ_CHG_CVTLIM_MSK BIT(6) 3093d0407baSopenharmony_ci#define RK816_IRQ_DISCHG_ILIM_MSK BIT(7) 3103d0407baSopenharmony_ci 3113d0407baSopenharmony_ci#define RK816_VBAT_LOW_2V8 0x00 3123d0407baSopenharmony_ci#define RK816_VBAT_LOW_2V9 0x01 3133d0407baSopenharmony_ci#define RK816_VBAT_LOW_3V0 0x02 3143d0407baSopenharmony_ci#define RK816_VBAT_LOW_3V1 0x03 3153d0407baSopenharmony_ci#define RK816_VBAT_LOW_3V2 0x04 3163d0407baSopenharmony_ci#define RK816_VBAT_LOW_3V3 0x05 3173d0407baSopenharmony_ci#define RK816_VBAT_LOW_3V4 0x06 3183d0407baSopenharmony_ci#define RK816_VBAT_LOW_3V5 0x07 3193d0407baSopenharmony_ci#define RK816_PWR_FALL_INT_STATUS (0x1 << 5) 3203d0407baSopenharmony_ci#define RK816_PWR_RISE_INT_STATUS (0x1 << 6) 3213d0407baSopenharmony_ci#define RK816_ALARM_INT_STATUS (0x1 << 5) 3223d0407baSopenharmony_ci#define EN_VBAT_LOW_IRQ (0x1 << 4) 3233d0407baSopenharmony_ci#define VBAT_LOW_ACT_MASK (0x1 << 4) 3243d0407baSopenharmony_ci#define RTC_TIMER_ALARM_INT_MSK (0x3 << 2) 3253d0407baSopenharmony_ci#define RTC_TIMER_ALARM_INT_DIS (0x0 << 2) 3263d0407baSopenharmony_ci#define RTC_PERIOD_ALARM_INT_MSK (0x3 << 5) 3273d0407baSopenharmony_ci#define RTC_PERIOD_ALARM_INT_ST (0x3 << 5) 3283d0407baSopenharmony_ci#define RTC_PERIOD_ALARM_INT_DIS (0x3 << 5) 3293d0407baSopenharmony_ci#define RTC_PERIOD_ALARM_INT_EN (0x9f) 3303d0407baSopenharmony_ci#define REG_WRITE_MSK 0xff 3313d0407baSopenharmony_ci#define BUCK4_MAX_ILIMIT 0x2c 3323d0407baSopenharmony_ci#define BUCK_RATE_MSK (0x3 << 3) 3333d0407baSopenharmony_ci#define BUCK_RATE_12_5MV_US (0x2 << 3) 3343d0407baSopenharmony_ci#define ALL_INT_FLAGS_ST 0xff 3353d0407baSopenharmony_ci#define PLUGIN_OUT_INT_EN 0xfc 3363d0407baSopenharmony_ci#define RK816_PWRON_FALL_RISE_INT_EN 0x9f 3373d0407baSopenharmony_ci#define BUCK1_2_IMAX_MAX (0x3 << 6) 3383d0407baSopenharmony_ci#define BUCK3_4_IMAX_MAX (0x3 << 3) 3393d0407baSopenharmony_ci#define BOOST_DISABLE ((0x1 << 5) | (0x0 << 1)) 3403d0407baSopenharmony_ci#define BUCK4_VRP_3PERCENT 0xc0 3413d0407baSopenharmony_ci#define RK816_BUCK_DVS_CONFIRM (0x1 << 7) 3423d0407baSopenharmony_ci#define RK816_TYPE_ES2 0x05 3433d0407baSopenharmony_ci#define RK816_CHIP_VERSION_MASK 0x0f 3443d0407baSopenharmony_ci 3453d0407baSopenharmony_ci/* RK818 */ 3463d0407baSopenharmony_ci#define RK818_DCDC1 0 3473d0407baSopenharmony_ci#define RK818_LDO1 4 3483d0407baSopenharmony_ci#define RK818_NUM_REGULATORS 17 3493d0407baSopenharmony_ci 3503d0407baSopenharmony_cienum rk818_reg { 3513d0407baSopenharmony_ci RK818_ID_DCDC1, 3523d0407baSopenharmony_ci RK818_ID_DCDC2, 3533d0407baSopenharmony_ci RK818_ID_DCDC3, 3543d0407baSopenharmony_ci RK818_ID_DCDC4, 3553d0407baSopenharmony_ci RK818_ID_BOOST, 3563d0407baSopenharmony_ci RK818_ID_LDO1, 3573d0407baSopenharmony_ci RK818_ID_LDO2, 3583d0407baSopenharmony_ci RK818_ID_LDO3, 3593d0407baSopenharmony_ci RK818_ID_LDO4, 3603d0407baSopenharmony_ci RK818_ID_LDO5, 3613d0407baSopenharmony_ci RK818_ID_LDO6, 3623d0407baSopenharmony_ci RK818_ID_LDO7, 3633d0407baSopenharmony_ci RK818_ID_LDO8, 3643d0407baSopenharmony_ci RK818_ID_LDO9, 3653d0407baSopenharmony_ci RK818_ID_SWITCH, 3663d0407baSopenharmony_ci RK818_ID_HDMI_SWITCH, 3673d0407baSopenharmony_ci RK818_ID_OTG_SWITCH, 3683d0407baSopenharmony_ci}; 3693d0407baSopenharmony_ci 3703d0407baSopenharmony_ci#define RK818_VB_MON_REG 0x21 3713d0407baSopenharmony_ci#define RK818_THERMAL_REG 0x22 3723d0407baSopenharmony_ci#define RK818_DCDC_EN_REG 0x23 3733d0407baSopenharmony_ci#define RK818_LDO_EN_REG 0x24 3743d0407baSopenharmony_ci#define RK818_SLEEP_SET_OFF_REG1 0x25 3753d0407baSopenharmony_ci#define RK818_SLEEP_SET_OFF_REG2 0x26 3763d0407baSopenharmony_ci#define RK818_DCDC_UV_STS_REG 0x27 3773d0407baSopenharmony_ci#define RK818_DCDC_UV_ACT_REG 0x28 3783d0407baSopenharmony_ci#define RK818_LDO_UV_STS_REG 0x29 3793d0407baSopenharmony_ci#define RK818_LDO_UV_ACT_REG 0x2a 3803d0407baSopenharmony_ci#define RK818_DCDC_PG_REG 0x2b 3813d0407baSopenharmony_ci#define RK818_LDO_PG_REG 0x2c 3823d0407baSopenharmony_ci#define RK818_VOUT_MON_TDB_REG 0x2d 3833d0407baSopenharmony_ci#define RK818_BUCK1_CONFIG_REG 0x2e 3843d0407baSopenharmony_ci#define RK818_BUCK1_ON_VSEL_REG 0x2f 3853d0407baSopenharmony_ci#define RK818_BUCK1_SLP_VSEL_REG 0x30 3863d0407baSopenharmony_ci#define RK818_BUCK2_CONFIG_REG 0x32 3873d0407baSopenharmony_ci#define RK818_BUCK2_ON_VSEL_REG 0x33 3883d0407baSopenharmony_ci#define RK818_BUCK2_SLP_VSEL_REG 0x34 3893d0407baSopenharmony_ci#define RK818_BUCK3_CONFIG_REG 0x36 3903d0407baSopenharmony_ci#define RK818_BUCK4_CONFIG_REG 0x37 3913d0407baSopenharmony_ci#define RK818_BUCK4_ON_VSEL_REG 0x38 3923d0407baSopenharmony_ci#define RK818_BUCK4_SLP_VSEL_REG 0x39 3933d0407baSopenharmony_ci#define RK818_BOOST_CONFIG_REG 0x3a 3943d0407baSopenharmony_ci#define RK818_LDO1_ON_VSEL_REG 0x3b 3953d0407baSopenharmony_ci#define RK818_LDO1_SLP_VSEL_REG 0x3c 3963d0407baSopenharmony_ci#define RK818_LDO2_ON_VSEL_REG 0x3d 3973d0407baSopenharmony_ci#define RK818_LDO2_SLP_VSEL_REG 0x3e 3983d0407baSopenharmony_ci#define RK818_LDO3_ON_VSEL_REG 0x3f 3993d0407baSopenharmony_ci#define RK818_LDO3_SLP_VSEL_REG 0x40 4003d0407baSopenharmony_ci#define RK818_LDO4_ON_VSEL_REG 0x41 4013d0407baSopenharmony_ci#define RK818_LDO4_SLP_VSEL_REG 0x42 4023d0407baSopenharmony_ci#define RK818_LDO5_ON_VSEL_REG 0x43 4033d0407baSopenharmony_ci#define RK818_LDO5_SLP_VSEL_REG 0x44 4043d0407baSopenharmony_ci#define RK818_LDO6_ON_VSEL_REG 0x45 4053d0407baSopenharmony_ci#define RK818_LDO6_SLP_VSEL_REG 0x46 4063d0407baSopenharmony_ci#define RK818_LDO7_ON_VSEL_REG 0x47 4073d0407baSopenharmony_ci#define RK818_LDO7_SLP_VSEL_REG 0x48 4083d0407baSopenharmony_ci#define RK818_LDO8_ON_VSEL_REG 0x49 4093d0407baSopenharmony_ci#define RK818_LDO8_SLP_VSEL_REG 0x4a 4103d0407baSopenharmony_ci#define RK818_BOOST_LDO9_ON_VSEL_REG 0x54 4113d0407baSopenharmony_ci#define RK818_BOOST_LDO9_SLP_VSEL_REG 0x55 4123d0407baSopenharmony_ci#define RK818_DEVCTRL_REG 0x4b 4133d0407baSopenharmony_ci#define RK818_INT_STS_REG1 0X4c 4143d0407baSopenharmony_ci#define RK818_INT_STS_MSK_REG1 0x4d 4153d0407baSopenharmony_ci#define RK818_INT_STS_REG2 0x4e 4163d0407baSopenharmony_ci#define RK818_INT_STS_MSK_REG2 0x4f 4173d0407baSopenharmony_ci#define RK818_IO_POL_REG 0x50 4183d0407baSopenharmony_ci#define RK818_H5V_EN_REG 0x52 4193d0407baSopenharmony_ci#define RK818_SLEEP_SET_OFF_REG3 0x53 4203d0407baSopenharmony_ci#define RK818_BOOST_LDO9_ON_VSEL_REG 0x54 4213d0407baSopenharmony_ci#define RK818_BOOST_LDO9_SLP_VSEL_REG 0x55 4223d0407baSopenharmony_ci#define RK818_BOOST_CTRL_REG 0x56 4233d0407baSopenharmony_ci#define RK818_DCDC_ILMAX 0x90 4243d0407baSopenharmony_ci#define RK818_CHRG_COMP_REG 0x9a 4253d0407baSopenharmony_ci#define RK818_SUP_STS_REG 0xa0 4263d0407baSopenharmony_ci#define RK818_USB_CTRL_REG 0xa1 4273d0407baSopenharmony_ci#define RK818_CHRG_CTRL_REG1 0xa3 4283d0407baSopenharmony_ci#define RK818_CHRG_CTRL_REG2 0xa4 4293d0407baSopenharmony_ci#define RK818_CHRG_CTRL_REG3 0xa5 4303d0407baSopenharmony_ci#define RK818_BAT_CTRL_REG 0xa6 4313d0407baSopenharmony_ci#define RK818_BAT_HTS_TS1_REG 0xa8 4323d0407baSopenharmony_ci#define RK818_BAT_LTS_TS1_REG 0xa9 4333d0407baSopenharmony_ci#define RK818_BAT_HTS_TS2_REG 0xaa 4343d0407baSopenharmony_ci#define RK818_BAT_LTS_TS2_REG 0xab 4353d0407baSopenharmony_ci#define RK818_TS_CTRL_REG 0xac 4363d0407baSopenharmony_ci#define RK818_ADC_CTRL_REG 0xad 4373d0407baSopenharmony_ci#define RK818_ON_SOURCE_REG 0xae 4383d0407baSopenharmony_ci#define RK818_OFF_SOURCE_REG 0xaf 4393d0407baSopenharmony_ci#define RK818_GGCON_REG 0xb0 4403d0407baSopenharmony_ci#define RK818_GGSTS_REG 0xb1 4413d0407baSopenharmony_ci#define RK818_FRAME_SMP_INTERV_REG 0xb2 4423d0407baSopenharmony_ci#define RK818_AUTO_SLP_CUR_THR_REG 0xb3 4433d0407baSopenharmony_ci#define RK818_GASCNT_CAL_REG3 0xb4 4443d0407baSopenharmony_ci#define RK818_GASCNT_CAL_REG2 0xb5 4453d0407baSopenharmony_ci#define RK818_GASCNT_CAL_REG1 0xb6 4463d0407baSopenharmony_ci#define RK818_GASCNT_CAL_REG0 0xb7 4473d0407baSopenharmony_ci#define RK818_GASCNT3_REG 0xb8 4483d0407baSopenharmony_ci#define RK818_GASCNT2_REG 0xb9 4493d0407baSopenharmony_ci#define RK818_GASCNT1_REG 0xba 4503d0407baSopenharmony_ci#define RK818_GASCNT0_REG 0xbb 4513d0407baSopenharmony_ci#define RK818_BAT_CUR_AVG_REGH 0xbc 4523d0407baSopenharmony_ci#define RK818_BAT_CUR_AVG_REGL 0xbd 4533d0407baSopenharmony_ci#define RK818_TS1_ADC_REGH 0xbe 4543d0407baSopenharmony_ci#define RK818_TS1_ADC_REGL 0xbf 4553d0407baSopenharmony_ci#define RK818_TS2_ADC_REGH 0xc0 4563d0407baSopenharmony_ci#define RK818_TS2_ADC_REGL 0xc1 4573d0407baSopenharmony_ci#define RK818_BAT_OCV_REGH 0xc2 4583d0407baSopenharmony_ci#define RK818_BAT_OCV_REGL 0xc3 4593d0407baSopenharmony_ci#define RK818_BAT_VOL_REGH 0xc4 4603d0407baSopenharmony_ci#define RK818_BAT_VOL_REGL 0xc5 4613d0407baSopenharmony_ci#define RK818_RELAX_ENTRY_THRES_REGH 0xc6 4623d0407baSopenharmony_ci#define RK818_RELAX_ENTRY_THRES_REGL 0xc7 4633d0407baSopenharmony_ci#define RK818_RELAX_EXIT_THRES_REGH 0xc8 4643d0407baSopenharmony_ci#define RK818_RELAX_EXIT_THRES_REGL 0xc9 4653d0407baSopenharmony_ci#define RK818_RELAX_VOL1_REGH 0xca 4663d0407baSopenharmony_ci#define RK818_RELAX_VOL1_REGL 0xcb 4673d0407baSopenharmony_ci#define RK818_RELAX_VOL2_REGH 0xcc 4683d0407baSopenharmony_ci#define RK818_RELAX_VOL2_REGL 0xcd 4693d0407baSopenharmony_ci#define RK818_BAT_CUR_R_CALC_REGH 0xce 4703d0407baSopenharmony_ci#define RK818_BAT_CUR_R_CALC_REGL 0xcf 4713d0407baSopenharmony_ci#define RK818_BAT_VOL_R_CALC_REGH 0xd0 4723d0407baSopenharmony_ci#define RK818_BAT_VOL_R_CALC_REGL 0xd1 4733d0407baSopenharmony_ci#define RK818_CAL_OFFSET_REGH 0xd2 4743d0407baSopenharmony_ci#define RK818_CAL_OFFSET_REGL 0xd3 4753d0407baSopenharmony_ci#define RK818_NON_ACT_TIMER_CNT_REG 0xd4 4763d0407baSopenharmony_ci#define RK818_VCALIB0_REGH 0xd5 4773d0407baSopenharmony_ci#define RK818_VCALIB0_REGL 0xd6 4783d0407baSopenharmony_ci#define RK818_VCALIB1_REGH 0xd7 4793d0407baSopenharmony_ci#define RK818_VCALIB1_REGL 0xd8 4803d0407baSopenharmony_ci#define RK818_IOFFSET_REGH 0xdd 4813d0407baSopenharmony_ci#define RK818_IOFFSET_REGL 0xde 4823d0407baSopenharmony_ci#define RK818_SOC_REG 0xe0 4833d0407baSopenharmony_ci#define RK818_REMAIN_CAP_REG3 0xe1 4843d0407baSopenharmony_ci#define RK818_REMAIN_CAP_REG2 0xe2 4853d0407baSopenharmony_ci#define RK818_REMAIN_CAP_REG1 0xe3 4863d0407baSopenharmony_ci#define RK818_REMAIN_CAP_REG0 0xe4 4873d0407baSopenharmony_ci#define RK818_UPDAT_LEVE_REG 0xe5 4883d0407baSopenharmony_ci#define RK818_NEW_FCC_REG3 0xe6 4893d0407baSopenharmony_ci#define RK818_NEW_FCC_REG2 0xe7 4903d0407baSopenharmony_ci#define RK818_NEW_FCC_REG1 0xe8 4913d0407baSopenharmony_ci#define RK818_NEW_FCC_REG0 0xe9 4923d0407baSopenharmony_ci#define RK818_NON_ACT_TIMER_CNT_SAVE_REG 0xea 4933d0407baSopenharmony_ci#define RK818_OCV_VOL_VALID_REG 0xeb 4943d0407baSopenharmony_ci#define RK818_REBOOT_CNT_REG 0xec 4953d0407baSopenharmony_ci#define RK818_POFFSET_REG 0xed 4963d0407baSopenharmony_ci#define RK818_MISC_MARK_REG 0xee 4973d0407baSopenharmony_ci#define RK818_HALT_CNT_REG 0xef 4983d0407baSopenharmony_ci#define RK818_CALC_REST_REGH 0xf0 4993d0407baSopenharmony_ci#define RK818_CALC_REST_REGL 0xf1 5003d0407baSopenharmony_ci#define RK818_SAVE_DATA19 0xf2 5013d0407baSopenharmony_ci#define RK818_NUM_REGULATOR 17 5023d0407baSopenharmony_ci 5033d0407baSopenharmony_ci#define RK818_H5V_EN BIT(0) 5043d0407baSopenharmony_ci#define RK818_REF_RDY_CTRL BIT(1) 5053d0407baSopenharmony_ci#define RK818_USB_ILIM_SEL_MASK 0xf 5063d0407baSopenharmony_ci#define RK818_USB_ILMIN_2000MA 0x7 5073d0407baSopenharmony_ci#define RK818_USB_CHG_SD_VSEL_MASK 0x70 5083d0407baSopenharmony_ci 5093d0407baSopenharmony_ci/* RK805 */ 5103d0407baSopenharmony_cienum rk805_reg { 5113d0407baSopenharmony_ci RK805_ID_DCDC1, 5123d0407baSopenharmony_ci RK805_ID_DCDC2, 5133d0407baSopenharmony_ci RK805_ID_DCDC3, 5143d0407baSopenharmony_ci RK805_ID_DCDC4, 5153d0407baSopenharmony_ci RK805_ID_LDO1, 5163d0407baSopenharmony_ci RK805_ID_LDO2, 5173d0407baSopenharmony_ci RK805_ID_LDO3, 5183d0407baSopenharmony_ci}; 5193d0407baSopenharmony_ci 5203d0407baSopenharmony_ci/* CONFIG REGISTER */ 5213d0407baSopenharmony_ci#define RK805_VB_MON_REG 0x21 5223d0407baSopenharmony_ci#define RK805_THERMAL_REG 0x22 5233d0407baSopenharmony_ci 5243d0407baSopenharmony_ci/* POWER CHANNELS ENABLE REGISTER */ 5253d0407baSopenharmony_ci#define RK805_DCDC_EN_REG 0x23 5263d0407baSopenharmony_ci#define RK805_SLP_DCDC_EN_REG 0x25 5273d0407baSopenharmony_ci#define RK805_SLP_LDO_EN_REG 0x26 5283d0407baSopenharmony_ci#define RK805_LDO_EN_REG 0x27 5293d0407baSopenharmony_ci 5303d0407baSopenharmony_ci/* BUCK AND LDO CONFIG REGISTER */ 5313d0407baSopenharmony_ci#define RK805_BUCK_LDO_SLP_LP_EN_REG 0x2A 5323d0407baSopenharmony_ci#define RK805_BUCK1_CONFIG_REG 0x2E 5333d0407baSopenharmony_ci#define RK805_BUCK1_ON_VSEL_REG 0x2F 5343d0407baSopenharmony_ci#define RK805_BUCK1_SLP_VSEL_REG 0x30 5353d0407baSopenharmony_ci#define RK805_BUCK2_CONFIG_REG 0x32 5363d0407baSopenharmony_ci#define RK805_BUCK2_ON_VSEL_REG 0x33 5373d0407baSopenharmony_ci#define RK805_BUCK2_SLP_VSEL_REG 0x34 5383d0407baSopenharmony_ci#define RK805_BUCK3_CONFIG_REG 0x36 5393d0407baSopenharmony_ci#define RK805_BUCK4_CONFIG_REG 0x37 5403d0407baSopenharmony_ci#define RK805_BUCK4_ON_VSEL_REG 0x38 5413d0407baSopenharmony_ci#define RK805_BUCK4_SLP_VSEL_REG 0x39 5423d0407baSopenharmony_ci#define RK805_LDO1_ON_VSEL_REG 0x3B 5433d0407baSopenharmony_ci#define RK805_LDO1_SLP_VSEL_REG 0x3C 5443d0407baSopenharmony_ci#define RK805_LDO2_ON_VSEL_REG 0x3D 5453d0407baSopenharmony_ci#define RK805_LDO2_SLP_VSEL_REG 0x3E 5463d0407baSopenharmony_ci#define RK805_LDO3_ON_VSEL_REG 0x3F 5473d0407baSopenharmony_ci#define RK805_LDO3_SLP_VSEL_REG 0x40 5483d0407baSopenharmony_ci 5493d0407baSopenharmony_ci/* INTERRUPT REGISTER */ 5503d0407baSopenharmony_ci#define RK805_PWRON_LP_INT_TIME_REG 0x47 5513d0407baSopenharmony_ci#define RK805_PWRON_DB_REG 0x48 5523d0407baSopenharmony_ci#define RK805_DEV_CTRL_REG 0x4B 5533d0407baSopenharmony_ci#define RK805_INT_STS_REG 0x4C 5543d0407baSopenharmony_ci#define RK805_INT_STS_MSK_REG 0x4D 5553d0407baSopenharmony_ci#define RK805_GPIO_IO_POL_REG 0x50 5563d0407baSopenharmony_ci#define RK805_OUT_REG 0x52 5573d0407baSopenharmony_ci#define RK805_ON_SOURCE_REG 0xAE 5583d0407baSopenharmony_ci#define RK805_OFF_SOURCE_REG 0xAF 5593d0407baSopenharmony_ci 5603d0407baSopenharmony_ci#define RK805_NUM_REGULATORS 7 5613d0407baSopenharmony_ci 5623d0407baSopenharmony_ci#define RK805_PWRON_FALL_RISE_INT_EN 0x0 5633d0407baSopenharmony_ci#define RK805_PWRON_FALL_RISE_INT_MSK 0x81 5643d0407baSopenharmony_ci 5653d0407baSopenharmony_ci/* RK805 IRQ Definitions */ 5663d0407baSopenharmony_ci#define RK805_IRQ_VB_LOW 1 5673d0407baSopenharmony_ci#define RK805_IRQ_PWRON 2 5683d0407baSopenharmony_ci#define RK805_IRQ_PWRON_LP 3 5693d0407baSopenharmony_ci#define RK805_IRQ_HOTDIE 4 5703d0407baSopenharmony_ci#define RK805_IRQ_RTC_ALARM 5 5713d0407baSopenharmony_ci#define RK805_IRQ_RTC_PERIOD 6 5723d0407baSopenharmony_ci 5733d0407baSopenharmony_ci/* 5743d0407baSopenharmony_ci * When PMIC irq occurs, regmap-irq.c will traverse all PMIC child 5753d0407baSopenharmony_ci * interrupts from low index 0 to high index, we give fall interrupt 5763d0407baSopenharmony_ci * high priority to be called earlier than rise, so that it can be 5773d0407baSopenharmony_ci * override by late rise event. This can helps to solve key release 5783d0407baSopenharmony_ci * glitch which make a wrongly fall event immediately after rise. 5793d0407baSopenharmony_ci */ 5803d0407baSopenharmony_ci#define RK805_IRQ_PWRON_FALL 0 5813d0407baSopenharmony_ci#define RK805_IRQ_PWRON_RISE 7 5823d0407baSopenharmony_ci 5833d0407baSopenharmony_ci#define RK805_IRQ_PWRON_RISE_MSK BIT(0) 5843d0407baSopenharmony_ci#define RK805_IRQ_VB_LOW_MSK BIT(1) 5853d0407baSopenharmony_ci#define RK805_IRQ_PWRON_MSK BIT(2) 5863d0407baSopenharmony_ci#define RK805_IRQ_PWRON_LP_MSK BIT(3) 5873d0407baSopenharmony_ci#define RK805_IRQ_HOTDIE_MSK BIT(4) 5883d0407baSopenharmony_ci#define RK805_IRQ_RTC_ALARM_MSK BIT(5) 5893d0407baSopenharmony_ci#define RK805_IRQ_RTC_PERIOD_MSK BIT(6) 5903d0407baSopenharmony_ci#define RK805_IRQ_PWRON_FALL_MSK BIT(7) 5913d0407baSopenharmony_ci 5923d0407baSopenharmony_ci#define RK805_PWR_RISE_INT_STATUS BIT(0) 5933d0407baSopenharmony_ci#define RK805_VB_LOW_INT_STATUS BIT(1) 5943d0407baSopenharmony_ci#define RK805_PWRON_INT_STATUS BIT(2) 5953d0407baSopenharmony_ci#define RK805_PWRON_LP_INT_STATUS BIT(3) 5963d0407baSopenharmony_ci#define RK805_HOTDIE_INT_STATUS BIT(4) 5973d0407baSopenharmony_ci#define RK805_ALARM_INT_STATUS BIT(5) 5983d0407baSopenharmony_ci#define RK805_PERIOD_INT_STATUS BIT(6) 5993d0407baSopenharmony_ci#define RK805_PWR_FALL_INT_STATUS BIT(7) 6003d0407baSopenharmony_ci 6013d0407baSopenharmony_ci#define RK805_BUCK1_2_ILMAX_MASK (3 << 6) 6023d0407baSopenharmony_ci#define RK805_BUCK3_4_ILMAX_MASK (3 << 3) 6033d0407baSopenharmony_ci#define RK805_RTC_PERIOD_INT_MASK (1 << 6) 6043d0407baSopenharmony_ci#define RK805_RTC_ALARM_INT_MASK (1 << 5) 6053d0407baSopenharmony_ci#define RK805_INT_ALARM_EN (1 << 3) 6063d0407baSopenharmony_ci#define RK805_INT_TIMER_EN (1 << 2) 6073d0407baSopenharmony_ci 6083d0407baSopenharmony_ci#define RK805_SLP_LDO_EN_OFFSET (-1) 6093d0407baSopenharmony_ci#define RK805_SLP_DCDC_EN_OFFSET 2 6103d0407baSopenharmony_ci 6113d0407baSopenharmony_ci#define RK805_RAMP_RATE_OFFSET 3 6123d0407baSopenharmony_ci#define RK805_RAMP_RATE_MASK (3 << RK805_RAMP_RATE_OFFSET) 6133d0407baSopenharmony_ci#define RK805_RAMP_RATE_3MV_PER_US (0 << RK805_RAMP_RATE_OFFSET) 6143d0407baSopenharmony_ci#define RK805_RAMP_RATE_6MV_PER_US (1 << RK805_RAMP_RATE_OFFSET) 6153d0407baSopenharmony_ci#define RK805_RAMP_RATE_12_5MV_PER_US (2 << RK805_RAMP_RATE_OFFSET) 6163d0407baSopenharmony_ci#define RK805_RAMP_RATE_25MV_PER_US (3 << RK805_RAMP_RATE_OFFSET) 6173d0407baSopenharmony_ci 6183d0407baSopenharmony_ci/* RK808 IRQ Definitions */ 6193d0407baSopenharmony_ci#define RK808_IRQ_VOUT_LO 0 6203d0407baSopenharmony_ci#define RK808_IRQ_VB_LO 1 6213d0407baSopenharmony_ci#define RK808_IRQ_PWRON 2 6223d0407baSopenharmony_ci#define RK808_IRQ_PWRON_LP 3 6233d0407baSopenharmony_ci#define RK808_IRQ_HOTDIE 4 6243d0407baSopenharmony_ci#define RK808_IRQ_RTC_ALARM 5 6253d0407baSopenharmony_ci#define RK808_IRQ_RTC_PERIOD 6 6263d0407baSopenharmony_ci#define RK808_IRQ_PLUG_IN_INT 7 6273d0407baSopenharmony_ci#define RK808_IRQ_PLUG_OUT_INT 8 6283d0407baSopenharmony_ci#define RK808_NUM_IRQ 9 6293d0407baSopenharmony_ci 6303d0407baSopenharmony_ci#define RK808_IRQ_VOUT_LO_MSK BIT(0) 6313d0407baSopenharmony_ci#define RK808_IRQ_VB_LO_MSK BIT(1) 6323d0407baSopenharmony_ci#define RK808_IRQ_PWRON_MSK BIT(2) 6333d0407baSopenharmony_ci#define RK808_IRQ_PWRON_LP_MSK BIT(3) 6343d0407baSopenharmony_ci#define RK808_IRQ_HOTDIE_MSK BIT(4) 6353d0407baSopenharmony_ci#define RK808_IRQ_RTC_ALARM_MSK BIT(5) 6363d0407baSopenharmony_ci#define RK808_IRQ_RTC_PERIOD_MSK BIT(6) 6373d0407baSopenharmony_ci#define RK808_IRQ_PLUG_IN_INT_MSK BIT(0) 6383d0407baSopenharmony_ci#define RK808_IRQ_PLUG_OUT_INT_MSK BIT(1) 6393d0407baSopenharmony_ci 6403d0407baSopenharmony_ci/* RK818 IRQ Definitions */ 6413d0407baSopenharmony_ci#define RK818_IRQ_VOUT_LO 0 6423d0407baSopenharmony_ci#define RK818_IRQ_VB_LO 1 6433d0407baSopenharmony_ci#define RK818_IRQ_PWRON 2 6443d0407baSopenharmony_ci#define RK818_IRQ_PWRON_LP 3 6453d0407baSopenharmony_ci#define RK818_IRQ_HOTDIE 4 6463d0407baSopenharmony_ci#define RK818_IRQ_RTC_ALARM 5 6473d0407baSopenharmony_ci#define RK818_IRQ_RTC_PERIOD 6 6483d0407baSopenharmony_ci#define RK818_IRQ_USB_OV 7 6493d0407baSopenharmony_ci#define RK818_IRQ_PLUG_IN 8 6503d0407baSopenharmony_ci#define RK818_IRQ_PLUG_OUT 9 6513d0407baSopenharmony_ci#define RK818_IRQ_CHG_OK 10 6523d0407baSopenharmony_ci#define RK818_IRQ_CHG_TE 11 6533d0407baSopenharmony_ci#define RK818_IRQ_CHG_TS1 12 6543d0407baSopenharmony_ci#define RK818_IRQ_TS2 13 6553d0407baSopenharmony_ci#define RK818_IRQ_CHG_CVTLIM 14 6563d0407baSopenharmony_ci#define RK818_IRQ_DISCHG_ILIM 15 6573d0407baSopenharmony_ci 6583d0407baSopenharmony_ci#define RK818_IRQ_VOUT_LO_MSK BIT(0) 6593d0407baSopenharmony_ci#define RK818_IRQ_VB_LO_MSK BIT(1) 6603d0407baSopenharmony_ci#define RK818_IRQ_PWRON_MSK BIT(2) 6613d0407baSopenharmony_ci#define RK818_IRQ_PWRON_LP_MSK BIT(3) 6623d0407baSopenharmony_ci#define RK818_IRQ_HOTDIE_MSK BIT(4) 6633d0407baSopenharmony_ci#define RK818_IRQ_RTC_ALARM_MSK BIT(5) 6643d0407baSopenharmony_ci#define RK818_IRQ_RTC_PERIOD_MSK BIT(6) 6653d0407baSopenharmony_ci#define RK818_IRQ_USB_OV_MSK BIT(7) 6663d0407baSopenharmony_ci#define RK818_IRQ_PLUG_IN_MSK BIT(0) 6673d0407baSopenharmony_ci#define RK818_IRQ_PLUG_OUT_MSK BIT(1) 6683d0407baSopenharmony_ci#define RK818_IRQ_CHG_OK_MSK BIT(2) 6693d0407baSopenharmony_ci#define RK818_IRQ_CHG_TE_MSK BIT(3) 6703d0407baSopenharmony_ci#define RK818_IRQ_CHG_TS1_MSK BIT(4) 6713d0407baSopenharmony_ci#define RK818_IRQ_TS2_MSK BIT(5) 6723d0407baSopenharmony_ci#define RK818_IRQ_CHG_CVTLIM_MSK BIT(6) 6733d0407baSopenharmony_ci#define RK818_IRQ_DISCHG_ILIM_MSK BIT(7) 6743d0407baSopenharmony_ci 6753d0407baSopenharmony_ci#define RK818_NUM_IRQ 16 6763d0407baSopenharmony_ci 6773d0407baSopenharmony_ci/* RK818_DCDC_EN_REG */ 6783d0407baSopenharmony_ci#define BUCK1_EN_MASK BIT(0) 6793d0407baSopenharmony_ci#define BUCK2_EN_MASK BIT(1) 6803d0407baSopenharmony_ci#define BUCK3_EN_MASK BIT(2) 6813d0407baSopenharmony_ci#define BUCK4_EN_MASK BIT(3) 6823d0407baSopenharmony_ci#define BOOST_EN_MASK BIT(4) 6833d0407baSopenharmony_ci#define LDO9_EN_MASK BIT(5) 6843d0407baSopenharmony_ci#define SWITCH_EN_MASK BIT(6) 6853d0407baSopenharmony_ci#define OTG_EN_MASK BIT(7) 6863d0407baSopenharmony_ci 6873d0407baSopenharmony_ci#define BUCK1_EN_ENABLE BIT(0) 6883d0407baSopenharmony_ci#define BUCK2_EN_ENABLE BIT(1) 6893d0407baSopenharmony_ci#define BUCK3_EN_ENABLE BIT(2) 6903d0407baSopenharmony_ci#define BUCK4_EN_ENABLE BIT(3) 6913d0407baSopenharmony_ci#define BOOST_EN_ENABLE BIT(4) 6923d0407baSopenharmony_ci#define LDO9_EN_ENABLE BIT(5) 6933d0407baSopenharmony_ci#define SWITCH_EN_ENABLE BIT(6) 6943d0407baSopenharmony_ci#define OTG_EN_ENABLE BIT(7) 6953d0407baSopenharmony_ci 6963d0407baSopenharmony_ci#define BUCK1_SLP_SET_MASK BIT(0) 6973d0407baSopenharmony_ci#define BUCK2_SLP_SET_MASK BIT(1) 6983d0407baSopenharmony_ci#define BUCK3_SLP_SET_MASK BIT(2) 6993d0407baSopenharmony_ci#define BUCK4_SLP_SET_MASK BIT(3) 7003d0407baSopenharmony_ci#define BOOST_SLP_SET_MASK BIT(4) 7013d0407baSopenharmony_ci#define LDO9_SLP_SET_MASK BIT(5) 7023d0407baSopenharmony_ci#define SWITCH_SLP_SET_MASK BIT(6) 7033d0407baSopenharmony_ci#define OTG_SLP_SET_MASK BIT(7) 7043d0407baSopenharmony_ci 7053d0407baSopenharmony_ci#define BUCK1_SLP_SET_OFF BIT(0) 7063d0407baSopenharmony_ci#define BUCK2_SLP_SET_OFF BIT(1) 7073d0407baSopenharmony_ci#define BUCK3_SLP_SET_OFF BIT(2) 7083d0407baSopenharmony_ci#define BUCK4_SLP_SET_OFF BIT(3) 7093d0407baSopenharmony_ci#define BOOST_SLP_SET_OFF BIT(4) 7103d0407baSopenharmony_ci#define LDO9_SLP_SET_OFF BIT(5) 7113d0407baSopenharmony_ci#define SWITCH_SLP_SET_OFF BIT(6) 7123d0407baSopenharmony_ci#define OTG_SLP_SET_OFF BIT(7) 7133d0407baSopenharmony_ci#define OTG_BOOST_SLP_OFF (BOOST_SLP_SET_OFF | OTG_SLP_SET_OFF) 7143d0407baSopenharmony_ci 7153d0407baSopenharmony_ci#define BUCK1_SLP_SET_ON BIT(0) 7163d0407baSopenharmony_ci#define BUCK2_SLP_SET_ON BIT(1) 7173d0407baSopenharmony_ci#define BUCK3_SLP_SET_ON BIT(2) 7183d0407baSopenharmony_ci#define BUCK4_SLP_SET_ON BIT(3) 7193d0407baSopenharmony_ci#define BOOST_SLP_SET_ON BIT(4) 7203d0407baSopenharmony_ci#define LDO9_SLP_SET_ON BIT(5) 7213d0407baSopenharmony_ci#define SWITCH_SLP_SET_ON BIT(6) 7223d0407baSopenharmony_ci#define OTG_SLP_SET_ON BIT(7) 7233d0407baSopenharmony_ci 7243d0407baSopenharmony_ci#define VOUT_LO_MASK BIT(0) 7253d0407baSopenharmony_ci#define VB_LO_MASK BIT(1) 7263d0407baSopenharmony_ci#define PWRON_MASK BIT(2) 7273d0407baSopenharmony_ci#define PWRON_LP_MASK BIT(3) 7283d0407baSopenharmony_ci#define HOTDIE_MASK BIT(4) 7293d0407baSopenharmony_ci#define RTC_ALARM_MASK BIT(5) 7303d0407baSopenharmony_ci#define RTC_PERIOD_MASK BIT(6) 7313d0407baSopenharmony_ci#define USB_OV_MASK BIT(7) 7323d0407baSopenharmony_ci 7333d0407baSopenharmony_ci#define VOUT_LO_DISABLE BIT(0) 7343d0407baSopenharmony_ci#define VB_LO_DISABLE BIT(1) 7353d0407baSopenharmony_ci#define PWRON_DISABLE BIT(2) 7363d0407baSopenharmony_ci#define PWRON_LP_DISABLE BIT(3) 7373d0407baSopenharmony_ci#define HOTDIE_DISABLE BIT(4) 7383d0407baSopenharmony_ci#define RTC_ALARM_DISABLE BIT(5) 7393d0407baSopenharmony_ci#define RTC_PERIOD_DISABLE BIT(6) 7403d0407baSopenharmony_ci#define USB_OV_INT_DISABLE BIT(7) 7413d0407baSopenharmony_ci 7423d0407baSopenharmony_ci#define VOUT_LO_ENABLE (0 << 0) 7433d0407baSopenharmony_ci#define VB_LO_ENABLE (0 << 1) 7443d0407baSopenharmony_ci#define PWRON_ENABLE (0 << 2) 7453d0407baSopenharmony_ci#define PWRON_LP_ENABLE (0 << 3) 7463d0407baSopenharmony_ci#define HOTDIE_ENABLE (0 << 4) 7473d0407baSopenharmony_ci#define RTC_ALARM_ENABLE (0 << 5) 7483d0407baSopenharmony_ci#define RTC_PERIOD_ENABLE (0 << 6) 7493d0407baSopenharmony_ci#define USB_OV_INT_ENABLE (0 << 7) 7503d0407baSopenharmony_ci 7513d0407baSopenharmony_ci#define PLUG_IN_MASK BIT(0) 7523d0407baSopenharmony_ci#define PLUG_OUT_MASK BIT(1) 7533d0407baSopenharmony_ci#define CHGOK_MASK BIT(2) 7543d0407baSopenharmony_ci#define CHGTE_MASK BIT(3) 7553d0407baSopenharmony_ci#define CHGTS1_MASK BIT(4) 7563d0407baSopenharmony_ci#define TS2_MASK BIT(5) 7573d0407baSopenharmony_ci#define CHG_CVTLIM_MASK BIT(6) 7583d0407baSopenharmony_ci#define DISCHG_ILIM_MASK BIT(7) 7593d0407baSopenharmony_ci 7603d0407baSopenharmony_ci#define PLUG_IN_DISABLE BIT(0) 7613d0407baSopenharmony_ci#define PLUG_OUT_DISABLE BIT(1) 7623d0407baSopenharmony_ci#define CHGOK_DISABLE BIT(2) 7633d0407baSopenharmony_ci#define CHGTE_DISABLE BIT(3) 7643d0407baSopenharmony_ci#define CHGTS1_DISABLE BIT(4) 7653d0407baSopenharmony_ci#define TS2_DISABLE BIT(5) 7663d0407baSopenharmony_ci#define CHG_CVTLIM_DISABLE BIT(6) 7673d0407baSopenharmony_ci#define DISCHG_ILIM_DISABLE BIT(7) 7683d0407baSopenharmony_ci 7693d0407baSopenharmony_ci#define PLUG_IN_ENABLE BIT(0) 7703d0407baSopenharmony_ci#define PLUG_OUT_ENABLE BIT(1) 7713d0407baSopenharmony_ci#define CHGOK_ENABLE BIT(2) 7723d0407baSopenharmony_ci#define CHGTE_ENABLE BIT(3) 7733d0407baSopenharmony_ci#define CHGTS1_ENABLE BIT(4) 7743d0407baSopenharmony_ci#define TS2_ENABLE BIT(5) 7753d0407baSopenharmony_ci#define CHG_CVTLIM_ENABLE BIT(6) 7763d0407baSopenharmony_ci#define DISCHG_ILIM_ENABLE BIT(7) 7773d0407baSopenharmony_ci 7783d0407baSopenharmony_ci#define RK808_VBAT_LOW_2V8 0x00 7793d0407baSopenharmony_ci#define RK808_VBAT_LOW_2V9 0x01 7803d0407baSopenharmony_ci#define RK808_VBAT_LOW_3V0 0x02 7813d0407baSopenharmony_ci#define RK808_VBAT_LOW_3V1 0x03 7823d0407baSopenharmony_ci#define RK808_VBAT_LOW_3V2 0x04 7833d0407baSopenharmony_ci#define RK808_VBAT_LOW_3V3 0x05 7843d0407baSopenharmony_ci#define RK808_VBAT_LOW_3V4 0x06 7853d0407baSopenharmony_ci#define RK808_VBAT_LOW_3V5 0x07 7863d0407baSopenharmony_ci#define VBAT_LOW_VOL_MASK (0x07 << 0) 7873d0407baSopenharmony_ci#define EN_VABT_LOW_SHUT_DOWN (0x00 << 4) 7883d0407baSopenharmony_ci#define EN_VBAT_LOW_IRQ (0x1 << 4) 7893d0407baSopenharmony_ci#define VBAT_LOW_ACT_MASK (0x1 << 4) 7903d0407baSopenharmony_ci 7913d0407baSopenharmony_ci#define BUCK_ILMIN_MASK (7 << 0) 7923d0407baSopenharmony_ci#define BOOST_ILMIN_MASK (7 << 0) 7933d0407baSopenharmony_ci#define BUCK1_RATE_MASK (3 << 3) 7943d0407baSopenharmony_ci#define BUCK2_RATE_MASK (3 << 3) 7953d0407baSopenharmony_ci#define MASK_ALL 0xff 7963d0407baSopenharmony_ci 7973d0407baSopenharmony_ci#define BUCK_UV_ACT_MASK 0x0f 7983d0407baSopenharmony_ci#define BUCK_UV_ACT_DISABLE 0 7993d0407baSopenharmony_ci 8003d0407baSopenharmony_ci#define SWITCH2_EN BIT(6) 8013d0407baSopenharmony_ci#define SWITCH1_EN BIT(5) 8023d0407baSopenharmony_ci#define DEV_OFF_RST BIT(3) 8033d0407baSopenharmony_ci#define DEV_OFF BIT(0) 8043d0407baSopenharmony_ci#define RTC_STOP BIT(0) 8053d0407baSopenharmony_ci 8063d0407baSopenharmony_ci#define VB_LO_ACT BIT(4) 8073d0407baSopenharmony_ci#define VB_LO_SEL_3500MV (7 << 0) 8083d0407baSopenharmony_ci 8093d0407baSopenharmony_ci#define VOUT_LO_INT BIT(0) 8103d0407baSopenharmony_ci#define CLK32KOUT2_EN BIT(0) 8113d0407baSopenharmony_ci#define CLK32KOUT2_FUNC (0 << 1) 8123d0407baSopenharmony_ci#define CLK32KOUT2_FUNC_MASK BIT(1) 8133d0407baSopenharmony_ci 8143d0407baSopenharmony_ci#define TEMP105C 0x08 8153d0407baSopenharmony_ci#define TEMP115C 0x0c 8163d0407baSopenharmony_ci#define TEMP_HOTDIE_MSK 0x0c 8173d0407baSopenharmony_ci#define SLP_SD_MSK (0x3 << 2) 8183d0407baSopenharmony_ci#define SHUTDOWN_FUN (0x2 << 2) 8193d0407baSopenharmony_ci#define SLEEP_FUN (0x1 << 2) 8203d0407baSopenharmony_ci#define RK8XX_ID_MSK 0xfff0 8213d0407baSopenharmony_ci#define PWM_MODE_MSK BIT(7) 8223d0407baSopenharmony_ci#define FPWM_MODE BIT(7) 8233d0407baSopenharmony_ci#define AUTO_PWM_MODE 0 8243d0407baSopenharmony_ci#define REGS_WMSK 0xf0 8253d0407baSopenharmony_ci 8263d0407baSopenharmony_cienum rk817_reg_id { 8273d0407baSopenharmony_ci RK817_ID_DCDC1 = 0, 8283d0407baSopenharmony_ci RK817_ID_DCDC2, 8293d0407baSopenharmony_ci RK817_ID_DCDC3, 8303d0407baSopenharmony_ci RK817_ID_DCDC4, 8313d0407baSopenharmony_ci RK817_ID_LDO1, 8323d0407baSopenharmony_ci RK817_ID_LDO2, 8333d0407baSopenharmony_ci RK817_ID_LDO3, 8343d0407baSopenharmony_ci RK817_ID_LDO4, 8353d0407baSopenharmony_ci RK817_ID_LDO5, 8363d0407baSopenharmony_ci RK817_ID_LDO6, 8373d0407baSopenharmony_ci RK817_ID_LDO7, 8383d0407baSopenharmony_ci RK817_ID_LDO8, 8393d0407baSopenharmony_ci RK817_ID_LDO9, 8403d0407baSopenharmony_ci RK817_ID_BOOST, 8413d0407baSopenharmony_ci RK817_ID_BOOST_OTG_SW, 8423d0407baSopenharmony_ci RK817_NUM_REGULATORS 8433d0407baSopenharmony_ci}; 8443d0407baSopenharmony_ci 8453d0407baSopenharmony_cienum rk809_reg_id { RK809_ID_DCDC5 = RK817_ID_BOOST, RK809_ID_SW1, RK809_ID_SW2, RK809_NUM_REGULATORS }; 8463d0407baSopenharmony_ci 8473d0407baSopenharmony_ci#define RK817_SECONDS_REG 0x00 8483d0407baSopenharmony_ci#define RK817_MINUTES_REG 0x01 8493d0407baSopenharmony_ci#define RK817_HOURS_REG 0x02 8503d0407baSopenharmony_ci#define RK817_DAYS_REG 0x03 8513d0407baSopenharmony_ci#define RK817_MONTHS_REG 0x04 8523d0407baSopenharmony_ci#define RK817_YEARS_REG 0x05 8533d0407baSopenharmony_ci#define RK817_WEEKS_REG 0x06 8543d0407baSopenharmony_ci#define RK817_ALARM_SECONDS_REG 0x07 8553d0407baSopenharmony_ci#define RK817_ALARM_MINUTES_REG 0x08 8563d0407baSopenharmony_ci#define RK817_ALARM_HOURS_REG 0x09 8573d0407baSopenharmony_ci#define RK817_ALARM_DAYS_REG 0x0a 8583d0407baSopenharmony_ci#define RK817_ALARM_MONTHS_REG 0x0b 8593d0407baSopenharmony_ci#define RK817_ALARM_YEARS_REG 0x0c 8603d0407baSopenharmony_ci#define RK817_RTC_CTRL_REG 0xd 8613d0407baSopenharmony_ci#define RK817_RTC_STATUS_REG 0xe 8623d0407baSopenharmony_ci#define RK817_RTC_INT_REG 0xf 8633d0407baSopenharmony_ci#define RK817_RTC_COMP_LSB_REG 0x10 8643d0407baSopenharmony_ci#define RK817_RTC_COMP_MSB_REG 0x11 8653d0407baSopenharmony_ci#define RK817_ADC_CONFIG0 0x50 8663d0407baSopenharmony_ci#define RK817_CURE_ADC_K0 0xb0 8673d0407baSopenharmony_ci#define RK817_POWER_EN_SAVE0 0x99 8683d0407baSopenharmony_ci#define RK817_POWER_EN_SAVE1 0xa4 8693d0407baSopenharmony_ci 8703d0407baSopenharmony_ci#define RK817_POWER_EN_REG(i) (0xb1 + (i)) 8713d0407baSopenharmony_ci#define RK817_POWER_SLP_EN_REG(i) (0xb5 + (i)) 8723d0407baSopenharmony_ci 8733d0407baSopenharmony_ci#define RK817_POWER_CONFIG (0xb9) 8743d0407baSopenharmony_ci 8753d0407baSopenharmony_ci#define RK817_BUCK_CONFIG_REG(i) (0xba + (i)*3) 8763d0407baSopenharmony_ci 8773d0407baSopenharmony_ci#define RK817_BUCK1_ON_VSEL_REG 0xBB 8783d0407baSopenharmony_ci#define RK817_BUCK1_SLP_VSEL_REG 0xBC 8793d0407baSopenharmony_ci 8803d0407baSopenharmony_ci#define RK817_BUCK2_CONFIG_REG 0xBD 8813d0407baSopenharmony_ci#define RK817_BUCK2_ON_VSEL_REG 0xBE 8823d0407baSopenharmony_ci#define RK817_BUCK2_SLP_VSEL_REG 0xBF 8833d0407baSopenharmony_ci 8843d0407baSopenharmony_ci#define RK817_BUCK3_CONFIG_REG 0xC0 8853d0407baSopenharmony_ci#define RK817_BUCK3_ON_VSEL_REG 0xC1 8863d0407baSopenharmony_ci#define RK817_BUCK3_SLP_VSEL_REG 0xC2 8873d0407baSopenharmony_ci 8883d0407baSopenharmony_ci#define RK817_BUCK4_CONFIG_REG 0xC3 8893d0407baSopenharmony_ci#define RK817_BUCK4_ON_VSEL_REG 0xC4 8903d0407baSopenharmony_ci#define RK817_BUCK4_SLP_VSEL_REG 0xC5 8913d0407baSopenharmony_ci 8923d0407baSopenharmony_ci#define RK817_LDO_ON_VSEL_REG(idx) (0xcc + (idx)*2) 8933d0407baSopenharmony_ci#define RK817_BOOST_OTG_CFG (0xde) 8943d0407baSopenharmony_ci 8953d0407baSopenharmony_ci#define RK817_CHRG_OUT 0xe4 8963d0407baSopenharmony_ci#define RK817_CHRG_IN 0xe5 8973d0407baSopenharmony_ci#define RK817_CHRG_STS 0xeb 8983d0407baSopenharmony_ci#define RK817_ID_MSB 0xed 8993d0407baSopenharmony_ci#define RK817_ID_LSB 0xee 9003d0407baSopenharmony_ci 9013d0407baSopenharmony_ci#define RK817_SYS_STS 0xf0 9023d0407baSopenharmony_ci#define RK817_SYS_CFG(i) (0xf1 + (i)) 9033d0407baSopenharmony_ci 9043d0407baSopenharmony_ci#define RK817_ON_SOURCE_REG 0xf5 9053d0407baSopenharmony_ci#define RK817_OFF_SOURCE_REG 0xf6 9063d0407baSopenharmony_ci 9073d0407baSopenharmony_ci/* INTERRUPT REGISTER */ 9083d0407baSopenharmony_ci#define RK817_INT_STS_REG0 0xf8 9093d0407baSopenharmony_ci#define RK817_INT_STS_MSK_REG0 0xf9 9103d0407baSopenharmony_ci#define RK817_INT_STS_REG1 0xfa 9113d0407baSopenharmony_ci#define RK817_INT_STS_MSK_REG1 0xfb 9123d0407baSopenharmony_ci#define RK817_INT_STS_REG2 0xfc 9133d0407baSopenharmony_ci#define RK817_INT_STS_MSK_REG2 0xfd 9143d0407baSopenharmony_ci#define RK817_GPIO_INT_CFG 0xfe 9153d0407baSopenharmony_ci 9163d0407baSopenharmony_ci/* IRQ Definitions */ 9173d0407baSopenharmony_ci#define RK817_IRQ_PWRON_FALL 0 9183d0407baSopenharmony_ci#define RK817_IRQ_PWRON_RISE 1 9193d0407baSopenharmony_ci#define RK817_IRQ_PWRON 2 9203d0407baSopenharmony_ci#define RK817_IRQ_PWMON_LP 3 9213d0407baSopenharmony_ci#define RK817_IRQ_HOTDIE 4 9223d0407baSopenharmony_ci#define RK817_IRQ_RTC_ALARM 5 9233d0407baSopenharmony_ci#define RK817_IRQ_RTC_PERIOD 6 9243d0407baSopenharmony_ci#define RK817_IRQ_VB_LO 7 9253d0407baSopenharmony_ci#define RK817_IRQ_PLUG_IN 8 9263d0407baSopenharmony_ci#define RK817_IRQ_PLUG_OUT 9 9273d0407baSopenharmony_ci#define RK817_IRQ_CHRG_TERM 10 9283d0407baSopenharmony_ci#define RK817_IRQ_CHRG_TIME 11 9293d0407baSopenharmony_ci#define RK817_IRQ_CHRG_TS 12 9303d0407baSopenharmony_ci#define RK817_IRQ_USB_OV 13 9313d0407baSopenharmony_ci#define RK817_IRQ_CHRG_IN_CLMP 14 9323d0407baSopenharmony_ci#define RK817_IRQ_BAT_DIS_ILIM 15 9333d0407baSopenharmony_ci#define RK817_IRQ_GATE_GPIO 16 9343d0407baSopenharmony_ci#define RK817_IRQ_TS_GPIO 17 9353d0407baSopenharmony_ci#define RK817_IRQ_CODEC_PD 18 9363d0407baSopenharmony_ci#define RK817_IRQ_CODEC_PO 19 9373d0407baSopenharmony_ci#define RK817_IRQ_CLASSD_MUTE_DONE 20 9383d0407baSopenharmony_ci#define RK817_IRQ_CLASSD_OCP 21 9393d0407baSopenharmony_ci#define RK817_IRQ_BAT_OVP 22 9403d0407baSopenharmony_ci#define RK817_IRQ_CHRG_BAT_HI 23 9413d0407baSopenharmony_ci#define RK817_IRQ_END (RK817_IRQ_CHRG_BAT_HI + 1) 9423d0407baSopenharmony_ci 9433d0407baSopenharmony_ci/* 9443d0407baSopenharmony_ci * rtc_ctrl 0xd 9453d0407baSopenharmony_ci * same as 808, except bit4 9463d0407baSopenharmony_ci */ 9473d0407baSopenharmony_ci#define RK817_RTC_CTRL_RSV4 BIT(4) 9483d0407baSopenharmony_ci 9493d0407baSopenharmony_ci/* power config 0xb9 */ 9503d0407baSopenharmony_ci#define RK817_BUCK3_FB_RES_MSK BIT(6) 9513d0407baSopenharmony_ci#define RK817_BUCK3_FB_RES_INTER BIT(6) 9523d0407baSopenharmony_ci#define RK817_BUCK3_FB_RES_EXT 0 9533d0407baSopenharmony_ci 9543d0407baSopenharmony_ci/* buck config 0xba */ 9553d0407baSopenharmony_ci#define RK817_RAMP_RATE_OFFSET 6 9563d0407baSopenharmony_ci#define RK817_RAMP_RATE_MASK (0x3 << RK817_RAMP_RATE_OFFSET) 9573d0407baSopenharmony_ci#define RK817_RAMP_RATE_3MV_PER_US (0x0 << RK817_RAMP_RATE_OFFSET) 9583d0407baSopenharmony_ci#define RK817_RAMP_RATE_6_3MV_PER_US (0x1 << RK817_RAMP_RATE_OFFSET) 9593d0407baSopenharmony_ci#define RK817_RAMP_RATE_12_5MV_PER_US (0x2 << RK817_RAMP_RATE_OFFSET) 9603d0407baSopenharmony_ci#define RK817_RAMP_RATE_25MV_PER_US (0x3 << RK817_RAMP_RATE_OFFSET) 9613d0407baSopenharmony_ci 9623d0407baSopenharmony_ci/* sys_cfg1 0xf2 */ 9633d0407baSopenharmony_ci#define RK817_HOTDIE_TEMP_MSK (0x3 << 4) 9643d0407baSopenharmony_ci#define RK817_HOTDIE_85 (0x0 << 4) 9653d0407baSopenharmony_ci#define RK817_HOTDIE_95 (0x1 << 4) 9663d0407baSopenharmony_ci#define RK817_HOTDIE_105 (0x2 << 4) 9673d0407baSopenharmony_ci#define RK817_HOTDIE_115 (0x3 << 4) 9683d0407baSopenharmony_ci 9693d0407baSopenharmony_ci#define RK817_TSD_TEMP_MSK BIT(6) 9703d0407baSopenharmony_ci#define RK817_TSD_140 0 9713d0407baSopenharmony_ci#define RK817_TSD_160 BIT(6) 9723d0407baSopenharmony_ci 9733d0407baSopenharmony_ci#define RK817_CLK32KOUT2_EN BIT(7) 9743d0407baSopenharmony_ci 9753d0407baSopenharmony_ci/* sys_cfg3 0xf4 */ 9763d0407baSopenharmony_ci#define RK817_SLPPIN_FUNC_MSK (0x3 << 3) 9773d0407baSopenharmony_ci#define SLPPIN_NULL_FUN (0x0 << 3) 9783d0407baSopenharmony_ci#define SLPPIN_SLP_FUN (0x1 << 3) 9793d0407baSopenharmony_ci#define SLPPIN_DN_FUN (0x2 << 3) 9803d0407baSopenharmony_ci#define SLPPIN_RST_FUN (0x3 << 3) 9813d0407baSopenharmony_ci 9823d0407baSopenharmony_ci#define RK817_RST_FUNC_MSK (0x3 << 6) 9833d0407baSopenharmony_ci#define RK817_RST_FUNC_SFT (6) 9843d0407baSopenharmony_ci#define RK817_RST_FUNC_CNT (3) 9853d0407baSopenharmony_ci#define RK817_RST_FUNC_DEV (0) /* reset the dev */ 9863d0407baSopenharmony_ci#define RK817_RST_FUNC_REG (0x1 << 6) /* reset the reg only */ 9873d0407baSopenharmony_ci 9883d0407baSopenharmony_ci#define RK817_SLPPOL_MSK BIT(5) 9893d0407baSopenharmony_ci#define RK817_SLPPOL_H BIT(5) 9903d0407baSopenharmony_ci#define RK817_SLPPOL_L (0) 9913d0407baSopenharmony_ci 9923d0407baSopenharmony_ci/* gpio&int 0xfe */ 9933d0407baSopenharmony_ci#define RK817_INT_POL_MSK BIT(1) 9943d0407baSopenharmony_ci#define RK817_INT_POL_H BIT(1) 9953d0407baSopenharmony_ci#define RK817_INT_POL_L 0 9963d0407baSopenharmony_ci#define RK809_BUCK5_CONFIG(i) (RK817_BOOST_OTG_CFG + (i)*1) 9973d0407baSopenharmony_ci 9983d0407baSopenharmony_ci#define RK_REG_BITS 8 9993d0407baSopenharmony_ci#define RK_VAL_BITS 8 10003d0407baSopenharmony_ci#define RK_REG_VAL_ZERO 0 10013d0407baSopenharmony_ci#define RK_REG_VAL_THREE 3 10023d0407baSopenharmony_ci#define RK_REG_SHIFT_MASK_ZERO 0 10033d0407baSopenharmony_ci#define RK_REG_SHIFT_MASK_ONE 1 10043d0407baSopenharmony_ci#define RK_REG_SHIFT_MASK_TWO 2 10053d0407baSopenharmony_ci#define RK_REG_SHIFT_MASK_THREE 3 10063d0407baSopenharmony_ci#define RK_REG_SHIFT_MASK_FOUR 4 10073d0407baSopenharmony_ci#define RK_REG_SHIFT_MASK_FIVE 5 10083d0407baSopenharmony_ci#define RK_REG_SHIFT_MASK_SIX 6 10093d0407baSopenharmony_ci#define RK_REG_SHIFT_MASK_SEVEN 7 10103d0407baSopenharmony_ci#define RK_REG_SHIFT_MASK_EIGHT 8 10113d0407baSopenharmony_ci#define RK_DELAY_COUNT_TWO_MS 2 10123d0407baSopenharmony_ci#define RK_DELAY_COUNT_TEN_MS 10 10133d0407baSopenharmony_ci#define RK_SSCAN_RET_RESULT_ONE 1 10143d0407baSopenharmony_ci#define RK_SSCAN_RET_RESULT_TWO 2 10153d0407baSopenharmony_ci#define RK_SSCAN_RET_RESULT_THREE 3 10163d0407baSopenharmony_ci#define RK_INPUT_MASK 0xff 10173d0407baSopenharmony_ci#define RK_BYTE_HIGH_FOUR_BIT_MASK 0xf0 10183d0407baSopenharmony_ci#define RK_BYTE_LOW_FOUR_BIT_MASK 0x0f 10193d0407baSopenharmony_ci#define RK_BYTE_FOUR_BIT_SHIFT_MASK 4 10203d0407baSopenharmony_ci#define RK_POWER_EN_REG_VALUE_ZERO 0 10213d0407baSopenharmony_ci#define RK_POWER_EN_REG_VALUE_ONE 1 10223d0407baSopenharmony_ci#define RK_POWER_EN_REG_VALUE_TWO 2 10233d0407baSopenharmony_ci#define RK_POWER_EN_REG_VALUE_THREE 3 10243d0407baSopenharmony_ci 10253d0407baSopenharmony_cienum { 10263d0407baSopenharmony_ci BUCK_ILMIN_50MA, 10273d0407baSopenharmony_ci BUCK_ILMIN_100MA, 10283d0407baSopenharmony_ci BUCK_ILMIN_150MA, 10293d0407baSopenharmony_ci BUCK_ILMIN_200MA, 10303d0407baSopenharmony_ci BUCK_ILMIN_250MA, 10313d0407baSopenharmony_ci BUCK_ILMIN_300MA, 10323d0407baSopenharmony_ci BUCK_ILMIN_350MA, 10333d0407baSopenharmony_ci BUCK_ILMIN_400MA, 10343d0407baSopenharmony_ci}; 10353d0407baSopenharmony_ci 10363d0407baSopenharmony_cienum { 10373d0407baSopenharmony_ci BOOST_ILMIN_75MA, 10383d0407baSopenharmony_ci BOOST_ILMIN_100MA, 10393d0407baSopenharmony_ci BOOST_ILMIN_125MA, 10403d0407baSopenharmony_ci BOOST_ILMIN_150MA, 10413d0407baSopenharmony_ci BOOST_ILMIN_175MA, 10423d0407baSopenharmony_ci BOOST_ILMIN_200MA, 10433d0407baSopenharmony_ci BOOST_ILMIN_225MA, 10443d0407baSopenharmony_ci BOOST_ILMIN_250MA, 10453d0407baSopenharmony_ci}; 10463d0407baSopenharmony_ci 10473d0407baSopenharmony_cienum { 10483d0407baSopenharmony_ci RK805_BUCK1_2_ILMAX_2500MA, 10493d0407baSopenharmony_ci RK805_BUCK1_2_ILMAX_3000MA, 10503d0407baSopenharmony_ci RK805_BUCK1_2_ILMAX_3500MA, 10513d0407baSopenharmony_ci RK805_BUCK1_2_ILMAX_4000MA, 10523d0407baSopenharmony_ci}; 10533d0407baSopenharmony_ci 10543d0407baSopenharmony_cienum { 10553d0407baSopenharmony_ci RK805_BUCK3_ILMAX_1500MA, 10563d0407baSopenharmony_ci RK805_BUCK3_ILMAX_2000MA, 10573d0407baSopenharmony_ci RK805_BUCK3_ILMAX_2500MA, 10583d0407baSopenharmony_ci RK805_BUCK3_ILMAX_3000MA, 10593d0407baSopenharmony_ci}; 10603d0407baSopenharmony_ci 10613d0407baSopenharmony_cienum { 10623d0407baSopenharmony_ci RK805_BUCK4_ILMAX_2000MA, 10633d0407baSopenharmony_ci RK805_BUCK4_ILMAX_2500MA, 10643d0407baSopenharmony_ci RK805_BUCK4_ILMAX_3000MA, 10653d0407baSopenharmony_ci RK805_BUCK4_ILMAX_3500MA, 10663d0407baSopenharmony_ci}; 10673d0407baSopenharmony_ci 10683d0407baSopenharmony_cienum { 10693d0407baSopenharmony_ci RK805_ID = 0x8050, 10703d0407baSopenharmony_ci RK808_ID = 0x0000, 10713d0407baSopenharmony_ci RK809_ID = 0x8090, 10723d0407baSopenharmony_ci RK816_ID = 0x8160, 10733d0407baSopenharmony_ci RK817_ID = 0x8170, 10743d0407baSopenharmony_ci RK818_ID = 0x8180, 10753d0407baSopenharmony_ci}; 10763d0407baSopenharmony_ci 10773d0407baSopenharmony_cistruct rk808_pin_info { 10783d0407baSopenharmony_ci struct pinctrl *p; 10793d0407baSopenharmony_ci struct pinctrl_state *reset; 10803d0407baSopenharmony_ci struct pinctrl_state *power_off; 10813d0407baSopenharmony_ci struct pinctrl_state *sleep; 10823d0407baSopenharmony_ci}; 10833d0407baSopenharmony_ci 10843d0407baSopenharmony_cistruct rk808 { 10853d0407baSopenharmony_ci struct i2c_client *i2c; 10863d0407baSopenharmony_ci struct regmap_irq_chip_data *irq_data; 10873d0407baSopenharmony_ci struct regmap_irq_chip_data *battery_irq_data; 10883d0407baSopenharmony_ci struct regmap *regmap; 10893d0407baSopenharmony_ci long variant; 10903d0407baSopenharmony_ci const struct regmap_config *regmap_cfg; 10913d0407baSopenharmony_ci const struct regmap_irq_chip *regmap_irq_chip; 10923d0407baSopenharmony_ci void (*pm_pwroff_prep_fn)(void); 10933d0407baSopenharmony_ci struct rk808_pin_info *pins; 10943d0407baSopenharmony_ci}; 10953d0407baSopenharmony_ci#endif /* __LINUX_REGULATOR_RK808_H */ 1096