1 /* SPDX-License-Identifier: GPL-2.0-or-later * 1 2 /* 3 * include/linux/mfd/wm831x/pmu.h -- PMU for W 4 * 5 * Copyright 2009 Wolfson Microelectronics PLC 6 * 7 * Author: Mark Brown <broonie@opensource.wolf 8 */ 9 10 #ifndef __MFD_WM831X_PMU_H__ 11 #define __MFD_WM831X_PMU_H__ 12 13 /* 14 * R16387 (0x4003) - Power State 15 */ 16 #define WM831X_CHIP_ON 17 #define WM831X_CHIP_ON_MASK 18 #define WM831X_CHIP_ON_SHIFT 19 #define WM831X_CHIP_ON_WIDTH 20 #define WM831X_CHIP_SLP 21 #define WM831X_CHIP_SLP_MASK 22 #define WM831X_CHIP_SLP_SHIFT 23 #define WM831X_CHIP_SLP_WIDTH 24 #define WM831X_REF_LP 25 #define WM831X_REF_LP_MASK 26 #define WM831X_REF_LP_SHIFT 27 #define WM831X_REF_LP_WIDTH 28 #define WM831X_PWRSTATE_DLY_MASK 29 #define WM831X_PWRSTATE_DLY_SHIFT 30 #define WM831X_PWRSTATE_DLY_WIDTH 31 #define WM831X_SWRST_DLY 32 #define WM831X_SWRST_DLY_MASK 33 #define WM831X_SWRST_DLY_SHIFT 34 #define WM831X_SWRST_DLY_WIDTH 35 #define WM831X_USB100MA_STARTUP_MASK 36 #define WM831X_USB100MA_STARTUP_SHIFT 37 #define WM831X_USB100MA_STARTUP_WIDTH 38 #define WM831X_USB_CURR_STS 39 #define WM831X_USB_CURR_STS_MASK 40 #define WM831X_USB_CURR_STS_SHIFT 41 #define WM831X_USB_CURR_STS_WIDTH 42 #define WM831X_USB_ILIM_MASK 43 #define WM831X_USB_ILIM_SHIFT 44 #define WM831X_USB_ILIM_WIDTH 45 46 /* 47 * R16397 (0x400D) - System Status 48 */ 49 #define WM831X_THW_STS 50 #define WM831X_THW_STS_MASK 51 #define WM831X_THW_STS_SHIFT 52 #define WM831X_THW_STS_WIDTH 53 #define WM831X_PWR_SRC_BATT 54 #define WM831X_PWR_SRC_BATT_MASK 55 #define WM831X_PWR_SRC_BATT_SHIFT 56 #define WM831X_PWR_SRC_BATT_WIDTH 57 #define WM831X_PWR_WALL 58 #define WM831X_PWR_WALL_MASK 59 #define WM831X_PWR_WALL_SHIFT 60 #define WM831X_PWR_WALL_WIDTH 61 #define WM831X_PWR_USB 62 #define WM831X_PWR_USB_MASK 63 #define WM831X_PWR_USB_SHIFT 64 #define WM831X_PWR_USB_WIDTH 65 #define WM831X_MAIN_STATE_MASK 66 #define WM831X_MAIN_STATE_SHIFT 67 #define WM831X_MAIN_STATE_WIDTH 68 69 /* 70 * R16456 (0x4048) - Charger Control 1 71 */ 72 #define WM831X_CHG_ENA 73 #define WM831X_CHG_ENA_MASK 74 #define WM831X_CHG_ENA_SHIFT 75 #define WM831X_CHG_ENA_WIDTH 76 #define WM831X_CHG_FRC 77 #define WM831X_CHG_FRC_MASK 78 #define WM831X_CHG_FRC_SHIFT 79 #define WM831X_CHG_FRC_WIDTH 80 #define WM831X_CHG_ITERM_MASK 81 #define WM831X_CHG_ITERM_SHIFT 82 #define WM831X_CHG_ITERM_WIDTH 83 #define WM831X_CHG_FAST 84 #define WM831X_CHG_FAST_MASK 85 #define WM831X_CHG_FAST_SHIFT 86 #define WM831X_CHG_FAST_WIDTH 87 #define WM831X_CHG_IMON_ENA 88 #define WM831X_CHG_IMON_ENA_MASK 89 #define WM831X_CHG_IMON_ENA_SHIFT 90 #define WM831X_CHG_IMON_ENA_WIDTH 91 #define WM831X_CHG_CHIP_TEMP_MON 92 #define WM831X_CHG_CHIP_TEMP_MON_MASK 93 #define WM831X_CHG_CHIP_TEMP_MON_SHIFT 94 #define WM831X_CHG_CHIP_TEMP_MON_WIDTH 95 96 /* 97 * R16457 (0x4049) - Charger Control 2 98 */ 99 #define WM831X_CHG_OFF_MSK 100 #define WM831X_CHG_OFF_MSK_MASK 101 #define WM831X_CHG_OFF_MSK_SHIFT 102 #define WM831X_CHG_OFF_MSK_WIDTH 103 #define WM831X_CHG_TIME_MASK 104 #define WM831X_CHG_TIME_SHIFT 105 #define WM831X_CHG_TIME_WIDTH 106 #define WM831X_CHG_TRKL_ILIM_MASK 107 #define WM831X_CHG_TRKL_ILIM_SHIFT 108 #define WM831X_CHG_TRKL_ILIM_WIDTH 109 #define WM831X_CHG_VSEL_MASK 110 #define WM831X_CHG_VSEL_SHIFT 111 #define WM831X_CHG_VSEL_WIDTH 112 #define WM831X_CHG_FAST_ILIM_MASK 113 #define WM831X_CHG_FAST_ILIM_SHIFT 114 #define WM831X_CHG_FAST_ILIM_WIDTH 115 116 /* 117 * R16458 (0x404A) - Charger Status 118 */ 119 #define WM831X_BATT_OV_STS 120 #define WM831X_BATT_OV_STS_MASK 121 #define WM831X_BATT_OV_STS_SHIFT 122 #define WM831X_BATT_OV_STS_WIDTH 123 #define WM831X_CHG_STATE_MASK 124 #define WM831X_CHG_STATE_SHIFT 125 #define WM831X_CHG_STATE_WIDTH 126 #define WM831X_BATT_HOT_STS 127 #define WM831X_BATT_HOT_STS_MASK 128 #define WM831X_BATT_HOT_STS_SHIFT 129 #define WM831X_BATT_HOT_STS_WIDTH 130 #define WM831X_BATT_COLD_STS 131 #define WM831X_BATT_COLD_STS_MASK 132 #define WM831X_BATT_COLD_STS_SHIFT 133 #define WM831X_BATT_COLD_STS_WIDTH 134 #define WM831X_CHG_TOPOFF 135 #define WM831X_CHG_TOPOFF_MASK 136 #define WM831X_CHG_TOPOFF_SHIFT 137 #define WM831X_CHG_TOPOFF_WIDTH 138 #define WM831X_CHG_ACTIVE 139 #define WM831X_CHG_ACTIVE_MASK 140 #define WM831X_CHG_ACTIVE_SHIFT 141 #define WM831X_CHG_ACTIVE_WIDTH 142 #define WM831X_CHG_TIME_ELAPSED_MASK 143 #define WM831X_CHG_TIME_ELAPSED_SHIFT 144 #define WM831X_CHG_TIME_ELAPSED_WIDTH 145 146 #define WM831X_CHG_STATE_OFF (0 << WM8 147 #define WM831X_CHG_STATE_TRICKLE (1 << WM8 148 #define WM831X_CHG_STATE_FAST (2 << WM8 149 #define WM831X_CHG_STATE_TRICKLE_OT (3 << WM8 150 #define WM831X_CHG_STATE_FAST_OT (4 << WM8 151 #define WM831X_CHG_STATE_DEFECTIVE (5 << WM8 152 153 /* 154 * R16459 (0x404B) - Backup Charger Control 155 */ 156 #define WM831X_BKUP_CHG_ENA 157 #define WM831X_BKUP_CHG_ENA_MASK 158 #define WM831X_BKUP_CHG_ENA_SHIFT 159 #define WM831X_BKUP_CHG_ENA_WIDTH 160 #define WM831X_BKUP_CHG_STS 161 #define WM831X_BKUP_CHG_STS_MASK 162 #define WM831X_BKUP_CHG_STS_SHIFT 163 #define WM831X_BKUP_CHG_STS_WIDTH 164 #define WM831X_BKUP_CHG_MODE 165 #define WM831X_BKUP_CHG_MODE_MASK 166 #define WM831X_BKUP_CHG_MODE_SHIFT 167 #define WM831X_BKUP_CHG_MODE_WIDTH 168 #define WM831X_BKUP_BATT_DET_ENA 169 #define WM831X_BKUP_BATT_DET_ENA_MASK 170 #define WM831X_BKUP_BATT_DET_ENA_SHIFT 171 #define WM831X_BKUP_BATT_DET_ENA_WIDTH 172 #define WM831X_BKUP_BATT_STS 173 #define WM831X_BKUP_BATT_STS_MASK 174 #define WM831X_BKUP_BATT_STS_SHIFT 175 #define WM831X_BKUP_BATT_STS_WIDTH 176 #define WM831X_BKUP_CHG_VLIM 177 #define WM831X_BKUP_CHG_VLIM_MASK 178 #define WM831X_BKUP_CHG_VLIM_SHIFT 179 #define WM831X_BKUP_CHG_VLIM_WIDTH 180 #define WM831X_BKUP_CHG_ILIM_MASK 181 #define WM831X_BKUP_CHG_ILIM_SHIFT 182 #define WM831X_BKUP_CHG_ILIM_WIDTH 183 184 #endif 185
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.