MAX77654 Ultra-Low Power PMIC Mbed Driver

Committer:
Okan Sahin
Date:
Fri Aug 26 14:57:06 2022 +0300
Revision:
4:77203c01b399
Parent:
3:1e7cafcfdae7
fix interrupt_handler_list

use number of interrupts as a size of array.
initialize with NULL.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
metin.ozkan@analog.com 0:788f63dcf0a0 1 /*******************************************************************************
metin.ozkan@analog.com 0:788f63dcf0a0 2 * Copyright (C) 2022 Maxim Integrated Products, Inc., All rights Reserved.
metin.ozkan@analog.com 0:788f63dcf0a0 3 *
metin.ozkan@analog.com 0:788f63dcf0a0 4 * This software is protected by copyright laws of the United States and
metin.ozkan@analog.com 0:788f63dcf0a0 5 * of foreign countries. This material may also be protected by patent laws
metin.ozkan@analog.com 0:788f63dcf0a0 6 * and technology transfer regulations of the United States and of foreign
metin.ozkan@analog.com 0:788f63dcf0a0 7 * countries. This software is furnished under a license agreement and/or a
metin.ozkan@analog.com 0:788f63dcf0a0 8 * nondisclosure agreement and may only be used or reproduced in accordance
metin.ozkan@analog.com 0:788f63dcf0a0 9 * with the terms of those agreements. Dissemination of this information to
metin.ozkan@analog.com 0:788f63dcf0a0 10 * any party or parties not specified in the license agreement and/or
metin.ozkan@analog.com 0:788f63dcf0a0 11 * nondisclosure agreement is expressly prohibited.
metin.ozkan@analog.com 0:788f63dcf0a0 12 *
metin.ozkan@analog.com 0:788f63dcf0a0 13 * The above copyright notice and this permission notice shall be included
metin.ozkan@analog.com 0:788f63dcf0a0 14 * in all copies or substantial portions of the Software.
metin.ozkan@analog.com 0:788f63dcf0a0 15 *
metin.ozkan@analog.com 0:788f63dcf0a0 16 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
metin.ozkan@analog.com 0:788f63dcf0a0 17 * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
metin.ozkan@analog.com 0:788f63dcf0a0 18 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
metin.ozkan@analog.com 0:788f63dcf0a0 19 * IN NO EVENT SHALL MAXIM INTEGRATED BE LIABLE FOR ANY CLAIM, DAMAGES
metin.ozkan@analog.com 0:788f63dcf0a0 20 * OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
metin.ozkan@analog.com 0:788f63dcf0a0 21 * ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
metin.ozkan@analog.com 0:788f63dcf0a0 22 * OTHER DEALINGS IN THE SOFTWARE.
metin.ozkan@analog.com 0:788f63dcf0a0 23 *
metin.ozkan@analog.com 0:788f63dcf0a0 24 * Except as contained in this notice, the name of Maxim Integrated
metin.ozkan@analog.com 0:788f63dcf0a0 25 * Products, Inc. shall not be used except as stated in the Maxim Integrated
metin.ozkan@analog.com 0:788f63dcf0a0 26 * Products, Inc. Branding Policy.
metin.ozkan@analog.com 0:788f63dcf0a0 27 *
metin.ozkan@analog.com 0:788f63dcf0a0 28 * The mere transfer of this software does not imply any licenses
metin.ozkan@analog.com 0:788f63dcf0a0 29 * of trade secrets, proprietary technology, copyrights, patents,
metin.ozkan@analog.com 0:788f63dcf0a0 30 * trademarks, maskwork rights, or any other form of intellectual
metin.ozkan@analog.com 0:788f63dcf0a0 31 * property whatsoever. Maxim Integrated Products, Inc. retains all
metin.ozkan@analog.com 0:788f63dcf0a0 32 * ownership rights.
metin.ozkan@analog.com 0:788f63dcf0a0 33 *******************************************************************************
metin.ozkan@analog.com 0:788f63dcf0a0 34 */
metin.ozkan@analog.com 0:788f63dcf0a0 35
metin.ozkan@analog.com 0:788f63dcf0a0 36 #include <Thread.h>
metin.ozkan@analog.com 0:788f63dcf0a0 37 #include "MAX77654.h"
metin.ozkan@analog.com 0:788f63dcf0a0 38 using namespace std;
metin.ozkan@analog.com 0:788f63dcf0a0 39
metin.ozkan@analog.com 0:788f63dcf0a0 40 #define POST_INTR_WORK_SIGNAL_ID 0x1
metin.ozkan@analog.com 0:788f63dcf0a0 41
metin.ozkan@analog.com 1:4ad70542956e 42 MAX77654::MAX77654(I2C *i2c, PinName IRQPin)
metin.ozkan@analog.com 0:788f63dcf0a0 43 {
metin.ozkan@analog.com 1:4ad70542956e 44 if (i2c == NULL)
metin.ozkan@analog.com 0:788f63dcf0a0 45 return;
metin.ozkan@analog.com 0:788f63dcf0a0 46
metin.ozkan@analog.com 0:788f63dcf0a0 47 i2c_handler = i2c;
metin.ozkan@analog.com 0:788f63dcf0a0 48
Okan Sahin 4:77203c01b399 49 interrupt_handler_list = new handler[INT_CHG_END]{};
Okan Sahin 4:77203c01b399 50
metin.ozkan@analog.com 0:788f63dcf0a0 51 if (IRQPin != NC) {
metin.ozkan@analog.com 0:788f63dcf0a0 52 IRQDisableAll();
metin.ozkan@analog.com 0:788f63dcf0a0 53 post_intr_work_thread = new Thread();
metin.ozkan@analog.com 0:788f63dcf0a0 54 post_intr_work_thread->start(Callback<void()>(this, &MAX77654::PostInterruptWork));
metin.ozkan@analog.com 0:788f63dcf0a0 55
metin.ozkan@analog.com 0:788f63dcf0a0 56 this->irq_pin = new InterruptIn(IRQPin);
metin.ozkan@analog.com 0:788f63dcf0a0 57 this->irq_pin->fall(Callback<void()>(this, &MAX77654::InterruptHandler));
metin.ozkan@analog.com 0:788f63dcf0a0 58 this->irq_pin->enable_irq();
metin.ozkan@analog.com 0:788f63dcf0a0 59 } else {
metin.ozkan@analog.com 0:788f63dcf0a0 60 this->irq_pin = NULL;
metin.ozkan@analog.com 0:788f63dcf0a0 61 }
metin.ozkan@analog.com 0:788f63dcf0a0 62 }
metin.ozkan@analog.com 0:788f63dcf0a0 63
metin.ozkan@analog.com 0:788f63dcf0a0 64 MAX77654::~MAX77654()
metin.ozkan@analog.com 0:788f63dcf0a0 65 {
metin.ozkan@analog.com 0:788f63dcf0a0 66 if (post_intr_work_thread) {
metin.ozkan@analog.com 0:788f63dcf0a0 67 delete post_intr_work_thread;
metin.ozkan@analog.com 0:788f63dcf0a0 68 }
metin.ozkan@analog.com 0:788f63dcf0a0 69
metin.ozkan@analog.com 0:788f63dcf0a0 70 if (irq_pin) {
metin.ozkan@analog.com 0:788f63dcf0a0 71 delete irq_pin;
metin.ozkan@analog.com 0:788f63dcf0a0 72 }
Okan Sahin 4:77203c01b399 73
Okan Sahin 4:77203c01b399 74 if (interrupt_handler_list) {
Okan Sahin 4:77203c01b399 75 delete [] interrupt_handler_list;
Okan Sahin 4:77203c01b399 76 }
metin.ozkan@analog.com 0:788f63dcf0a0 77 }
metin.ozkan@analog.com 0:788f63dcf0a0 78
metin.ozkan@analog.com 0:788f63dcf0a0 79 int MAX77654::read_register(uint8_t reg, uint8_t *value)
metin.ozkan@analog.com 0:788f63dcf0a0 80 {
metin.ozkan@analog.com 0:788f63dcf0a0 81 int rtn_val;
metin.ozkan@analog.com 0:788f63dcf0a0 82
metin.ozkan@analog.com 0:788f63dcf0a0 83 if (value == NULL) {
metin.ozkan@analog.com 0:788f63dcf0a0 84 return MAX77654_VALUE_NULL;
metin.ozkan@analog.com 0:788f63dcf0a0 85 }
metin.ozkan@analog.com 0:788f63dcf0a0 86
metin.ozkan@analog.com 0:788f63dcf0a0 87 rtn_val = i2c_handler->write(MAX77654_I2C_ADDRESS, (const char *)&reg, 1, true);
metin.ozkan@analog.com 0:788f63dcf0a0 88 if (rtn_val != 0) {
metin.ozkan@analog.com 0:788f63dcf0a0 89 return MAX77654_WRITE_DATA_FAILED;
metin.ozkan@analog.com 0:788f63dcf0a0 90 }
metin.ozkan@analog.com 0:788f63dcf0a0 91
metin.ozkan@analog.com 0:788f63dcf0a0 92 rtn_val = i2c_handler->read(MAX77654_I2C_ADDRESS, (char *) value, 1, false);
metin.ozkan@analog.com 0:788f63dcf0a0 93 if (rtn_val < 0) {
metin.ozkan@analog.com 0:788f63dcf0a0 94 return MAX77654_READ_DATA_FAILED;
metin.ozkan@analog.com 0:788f63dcf0a0 95 }
metin.ozkan@analog.com 0:788f63dcf0a0 96
metin.ozkan@analog.com 0:788f63dcf0a0 97 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 98 }
metin.ozkan@analog.com 0:788f63dcf0a0 99
metin.ozkan@analog.com 0:788f63dcf0a0 100 int MAX77654::write_register(uint8_t reg, const uint8_t *value)
metin.ozkan@analog.com 0:788f63dcf0a0 101 {
metin.ozkan@analog.com 0:788f63dcf0a0 102 int rtn_val;
metin.ozkan@analog.com 0:788f63dcf0a0 103 uint8_t local_data[2];
metin.ozkan@analog.com 0:788f63dcf0a0 104
metin.ozkan@analog.com 0:788f63dcf0a0 105 if (value == NULL) {
metin.ozkan@analog.com 0:788f63dcf0a0 106 return MAX77654_VALUE_NULL;
metin.ozkan@analog.com 0:788f63dcf0a0 107 }
metin.ozkan@analog.com 0:788f63dcf0a0 108
metin.ozkan@analog.com 0:788f63dcf0a0 109 local_data[0] = reg;
metin.ozkan@analog.com 0:788f63dcf0a0 110
metin.ozkan@analog.com 0:788f63dcf0a0 111 memcpy(&local_data[1], value, 1);
metin.ozkan@analog.com 0:788f63dcf0a0 112
metin.ozkan@analog.com 0:788f63dcf0a0 113 rtn_val = i2c_handler->write(MAX77654_I2C_ADDRESS, (const char *)local_data, sizeof(local_data));
metin.ozkan@analog.com 0:788f63dcf0a0 114 if (rtn_val != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 115 return MAX77654_WRITE_DATA_FAILED;
metin.ozkan@analog.com 0:788f63dcf0a0 116 }
metin.ozkan@analog.com 0:788f63dcf0a0 117
metin.ozkan@analog.com 0:788f63dcf0a0 118 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 119 }
metin.ozkan@analog.com 0:788f63dcf0a0 120
metin.ozkan@analog.com 0:788f63dcf0a0 121 #define SET_BIT_FIELD(address, reg_name, bit_field_name, value) \
metin.ozkan@analog.com 0:788f63dcf0a0 122 int ret; \
metin.ozkan@analog.com 0:788f63dcf0a0 123 ret = read_register(address, (uint8_t *)&(reg_name)); \
metin.ozkan@analog.com 0:788f63dcf0a0 124 if (ret) { \
metin.ozkan@analog.com 0:788f63dcf0a0 125 return ret; \
metin.ozkan@analog.com 0:788f63dcf0a0 126 } \
metin.ozkan@analog.com 0:788f63dcf0a0 127 bit_field_name = value; \
metin.ozkan@analog.com 0:788f63dcf0a0 128 ret = write_register(address, (uint8_t *)&(reg_name)); \
metin.ozkan@analog.com 0:788f63dcf0a0 129 if (ret) { \
metin.ozkan@analog.com 0:788f63dcf0a0 130 return ret; \
metin.ozkan@analog.com 0:788f63dcf0a0 131 }
metin.ozkan@analog.com 0:788f63dcf0a0 132
metin.ozkan@analog.com 0:788f63dcf0a0 133 int MAX77654::GetThermalOverload(ercflag_t *ercflag)
metin.ozkan@analog.com 0:788f63dcf0a0 134 {
metin.ozkan@analog.com 0:788f63dcf0a0 135 int ret;
Okan Sahin 3:1e7cafcfdae7 136 reg_ercflag_t reg_ercflag = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 137
metin.ozkan@analog.com 0:788f63dcf0a0 138 ret = read_register(ERCFLAG, (uint8_t *)&(reg_ercflag));
metin.ozkan@analog.com 0:788f63dcf0a0 139 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 140 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 141 }
metin.ozkan@analog.com 0:788f63dcf0a0 142
metin.ozkan@analog.com 0:788f63dcf0a0 143 *ercflag = (ercflag_t)reg_ercflag.bits.tovld;
metin.ozkan@analog.com 0:788f63dcf0a0 144
metin.ozkan@analog.com 0:788f63dcf0a0 145 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 146 }
metin.ozkan@analog.com 0:788f63dcf0a0 147
metin.ozkan@analog.com 0:788f63dcf0a0 148 int MAX77654::GetSysOvervoltageLockout(ercflag_t *ercflag)
metin.ozkan@analog.com 0:788f63dcf0a0 149 {
metin.ozkan@analog.com 0:788f63dcf0a0 150 int ret;
Okan Sahin 3:1e7cafcfdae7 151 reg_ercflag_t reg_ercflag = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 152
metin.ozkan@analog.com 0:788f63dcf0a0 153 ret = read_register(ERCFLAG, (uint8_t *)&(reg_ercflag));
metin.ozkan@analog.com 0:788f63dcf0a0 154 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 155 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 156 }
metin.ozkan@analog.com 0:788f63dcf0a0 157
metin.ozkan@analog.com 0:788f63dcf0a0 158 *ercflag = (ercflag_t)reg_ercflag.bits.sysovlo;
metin.ozkan@analog.com 0:788f63dcf0a0 159
metin.ozkan@analog.com 0:788f63dcf0a0 160 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 161 }
metin.ozkan@analog.com 0:788f63dcf0a0 162
metin.ozkan@analog.com 0:788f63dcf0a0 163 int MAX77654::GetSysUndervoltageLockout(ercflag_t *ercflag)
metin.ozkan@analog.com 0:788f63dcf0a0 164 {
metin.ozkan@analog.com 0:788f63dcf0a0 165 int ret;
Okan Sahin 3:1e7cafcfdae7 166 reg_ercflag_t reg_ercflag = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 167
metin.ozkan@analog.com 0:788f63dcf0a0 168 ret = read_register(ERCFLAG, (uint8_t *)&(reg_ercflag));
metin.ozkan@analog.com 0:788f63dcf0a0 169 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 170 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 171 }
metin.ozkan@analog.com 0:788f63dcf0a0 172
metin.ozkan@analog.com 0:788f63dcf0a0 173 *ercflag = (ercflag_t)reg_ercflag.bits.sysuvlo;
metin.ozkan@analog.com 0:788f63dcf0a0 174
metin.ozkan@analog.com 0:788f63dcf0a0 175 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 176 }
metin.ozkan@analog.com 0:788f63dcf0a0 177
metin.ozkan@analog.com 0:788f63dcf0a0 178 int MAX77654::GetManualResetTimer(ercflag_t *ercflag)
metin.ozkan@analog.com 0:788f63dcf0a0 179 {
metin.ozkan@analog.com 0:788f63dcf0a0 180 int ret;
Okan Sahin 3:1e7cafcfdae7 181 reg_ercflag_t reg_ercflag = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 182
metin.ozkan@analog.com 0:788f63dcf0a0 183 ret = read_register(ERCFLAG, (uint8_t *)&(reg_ercflag));
metin.ozkan@analog.com 0:788f63dcf0a0 184 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 185 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 186 }
metin.ozkan@analog.com 0:788f63dcf0a0 187
metin.ozkan@analog.com 0:788f63dcf0a0 188 *ercflag = (ercflag_t)reg_ercflag.bits.mrst;
metin.ozkan@analog.com 0:788f63dcf0a0 189
metin.ozkan@analog.com 0:788f63dcf0a0 190 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 191 }
metin.ozkan@analog.com 0:788f63dcf0a0 192
metin.ozkan@analog.com 0:788f63dcf0a0 193 int MAX77654::GetSoftwareOffFlag(ercflag_t *ercflag)
metin.ozkan@analog.com 0:788f63dcf0a0 194 {
metin.ozkan@analog.com 0:788f63dcf0a0 195 int ret;
Okan Sahin 3:1e7cafcfdae7 196 reg_ercflag_t reg_ercflag = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 197
metin.ozkan@analog.com 0:788f63dcf0a0 198 ret = read_register(ERCFLAG, (uint8_t *)&(reg_ercflag));
metin.ozkan@analog.com 0:788f63dcf0a0 199 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 200 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 201 }
metin.ozkan@analog.com 0:788f63dcf0a0 202
metin.ozkan@analog.com 0:788f63dcf0a0 203 *ercflag = (ercflag_t)reg_ercflag.bits.sft_off_f;
metin.ozkan@analog.com 0:788f63dcf0a0 204
metin.ozkan@analog.com 0:788f63dcf0a0 205 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 206 }
metin.ozkan@analog.com 0:788f63dcf0a0 207
metin.ozkan@analog.com 0:788f63dcf0a0 208 int MAX77654::GetSoftwareColdResetFlag(ercflag_t *ercflag)
metin.ozkan@analog.com 0:788f63dcf0a0 209 {
metin.ozkan@analog.com 0:788f63dcf0a0 210 int ret;
Okan Sahin 3:1e7cafcfdae7 211 reg_ercflag_t reg_ercflag = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 212
metin.ozkan@analog.com 0:788f63dcf0a0 213 ret = read_register(ERCFLAG, (uint8_t *)&(reg_ercflag));
metin.ozkan@analog.com 0:788f63dcf0a0 214 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 215 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 216 }
metin.ozkan@analog.com 0:788f63dcf0a0 217
metin.ozkan@analog.com 0:788f63dcf0a0 218 *ercflag = (ercflag_t)reg_ercflag.bits.sft_crst_f;
metin.ozkan@analog.com 0:788f63dcf0a0 219
metin.ozkan@analog.com 0:788f63dcf0a0 220 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 221 }
metin.ozkan@analog.com 0:788f63dcf0a0 222
metin.ozkan@analog.com 0:788f63dcf0a0 223 int MAX77654::GetWatchdogTimerOffFlag(ercflag_t *ercflag)
metin.ozkan@analog.com 0:788f63dcf0a0 224 {
metin.ozkan@analog.com 0:788f63dcf0a0 225 int ret;
Okan Sahin 3:1e7cafcfdae7 226 reg_ercflag_t reg_ercflag = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 227
metin.ozkan@analog.com 0:788f63dcf0a0 228 ret = read_register(ERCFLAG, (uint8_t *)&(reg_ercflag));
metin.ozkan@analog.com 0:788f63dcf0a0 229 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 230 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 231 }
metin.ozkan@analog.com 0:788f63dcf0a0 232
metin.ozkan@analog.com 0:788f63dcf0a0 233 *ercflag = (ercflag_t)reg_ercflag.bits.wdt_off;
metin.ozkan@analog.com 0:788f63dcf0a0 234
metin.ozkan@analog.com 0:788f63dcf0a0 235 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 236 }
metin.ozkan@analog.com 0:788f63dcf0a0 237
metin.ozkan@analog.com 0:788f63dcf0a0 238 int MAX77654::GetWatchdogTimerResetFlag(ercflag_t *ercflag)
metin.ozkan@analog.com 0:788f63dcf0a0 239 {
metin.ozkan@analog.com 0:788f63dcf0a0 240 int ret;
Okan Sahin 3:1e7cafcfdae7 241 reg_ercflag_t reg_ercflag = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 242
metin.ozkan@analog.com 0:788f63dcf0a0 243 ret = read_register(ERCFLAG, (uint8_t *)&(reg_ercflag));
metin.ozkan@analog.com 0:788f63dcf0a0 244 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 245 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 246 }
metin.ozkan@analog.com 0:788f63dcf0a0 247
metin.ozkan@analog.com 0:788f63dcf0a0 248 *ercflag = (ercflag_t)reg_ercflag.bits.wdt_rst;
metin.ozkan@analog.com 0:788f63dcf0a0 249
metin.ozkan@analog.com 0:788f63dcf0a0 250 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 251 }
metin.ozkan@analog.com 0:788f63dcf0a0 252
metin.ozkan@analog.com 0:788f63dcf0a0 253 int MAX77654::GetDeviceIdentification(didm_t *didm)
metin.ozkan@analog.com 0:788f63dcf0a0 254 {
metin.ozkan@analog.com 0:788f63dcf0a0 255 int ret;
Okan Sahin 3:1e7cafcfdae7 256 reg_stat_glbl_t reg_stat_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 257
metin.ozkan@analog.com 0:788f63dcf0a0 258 ret = read_register(STAT_GLBL, (uint8_t *)&(reg_stat_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 259 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 260 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 261 }
metin.ozkan@analog.com 0:788f63dcf0a0 262
metin.ozkan@analog.com 0:788f63dcf0a0 263 *didm = (didm_t)reg_stat_glbl.bits.didm;
metin.ozkan@analog.com 0:788f63dcf0a0 264
metin.ozkan@analog.com 0:788f63dcf0a0 265 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 266 }
metin.ozkan@analog.com 0:788f63dcf0a0 267
metin.ozkan@analog.com 0:788f63dcf0a0 268 int MAX77654::GetBOKInterruptStatus(bok_t* bok)
metin.ozkan@analog.com 0:788f63dcf0a0 269 {
metin.ozkan@analog.com 0:788f63dcf0a0 270 int ret;
Okan Sahin 3:1e7cafcfdae7 271 reg_stat_glbl_t reg_stat_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 272
metin.ozkan@analog.com 0:788f63dcf0a0 273 ret = read_register(STAT_GLBL, (uint8_t *)&(reg_stat_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 274 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 275 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 276 }
metin.ozkan@analog.com 0:788f63dcf0a0 277
metin.ozkan@analog.com 0:788f63dcf0a0 278 *bok = (bok_t)reg_stat_glbl.bits.bok;
metin.ozkan@analog.com 0:788f63dcf0a0 279
metin.ozkan@analog.com 0:788f63dcf0a0 280 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 281 }
metin.ozkan@analog.com 0:788f63dcf0a0 282
metin.ozkan@analog.com 0:788f63dcf0a0 283 int MAX77654::GetLDO0DropoutRisingStatus(dod0_s_t* dod0_s)
metin.ozkan@analog.com 0:788f63dcf0a0 284 {
metin.ozkan@analog.com 0:788f63dcf0a0 285 int ret;
Okan Sahin 3:1e7cafcfdae7 286 reg_stat_glbl_t reg_stat_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 287
metin.ozkan@analog.com 0:788f63dcf0a0 288 ret = read_register(STAT_GLBL, (uint8_t *)&(reg_stat_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 289 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 290 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 291 }
metin.ozkan@analog.com 0:788f63dcf0a0 292
metin.ozkan@analog.com 0:788f63dcf0a0 293 *dod0_s = (dod0_s_t)reg_stat_glbl.bits.dod0_s;
metin.ozkan@analog.com 0:788f63dcf0a0 294
metin.ozkan@analog.com 0:788f63dcf0a0 295 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 296 }
metin.ozkan@analog.com 0:788f63dcf0a0 297
metin.ozkan@analog.com 0:788f63dcf0a0 298 int MAX77654::GetLDO1DropoutRisingStatus(dod1_s_t* dod1_s)
metin.ozkan@analog.com 0:788f63dcf0a0 299 {
metin.ozkan@analog.com 0:788f63dcf0a0 300 int ret;
Okan Sahin 3:1e7cafcfdae7 301 reg_stat_glbl_t reg_stat_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 302
metin.ozkan@analog.com 0:788f63dcf0a0 303 ret = read_register(STAT_GLBL, (uint8_t *)&(reg_stat_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 304 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 305 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 306 }
metin.ozkan@analog.com 0:788f63dcf0a0 307
metin.ozkan@analog.com 0:788f63dcf0a0 308 *dod1_s = (dod1_s_t)reg_stat_glbl.bits.dod1_s;
metin.ozkan@analog.com 0:788f63dcf0a0 309
metin.ozkan@analog.com 0:788f63dcf0a0 310 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 311 }
metin.ozkan@analog.com 0:788f63dcf0a0 312
metin.ozkan@analog.com 0:788f63dcf0a0 313 int MAX77654::GetThermalAlarm2Status(tjal2_s_t* tjal2_s)
metin.ozkan@analog.com 0:788f63dcf0a0 314 {
metin.ozkan@analog.com 0:788f63dcf0a0 315 int ret;
Okan Sahin 3:1e7cafcfdae7 316 reg_stat_glbl_t reg_stat_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 317
metin.ozkan@analog.com 0:788f63dcf0a0 318 ret = read_register(STAT_GLBL, (uint8_t *)&(reg_stat_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 319 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 320 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 321 }
metin.ozkan@analog.com 0:788f63dcf0a0 322
metin.ozkan@analog.com 0:788f63dcf0a0 323 *tjal2_s = (tjal2_s_t)reg_stat_glbl.bits.tjal2_s;
metin.ozkan@analog.com 0:788f63dcf0a0 324
metin.ozkan@analog.com 0:788f63dcf0a0 325 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 326 }
metin.ozkan@analog.com 0:788f63dcf0a0 327
metin.ozkan@analog.com 0:788f63dcf0a0 328 int MAX77654::GetThermalAlarm1Status(tjal1_s_t* tjal1_s)
metin.ozkan@analog.com 0:788f63dcf0a0 329 {
metin.ozkan@analog.com 0:788f63dcf0a0 330 int ret;
Okan Sahin 3:1e7cafcfdae7 331 reg_stat_glbl_t reg_stat_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 332
metin.ozkan@analog.com 0:788f63dcf0a0 333 ret = read_register(STAT_GLBL, (uint8_t *)&(reg_stat_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 334 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 335 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 336 }
metin.ozkan@analog.com 0:788f63dcf0a0 337
metin.ozkan@analog.com 0:788f63dcf0a0 338 *tjal1_s = (tjal1_s_t)reg_stat_glbl.bits.tjal1_s;
metin.ozkan@analog.com 0:788f63dcf0a0 339
metin.ozkan@analog.com 0:788f63dcf0a0 340 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 341 }
metin.ozkan@analog.com 0:788f63dcf0a0 342
metin.ozkan@analog.com 0:788f63dcf0a0 343 int MAX77654::GetnENDebouncedStatus(stat_en_t* stat_en)
metin.ozkan@analog.com 0:788f63dcf0a0 344 {
metin.ozkan@analog.com 0:788f63dcf0a0 345 int ret;
Okan Sahin 3:1e7cafcfdae7 346 reg_stat_glbl_t reg_stat_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 347
metin.ozkan@analog.com 0:788f63dcf0a0 348 ret = read_register(STAT_GLBL, (uint8_t *)&(reg_stat_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 349 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 350 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 351 }
metin.ozkan@analog.com 0:788f63dcf0a0 352
metin.ozkan@analog.com 0:788f63dcf0a0 353 *stat_en = (stat_en_t)reg_stat_glbl.bits.stat_en;
metin.ozkan@analog.com 0:788f63dcf0a0 354
metin.ozkan@analog.com 0:788f63dcf0a0 355 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 356 }
metin.ozkan@analog.com 0:788f63dcf0a0 357
metin.ozkan@analog.com 0:788f63dcf0a0 358 int MAX77654::GetSoftwareVersionGateDrive(stat_irq_t* stat_irq)
metin.ozkan@analog.com 0:788f63dcf0a0 359 {
metin.ozkan@analog.com 0:788f63dcf0a0 360 int ret;
Okan Sahin 3:1e7cafcfdae7 361 reg_stat_glbl_t reg_stat_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 362
metin.ozkan@analog.com 0:788f63dcf0a0 363 ret = read_register(STAT_GLBL, (uint8_t *)&(reg_stat_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 364 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 365 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 366 }
metin.ozkan@analog.com 0:788f63dcf0a0 367
metin.ozkan@analog.com 0:788f63dcf0a0 368 *stat_irq = (stat_irq_t)reg_stat_glbl.bits.stat_irq;
metin.ozkan@analog.com 0:788f63dcf0a0 369
metin.ozkan@analog.com 0:788f63dcf0a0 370 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 371 }
metin.ozkan@analog.com 0:788f63dcf0a0 372
metin.ozkan@analog.com 0:788f63dcf0a0 373 int MAX77654::SetLDO1FaultInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 374 {
Okan Sahin 3:1e7cafcfdae7 375 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 376
metin.ozkan@analog.com 0:788f63dcf0a0 377 SET_BIT_FIELD(INTM_GLBL1, reg_intm_glbl1, reg_intm_glbl1.bits.ldo1_m, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 378
metin.ozkan@analog.com 0:788f63dcf0a0 379 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 380 }
metin.ozkan@analog.com 0:788f63dcf0a0 381
metin.ozkan@analog.com 0:788f63dcf0a0 382 int MAX77654::GetLDO1FaultInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 383 {
metin.ozkan@analog.com 0:788f63dcf0a0 384 int ret;
Okan Sahin 3:1e7cafcfdae7 385 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 386
metin.ozkan@analog.com 0:788f63dcf0a0 387 ret = read_register(INTM_GLBL1, (uint8_t *)&(reg_intm_glbl1));
metin.ozkan@analog.com 0:788f63dcf0a0 388 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 389 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 390 }
metin.ozkan@analog.com 0:788f63dcf0a0 391
metin.ozkan@analog.com 0:788f63dcf0a0 392 *intm = (intm_t)reg_intm_glbl1.bits.ldo1_m;
metin.ozkan@analog.com 0:788f63dcf0a0 393
metin.ozkan@analog.com 0:788f63dcf0a0 394 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 395 }
metin.ozkan@analog.com 0:788f63dcf0a0 396
metin.ozkan@analog.com 0:788f63dcf0a0 397 int MAX77654::SetLDO0FaultInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 398 {
Okan Sahin 3:1e7cafcfdae7 399 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 400
metin.ozkan@analog.com 0:788f63dcf0a0 401 SET_BIT_FIELD(INTM_GLBL1, reg_intm_glbl1, reg_intm_glbl1.bits.ldo0_m, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 402
metin.ozkan@analog.com 0:788f63dcf0a0 403 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 404 }
metin.ozkan@analog.com 0:788f63dcf0a0 405
metin.ozkan@analog.com 0:788f63dcf0a0 406 int MAX77654::GetLDO0FaultInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 407 {
metin.ozkan@analog.com 0:788f63dcf0a0 408 int ret;
Okan Sahin 3:1e7cafcfdae7 409 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 410
metin.ozkan@analog.com 0:788f63dcf0a0 411 ret = read_register(INTM_GLBL1, (uint8_t *)&(reg_intm_glbl1));
metin.ozkan@analog.com 0:788f63dcf0a0 412 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 413 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 414 }
metin.ozkan@analog.com 0:788f63dcf0a0 415
metin.ozkan@analog.com 0:788f63dcf0a0 416 *intm = (intm_t)reg_intm_glbl1.bits.ldo0_m;
metin.ozkan@analog.com 0:788f63dcf0a0 417
metin.ozkan@analog.com 0:788f63dcf0a0 418 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 419 }
metin.ozkan@analog.com 0:788f63dcf0a0 420
metin.ozkan@analog.com 0:788f63dcf0a0 421 int MAX77654::SetSBBTimeoutMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 422 {
Okan Sahin 3:1e7cafcfdae7 423 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 424
metin.ozkan@analog.com 0:788f63dcf0a0 425 SET_BIT_FIELD(INTM_GLBL1, reg_intm_glbl1, reg_intm_glbl1.bits.sbb_to_m, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 426
metin.ozkan@analog.com 0:788f63dcf0a0 427 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 428 }
metin.ozkan@analog.com 0:788f63dcf0a0 429
metin.ozkan@analog.com 0:788f63dcf0a0 430 int MAX77654::GetSBBTimeoutMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 431 {
metin.ozkan@analog.com 0:788f63dcf0a0 432 int ret;
Okan Sahin 3:1e7cafcfdae7 433 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 434
metin.ozkan@analog.com 0:788f63dcf0a0 435 ret = read_register(INTM_GLBL1, (uint8_t *)&(reg_intm_glbl1));
metin.ozkan@analog.com 0:788f63dcf0a0 436 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 437 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 438 }
metin.ozkan@analog.com 0:788f63dcf0a0 439
metin.ozkan@analog.com 0:788f63dcf0a0 440 *intm = (intm_t)reg_intm_glbl1.bits.sbb_to_m;
metin.ozkan@analog.com 0:788f63dcf0a0 441
metin.ozkan@analog.com 0:788f63dcf0a0 442 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 443 }
metin.ozkan@analog.com 0:788f63dcf0a0 444
metin.ozkan@analog.com 0:788f63dcf0a0 445 int MAX77654::SetGPI2RisingInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 446 {
Okan Sahin 3:1e7cafcfdae7 447 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 448
metin.ozkan@analog.com 0:788f63dcf0a0 449 SET_BIT_FIELD(INTM_GLBL1, reg_intm_glbl1, reg_intm_glbl1.bits.gpi2_rm, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 450
metin.ozkan@analog.com 0:788f63dcf0a0 451 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 452 }
metin.ozkan@analog.com 0:788f63dcf0a0 453
metin.ozkan@analog.com 0:788f63dcf0a0 454 int MAX77654::GetGPI2RisingInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 455 {
metin.ozkan@analog.com 0:788f63dcf0a0 456 int ret;
Okan Sahin 3:1e7cafcfdae7 457 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 458
metin.ozkan@analog.com 0:788f63dcf0a0 459 ret = read_register(INTM_GLBL1, (uint8_t *)&(reg_intm_glbl1));
metin.ozkan@analog.com 0:788f63dcf0a0 460 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 461 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 462 }
metin.ozkan@analog.com 0:788f63dcf0a0 463
metin.ozkan@analog.com 0:788f63dcf0a0 464 *intm = (intm_t)reg_intm_glbl1.bits.gpi2_rm;
metin.ozkan@analog.com 0:788f63dcf0a0 465
metin.ozkan@analog.com 0:788f63dcf0a0 466 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 467 }
metin.ozkan@analog.com 0:788f63dcf0a0 468
metin.ozkan@analog.com 0:788f63dcf0a0 469 int MAX77654::SetGPI2FallingInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 470 {
Okan Sahin 3:1e7cafcfdae7 471 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 472
metin.ozkan@analog.com 0:788f63dcf0a0 473 SET_BIT_FIELD(INTM_GLBL1, reg_intm_glbl1, reg_intm_glbl1.bits.gpi2_fm, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 474
metin.ozkan@analog.com 0:788f63dcf0a0 475 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 476 }
metin.ozkan@analog.com 0:788f63dcf0a0 477
metin.ozkan@analog.com 0:788f63dcf0a0 478 int MAX77654::GetGPI2FallingInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 479 {
metin.ozkan@analog.com 0:788f63dcf0a0 480 int ret;
Okan Sahin 3:1e7cafcfdae7 481 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 482
metin.ozkan@analog.com 0:788f63dcf0a0 483 ret = read_register(INTM_GLBL1, (uint8_t *)&(reg_intm_glbl1));
metin.ozkan@analog.com 0:788f63dcf0a0 484 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 485 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 486 }
metin.ozkan@analog.com 0:788f63dcf0a0 487
metin.ozkan@analog.com 0:788f63dcf0a0 488 *intm = (intm_t)reg_intm_glbl1.bits.gpi2_fm;
metin.ozkan@analog.com 0:788f63dcf0a0 489
metin.ozkan@analog.com 0:788f63dcf0a0 490 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 491 }
metin.ozkan@analog.com 0:788f63dcf0a0 492
metin.ozkan@analog.com 0:788f63dcf0a0 493 int MAX77654::SetGPI1RisingInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 494 {
Okan Sahin 3:1e7cafcfdae7 495 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 496
metin.ozkan@analog.com 0:788f63dcf0a0 497 SET_BIT_FIELD(INTM_GLBL1, reg_intm_glbl1, reg_intm_glbl1.bits.gpi1_rm, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 498
metin.ozkan@analog.com 0:788f63dcf0a0 499 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 500 }
metin.ozkan@analog.com 0:788f63dcf0a0 501
metin.ozkan@analog.com 0:788f63dcf0a0 502 int MAX77654::GetGPI1RisingInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 503 {
metin.ozkan@analog.com 0:788f63dcf0a0 504 int ret;
Okan Sahin 3:1e7cafcfdae7 505 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 506
metin.ozkan@analog.com 0:788f63dcf0a0 507 ret = read_register(INTM_GLBL1, (uint8_t *)&(reg_intm_glbl1));
metin.ozkan@analog.com 0:788f63dcf0a0 508 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 509 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 510 }
metin.ozkan@analog.com 0:788f63dcf0a0 511
metin.ozkan@analog.com 0:788f63dcf0a0 512 *intm = (intm_t)reg_intm_glbl1.bits.gpi1_rm;
metin.ozkan@analog.com 0:788f63dcf0a0 513
metin.ozkan@analog.com 0:788f63dcf0a0 514 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 515 }
metin.ozkan@analog.com 0:788f63dcf0a0 516
metin.ozkan@analog.com 0:788f63dcf0a0 517 int MAX77654::SetGPI1FallingInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 518 {
Okan Sahin 3:1e7cafcfdae7 519 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 520
metin.ozkan@analog.com 0:788f63dcf0a0 521 SET_BIT_FIELD(INTM_GLBL1, reg_intm_glbl1, reg_intm_glbl1.bits.gpi1_fm, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 522
metin.ozkan@analog.com 0:788f63dcf0a0 523 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 524 }
metin.ozkan@analog.com 0:788f63dcf0a0 525
metin.ozkan@analog.com 0:788f63dcf0a0 526 int MAX77654::GetGPI1FallingInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 527 {
metin.ozkan@analog.com 0:788f63dcf0a0 528 int ret;
Okan Sahin 3:1e7cafcfdae7 529 reg_intm_glbl1_t reg_intm_glbl1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 530
metin.ozkan@analog.com 0:788f63dcf0a0 531 ret = read_register(INTM_GLBL1, (uint8_t *)&(reg_intm_glbl1));
metin.ozkan@analog.com 0:788f63dcf0a0 532 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 533 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 534 }
metin.ozkan@analog.com 0:788f63dcf0a0 535
metin.ozkan@analog.com 0:788f63dcf0a0 536 *intm = (intm_t)reg_intm_glbl1.bits.gpi1_fm;
metin.ozkan@analog.com 0:788f63dcf0a0 537
metin.ozkan@analog.com 0:788f63dcf0a0 538 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 539 }
metin.ozkan@analog.com 0:788f63dcf0a0 540
metin.ozkan@analog.com 0:788f63dcf0a0 541 int MAX77654::SetDropout0RisingInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 542 {
Okan Sahin 3:1e7cafcfdae7 543 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 544
metin.ozkan@analog.com 0:788f63dcf0a0 545 SET_BIT_FIELD(INTM_GLBL0, reg_intm_glbl0, reg_intm_glbl0.bits.dod0_rm, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 546
metin.ozkan@analog.com 0:788f63dcf0a0 547 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 548 }
metin.ozkan@analog.com 0:788f63dcf0a0 549
metin.ozkan@analog.com 0:788f63dcf0a0 550 int MAX77654::GetDropout0RisingInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 551 {
metin.ozkan@analog.com 0:788f63dcf0a0 552 int ret;
Okan Sahin 3:1e7cafcfdae7 553 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 554
metin.ozkan@analog.com 0:788f63dcf0a0 555 ret = read_register(INTM_GLBL0, (uint8_t *)&(reg_intm_glbl0));
metin.ozkan@analog.com 0:788f63dcf0a0 556 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 557 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 558 }
metin.ozkan@analog.com 0:788f63dcf0a0 559
metin.ozkan@analog.com 0:788f63dcf0a0 560 *intm = (intm_t)reg_intm_glbl0.bits.dod0_rm;
metin.ozkan@analog.com 0:788f63dcf0a0 561
metin.ozkan@analog.com 0:788f63dcf0a0 562 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 563 }
metin.ozkan@analog.com 0:788f63dcf0a0 564
metin.ozkan@analog.com 0:788f63dcf0a0 565 int MAX77654::SetDropout1RisingInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 566 {
Okan Sahin 3:1e7cafcfdae7 567 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 568
metin.ozkan@analog.com 0:788f63dcf0a0 569 SET_BIT_FIELD(INTM_GLBL0, reg_intm_glbl0, reg_intm_glbl0.bits.dod1_rm, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 570
metin.ozkan@analog.com 0:788f63dcf0a0 571 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 572 }
metin.ozkan@analog.com 0:788f63dcf0a0 573
metin.ozkan@analog.com 0:788f63dcf0a0 574 int MAX77654::GetDropout1RisingInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 575 {
metin.ozkan@analog.com 0:788f63dcf0a0 576 int ret;
Okan Sahin 3:1e7cafcfdae7 577 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 578
metin.ozkan@analog.com 0:788f63dcf0a0 579 ret = read_register(INTM_GLBL0, (uint8_t *)&(reg_intm_glbl0));
metin.ozkan@analog.com 0:788f63dcf0a0 580 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 581 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 582 }
metin.ozkan@analog.com 0:788f63dcf0a0 583
metin.ozkan@analog.com 0:788f63dcf0a0 584 *intm = (intm_t)reg_intm_glbl0.bits.dod1_rm;
metin.ozkan@analog.com 0:788f63dcf0a0 585
metin.ozkan@analog.com 0:788f63dcf0a0 586 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 587 }
metin.ozkan@analog.com 0:788f63dcf0a0 588
metin.ozkan@analog.com 0:788f63dcf0a0 589 int MAX77654::SetThermalAlarm2RisingInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 590 {
Okan Sahin 3:1e7cafcfdae7 591 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 592
metin.ozkan@analog.com 0:788f63dcf0a0 593 SET_BIT_FIELD(INTM_GLBL0, reg_intm_glbl0, reg_intm_glbl0.bits.tjal2_rm, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 594
metin.ozkan@analog.com 0:788f63dcf0a0 595 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 596 }
metin.ozkan@analog.com 0:788f63dcf0a0 597
metin.ozkan@analog.com 0:788f63dcf0a0 598 int MAX77654::GetThermalAlarm2RisingInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 599 {
metin.ozkan@analog.com 0:788f63dcf0a0 600 int ret;
Okan Sahin 3:1e7cafcfdae7 601 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 602
metin.ozkan@analog.com 0:788f63dcf0a0 603 ret = read_register(INTM_GLBL0, (uint8_t *)&(reg_intm_glbl0));
metin.ozkan@analog.com 0:788f63dcf0a0 604 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 605 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 606 }
metin.ozkan@analog.com 0:788f63dcf0a0 607
metin.ozkan@analog.com 0:788f63dcf0a0 608 *intm = (intm_t)reg_intm_glbl0.bits.tjal2_rm;
metin.ozkan@analog.com 0:788f63dcf0a0 609
metin.ozkan@analog.com 0:788f63dcf0a0 610 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 611 }
metin.ozkan@analog.com 0:788f63dcf0a0 612
metin.ozkan@analog.com 0:788f63dcf0a0 613 int MAX77654::SetThermalAlarm1RisingInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 614 {
Okan Sahin 3:1e7cafcfdae7 615 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 616
metin.ozkan@analog.com 0:788f63dcf0a0 617 SET_BIT_FIELD(INTM_GLBL0, reg_intm_glbl0, reg_intm_glbl0.bits.tjal1_rm, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 618
metin.ozkan@analog.com 0:788f63dcf0a0 619 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 620 }
metin.ozkan@analog.com 0:788f63dcf0a0 621
metin.ozkan@analog.com 0:788f63dcf0a0 622 int MAX77654::GetThermalAlarm1RisingInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 623 {
metin.ozkan@analog.com 0:788f63dcf0a0 624 int ret;
Okan Sahin 3:1e7cafcfdae7 625 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 626
metin.ozkan@analog.com 0:788f63dcf0a0 627 ret = read_register(INTM_GLBL0, (uint8_t *)&(reg_intm_glbl0));
metin.ozkan@analog.com 0:788f63dcf0a0 628 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 629 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 630 }
metin.ozkan@analog.com 0:788f63dcf0a0 631
metin.ozkan@analog.com 0:788f63dcf0a0 632 *intm = (intm_t)reg_intm_glbl0.bits.tjal1_rm;
metin.ozkan@analog.com 0:788f63dcf0a0 633
metin.ozkan@analog.com 0:788f63dcf0a0 634 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 635 }
metin.ozkan@analog.com 0:788f63dcf0a0 636
metin.ozkan@analog.com 0:788f63dcf0a0 637 int MAX77654::SetnENRisingInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 638 {
Okan Sahin 3:1e7cafcfdae7 639 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 640
metin.ozkan@analog.com 0:788f63dcf0a0 641 SET_BIT_FIELD(INTM_GLBL0, reg_intm_glbl0, reg_intm_glbl0.bits.nen_rm, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 642
metin.ozkan@analog.com 0:788f63dcf0a0 643 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 644 }
metin.ozkan@analog.com 0:788f63dcf0a0 645
metin.ozkan@analog.com 0:788f63dcf0a0 646 int MAX77654::GetnENRisingInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 647 {
metin.ozkan@analog.com 0:788f63dcf0a0 648 int ret;
Okan Sahin 3:1e7cafcfdae7 649 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 650
metin.ozkan@analog.com 0:788f63dcf0a0 651 ret = read_register(INTM_GLBL0, (uint8_t *)&(reg_intm_glbl0));
metin.ozkan@analog.com 0:788f63dcf0a0 652 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 653 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 654 }
metin.ozkan@analog.com 0:788f63dcf0a0 655
metin.ozkan@analog.com 0:788f63dcf0a0 656 *intm = (intm_t)reg_intm_glbl0.bits.nen_rm;
metin.ozkan@analog.com 0:788f63dcf0a0 657
metin.ozkan@analog.com 0:788f63dcf0a0 658 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 659 }
metin.ozkan@analog.com 0:788f63dcf0a0 660
metin.ozkan@analog.com 0:788f63dcf0a0 661 int MAX77654::SetnENFallingInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 662 {
Okan Sahin 3:1e7cafcfdae7 663 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 664
metin.ozkan@analog.com 0:788f63dcf0a0 665 SET_BIT_FIELD(INTM_GLBL0, reg_intm_glbl0, reg_intm_glbl0.bits.nen_fm, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 666
metin.ozkan@analog.com 0:788f63dcf0a0 667 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 668 }
metin.ozkan@analog.com 0:788f63dcf0a0 669
metin.ozkan@analog.com 0:788f63dcf0a0 670 int MAX77654::GetnENFallingInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 671 {
metin.ozkan@analog.com 0:788f63dcf0a0 672 int ret;
Okan Sahin 3:1e7cafcfdae7 673 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 674
metin.ozkan@analog.com 0:788f63dcf0a0 675 ret = read_register(INTM_GLBL0, (uint8_t *)&(reg_intm_glbl0));
metin.ozkan@analog.com 0:788f63dcf0a0 676 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 677 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 678 }
metin.ozkan@analog.com 0:788f63dcf0a0 679
metin.ozkan@analog.com 0:788f63dcf0a0 680 *intm = (intm_t)reg_intm_glbl0.bits.nen_fm;
metin.ozkan@analog.com 0:788f63dcf0a0 681
metin.ozkan@analog.com 0:788f63dcf0a0 682 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 683 }
metin.ozkan@analog.com 0:788f63dcf0a0 684
metin.ozkan@analog.com 0:788f63dcf0a0 685 int MAX77654::SetGPI0RisingInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 686 {
Okan Sahin 3:1e7cafcfdae7 687 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 688
metin.ozkan@analog.com 0:788f63dcf0a0 689 SET_BIT_FIELD(INTM_GLBL0, reg_intm_glbl0, reg_intm_glbl0.bits.gpi0_rm, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 690
metin.ozkan@analog.com 0:788f63dcf0a0 691 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 692 }
metin.ozkan@analog.com 0:788f63dcf0a0 693
metin.ozkan@analog.com 0:788f63dcf0a0 694 int MAX77654::GetGPI0RisingInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 695 {
metin.ozkan@analog.com 0:788f63dcf0a0 696 int ret;
Okan Sahin 3:1e7cafcfdae7 697 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 698
metin.ozkan@analog.com 0:788f63dcf0a0 699 ret = read_register(INTM_GLBL0, (uint8_t *)&(reg_intm_glbl0));
metin.ozkan@analog.com 0:788f63dcf0a0 700 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 701 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 702 }
metin.ozkan@analog.com 0:788f63dcf0a0 703
metin.ozkan@analog.com 0:788f63dcf0a0 704 *intm = (intm_t)reg_intm_glbl0.bits.gpi0_rm;
metin.ozkan@analog.com 0:788f63dcf0a0 705
metin.ozkan@analog.com 0:788f63dcf0a0 706 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 707 }
metin.ozkan@analog.com 0:788f63dcf0a0 708
metin.ozkan@analog.com 0:788f63dcf0a0 709 int MAX77654::SetGPI0FallingInterruptMask(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 710 {
Okan Sahin 3:1e7cafcfdae7 711 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 712
metin.ozkan@analog.com 0:788f63dcf0a0 713 SET_BIT_FIELD(INTM_GLBL0, reg_intm_glbl0, reg_intm_glbl0.bits.gpi0_fm, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 714
metin.ozkan@analog.com 0:788f63dcf0a0 715 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 716 }
metin.ozkan@analog.com 0:788f63dcf0a0 717
metin.ozkan@analog.com 0:788f63dcf0a0 718 int MAX77654::GetGPI0FallingInterruptMask(intm_t* intm)
metin.ozkan@analog.com 0:788f63dcf0a0 719 {
metin.ozkan@analog.com 0:788f63dcf0a0 720 int ret;
Okan Sahin 3:1e7cafcfdae7 721 reg_intm_glbl0_t reg_intm_glbl0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 722
metin.ozkan@analog.com 0:788f63dcf0a0 723 ret = read_register(INTM_GLBL0, (uint8_t *)&(reg_intm_glbl0));
metin.ozkan@analog.com 0:788f63dcf0a0 724 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 725 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 726 }
metin.ozkan@analog.com 0:788f63dcf0a0 727
metin.ozkan@analog.com 0:788f63dcf0a0 728 *intm = (intm_t)reg_intm_glbl0.bits.gpi0_fm;
metin.ozkan@analog.com 0:788f63dcf0a0 729
metin.ozkan@analog.com 0:788f63dcf0a0 730 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 731 }
metin.ozkan@analog.com 0:788f63dcf0a0 732
metin.ozkan@analog.com 0:788f63dcf0a0 733 int MAX77654::SetnENInternalPullupResistor(pu_dis_t pu_dis)
metin.ozkan@analog.com 0:788f63dcf0a0 734 {
Okan Sahin 3:1e7cafcfdae7 735 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 736
metin.ozkan@analog.com 0:788f63dcf0a0 737 SET_BIT_FIELD(CNFG_GLBL, reg_cnfg_glbl, reg_cnfg_glbl.bits.pu_dis, pu_dis);
metin.ozkan@analog.com 0:788f63dcf0a0 738
metin.ozkan@analog.com 0:788f63dcf0a0 739 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 740 }
metin.ozkan@analog.com 0:788f63dcf0a0 741
metin.ozkan@analog.com 0:788f63dcf0a0 742 int MAX77654::GetnENInternalPullupResistor(pu_dis_t* pu_dis)
metin.ozkan@analog.com 0:788f63dcf0a0 743 {
metin.ozkan@analog.com 0:788f63dcf0a0 744 int ret;
Okan Sahin 3:1e7cafcfdae7 745 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 746
metin.ozkan@analog.com 0:788f63dcf0a0 747 ret = read_register(CNFG_GLBL, (uint8_t *)&(reg_cnfg_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 748 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 749 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 750 }
metin.ozkan@analog.com 0:788f63dcf0a0 751
metin.ozkan@analog.com 0:788f63dcf0a0 752 *pu_dis = (pu_dis_t)reg_cnfg_glbl.bits.pu_dis;
metin.ozkan@analog.com 0:788f63dcf0a0 753
metin.ozkan@analog.com 0:788f63dcf0a0 754 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 755 }
metin.ozkan@analog.com 0:788f63dcf0a0 756
metin.ozkan@analog.com 0:788f63dcf0a0 757 int MAX77654::SetManualResetTime(t_mrst_t t_mrst)
metin.ozkan@analog.com 0:788f63dcf0a0 758 {
Okan Sahin 3:1e7cafcfdae7 759 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 760
metin.ozkan@analog.com 0:788f63dcf0a0 761 SET_BIT_FIELD(CNFG_GLBL, reg_cnfg_glbl, reg_cnfg_glbl.bits.t_mrst, t_mrst);
metin.ozkan@analog.com 0:788f63dcf0a0 762
metin.ozkan@analog.com 0:788f63dcf0a0 763 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 764 }
metin.ozkan@analog.com 0:788f63dcf0a0 765
metin.ozkan@analog.com 0:788f63dcf0a0 766 int MAX77654::GetManualResetTime(t_mrst_t* t_mrst)
metin.ozkan@analog.com 0:788f63dcf0a0 767 {
metin.ozkan@analog.com 0:788f63dcf0a0 768 int ret;
Okan Sahin 3:1e7cafcfdae7 769 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 770
metin.ozkan@analog.com 0:788f63dcf0a0 771 ret = read_register(CNFG_GLBL, (uint8_t *)&(reg_cnfg_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 772 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 773 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 774 }
metin.ozkan@analog.com 0:788f63dcf0a0 775
metin.ozkan@analog.com 0:788f63dcf0a0 776 *t_mrst = (t_mrst_t)reg_cnfg_glbl.bits.t_mrst;
metin.ozkan@analog.com 0:788f63dcf0a0 777
metin.ozkan@analog.com 0:788f63dcf0a0 778 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 779 }
metin.ozkan@analog.com 0:788f63dcf0a0 780
metin.ozkan@analog.com 0:788f63dcf0a0 781 int MAX77654::SetMainBiasLowerPowerModeReq(sbia_lpm_t sbia_lpm)
metin.ozkan@analog.com 0:788f63dcf0a0 782 {
Okan Sahin 3:1e7cafcfdae7 783 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 784
metin.ozkan@analog.com 0:788f63dcf0a0 785 SET_BIT_FIELD(CNFG_GLBL, reg_cnfg_glbl, reg_cnfg_glbl.bits.sbia_lpm, sbia_lpm);
metin.ozkan@analog.com 0:788f63dcf0a0 786
metin.ozkan@analog.com 0:788f63dcf0a0 787 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 788 }
metin.ozkan@analog.com 0:788f63dcf0a0 789
metin.ozkan@analog.com 0:788f63dcf0a0 790 int MAX77654::GetMainBiasLowerPowerModeReq(sbia_lpm_t* sbia_lpm)
metin.ozkan@analog.com 0:788f63dcf0a0 791 {
metin.ozkan@analog.com 0:788f63dcf0a0 792 int ret;
Okan Sahin 3:1e7cafcfdae7 793 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 794
metin.ozkan@analog.com 0:788f63dcf0a0 795 ret = read_register(CNFG_GLBL, (uint8_t *)&(reg_cnfg_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 796 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 797 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 798 }
metin.ozkan@analog.com 0:788f63dcf0a0 799
metin.ozkan@analog.com 0:788f63dcf0a0 800 *sbia_lpm = (sbia_lpm_t)reg_cnfg_glbl.bits.sbia_lpm;
metin.ozkan@analog.com 0:788f63dcf0a0 801
metin.ozkan@analog.com 0:788f63dcf0a0 802 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 803 }
metin.ozkan@analog.com 0:788f63dcf0a0 804
metin.ozkan@analog.com 0:788f63dcf0a0 805 int MAX77654::SetMainBiasEnableReq(sbia_en_t sbia_en)
metin.ozkan@analog.com 0:788f63dcf0a0 806 {
Okan Sahin 3:1e7cafcfdae7 807 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 808
metin.ozkan@analog.com 0:788f63dcf0a0 809 SET_BIT_FIELD(CNFG_GLBL, reg_cnfg_glbl, reg_cnfg_glbl.bits.sbia_en, sbia_en);
metin.ozkan@analog.com 0:788f63dcf0a0 810
metin.ozkan@analog.com 0:788f63dcf0a0 811 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 812 }
metin.ozkan@analog.com 0:788f63dcf0a0 813
metin.ozkan@analog.com 0:788f63dcf0a0 814 int MAX77654::GetMainBiasEnableReq(sbia_en_t* sbia_en)
metin.ozkan@analog.com 0:788f63dcf0a0 815 {
metin.ozkan@analog.com 0:788f63dcf0a0 816 int ret;
Okan Sahin 3:1e7cafcfdae7 817 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 818
metin.ozkan@analog.com 0:788f63dcf0a0 819 ret = read_register(CNFG_GLBL, (uint8_t *)&(reg_cnfg_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 820 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 821 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 822 }
metin.ozkan@analog.com 0:788f63dcf0a0 823
metin.ozkan@analog.com 0:788f63dcf0a0 824 *sbia_en = (sbia_en_t)reg_cnfg_glbl.bits.sbia_en;
metin.ozkan@analog.com 0:788f63dcf0a0 825
metin.ozkan@analog.com 0:788f63dcf0a0 826 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 827 }
metin.ozkan@analog.com 0:788f63dcf0a0 828
metin.ozkan@analog.com 0:788f63dcf0a0 829 int MAX77654::SetnEnInputMode(nen_mode_t nen_mode)
metin.ozkan@analog.com 0:788f63dcf0a0 830 {
Okan Sahin 3:1e7cafcfdae7 831 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 832
metin.ozkan@analog.com 0:788f63dcf0a0 833 SET_BIT_FIELD(CNFG_GLBL, reg_cnfg_glbl, reg_cnfg_glbl.bits.nen_mode, nen_mode);
metin.ozkan@analog.com 0:788f63dcf0a0 834
metin.ozkan@analog.com 0:788f63dcf0a0 835 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 836 }
metin.ozkan@analog.com 0:788f63dcf0a0 837
metin.ozkan@analog.com 0:788f63dcf0a0 838 int MAX77654::GetnEnInputMode(nen_mode_t* nen_mode)
metin.ozkan@analog.com 0:788f63dcf0a0 839 {
metin.ozkan@analog.com 0:788f63dcf0a0 840 int ret;
Okan Sahin 3:1e7cafcfdae7 841 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 842
metin.ozkan@analog.com 0:788f63dcf0a0 843 ret = read_register(CNFG_GLBL, (uint8_t *)&(reg_cnfg_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 844 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 845 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 846 }
metin.ozkan@analog.com 0:788f63dcf0a0 847
metin.ozkan@analog.com 0:788f63dcf0a0 848 *nen_mode = (nen_mode_t)reg_cnfg_glbl.bits.nen_mode;
metin.ozkan@analog.com 0:788f63dcf0a0 849
metin.ozkan@analog.com 0:788f63dcf0a0 850 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 851 }
metin.ozkan@analog.com 0:788f63dcf0a0 852
metin.ozkan@analog.com 0:788f63dcf0a0 853 int MAX77654::SetDebounceTimerEnable(dben_nen_t dben_nen)
metin.ozkan@analog.com 0:788f63dcf0a0 854 {
Okan Sahin 3:1e7cafcfdae7 855 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 856
metin.ozkan@analog.com 0:788f63dcf0a0 857 SET_BIT_FIELD(CNFG_GLBL, reg_cnfg_glbl, reg_cnfg_glbl.bits.dben_nen, dben_nen);
metin.ozkan@analog.com 0:788f63dcf0a0 858
metin.ozkan@analog.com 0:788f63dcf0a0 859 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 860 }
metin.ozkan@analog.com 0:788f63dcf0a0 861
metin.ozkan@analog.com 0:788f63dcf0a0 862 int MAX77654::GetDebounceTimerEnable(dben_nen_t* dben_nen)
metin.ozkan@analog.com 0:788f63dcf0a0 863 {
metin.ozkan@analog.com 0:788f63dcf0a0 864 int ret;
Okan Sahin 3:1e7cafcfdae7 865 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 866
metin.ozkan@analog.com 0:788f63dcf0a0 867 ret = read_register(CNFG_GLBL, (uint8_t *)&(reg_cnfg_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 868 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 869 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 870 }
metin.ozkan@analog.com 0:788f63dcf0a0 871
metin.ozkan@analog.com 0:788f63dcf0a0 872 *dben_nen = (dben_nen_t)reg_cnfg_glbl.bits.dben_nen;
metin.ozkan@analog.com 0:788f63dcf0a0 873
metin.ozkan@analog.com 0:788f63dcf0a0 874 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 875 }
metin.ozkan@analog.com 0:788f63dcf0a0 876
metin.ozkan@analog.com 0:788f63dcf0a0 877 int MAX77654::SetSoftwareResetFunctions(sft_ctrl_t sft_ctrl)
metin.ozkan@analog.com 0:788f63dcf0a0 878 {
Okan Sahin 3:1e7cafcfdae7 879 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 880
metin.ozkan@analog.com 0:788f63dcf0a0 881 SET_BIT_FIELD(CNFG_GLBL, reg_cnfg_glbl, reg_cnfg_glbl.bits.sft_ctrl, sft_ctrl);
metin.ozkan@analog.com 0:788f63dcf0a0 882
metin.ozkan@analog.com 0:788f63dcf0a0 883 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 884 }
metin.ozkan@analog.com 0:788f63dcf0a0 885
metin.ozkan@analog.com 0:788f63dcf0a0 886 int MAX77654::GetSoftwareResetFunctions(sft_ctrl_t* sft_ctrl)
metin.ozkan@analog.com 0:788f63dcf0a0 887 {
metin.ozkan@analog.com 0:788f63dcf0a0 888 int ret;
Okan Sahin 3:1e7cafcfdae7 889 reg_cnfg_glbl_t reg_cnfg_glbl = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 890
metin.ozkan@analog.com 0:788f63dcf0a0 891 ret = read_register(CNFG_GLBL, (uint8_t *)&(reg_cnfg_glbl));
metin.ozkan@analog.com 0:788f63dcf0a0 892 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 893 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 894 }
metin.ozkan@analog.com 0:788f63dcf0a0 895
metin.ozkan@analog.com 0:788f63dcf0a0 896 *sft_ctrl = (sft_ctrl_t)reg_cnfg_glbl.bits.sft_ctrl;
metin.ozkan@analog.com 0:788f63dcf0a0 897
metin.ozkan@analog.com 0:788f63dcf0a0 898 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 899 }
metin.ozkan@analog.com 0:788f63dcf0a0 900
metin.ozkan@analog.com 0:788f63dcf0a0 901 int MAX77654::SetAlternateModeEnable(uint8_t channel, alt_gpio_t alt_gpio)
metin.ozkan@analog.com 0:788f63dcf0a0 902 {
metin.ozkan@analog.com 0:788f63dcf0a0 903 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 904 reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 905 SET_BIT_FIELD(CNFG_GPIO0, reg_cnfg_gpio0, reg_cnfg_gpio0.bits.alt_gpio0, alt_gpio);
metin.ozkan@analog.com 0:788f63dcf0a0 906 }
metin.ozkan@analog.com 0:788f63dcf0a0 907 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 908 reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 909 SET_BIT_FIELD(CNFG_GPIO1, reg_cnfg_gpio1, reg_cnfg_gpio1.bits.alt_gpio1, alt_gpio);
metin.ozkan@analog.com 0:788f63dcf0a0 910 }
metin.ozkan@analog.com 0:788f63dcf0a0 911 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 912 reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 913 SET_BIT_FIELD(CNFG_GPIO2, reg_cnfg_gpio2, reg_cnfg_gpio2.bits.alt_gpio2, alt_gpio);
metin.ozkan@analog.com 0:788f63dcf0a0 914 }
metin.ozkan@analog.com 0:788f63dcf0a0 915 else {
metin.ozkan@analog.com 0:788f63dcf0a0 916 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 917 }
metin.ozkan@analog.com 0:788f63dcf0a0 918
metin.ozkan@analog.com 0:788f63dcf0a0 919 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 920 }
metin.ozkan@analog.com 0:788f63dcf0a0 921
metin.ozkan@analog.com 0:788f63dcf0a0 922 int MAX77654::GetAlternateModeEnable(uint8_t channel, alt_gpio_t* alt_gpio)
metin.ozkan@analog.com 0:788f63dcf0a0 923 {
metin.ozkan@analog.com 0:788f63dcf0a0 924 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 925
metin.ozkan@analog.com 0:788f63dcf0a0 926 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 927 reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 928 ret = read_register(CNFG_GPIO0, (uint8_t *)&(reg_cnfg_gpio0));
metin.ozkan@analog.com 0:788f63dcf0a0 929 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 930 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 931 }
metin.ozkan@analog.com 0:788f63dcf0a0 932
metin.ozkan@analog.com 0:788f63dcf0a0 933 *alt_gpio = (alt_gpio_t)reg_cnfg_gpio0.bits.alt_gpio0;
metin.ozkan@analog.com 0:788f63dcf0a0 934 }
metin.ozkan@analog.com 0:788f63dcf0a0 935 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 936 reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 937 ret = read_register(CNFG_GPIO1, (uint8_t *)&(reg_cnfg_gpio1));
metin.ozkan@analog.com 0:788f63dcf0a0 938 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 939 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 940 }
metin.ozkan@analog.com 0:788f63dcf0a0 941
metin.ozkan@analog.com 0:788f63dcf0a0 942 *alt_gpio = (alt_gpio_t)reg_cnfg_gpio1.bits.alt_gpio1;
metin.ozkan@analog.com 0:788f63dcf0a0 943 }
metin.ozkan@analog.com 0:788f63dcf0a0 944 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 945 reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 946 ret = read_register(CNFG_GPIO2, (uint8_t *)&(reg_cnfg_gpio2));
metin.ozkan@analog.com 0:788f63dcf0a0 947 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 948 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 949 }
metin.ozkan@analog.com 0:788f63dcf0a0 950
metin.ozkan@analog.com 0:788f63dcf0a0 951 *alt_gpio = (alt_gpio_t)reg_cnfg_gpio2.bits.alt_gpio2;
metin.ozkan@analog.com 0:788f63dcf0a0 952 }
metin.ozkan@analog.com 0:788f63dcf0a0 953 else {
metin.ozkan@analog.com 0:788f63dcf0a0 954 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 955 }
metin.ozkan@analog.com 0:788f63dcf0a0 956
metin.ozkan@analog.com 0:788f63dcf0a0 957 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 958 }
metin.ozkan@analog.com 0:788f63dcf0a0 959
metin.ozkan@analog.com 0:788f63dcf0a0 960 int MAX77654::SetGPIDebounceTimerEnable(uint8_t channel, dben_gpi_t dben_gpi)
metin.ozkan@analog.com 0:788f63dcf0a0 961 {
metin.ozkan@analog.com 0:788f63dcf0a0 962 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 963 reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 964 SET_BIT_FIELD(CNFG_GPIO0, reg_cnfg_gpio0, reg_cnfg_gpio0.bits.dben_gpi, dben_gpi);
metin.ozkan@analog.com 0:788f63dcf0a0 965 }
metin.ozkan@analog.com 0:788f63dcf0a0 966 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 967 reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 968 SET_BIT_FIELD(CNFG_GPIO1, reg_cnfg_gpio1, reg_cnfg_gpio1.bits.dben_gpi, dben_gpi);
metin.ozkan@analog.com 0:788f63dcf0a0 969 }
metin.ozkan@analog.com 0:788f63dcf0a0 970 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 971 reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 972 SET_BIT_FIELD(CNFG_GPIO2, reg_cnfg_gpio2, reg_cnfg_gpio2.bits.dben_gpi, dben_gpi);
metin.ozkan@analog.com 0:788f63dcf0a0 973 }
metin.ozkan@analog.com 0:788f63dcf0a0 974 else {
metin.ozkan@analog.com 0:788f63dcf0a0 975 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 976 }
metin.ozkan@analog.com 0:788f63dcf0a0 977
metin.ozkan@analog.com 0:788f63dcf0a0 978 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 979 }
metin.ozkan@analog.com 0:788f63dcf0a0 980
metin.ozkan@analog.com 0:788f63dcf0a0 981 int MAX77654::GetGPIDebounceTimerEnable(uint8_t channel, dben_gpi_t* dben_gpi)
metin.ozkan@analog.com 0:788f63dcf0a0 982 {
metin.ozkan@analog.com 0:788f63dcf0a0 983 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 984
metin.ozkan@analog.com 0:788f63dcf0a0 985 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 986 reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 987 ret = read_register(CNFG_GPIO0, (uint8_t *)&(reg_cnfg_gpio0));
metin.ozkan@analog.com 0:788f63dcf0a0 988 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 989 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 990 }
metin.ozkan@analog.com 0:788f63dcf0a0 991
metin.ozkan@analog.com 0:788f63dcf0a0 992 *dben_gpi = (dben_gpi_t)reg_cnfg_gpio0.bits.dben_gpi;
metin.ozkan@analog.com 0:788f63dcf0a0 993 }
metin.ozkan@analog.com 0:788f63dcf0a0 994 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 995 reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 996 ret = read_register(CNFG_GPIO1, (uint8_t *)&(reg_cnfg_gpio1));
metin.ozkan@analog.com 0:788f63dcf0a0 997 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 998 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 999 }
metin.ozkan@analog.com 0:788f63dcf0a0 1000
metin.ozkan@analog.com 0:788f63dcf0a0 1001 *dben_gpi = (dben_gpi_t)reg_cnfg_gpio1.bits.dben_gpi;
metin.ozkan@analog.com 0:788f63dcf0a0 1002 }
metin.ozkan@analog.com 0:788f63dcf0a0 1003 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 1004 reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1005 ret = read_register(CNFG_GPIO2, (uint8_t *)&(reg_cnfg_gpio2));
metin.ozkan@analog.com 0:788f63dcf0a0 1006 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1007 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1008 }
metin.ozkan@analog.com 0:788f63dcf0a0 1009
metin.ozkan@analog.com 0:788f63dcf0a0 1010 *dben_gpi = (dben_gpi_t)reg_cnfg_gpio2.bits.dben_gpi;
metin.ozkan@analog.com 0:788f63dcf0a0 1011 }
metin.ozkan@analog.com 0:788f63dcf0a0 1012 else {
metin.ozkan@analog.com 0:788f63dcf0a0 1013 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 1014 }
metin.ozkan@analog.com 0:788f63dcf0a0 1015
metin.ozkan@analog.com 0:788f63dcf0a0 1016 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1017 }
metin.ozkan@analog.com 0:788f63dcf0a0 1018
metin.ozkan@analog.com 0:788f63dcf0a0 1019 int MAX77654::SetGPODataOutput(uint8_t channel, gpo_do_t gpo_do)
metin.ozkan@analog.com 0:788f63dcf0a0 1020 {
metin.ozkan@analog.com 0:788f63dcf0a0 1021
metin.ozkan@analog.com 0:788f63dcf0a0 1022 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 1023 reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1024 SET_BIT_FIELD(CNFG_GPIO0, reg_cnfg_gpio0, reg_cnfg_gpio0.bits.gpo_do, gpo_do);
metin.ozkan@analog.com 0:788f63dcf0a0 1025 }
metin.ozkan@analog.com 0:788f63dcf0a0 1026 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 1027 reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1028 SET_BIT_FIELD(CNFG_GPIO1, reg_cnfg_gpio1, reg_cnfg_gpio1.bits.gpo_do, gpo_do);
metin.ozkan@analog.com 0:788f63dcf0a0 1029 }
metin.ozkan@analog.com 0:788f63dcf0a0 1030 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 1031 reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1032 SET_BIT_FIELD(CNFG_GPIO2, reg_cnfg_gpio2, reg_cnfg_gpio2.bits.gpo_do, gpo_do);
metin.ozkan@analog.com 0:788f63dcf0a0 1033 }
metin.ozkan@analog.com 0:788f63dcf0a0 1034 else {
metin.ozkan@analog.com 0:788f63dcf0a0 1035 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 1036 }
metin.ozkan@analog.com 0:788f63dcf0a0 1037
metin.ozkan@analog.com 0:788f63dcf0a0 1038 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1039 }
metin.ozkan@analog.com 0:788f63dcf0a0 1040
metin.ozkan@analog.com 0:788f63dcf0a0 1041 int MAX77654::GetGPODataOutput(uint8_t channel, gpo_do_t *gpo_do)
metin.ozkan@analog.com 0:788f63dcf0a0 1042 {
metin.ozkan@analog.com 0:788f63dcf0a0 1043 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1044
metin.ozkan@analog.com 0:788f63dcf0a0 1045 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 1046 reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1047 ret = read_register(CNFG_GPIO0, (uint8_t *)&(reg_cnfg_gpio0));
metin.ozkan@analog.com 0:788f63dcf0a0 1048 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1049 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1050 }
metin.ozkan@analog.com 0:788f63dcf0a0 1051
metin.ozkan@analog.com 0:788f63dcf0a0 1052 *gpo_do = (gpo_do_t)reg_cnfg_gpio0.bits.gpo_do;
metin.ozkan@analog.com 0:788f63dcf0a0 1053 }
metin.ozkan@analog.com 0:788f63dcf0a0 1054 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 1055 reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1056 ret = read_register(CNFG_GPIO1, (uint8_t *)&(reg_cnfg_gpio1));
metin.ozkan@analog.com 0:788f63dcf0a0 1057 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1058 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1059 }
metin.ozkan@analog.com 0:788f63dcf0a0 1060
metin.ozkan@analog.com 0:788f63dcf0a0 1061 *gpo_do = (gpo_do_t)reg_cnfg_gpio1.bits.gpo_do;
metin.ozkan@analog.com 0:788f63dcf0a0 1062 }
metin.ozkan@analog.com 0:788f63dcf0a0 1063 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 1064 reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1065 ret = read_register(CNFG_GPIO2, (uint8_t *)&(reg_cnfg_gpio2));
metin.ozkan@analog.com 0:788f63dcf0a0 1066 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1067 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1068 }
metin.ozkan@analog.com 0:788f63dcf0a0 1069
metin.ozkan@analog.com 0:788f63dcf0a0 1070 *gpo_do = (gpo_do_t)reg_cnfg_gpio2.bits.gpo_do;
metin.ozkan@analog.com 0:788f63dcf0a0 1071 }
metin.ozkan@analog.com 0:788f63dcf0a0 1072 else {
metin.ozkan@analog.com 0:788f63dcf0a0 1073 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 1074 }
metin.ozkan@analog.com 0:788f63dcf0a0 1075
metin.ozkan@analog.com 0:788f63dcf0a0 1076 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1077 }
metin.ozkan@analog.com 0:788f63dcf0a0 1078
metin.ozkan@analog.com 0:788f63dcf0a0 1079 int MAX77654::SetGPODriveType(uint8_t channel, gpo_drv_t gpo_drv)
metin.ozkan@analog.com 0:788f63dcf0a0 1080 {
metin.ozkan@analog.com 0:788f63dcf0a0 1081 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 1082 reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1083 SET_BIT_FIELD(CNFG_GPIO0, reg_cnfg_gpio0, reg_cnfg_gpio0.bits.gpo_drv, gpo_drv);
metin.ozkan@analog.com 0:788f63dcf0a0 1084 }
metin.ozkan@analog.com 0:788f63dcf0a0 1085 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 1086 reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1087 SET_BIT_FIELD(CNFG_GPIO1, reg_cnfg_gpio1, reg_cnfg_gpio1.bits.gpo_drv, gpo_drv);
metin.ozkan@analog.com 0:788f63dcf0a0 1088 }
metin.ozkan@analog.com 0:788f63dcf0a0 1089 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 1090 reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1091 SET_BIT_FIELD(CNFG_GPIO2, reg_cnfg_gpio2, reg_cnfg_gpio2.bits.gpo_drv, gpo_drv);
metin.ozkan@analog.com 0:788f63dcf0a0 1092 }
metin.ozkan@analog.com 0:788f63dcf0a0 1093 else {
metin.ozkan@analog.com 0:788f63dcf0a0 1094 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 1095 }
metin.ozkan@analog.com 0:788f63dcf0a0 1096
metin.ozkan@analog.com 0:788f63dcf0a0 1097 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1098 }
metin.ozkan@analog.com 0:788f63dcf0a0 1099
metin.ozkan@analog.com 0:788f63dcf0a0 1100 int MAX77654::GetGPODriveType(uint8_t channel, gpo_drv_t *gpo_drv)
metin.ozkan@analog.com 0:788f63dcf0a0 1101 {
metin.ozkan@analog.com 0:788f63dcf0a0 1102 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1103
metin.ozkan@analog.com 0:788f63dcf0a0 1104 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 1105 reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1106 ret = read_register(CNFG_GPIO0, (uint8_t *)&(reg_cnfg_gpio0));
metin.ozkan@analog.com 0:788f63dcf0a0 1107 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1108 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1109 }
metin.ozkan@analog.com 0:788f63dcf0a0 1110
metin.ozkan@analog.com 0:788f63dcf0a0 1111 *gpo_drv = (gpo_drv_t)reg_cnfg_gpio0.bits.gpo_drv;
metin.ozkan@analog.com 0:788f63dcf0a0 1112 }
metin.ozkan@analog.com 0:788f63dcf0a0 1113 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 1114 reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1115 ret = read_register(CNFG_GPIO1, (uint8_t *)&(reg_cnfg_gpio1));
metin.ozkan@analog.com 0:788f63dcf0a0 1116 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1117 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1118 }
metin.ozkan@analog.com 0:788f63dcf0a0 1119
metin.ozkan@analog.com 0:788f63dcf0a0 1120 *gpo_drv = (gpo_drv_t)reg_cnfg_gpio1.bits.gpo_drv;
metin.ozkan@analog.com 0:788f63dcf0a0 1121 }
metin.ozkan@analog.com 0:788f63dcf0a0 1122 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 1123 reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1124 ret = read_register(CNFG_GPIO2, (uint8_t *)&(reg_cnfg_gpio2));
metin.ozkan@analog.com 0:788f63dcf0a0 1125 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1126 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1127 }
metin.ozkan@analog.com 0:788f63dcf0a0 1128
metin.ozkan@analog.com 0:788f63dcf0a0 1129 *gpo_drv = (gpo_drv_t)reg_cnfg_gpio2.bits.gpo_drv;
metin.ozkan@analog.com 0:788f63dcf0a0 1130 }
metin.ozkan@analog.com 0:788f63dcf0a0 1131 else {
metin.ozkan@analog.com 0:788f63dcf0a0 1132 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 1133 }
metin.ozkan@analog.com 0:788f63dcf0a0 1134
metin.ozkan@analog.com 0:788f63dcf0a0 1135 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1136 }
metin.ozkan@analog.com 0:788f63dcf0a0 1137
metin.ozkan@analog.com 0:788f63dcf0a0 1138 int MAX77654::SetGPIOInputValue(uint8_t channel, gpo_di_t gpo_di)
metin.ozkan@analog.com 0:788f63dcf0a0 1139 {
metin.ozkan@analog.com 0:788f63dcf0a0 1140 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 1141 reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1142 SET_BIT_FIELD(CNFG_GPIO0, reg_cnfg_gpio0, reg_cnfg_gpio0.bits.gpo_di, gpo_di);
metin.ozkan@analog.com 0:788f63dcf0a0 1143 }
metin.ozkan@analog.com 0:788f63dcf0a0 1144 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 1145 reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1146 SET_BIT_FIELD(CNFG_GPIO1, reg_cnfg_gpio1, reg_cnfg_gpio1.bits.gpo_di, gpo_di);
metin.ozkan@analog.com 0:788f63dcf0a0 1147 }
metin.ozkan@analog.com 0:788f63dcf0a0 1148 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 1149 reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1150 SET_BIT_FIELD(CNFG_GPIO2, reg_cnfg_gpio2, reg_cnfg_gpio2.bits.gpo_di, gpo_di);
metin.ozkan@analog.com 0:788f63dcf0a0 1151 }
metin.ozkan@analog.com 0:788f63dcf0a0 1152 else {
metin.ozkan@analog.com 0:788f63dcf0a0 1153 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 1154 }
metin.ozkan@analog.com 0:788f63dcf0a0 1155
metin.ozkan@analog.com 0:788f63dcf0a0 1156 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1157 }
metin.ozkan@analog.com 0:788f63dcf0a0 1158
metin.ozkan@analog.com 0:788f63dcf0a0 1159 int MAX77654::GetGPIOInputValue(uint8_t channel, gpo_di_t *gpo_di)
metin.ozkan@analog.com 0:788f63dcf0a0 1160 {
metin.ozkan@analog.com 0:788f63dcf0a0 1161 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1162
metin.ozkan@analog.com 0:788f63dcf0a0 1163 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 1164 reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1165 ret = read_register(CNFG_GPIO0, (uint8_t *)&(reg_cnfg_gpio0));
metin.ozkan@analog.com 0:788f63dcf0a0 1166 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1167 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1168 }
metin.ozkan@analog.com 0:788f63dcf0a0 1169
metin.ozkan@analog.com 0:788f63dcf0a0 1170 *gpo_di = (gpo_di_t)reg_cnfg_gpio0.bits.gpo_di;
metin.ozkan@analog.com 0:788f63dcf0a0 1171 }
metin.ozkan@analog.com 0:788f63dcf0a0 1172 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 1173 reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1174 ret = read_register(CNFG_GPIO1, (uint8_t *)&(reg_cnfg_gpio1));
metin.ozkan@analog.com 0:788f63dcf0a0 1175 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1176 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1177 }
metin.ozkan@analog.com 0:788f63dcf0a0 1178
metin.ozkan@analog.com 0:788f63dcf0a0 1179 *gpo_di = (gpo_di_t)reg_cnfg_gpio1.bits.gpo_di;
metin.ozkan@analog.com 0:788f63dcf0a0 1180 }
metin.ozkan@analog.com 0:788f63dcf0a0 1181 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 1182 reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1183 ret = read_register(CNFG_GPIO2, (uint8_t *)&(reg_cnfg_gpio2));
metin.ozkan@analog.com 0:788f63dcf0a0 1184 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1185 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1186 }
metin.ozkan@analog.com 0:788f63dcf0a0 1187
metin.ozkan@analog.com 0:788f63dcf0a0 1188 *gpo_di = (gpo_di_t)reg_cnfg_gpio2.bits.gpo_di;
metin.ozkan@analog.com 0:788f63dcf0a0 1189 }
metin.ozkan@analog.com 0:788f63dcf0a0 1190 else {
metin.ozkan@analog.com 0:788f63dcf0a0 1191 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 1192 }
metin.ozkan@analog.com 0:788f63dcf0a0 1193
metin.ozkan@analog.com 0:788f63dcf0a0 1194 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1195 }
metin.ozkan@analog.com 0:788f63dcf0a0 1196
metin.ozkan@analog.com 0:788f63dcf0a0 1197 int MAX77654::SetGPIODirection(uint8_t channel, gpo_dir_t gpo_dir)
metin.ozkan@analog.com 0:788f63dcf0a0 1198 {
metin.ozkan@analog.com 0:788f63dcf0a0 1199 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 1200 reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1201 SET_BIT_FIELD(CNFG_GPIO0, reg_cnfg_gpio0, reg_cnfg_gpio0.bits.gpo_dir, gpo_dir);
metin.ozkan@analog.com 0:788f63dcf0a0 1202 }
metin.ozkan@analog.com 0:788f63dcf0a0 1203 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 1204 reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1205 SET_BIT_FIELD(CNFG_GPIO1, reg_cnfg_gpio1, reg_cnfg_gpio1.bits.gpo_dir, gpo_dir);
metin.ozkan@analog.com 0:788f63dcf0a0 1206 }
metin.ozkan@analog.com 0:788f63dcf0a0 1207 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 1208 reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1209 SET_BIT_FIELD(CNFG_GPIO2, reg_cnfg_gpio2, reg_cnfg_gpio2.bits.gpo_dir, gpo_dir);
metin.ozkan@analog.com 0:788f63dcf0a0 1210 }
metin.ozkan@analog.com 0:788f63dcf0a0 1211 else {
metin.ozkan@analog.com 0:788f63dcf0a0 1212 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 1213 }
metin.ozkan@analog.com 0:788f63dcf0a0 1214
metin.ozkan@analog.com 0:788f63dcf0a0 1215 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1216 }
metin.ozkan@analog.com 0:788f63dcf0a0 1217
metin.ozkan@analog.com 0:788f63dcf0a0 1218 int MAX77654::GetGPIODirection(uint8_t channel, gpo_dir_t *gpo_dir)
metin.ozkan@analog.com 0:788f63dcf0a0 1219 {
metin.ozkan@analog.com 0:788f63dcf0a0 1220 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1221
metin.ozkan@analog.com 0:788f63dcf0a0 1222 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 1223 reg_cnfg_gpio0_t reg_cnfg_gpio0 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1224 ret = read_register(CNFG_GPIO0, (uint8_t *)&(reg_cnfg_gpio0));
metin.ozkan@analog.com 0:788f63dcf0a0 1225 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1226 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1227 }
metin.ozkan@analog.com 0:788f63dcf0a0 1228
metin.ozkan@analog.com 0:788f63dcf0a0 1229 *gpo_dir = (gpo_dir_t)reg_cnfg_gpio0.bits.gpo_dir;
metin.ozkan@analog.com 0:788f63dcf0a0 1230 }
metin.ozkan@analog.com 0:788f63dcf0a0 1231 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 1232 reg_cnfg_gpio1_t reg_cnfg_gpio1 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1233 ret = read_register(CNFG_GPIO1, (uint8_t *)&(reg_cnfg_gpio1));
metin.ozkan@analog.com 0:788f63dcf0a0 1234 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1235 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1236 }
metin.ozkan@analog.com 0:788f63dcf0a0 1237
metin.ozkan@analog.com 0:788f63dcf0a0 1238 *gpo_dir = (gpo_dir_t)reg_cnfg_gpio1.bits.gpo_dir;
metin.ozkan@analog.com 0:788f63dcf0a0 1239 }
metin.ozkan@analog.com 0:788f63dcf0a0 1240 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 1241 reg_cnfg_gpio2_t reg_cnfg_gpio2 = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1242 ret = read_register(CNFG_GPIO2, (uint8_t *)&(reg_cnfg_gpio2));
metin.ozkan@analog.com 0:788f63dcf0a0 1243 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1244 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1245 }
metin.ozkan@analog.com 0:788f63dcf0a0 1246
metin.ozkan@analog.com 0:788f63dcf0a0 1247 *gpo_dir = (gpo_dir_t)reg_cnfg_gpio2.bits.gpo_dir;
metin.ozkan@analog.com 0:788f63dcf0a0 1248 }
metin.ozkan@analog.com 0:788f63dcf0a0 1249 else {
metin.ozkan@analog.com 0:788f63dcf0a0 1250 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 1251 }
metin.ozkan@analog.com 0:788f63dcf0a0 1252
metin.ozkan@analog.com 0:788f63dcf0a0 1253 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1254 }
metin.ozkan@analog.com 0:788f63dcf0a0 1255
metin.ozkan@analog.com 0:788f63dcf0a0 1256 int MAX77654::GetCID(void) {
metin.ozkan@analog.com 0:788f63dcf0a0 1257 char rbuf[1];
metin.ozkan@analog.com 0:788f63dcf0a0 1258 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1259
metin.ozkan@analog.com 0:788f63dcf0a0 1260 ret = read_register(CID, (uint8_t *)&(rbuf));
metin.ozkan@analog.com 0:788f63dcf0a0 1261 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1262 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1263 }
metin.ozkan@analog.com 0:788f63dcf0a0 1264
metin.ozkan@analog.com 0:788f63dcf0a0 1265 return *rbuf;
metin.ozkan@analog.com 0:788f63dcf0a0 1266 }
metin.ozkan@analog.com 0:788f63dcf0a0 1267
metin.ozkan@analog.com 0:788f63dcf0a0 1268 int MAX77654::SetWatchdogTimerPeriod(wdt_per_t wdt_per)
metin.ozkan@analog.com 0:788f63dcf0a0 1269 {
Okan Sahin 3:1e7cafcfdae7 1270 reg_cnfg_wdt_t reg_cnfg_wdt = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1271
metin.ozkan@analog.com 0:788f63dcf0a0 1272 SET_BIT_FIELD(CNFG_WDT, reg_cnfg_wdt, reg_cnfg_wdt.bits.wdt_per, wdt_per);
metin.ozkan@analog.com 0:788f63dcf0a0 1273
metin.ozkan@analog.com 0:788f63dcf0a0 1274 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1275 }
metin.ozkan@analog.com 0:788f63dcf0a0 1276
metin.ozkan@analog.com 0:788f63dcf0a0 1277 int MAX77654::GetWatchdogTimerPeriod(wdt_per_t *wdt_per)
metin.ozkan@analog.com 0:788f63dcf0a0 1278 {
metin.ozkan@analog.com 0:788f63dcf0a0 1279 int ret;
Okan Sahin 3:1e7cafcfdae7 1280 reg_cnfg_wdt_t reg_cnfg_wdt = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1281
metin.ozkan@analog.com 0:788f63dcf0a0 1282 ret = read_register(CNFG_WDT, (uint8_t *)&(reg_cnfg_wdt));
metin.ozkan@analog.com 0:788f63dcf0a0 1283 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1284 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1285 }
metin.ozkan@analog.com 0:788f63dcf0a0 1286
metin.ozkan@analog.com 0:788f63dcf0a0 1287 *wdt_per = (wdt_per_t)reg_cnfg_wdt.bits.wdt_per;
metin.ozkan@analog.com 0:788f63dcf0a0 1288
metin.ozkan@analog.com 0:788f63dcf0a0 1289 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1290 }
metin.ozkan@analog.com 0:788f63dcf0a0 1291
metin.ozkan@analog.com 0:788f63dcf0a0 1292 int MAX77654::SetWatchdogTimerExpiredAction(wdt_mode_t wdt_mode)
metin.ozkan@analog.com 0:788f63dcf0a0 1293 {
Okan Sahin 3:1e7cafcfdae7 1294 reg_cnfg_wdt_t reg_cnfg_wdt = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1295
metin.ozkan@analog.com 0:788f63dcf0a0 1296 SET_BIT_FIELD(CNFG_WDT, reg_cnfg_wdt, reg_cnfg_wdt.bits.wdt_mode, wdt_mode);
metin.ozkan@analog.com 0:788f63dcf0a0 1297
metin.ozkan@analog.com 0:788f63dcf0a0 1298 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1299 }
metin.ozkan@analog.com 0:788f63dcf0a0 1300
metin.ozkan@analog.com 0:788f63dcf0a0 1301 int MAX77654::GetWatchdogTimerExpiredAction(wdt_mode_t *wdt_mode)
metin.ozkan@analog.com 0:788f63dcf0a0 1302 {
metin.ozkan@analog.com 0:788f63dcf0a0 1303 int ret;
Okan Sahin 3:1e7cafcfdae7 1304 reg_cnfg_wdt_t reg_cnfg_wdt = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1305
metin.ozkan@analog.com 0:788f63dcf0a0 1306 ret = read_register(CNFG_WDT, (uint8_t *)&(reg_cnfg_wdt));
metin.ozkan@analog.com 0:788f63dcf0a0 1307 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1308 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1309 }
metin.ozkan@analog.com 0:788f63dcf0a0 1310
metin.ozkan@analog.com 0:788f63dcf0a0 1311 *wdt_mode = (wdt_mode_t)reg_cnfg_wdt.bits.wdt_mode;
metin.ozkan@analog.com 0:788f63dcf0a0 1312
metin.ozkan@analog.com 0:788f63dcf0a0 1313 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1314 }
metin.ozkan@analog.com 0:788f63dcf0a0 1315
metin.ozkan@analog.com 0:788f63dcf0a0 1316 int MAX77654::SetWatchdogTimerClearControl(wdt_clr_t wdt_clr)
metin.ozkan@analog.com 0:788f63dcf0a0 1317 {
Okan Sahin 3:1e7cafcfdae7 1318 reg_cnfg_wdt_t reg_cnfg_wdt = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1319
metin.ozkan@analog.com 0:788f63dcf0a0 1320 SET_BIT_FIELD(CNFG_WDT, reg_cnfg_wdt, reg_cnfg_wdt.bits.wdt_clr, wdt_clr);
metin.ozkan@analog.com 0:788f63dcf0a0 1321
metin.ozkan@analog.com 0:788f63dcf0a0 1322 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1323 }
metin.ozkan@analog.com 0:788f63dcf0a0 1324
metin.ozkan@analog.com 0:788f63dcf0a0 1325 int MAX77654::GetWatchdogTimerClearControl(wdt_clr_t *wdt_clr)
metin.ozkan@analog.com 0:788f63dcf0a0 1326 {
metin.ozkan@analog.com 0:788f63dcf0a0 1327 int ret;
Okan Sahin 3:1e7cafcfdae7 1328 reg_cnfg_wdt_t reg_cnfg_wdt = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1329
metin.ozkan@analog.com 0:788f63dcf0a0 1330 ret = read_register(CNFG_WDT, (uint8_t *)&(reg_cnfg_wdt));
metin.ozkan@analog.com 0:788f63dcf0a0 1331 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1332 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1333 }
metin.ozkan@analog.com 0:788f63dcf0a0 1334
metin.ozkan@analog.com 0:788f63dcf0a0 1335 *wdt_clr = (wdt_clr_t)reg_cnfg_wdt.bits.wdt_clr;
metin.ozkan@analog.com 0:788f63dcf0a0 1336
metin.ozkan@analog.com 0:788f63dcf0a0 1337 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1338 }
metin.ozkan@analog.com 0:788f63dcf0a0 1339
metin.ozkan@analog.com 0:788f63dcf0a0 1340 int MAX77654::SetWatchdogTimerEnable(wdt_en_t wdt_en)
metin.ozkan@analog.com 0:788f63dcf0a0 1341 {
Okan Sahin 3:1e7cafcfdae7 1342 reg_cnfg_wdt_t reg_cnfg_wdt = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1343
metin.ozkan@analog.com 0:788f63dcf0a0 1344 SET_BIT_FIELD(CNFG_WDT, reg_cnfg_wdt, reg_cnfg_wdt.bits.wdt_en, wdt_en);
metin.ozkan@analog.com 0:788f63dcf0a0 1345
metin.ozkan@analog.com 0:788f63dcf0a0 1346 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1347 }
metin.ozkan@analog.com 0:788f63dcf0a0 1348
metin.ozkan@analog.com 0:788f63dcf0a0 1349 int MAX77654::GetWatchdogTimerEnable(wdt_en_t *wdt_en)
metin.ozkan@analog.com 0:788f63dcf0a0 1350 {
metin.ozkan@analog.com 0:788f63dcf0a0 1351 int ret;
Okan Sahin 3:1e7cafcfdae7 1352 reg_cnfg_wdt_t reg_cnfg_wdt = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1353
metin.ozkan@analog.com 0:788f63dcf0a0 1354 ret = read_register(CNFG_WDT, (uint8_t *)&(reg_cnfg_wdt));
metin.ozkan@analog.com 0:788f63dcf0a0 1355 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1356 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1357 }
metin.ozkan@analog.com 0:788f63dcf0a0 1358
metin.ozkan@analog.com 0:788f63dcf0a0 1359 *wdt_en = (wdt_en_t)reg_cnfg_wdt.bits.wdt_en;
metin.ozkan@analog.com 0:788f63dcf0a0 1360
metin.ozkan@analog.com 0:788f63dcf0a0 1361 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1362 }
metin.ozkan@analog.com 0:788f63dcf0a0 1363
metin.ozkan@analog.com 0:788f63dcf0a0 1364 int MAX77654::SetFactorySetSafetyBit(wdt_lock_t wdt_lock)
metin.ozkan@analog.com 0:788f63dcf0a0 1365 {
Okan Sahin 3:1e7cafcfdae7 1366 reg_cnfg_wdt_t reg_cnfg_wdt = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1367
metin.ozkan@analog.com 0:788f63dcf0a0 1368 SET_BIT_FIELD(CNFG_WDT, reg_cnfg_wdt, reg_cnfg_wdt.bits.wdt_lock, wdt_lock);
metin.ozkan@analog.com 0:788f63dcf0a0 1369
metin.ozkan@analog.com 0:788f63dcf0a0 1370 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1371 }
metin.ozkan@analog.com 0:788f63dcf0a0 1372
metin.ozkan@analog.com 0:788f63dcf0a0 1373 int MAX77654::GetFactorySetSafetyBit(wdt_lock_t *wdt_lock)
metin.ozkan@analog.com 0:788f63dcf0a0 1374 {
metin.ozkan@analog.com 0:788f63dcf0a0 1375 int ret;
Okan Sahin 3:1e7cafcfdae7 1376 reg_cnfg_wdt_t reg_cnfg_wdt = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1377
metin.ozkan@analog.com 0:788f63dcf0a0 1378 ret = read_register(CNFG_WDT, (uint8_t *)&(reg_cnfg_wdt));
metin.ozkan@analog.com 0:788f63dcf0a0 1379 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1380 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1381 }
metin.ozkan@analog.com 0:788f63dcf0a0 1382
metin.ozkan@analog.com 0:788f63dcf0a0 1383 *wdt_lock = (wdt_lock_t)reg_cnfg_wdt.bits.wdt_lock;
metin.ozkan@analog.com 0:788f63dcf0a0 1384
metin.ozkan@analog.com 0:788f63dcf0a0 1385 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1386 }
metin.ozkan@analog.com 0:788f63dcf0a0 1387
metin.ozkan@analog.com 0:788f63dcf0a0 1388 int MAX77654::GetMinimumVCHGINVoltageLoopStatus(stat_t *stat)
metin.ozkan@analog.com 0:788f63dcf0a0 1389 {
metin.ozkan@analog.com 0:788f63dcf0a0 1390 int ret;
Okan Sahin 3:1e7cafcfdae7 1391 reg_stat_chg_a_t reg_stat_chg_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1392
metin.ozkan@analog.com 0:788f63dcf0a0 1393 ret = read_register(STAT_CHG_A, (uint8_t *)&(reg_stat_chg_a));
metin.ozkan@analog.com 0:788f63dcf0a0 1394 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1395 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1396 }
metin.ozkan@analog.com 0:788f63dcf0a0 1397
metin.ozkan@analog.com 0:788f63dcf0a0 1398 *stat = (stat_t)reg_stat_chg_a.bits.vchgin_min_stat;
metin.ozkan@analog.com 0:788f63dcf0a0 1399
metin.ozkan@analog.com 0:788f63dcf0a0 1400 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1401 }
metin.ozkan@analog.com 0:788f63dcf0a0 1402
metin.ozkan@analog.com 0:788f63dcf0a0 1403 int MAX77654::GetCHGINCurrentLimitLoopStatus(stat_t *stat)
metin.ozkan@analog.com 0:788f63dcf0a0 1404 {
metin.ozkan@analog.com 0:788f63dcf0a0 1405 int ret;
Okan Sahin 3:1e7cafcfdae7 1406 reg_stat_chg_a_t reg_stat_chg_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1407
metin.ozkan@analog.com 0:788f63dcf0a0 1408 ret = read_register(STAT_CHG_A, (uint8_t *)&(reg_stat_chg_a));
metin.ozkan@analog.com 0:788f63dcf0a0 1409 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1410 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1411 }
metin.ozkan@analog.com 0:788f63dcf0a0 1412
metin.ozkan@analog.com 0:788f63dcf0a0 1413 *stat = (stat_t)reg_stat_chg_a.bits.ichgin_lim_stat;
metin.ozkan@analog.com 0:788f63dcf0a0 1414
metin.ozkan@analog.com 0:788f63dcf0a0 1415 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1416 }
metin.ozkan@analog.com 0:788f63dcf0a0 1417
metin.ozkan@analog.com 0:788f63dcf0a0 1418 int MAX77654::GetMinimumSYSVoltageLoopStatus(stat_t *stat)
metin.ozkan@analog.com 0:788f63dcf0a0 1419 {
metin.ozkan@analog.com 0:788f63dcf0a0 1420 int ret;
Okan Sahin 3:1e7cafcfdae7 1421 reg_stat_chg_a_t reg_stat_chg_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1422
metin.ozkan@analog.com 0:788f63dcf0a0 1423 ret = read_register(STAT_CHG_A, (uint8_t *)&(reg_stat_chg_a));
metin.ozkan@analog.com 0:788f63dcf0a0 1424 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1425 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1426 }
metin.ozkan@analog.com 0:788f63dcf0a0 1427
metin.ozkan@analog.com 0:788f63dcf0a0 1428 *stat = (stat_t)reg_stat_chg_a.bits.vsys_min_stat;
metin.ozkan@analog.com 0:788f63dcf0a0 1429
metin.ozkan@analog.com 0:788f63dcf0a0 1430 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1431 }
metin.ozkan@analog.com 0:788f63dcf0a0 1432
metin.ozkan@analog.com 0:788f63dcf0a0 1433 int MAX77654::GetMaximumJunctionTempLoopStatus(stat_t *stat)
metin.ozkan@analog.com 0:788f63dcf0a0 1434 {
metin.ozkan@analog.com 0:788f63dcf0a0 1435 int ret;
Okan Sahin 3:1e7cafcfdae7 1436 reg_stat_chg_a_t reg_stat_chg_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1437
metin.ozkan@analog.com 0:788f63dcf0a0 1438 ret = read_register(STAT_CHG_A, (uint8_t *)&(reg_stat_chg_a));
metin.ozkan@analog.com 0:788f63dcf0a0 1439 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1440 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1441 }
metin.ozkan@analog.com 0:788f63dcf0a0 1442
metin.ozkan@analog.com 0:788f63dcf0a0 1443 *stat = (stat_t)reg_stat_chg_a.bits.tj_reg_stat;
metin.ozkan@analog.com 0:788f63dcf0a0 1444
metin.ozkan@analog.com 0:788f63dcf0a0 1445 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1446 }
metin.ozkan@analog.com 0:788f63dcf0a0 1447
metin.ozkan@analog.com 0:788f63dcf0a0 1448 int MAX77654::GetBatteryTemperatureDetails(thm_dtls_t *thm_dtls)
metin.ozkan@analog.com 0:788f63dcf0a0 1449 {
metin.ozkan@analog.com 0:788f63dcf0a0 1450 int ret;
Okan Sahin 3:1e7cafcfdae7 1451 reg_stat_chg_a_t reg_stat_chg_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1452
metin.ozkan@analog.com 0:788f63dcf0a0 1453 ret = read_register(STAT_CHG_A, (uint8_t *)&(reg_stat_chg_a));
metin.ozkan@analog.com 0:788f63dcf0a0 1454 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1455 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1456 }
metin.ozkan@analog.com 0:788f63dcf0a0 1457
metin.ozkan@analog.com 0:788f63dcf0a0 1458 *thm_dtls = (thm_dtls_t)reg_stat_chg_a.bits.thm_dtls;
metin.ozkan@analog.com 0:788f63dcf0a0 1459
metin.ozkan@analog.com 0:788f63dcf0a0 1460 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1461 }
metin.ozkan@analog.com 0:788f63dcf0a0 1462
metin.ozkan@analog.com 0:788f63dcf0a0 1463 int MAX77654::GetChargerDetails(chg_dtls_t *chg_dtls)
metin.ozkan@analog.com 0:788f63dcf0a0 1464 {
metin.ozkan@analog.com 0:788f63dcf0a0 1465 int ret;
Okan Sahin 3:1e7cafcfdae7 1466 reg_stat_chg_b_t reg_stat_chg_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1467
metin.ozkan@analog.com 0:788f63dcf0a0 1468 ret = read_register(STAT_CHG_B, (uint8_t *)&(reg_stat_chg_b));
metin.ozkan@analog.com 0:788f63dcf0a0 1469 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1470 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1471 }
metin.ozkan@analog.com 0:788f63dcf0a0 1472
metin.ozkan@analog.com 0:788f63dcf0a0 1473 *chg_dtls = (chg_dtls_t)reg_stat_chg_b.bits.chg_dtls;
metin.ozkan@analog.com 0:788f63dcf0a0 1474
metin.ozkan@analog.com 0:788f63dcf0a0 1475 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1476 }
metin.ozkan@analog.com 0:788f63dcf0a0 1477
metin.ozkan@analog.com 0:788f63dcf0a0 1478 int MAX77654::GetCHGINStatusDetails(chgin_dtls_t *chgin_dtls)
metin.ozkan@analog.com 0:788f63dcf0a0 1479 {
metin.ozkan@analog.com 0:788f63dcf0a0 1480 int ret;
Okan Sahin 3:1e7cafcfdae7 1481 reg_stat_chg_b_t reg_stat_chg_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1482
metin.ozkan@analog.com 0:788f63dcf0a0 1483 ret = read_register(STAT_CHG_B, (uint8_t *)&(reg_stat_chg_b));
metin.ozkan@analog.com 0:788f63dcf0a0 1484 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1485 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1486 }
metin.ozkan@analog.com 0:788f63dcf0a0 1487
metin.ozkan@analog.com 0:788f63dcf0a0 1488 *chgin_dtls = (chgin_dtls_t)reg_stat_chg_b.bits.chgin_dtls;
metin.ozkan@analog.com 0:788f63dcf0a0 1489
metin.ozkan@analog.com 0:788f63dcf0a0 1490 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1491 }
metin.ozkan@analog.com 0:788f63dcf0a0 1492
metin.ozkan@analog.com 0:788f63dcf0a0 1493 int MAX77654::GetQuickChargerStatus(chg_t *chg)
metin.ozkan@analog.com 0:788f63dcf0a0 1494 {
metin.ozkan@analog.com 0:788f63dcf0a0 1495 int ret;
Okan Sahin 3:1e7cafcfdae7 1496 reg_stat_chg_b_t reg_stat_chg_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1497
metin.ozkan@analog.com 0:788f63dcf0a0 1498 ret = read_register(STAT_CHG_B, (uint8_t *)&(reg_stat_chg_b));
metin.ozkan@analog.com 0:788f63dcf0a0 1499 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1500 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1501 }
metin.ozkan@analog.com 0:788f63dcf0a0 1502
metin.ozkan@analog.com 0:788f63dcf0a0 1503 *chg = (chg_t)reg_stat_chg_b.bits.chg;
metin.ozkan@analog.com 0:788f63dcf0a0 1504
metin.ozkan@analog.com 0:788f63dcf0a0 1505 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1506 }
metin.ozkan@analog.com 0:788f63dcf0a0 1507
metin.ozkan@analog.com 0:788f63dcf0a0 1508 int MAX77654::GetTimeSuspendedIndicator(time_sus_t *time_sus)
metin.ozkan@analog.com 0:788f63dcf0a0 1509 {
metin.ozkan@analog.com 0:788f63dcf0a0 1510 int ret;
Okan Sahin 3:1e7cafcfdae7 1511 reg_stat_chg_b_t reg_stat_chg_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1512
metin.ozkan@analog.com 0:788f63dcf0a0 1513 ret = read_register(STAT_CHG_B, (uint8_t *)&(reg_stat_chg_b));
metin.ozkan@analog.com 0:788f63dcf0a0 1514 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1515 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1516 }
metin.ozkan@analog.com 0:788f63dcf0a0 1517
metin.ozkan@analog.com 0:788f63dcf0a0 1518 *time_sus = (time_sus_t)reg_stat_chg_b.bits.time_sus;
metin.ozkan@analog.com 0:788f63dcf0a0 1519
metin.ozkan@analog.com 0:788f63dcf0a0 1520 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1521 }
metin.ozkan@analog.com 0:788f63dcf0a0 1522
metin.ozkan@analog.com 0:788f63dcf0a0 1523 int MAX77654::SetSYSCONFIGMBit(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1524 {
Okan Sahin 3:1e7cafcfdae7 1525 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1526
metin.ozkan@analog.com 0:788f63dcf0a0 1527 SET_BIT_FIELD(INT_M_CHG, reg_int_m_chg, reg_int_m_chg.bits.sys_cnfg_m, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 1528
metin.ozkan@analog.com 0:788f63dcf0a0 1529 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1530 }
metin.ozkan@analog.com 0:788f63dcf0a0 1531
metin.ozkan@analog.com 0:788f63dcf0a0 1532 int MAX77654::GetSYSCONFIGMBit(intm_t *intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1533 {
metin.ozkan@analog.com 0:788f63dcf0a0 1534 int ret;
Okan Sahin 3:1e7cafcfdae7 1535 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1536
metin.ozkan@analog.com 0:788f63dcf0a0 1537 ret = read_register(INT_M_CHG, (uint8_t *)&(reg_int_m_chg));
metin.ozkan@analog.com 0:788f63dcf0a0 1538 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1539 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1540 }
metin.ozkan@analog.com 0:788f63dcf0a0 1541
metin.ozkan@analog.com 0:788f63dcf0a0 1542 *intm = (intm_t)reg_int_m_chg.bits.sys_cnfg_m;
metin.ozkan@analog.com 0:788f63dcf0a0 1543
metin.ozkan@analog.com 0:788f63dcf0a0 1544 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1545 }
metin.ozkan@analog.com 0:788f63dcf0a0 1546
metin.ozkan@analog.com 0:788f63dcf0a0 1547 int MAX77654::SetSYSCTRLMBit(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1548 {
Okan Sahin 3:1e7cafcfdae7 1549 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1550
metin.ozkan@analog.com 0:788f63dcf0a0 1551 SET_BIT_FIELD(INT_M_CHG, reg_int_m_chg, reg_int_m_chg.bits.sys_ctrl_m, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 1552
metin.ozkan@analog.com 0:788f63dcf0a0 1553 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1554 }
metin.ozkan@analog.com 0:788f63dcf0a0 1555
metin.ozkan@analog.com 0:788f63dcf0a0 1556 int MAX77654::GetSYSCTRLMBit(intm_t *intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1557 {
metin.ozkan@analog.com 0:788f63dcf0a0 1558 int ret;
Okan Sahin 3:1e7cafcfdae7 1559 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1560
metin.ozkan@analog.com 0:788f63dcf0a0 1561 ret = read_register(INT_M_CHG, (uint8_t *)&(reg_int_m_chg));
metin.ozkan@analog.com 0:788f63dcf0a0 1562 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1563 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1564 }
metin.ozkan@analog.com 0:788f63dcf0a0 1565
metin.ozkan@analog.com 0:788f63dcf0a0 1566 *intm = (intm_t)reg_int_m_chg.bits.sys_ctrl_m;
metin.ozkan@analog.com 0:788f63dcf0a0 1567
metin.ozkan@analog.com 0:788f63dcf0a0 1568 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1569 }
metin.ozkan@analog.com 0:788f63dcf0a0 1570
metin.ozkan@analog.com 0:788f63dcf0a0 1571 int MAX77654::SetCHGINCTRLMBit(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1572 {
Okan Sahin 3:1e7cafcfdae7 1573 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1574
metin.ozkan@analog.com 0:788f63dcf0a0 1575 SET_BIT_FIELD(INT_M_CHG, reg_int_m_chg, reg_int_m_chg.bits.chgin_ctrl_m, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 1576
metin.ozkan@analog.com 0:788f63dcf0a0 1577 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1578 }
metin.ozkan@analog.com 0:788f63dcf0a0 1579
metin.ozkan@analog.com 0:788f63dcf0a0 1580 int MAX77654::GetCHGINCTRLMBit(intm_t *intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1581 {
metin.ozkan@analog.com 0:788f63dcf0a0 1582 int ret;
Okan Sahin 3:1e7cafcfdae7 1583 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1584
metin.ozkan@analog.com 0:788f63dcf0a0 1585 ret = read_register(INT_M_CHG, (uint8_t *)&(reg_int_m_chg));
metin.ozkan@analog.com 0:788f63dcf0a0 1586 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1587 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1588 }
metin.ozkan@analog.com 0:788f63dcf0a0 1589
metin.ozkan@analog.com 0:788f63dcf0a0 1590 *intm = (intm_t)reg_int_m_chg.bits.chgin_ctrl_m;
metin.ozkan@analog.com 0:788f63dcf0a0 1591
metin.ozkan@analog.com 0:788f63dcf0a0 1592 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1593 }
metin.ozkan@analog.com 0:788f63dcf0a0 1594
metin.ozkan@analog.com 0:788f63dcf0a0 1595 int MAX77654::SetTJREGMBit(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1596 {
Okan Sahin 3:1e7cafcfdae7 1597 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1598
metin.ozkan@analog.com 0:788f63dcf0a0 1599 SET_BIT_FIELD(INT_M_CHG, reg_int_m_chg, reg_int_m_chg.bits.tj_reg_m, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 1600
metin.ozkan@analog.com 0:788f63dcf0a0 1601 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1602 }
metin.ozkan@analog.com 0:788f63dcf0a0 1603
metin.ozkan@analog.com 0:788f63dcf0a0 1604 int MAX77654::GetTJREGMBit(intm_t *intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1605 {
metin.ozkan@analog.com 0:788f63dcf0a0 1606 int ret;
Okan Sahin 3:1e7cafcfdae7 1607 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1608
metin.ozkan@analog.com 0:788f63dcf0a0 1609 ret = read_register(INT_M_CHG, (uint8_t *)&(reg_int_m_chg));
metin.ozkan@analog.com 0:788f63dcf0a0 1610 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1611 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1612 }
metin.ozkan@analog.com 0:788f63dcf0a0 1613
metin.ozkan@analog.com 0:788f63dcf0a0 1614 *intm = (intm_t)reg_int_m_chg.bits.tj_reg_m;
metin.ozkan@analog.com 0:788f63dcf0a0 1615
metin.ozkan@analog.com 0:788f63dcf0a0 1616 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1617 }
metin.ozkan@analog.com 0:788f63dcf0a0 1618
metin.ozkan@analog.com 0:788f63dcf0a0 1619 int MAX77654::SetCHGINMBit(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1620 {
Okan Sahin 3:1e7cafcfdae7 1621 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1622
metin.ozkan@analog.com 0:788f63dcf0a0 1623 SET_BIT_FIELD(INT_M_CHG, reg_int_m_chg, reg_int_m_chg.bits.chgin_m, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 1624
metin.ozkan@analog.com 0:788f63dcf0a0 1625 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1626 }
metin.ozkan@analog.com 0:788f63dcf0a0 1627
metin.ozkan@analog.com 0:788f63dcf0a0 1628 int MAX77654::GetCHGINMBit(intm_t *intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1629 {
metin.ozkan@analog.com 0:788f63dcf0a0 1630 int ret;
Okan Sahin 3:1e7cafcfdae7 1631 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1632
metin.ozkan@analog.com 0:788f63dcf0a0 1633 ret = read_register(INT_M_CHG, (uint8_t *)&(reg_int_m_chg));
metin.ozkan@analog.com 0:788f63dcf0a0 1634 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1635 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1636 }
metin.ozkan@analog.com 0:788f63dcf0a0 1637
metin.ozkan@analog.com 0:788f63dcf0a0 1638 *intm = (intm_t)reg_int_m_chg.bits.chgin_m;
metin.ozkan@analog.com 0:788f63dcf0a0 1639
metin.ozkan@analog.com 0:788f63dcf0a0 1640 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1641 }
metin.ozkan@analog.com 0:788f63dcf0a0 1642
metin.ozkan@analog.com 0:788f63dcf0a0 1643 int MAX77654::SetCHGMBit(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1644 {
Okan Sahin 3:1e7cafcfdae7 1645 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1646
metin.ozkan@analog.com 0:788f63dcf0a0 1647 SET_BIT_FIELD(INT_M_CHG, reg_int_m_chg, reg_int_m_chg.bits.chg_m, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 1648
metin.ozkan@analog.com 0:788f63dcf0a0 1649 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1650 }
metin.ozkan@analog.com 0:788f63dcf0a0 1651
metin.ozkan@analog.com 0:788f63dcf0a0 1652 int MAX77654::GetCHGMBit(intm_t *intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1653 {
metin.ozkan@analog.com 0:788f63dcf0a0 1654 int ret;
Okan Sahin 3:1e7cafcfdae7 1655 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1656
metin.ozkan@analog.com 0:788f63dcf0a0 1657 ret = read_register(INT_M_CHG, (uint8_t *)&(reg_int_m_chg));
metin.ozkan@analog.com 0:788f63dcf0a0 1658 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1659 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1660 }
metin.ozkan@analog.com 0:788f63dcf0a0 1661
metin.ozkan@analog.com 0:788f63dcf0a0 1662 *intm = (intm_t)reg_int_m_chg.bits.chg_m;
metin.ozkan@analog.com 0:788f63dcf0a0 1663
metin.ozkan@analog.com 0:788f63dcf0a0 1664 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1665 }
metin.ozkan@analog.com 0:788f63dcf0a0 1666
metin.ozkan@analog.com 0:788f63dcf0a0 1667 int MAX77654::SetTHMMBit(intm_t intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1668 {
Okan Sahin 3:1e7cafcfdae7 1669 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1670
metin.ozkan@analog.com 0:788f63dcf0a0 1671 SET_BIT_FIELD(INT_M_CHG, reg_int_m_chg, reg_int_m_chg.bits.thm_m, intm);
metin.ozkan@analog.com 0:788f63dcf0a0 1672
metin.ozkan@analog.com 0:788f63dcf0a0 1673 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1674 }
metin.ozkan@analog.com 0:788f63dcf0a0 1675
metin.ozkan@analog.com 0:788f63dcf0a0 1676 int MAX77654::GetTHMMBit(intm_t *intm)
metin.ozkan@analog.com 0:788f63dcf0a0 1677 {
metin.ozkan@analog.com 0:788f63dcf0a0 1678 int ret;
Okan Sahin 3:1e7cafcfdae7 1679 reg_int_m_chg_t reg_int_m_chg = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1680
metin.ozkan@analog.com 0:788f63dcf0a0 1681 ret = read_register(INT_M_CHG, (uint8_t *)&(reg_int_m_chg));
metin.ozkan@analog.com 0:788f63dcf0a0 1682 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1683 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1684 }
metin.ozkan@analog.com 0:788f63dcf0a0 1685
metin.ozkan@analog.com 0:788f63dcf0a0 1686 *intm = (intm_t)reg_int_m_chg.bits.thm_m;
metin.ozkan@analog.com 0:788f63dcf0a0 1687
metin.ozkan@analog.com 0:788f63dcf0a0 1688 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1689 }
metin.ozkan@analog.com 0:788f63dcf0a0 1690
metin.ozkan@analog.com 0:788f63dcf0a0 1691 int MAX77654::SetHOTJEITATemperature(thm_hot_t thm_hot)
metin.ozkan@analog.com 0:788f63dcf0a0 1692 {
Okan Sahin 3:1e7cafcfdae7 1693 reg_cnfg_chg_a_t reg_cnfg_chg_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1694
metin.ozkan@analog.com 0:788f63dcf0a0 1695 SET_BIT_FIELD(CNFG_CHG_A, reg_cnfg_chg_a, reg_cnfg_chg_a.bits.thm_hot, thm_hot);
metin.ozkan@analog.com 0:788f63dcf0a0 1696
metin.ozkan@analog.com 0:788f63dcf0a0 1697 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1698 }
metin.ozkan@analog.com 0:788f63dcf0a0 1699
metin.ozkan@analog.com 0:788f63dcf0a0 1700 int MAX77654::GetHOTJEITATemperature(thm_hot_t *thm_hot)
metin.ozkan@analog.com 0:788f63dcf0a0 1701 {
metin.ozkan@analog.com 0:788f63dcf0a0 1702 int ret;
Okan Sahin 3:1e7cafcfdae7 1703 reg_cnfg_chg_a_t reg_cnfg_chg_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1704
metin.ozkan@analog.com 0:788f63dcf0a0 1705 ret = read_register(CNFG_CHG_A, (uint8_t *)&(reg_cnfg_chg_a));
metin.ozkan@analog.com 0:788f63dcf0a0 1706 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1707 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1708 }
metin.ozkan@analog.com 0:788f63dcf0a0 1709
metin.ozkan@analog.com 0:788f63dcf0a0 1710 *thm_hot = (thm_hot_t)reg_cnfg_chg_a.bits.thm_hot;
metin.ozkan@analog.com 0:788f63dcf0a0 1711
metin.ozkan@analog.com 0:788f63dcf0a0 1712 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1713 }
metin.ozkan@analog.com 0:788f63dcf0a0 1714
metin.ozkan@analog.com 0:788f63dcf0a0 1715 int MAX77654::SetWARMJEITATemperature(thm_warm_t thm_warm)
metin.ozkan@analog.com 0:788f63dcf0a0 1716 {
Okan Sahin 3:1e7cafcfdae7 1717 reg_cnfg_chg_a_t reg_cnfg_chg_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1718
metin.ozkan@analog.com 0:788f63dcf0a0 1719 SET_BIT_FIELD(CNFG_CHG_A, reg_cnfg_chg_a, reg_cnfg_chg_a.bits.thm_warm, thm_warm);
metin.ozkan@analog.com 0:788f63dcf0a0 1720
metin.ozkan@analog.com 0:788f63dcf0a0 1721 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1722 }
metin.ozkan@analog.com 0:788f63dcf0a0 1723
metin.ozkan@analog.com 0:788f63dcf0a0 1724 int MAX77654::GetWARMJEITATemperature(thm_warm_t *thm_warm)
metin.ozkan@analog.com 0:788f63dcf0a0 1725 {
metin.ozkan@analog.com 0:788f63dcf0a0 1726 int ret;
Okan Sahin 3:1e7cafcfdae7 1727 reg_cnfg_chg_a_t reg_cnfg_chg_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1728
metin.ozkan@analog.com 0:788f63dcf0a0 1729 ret = read_register(CNFG_CHG_A, (uint8_t *)&(reg_cnfg_chg_a));
metin.ozkan@analog.com 0:788f63dcf0a0 1730 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1731 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1732 }
metin.ozkan@analog.com 0:788f63dcf0a0 1733
metin.ozkan@analog.com 0:788f63dcf0a0 1734 *thm_warm = (thm_warm_t)reg_cnfg_chg_a.bits.thm_warm;
metin.ozkan@analog.com 0:788f63dcf0a0 1735
metin.ozkan@analog.com 0:788f63dcf0a0 1736 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1737 }
metin.ozkan@analog.com 0:788f63dcf0a0 1738
metin.ozkan@analog.com 0:788f63dcf0a0 1739 int MAX77654::SetCOOLJEITATemperature(thm_cool_t thm_cool)
metin.ozkan@analog.com 0:788f63dcf0a0 1740 {
Okan Sahin 3:1e7cafcfdae7 1741 reg_cnfg_chg_a_t reg_cnfg_chg_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1742
metin.ozkan@analog.com 0:788f63dcf0a0 1743 SET_BIT_FIELD(CNFG_CHG_A, reg_cnfg_chg_a, reg_cnfg_chg_a.bits.thm_cool, thm_cool);
metin.ozkan@analog.com 0:788f63dcf0a0 1744
metin.ozkan@analog.com 0:788f63dcf0a0 1745 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1746 }
metin.ozkan@analog.com 0:788f63dcf0a0 1747
metin.ozkan@analog.com 0:788f63dcf0a0 1748 int MAX77654::GetCOOLJEITATemperature(thm_cool_t *thm_cool)
metin.ozkan@analog.com 0:788f63dcf0a0 1749 {
metin.ozkan@analog.com 0:788f63dcf0a0 1750 int ret;
Okan Sahin 3:1e7cafcfdae7 1751 reg_cnfg_chg_a_t reg_cnfg_chg_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1752
metin.ozkan@analog.com 0:788f63dcf0a0 1753 ret = read_register(CNFG_CHG_A, (uint8_t *)&(reg_cnfg_chg_a));
metin.ozkan@analog.com 0:788f63dcf0a0 1754 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1755 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1756 }
metin.ozkan@analog.com 0:788f63dcf0a0 1757
metin.ozkan@analog.com 0:788f63dcf0a0 1758 *thm_cool = (thm_cool_t)reg_cnfg_chg_a.bits.thm_cool;
metin.ozkan@analog.com 0:788f63dcf0a0 1759
metin.ozkan@analog.com 0:788f63dcf0a0 1760 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1761 }
metin.ozkan@analog.com 0:788f63dcf0a0 1762
metin.ozkan@analog.com 0:788f63dcf0a0 1763 int MAX77654::SetCOLDJEITATemperature(thm_cold_t thm_cold)
metin.ozkan@analog.com 0:788f63dcf0a0 1764 {
Okan Sahin 3:1e7cafcfdae7 1765 reg_cnfg_chg_a_t reg_cnfg_chg_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1766
metin.ozkan@analog.com 0:788f63dcf0a0 1767 SET_BIT_FIELD(CNFG_CHG_A, reg_cnfg_chg_a, reg_cnfg_chg_a.bits.thm_cold, thm_cold);
metin.ozkan@analog.com 0:788f63dcf0a0 1768
metin.ozkan@analog.com 0:788f63dcf0a0 1769 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1770 }
metin.ozkan@analog.com 0:788f63dcf0a0 1771
metin.ozkan@analog.com 0:788f63dcf0a0 1772 int MAX77654::GetCOLDJEITATemperature(thm_cold_t *thm_cold)
metin.ozkan@analog.com 0:788f63dcf0a0 1773 {
metin.ozkan@analog.com 0:788f63dcf0a0 1774 int ret;
Okan Sahin 3:1e7cafcfdae7 1775 reg_cnfg_chg_a_t reg_cnfg_chg_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1776
metin.ozkan@analog.com 0:788f63dcf0a0 1777 ret = read_register(CNFG_CHG_A, (uint8_t *)&(reg_cnfg_chg_a));
metin.ozkan@analog.com 0:788f63dcf0a0 1778 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1779 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1780 }
metin.ozkan@analog.com 0:788f63dcf0a0 1781
metin.ozkan@analog.com 0:788f63dcf0a0 1782 *thm_cold = (thm_cold_t)reg_cnfg_chg_a.bits.thm_cold;
metin.ozkan@analog.com 0:788f63dcf0a0 1783
metin.ozkan@analog.com 0:788f63dcf0a0 1784 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1785 }
metin.ozkan@analog.com 0:788f63dcf0a0 1786
metin.ozkan@analog.com 0:788f63dcf0a0 1787 int MAX77654::SetMinimumCHGINVoltage(vchgin_min_t vchgin_min)
metin.ozkan@analog.com 0:788f63dcf0a0 1788 {
Okan Sahin 3:1e7cafcfdae7 1789 reg_cnfg_chg_b_t reg_cnfg_chg_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1790
metin.ozkan@analog.com 0:788f63dcf0a0 1791 SET_BIT_FIELD(CNFG_CHG_B, reg_cnfg_chg_b, reg_cnfg_chg_b.bits.vchgin_min, vchgin_min);
metin.ozkan@analog.com 0:788f63dcf0a0 1792
metin.ozkan@analog.com 0:788f63dcf0a0 1793 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1794 }
metin.ozkan@analog.com 0:788f63dcf0a0 1795
metin.ozkan@analog.com 0:788f63dcf0a0 1796 int MAX77654::GetMinimumCHGINVoltage(vchgin_min_t *vchgin_min)
metin.ozkan@analog.com 0:788f63dcf0a0 1797 {
metin.ozkan@analog.com 0:788f63dcf0a0 1798 int ret;
Okan Sahin 3:1e7cafcfdae7 1799 reg_cnfg_chg_b_t reg_cnfg_chg_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1800
metin.ozkan@analog.com 0:788f63dcf0a0 1801 ret = read_register(CNFG_CHG_B, (uint8_t *)&(reg_cnfg_chg_b));
metin.ozkan@analog.com 0:788f63dcf0a0 1802 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1803 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1804 }
metin.ozkan@analog.com 0:788f63dcf0a0 1805
metin.ozkan@analog.com 0:788f63dcf0a0 1806 *vchgin_min = (vchgin_min_t)reg_cnfg_chg_b.bits.vchgin_min;
metin.ozkan@analog.com 0:788f63dcf0a0 1807
metin.ozkan@analog.com 0:788f63dcf0a0 1808 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1809 }
metin.ozkan@analog.com 0:788f63dcf0a0 1810
metin.ozkan@analog.com 0:788f63dcf0a0 1811 int MAX77654::SetCHGINInputCurrentLimit(ichgin_lim_t ichgin_lim)
metin.ozkan@analog.com 0:788f63dcf0a0 1812 {
Okan Sahin 3:1e7cafcfdae7 1813 reg_cnfg_chg_b_t reg_cnfg_chg_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1814
metin.ozkan@analog.com 0:788f63dcf0a0 1815 SET_BIT_FIELD(CNFG_CHG_B, reg_cnfg_chg_b, reg_cnfg_chg_b.bits.ichgin_lim, ichgin_lim);
metin.ozkan@analog.com 0:788f63dcf0a0 1816
metin.ozkan@analog.com 0:788f63dcf0a0 1817 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1818 }
metin.ozkan@analog.com 0:788f63dcf0a0 1819
metin.ozkan@analog.com 0:788f63dcf0a0 1820 int MAX77654::GetCHGINInputCurrentLimit(ichgin_lim_t *ichgin_lim)
metin.ozkan@analog.com 0:788f63dcf0a0 1821 {
metin.ozkan@analog.com 0:788f63dcf0a0 1822 int ret;
Okan Sahin 3:1e7cafcfdae7 1823 reg_cnfg_chg_b_t reg_cnfg_chg_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1824
metin.ozkan@analog.com 0:788f63dcf0a0 1825 ret = read_register(CNFG_CHG_B, (uint8_t *)&(reg_cnfg_chg_b));
metin.ozkan@analog.com 0:788f63dcf0a0 1826 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1827 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1828 }
metin.ozkan@analog.com 0:788f63dcf0a0 1829
metin.ozkan@analog.com 0:788f63dcf0a0 1830 *ichgin_lim = (ichgin_lim_t)reg_cnfg_chg_b.bits.ichgin_lim;
metin.ozkan@analog.com 0:788f63dcf0a0 1831
metin.ozkan@analog.com 0:788f63dcf0a0 1832 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1833 }
metin.ozkan@analog.com 0:788f63dcf0a0 1834
metin.ozkan@analog.com 0:788f63dcf0a0 1835 int MAX77654::SetPrequalificationChargeCurrent(i_pq_t i_pq)
metin.ozkan@analog.com 0:788f63dcf0a0 1836 {
Okan Sahin 3:1e7cafcfdae7 1837 reg_cnfg_chg_b_t reg_cnfg_chg_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1838
metin.ozkan@analog.com 0:788f63dcf0a0 1839 SET_BIT_FIELD(CNFG_CHG_B, reg_cnfg_chg_b, reg_cnfg_chg_b.bits.i_pq, i_pq);
metin.ozkan@analog.com 0:788f63dcf0a0 1840
metin.ozkan@analog.com 0:788f63dcf0a0 1841 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1842 }
metin.ozkan@analog.com 0:788f63dcf0a0 1843
metin.ozkan@analog.com 0:788f63dcf0a0 1844 int MAX77654::GetPrequalificationChargeCurrent(i_pq_t *i_pq)
metin.ozkan@analog.com 0:788f63dcf0a0 1845 {
metin.ozkan@analog.com 0:788f63dcf0a0 1846 int ret;
Okan Sahin 3:1e7cafcfdae7 1847 reg_cnfg_chg_b_t reg_cnfg_chg_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1848
metin.ozkan@analog.com 0:788f63dcf0a0 1849 ret = read_register(CNFG_CHG_B, (uint8_t *)&(reg_cnfg_chg_b));
metin.ozkan@analog.com 0:788f63dcf0a0 1850 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1851 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1852 }
metin.ozkan@analog.com 0:788f63dcf0a0 1853
metin.ozkan@analog.com 0:788f63dcf0a0 1854 *i_pq = (i_pq_t)reg_cnfg_chg_b.bits.i_pq;
metin.ozkan@analog.com 0:788f63dcf0a0 1855
metin.ozkan@analog.com 0:788f63dcf0a0 1856 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1857 }
metin.ozkan@analog.com 0:788f63dcf0a0 1858
metin.ozkan@analog.com 0:788f63dcf0a0 1859 int MAX77654::SetBatteryChargerEnable(chg_en_t chg_en)
metin.ozkan@analog.com 0:788f63dcf0a0 1860 {
Okan Sahin 3:1e7cafcfdae7 1861 reg_cnfg_chg_b_t reg_cnfg_chg_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1862
metin.ozkan@analog.com 0:788f63dcf0a0 1863 SET_BIT_FIELD(CNFG_CHG_B, reg_cnfg_chg_b, reg_cnfg_chg_b.bits.chg_en, chg_en);
metin.ozkan@analog.com 0:788f63dcf0a0 1864
metin.ozkan@analog.com 0:788f63dcf0a0 1865 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1866 }
metin.ozkan@analog.com 0:788f63dcf0a0 1867
metin.ozkan@analog.com 0:788f63dcf0a0 1868 int MAX77654::GetBatteryChargerEnable(chg_en_t *chg_en)
metin.ozkan@analog.com 0:788f63dcf0a0 1869 {
metin.ozkan@analog.com 0:788f63dcf0a0 1870 int ret;
Okan Sahin 3:1e7cafcfdae7 1871 reg_cnfg_chg_b_t reg_cnfg_chg_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1872
metin.ozkan@analog.com 0:788f63dcf0a0 1873 ret = read_register(CNFG_CHG_B, (uint8_t *)&(reg_cnfg_chg_b));
metin.ozkan@analog.com 0:788f63dcf0a0 1874 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1875 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1876 }
metin.ozkan@analog.com 0:788f63dcf0a0 1877
metin.ozkan@analog.com 0:788f63dcf0a0 1878 *chg_en = (chg_en_t)reg_cnfg_chg_b.bits.chg_en;
metin.ozkan@analog.com 0:788f63dcf0a0 1879
metin.ozkan@analog.com 0:788f63dcf0a0 1880 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1881 }
metin.ozkan@analog.com 0:788f63dcf0a0 1882
metin.ozkan@analog.com 0:788f63dcf0a0 1883 int MAX77654::SetBatteryPQVoltageThreshold(chg_pq_t chg_pq)
metin.ozkan@analog.com 0:788f63dcf0a0 1884 {
Okan Sahin 3:1e7cafcfdae7 1885 reg_cnfg_chg_c_t reg_cnfg_chg_c = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1886
metin.ozkan@analog.com 0:788f63dcf0a0 1887 SET_BIT_FIELD(CNFG_CHG_C, reg_cnfg_chg_c, reg_cnfg_chg_c.bits.chg_pq, chg_pq);
metin.ozkan@analog.com 0:788f63dcf0a0 1888
metin.ozkan@analog.com 0:788f63dcf0a0 1889 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1890 }
metin.ozkan@analog.com 0:788f63dcf0a0 1891
metin.ozkan@analog.com 0:788f63dcf0a0 1892 int MAX77654::GetBatteryPQVoltageThreshold(chg_pq_t *chg_pq)
metin.ozkan@analog.com 0:788f63dcf0a0 1893 {
metin.ozkan@analog.com 0:788f63dcf0a0 1894 int ret;
Okan Sahin 3:1e7cafcfdae7 1895 reg_cnfg_chg_c_t reg_cnfg_chg_c = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1896
metin.ozkan@analog.com 0:788f63dcf0a0 1897 ret = read_register(CNFG_CHG_C, (uint8_t *)&(reg_cnfg_chg_c));
metin.ozkan@analog.com 0:788f63dcf0a0 1898 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1899 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1900 }
metin.ozkan@analog.com 0:788f63dcf0a0 1901
metin.ozkan@analog.com 0:788f63dcf0a0 1902 *chg_pq = (chg_pq_t)reg_cnfg_chg_c.bits.chg_pq;
metin.ozkan@analog.com 0:788f63dcf0a0 1903
metin.ozkan@analog.com 0:788f63dcf0a0 1904 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1905 }
metin.ozkan@analog.com 0:788f63dcf0a0 1906
metin.ozkan@analog.com 0:788f63dcf0a0 1907 int MAX77654::SetChargerTerminationCurrent(i_term_t i_term)
metin.ozkan@analog.com 0:788f63dcf0a0 1908 {
Okan Sahin 3:1e7cafcfdae7 1909 reg_cnfg_chg_c_t reg_cnfg_chg_c = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1910
metin.ozkan@analog.com 0:788f63dcf0a0 1911 SET_BIT_FIELD(CNFG_CHG_C, reg_cnfg_chg_c, reg_cnfg_chg_c.bits.i_term, i_term);
metin.ozkan@analog.com 0:788f63dcf0a0 1912
metin.ozkan@analog.com 0:788f63dcf0a0 1913 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1914 }
metin.ozkan@analog.com 0:788f63dcf0a0 1915
metin.ozkan@analog.com 0:788f63dcf0a0 1916 int MAX77654::GetChargerTerminationCurrent(i_term_t *i_term)
metin.ozkan@analog.com 0:788f63dcf0a0 1917 {
metin.ozkan@analog.com 0:788f63dcf0a0 1918 int ret;
Okan Sahin 3:1e7cafcfdae7 1919 reg_cnfg_chg_c_t reg_cnfg_chg_c = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1920
metin.ozkan@analog.com 0:788f63dcf0a0 1921 ret = read_register(CNFG_CHG_C, (uint8_t *)&(reg_cnfg_chg_c));
metin.ozkan@analog.com 0:788f63dcf0a0 1922 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1923 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1924 }
metin.ozkan@analog.com 0:788f63dcf0a0 1925
metin.ozkan@analog.com 0:788f63dcf0a0 1926 *i_term = (i_term_t)reg_cnfg_chg_c.bits.i_term;
metin.ozkan@analog.com 0:788f63dcf0a0 1927
metin.ozkan@analog.com 0:788f63dcf0a0 1928 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1929 }
metin.ozkan@analog.com 0:788f63dcf0a0 1930
metin.ozkan@analog.com 0:788f63dcf0a0 1931 int MAX77654::SetTopOffTimerValue(t_topoff_t t_topoff)
metin.ozkan@analog.com 0:788f63dcf0a0 1932 {
Okan Sahin 3:1e7cafcfdae7 1933 reg_cnfg_chg_c_t reg_cnfg_chg_c = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1934
metin.ozkan@analog.com 0:788f63dcf0a0 1935 SET_BIT_FIELD(CNFG_CHG_C, reg_cnfg_chg_c, reg_cnfg_chg_c.bits.t_topoff, t_topoff);
metin.ozkan@analog.com 0:788f63dcf0a0 1936
metin.ozkan@analog.com 0:788f63dcf0a0 1937 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1938 }
metin.ozkan@analog.com 0:788f63dcf0a0 1939
metin.ozkan@analog.com 0:788f63dcf0a0 1940 int MAX77654::GetTopOffTimerValue(t_topoff_t *t_topoff)
metin.ozkan@analog.com 0:788f63dcf0a0 1941 {
metin.ozkan@analog.com 0:788f63dcf0a0 1942 int ret;
Okan Sahin 3:1e7cafcfdae7 1943 reg_cnfg_chg_c_t reg_cnfg_chg_c = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1944
metin.ozkan@analog.com 0:788f63dcf0a0 1945 ret = read_register(CNFG_CHG_C, (uint8_t *)&(reg_cnfg_chg_c));
metin.ozkan@analog.com 0:788f63dcf0a0 1946 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1947 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1948 }
metin.ozkan@analog.com 0:788f63dcf0a0 1949
metin.ozkan@analog.com 0:788f63dcf0a0 1950 *t_topoff = (t_topoff_t)reg_cnfg_chg_c.bits.t_topoff;
metin.ozkan@analog.com 0:788f63dcf0a0 1951
metin.ozkan@analog.com 0:788f63dcf0a0 1952 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1953 }
metin.ozkan@analog.com 0:788f63dcf0a0 1954
metin.ozkan@analog.com 0:788f63dcf0a0 1955 int MAX77654::SetDieJunctionTemperature(tj_reg_t tj_reg)
metin.ozkan@analog.com 0:788f63dcf0a0 1956 {
Okan Sahin 3:1e7cafcfdae7 1957 reg_cnfg_chg_d_t reg_cnfg_chg_d = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1958
metin.ozkan@analog.com 0:788f63dcf0a0 1959 SET_BIT_FIELD(CNFG_CHG_D, reg_cnfg_chg_d, reg_cnfg_chg_d.bits.tj_reg, tj_reg);
metin.ozkan@analog.com 0:788f63dcf0a0 1960
metin.ozkan@analog.com 0:788f63dcf0a0 1961 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1962 }
metin.ozkan@analog.com 0:788f63dcf0a0 1963
metin.ozkan@analog.com 0:788f63dcf0a0 1964 int MAX77654::GetDieJunctionTemperature(tj_reg_t *tj_reg)
metin.ozkan@analog.com 0:788f63dcf0a0 1965 {
metin.ozkan@analog.com 0:788f63dcf0a0 1966 int ret;
Okan Sahin 3:1e7cafcfdae7 1967 reg_cnfg_chg_d_t reg_cnfg_chg_d = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1968
metin.ozkan@analog.com 0:788f63dcf0a0 1969 ret = read_register(CNFG_CHG_D, (uint8_t *)&(reg_cnfg_chg_d));
metin.ozkan@analog.com 0:788f63dcf0a0 1970 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1971 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1972 }
metin.ozkan@analog.com 0:788f63dcf0a0 1973
metin.ozkan@analog.com 0:788f63dcf0a0 1974 *tj_reg = (tj_reg_t)reg_cnfg_chg_d.bits.tj_reg;
metin.ozkan@analog.com 0:788f63dcf0a0 1975
metin.ozkan@analog.com 0:788f63dcf0a0 1976 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1977 }
metin.ozkan@analog.com 0:788f63dcf0a0 1978
metin.ozkan@analog.com 0:788f63dcf0a0 1979 int MAX77654::SetSystemVoltageRegulation(vsys_reg_t vsys_reg)
metin.ozkan@analog.com 0:788f63dcf0a0 1980 {
Okan Sahin 3:1e7cafcfdae7 1981 reg_cnfg_chg_d_t reg_cnfg_chg_d = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1982
metin.ozkan@analog.com 0:788f63dcf0a0 1983 SET_BIT_FIELD(CNFG_CHG_D, reg_cnfg_chg_d, reg_cnfg_chg_d.bits.vsys_reg, vsys_reg);
metin.ozkan@analog.com 0:788f63dcf0a0 1984
metin.ozkan@analog.com 0:788f63dcf0a0 1985 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 1986 }
metin.ozkan@analog.com 0:788f63dcf0a0 1987
metin.ozkan@analog.com 0:788f63dcf0a0 1988 int MAX77654::GetSystemVoltageRegulation(vsys_reg_t *vsys_reg)
metin.ozkan@analog.com 0:788f63dcf0a0 1989 {
metin.ozkan@analog.com 0:788f63dcf0a0 1990 int ret;
Okan Sahin 3:1e7cafcfdae7 1991 reg_cnfg_chg_d_t reg_cnfg_chg_d = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 1992
metin.ozkan@analog.com 0:788f63dcf0a0 1993 ret = read_register(CNFG_CHG_D, (uint8_t *)&(reg_cnfg_chg_d));
metin.ozkan@analog.com 0:788f63dcf0a0 1994 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 1995 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 1996 }
metin.ozkan@analog.com 0:788f63dcf0a0 1997
metin.ozkan@analog.com 0:788f63dcf0a0 1998 *vsys_reg = (vsys_reg_t)reg_cnfg_chg_d.bits.vsys_reg;
metin.ozkan@analog.com 0:788f63dcf0a0 1999
metin.ozkan@analog.com 0:788f63dcf0a0 2000 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2001 }
metin.ozkan@analog.com 0:788f63dcf0a0 2002
metin.ozkan@analog.com 0:788f63dcf0a0 2003 int MAX77654::SetFastChargeCCValue(chg_cc_t chg_cc)
metin.ozkan@analog.com 0:788f63dcf0a0 2004 {
Okan Sahin 3:1e7cafcfdae7 2005 reg_cnfg_chg_e_t reg_cnfg_chg_e = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2006
metin.ozkan@analog.com 0:788f63dcf0a0 2007 SET_BIT_FIELD(CNFG_CHG_E, reg_cnfg_chg_e, reg_cnfg_chg_e.bits.chg_cc, chg_cc);
metin.ozkan@analog.com 0:788f63dcf0a0 2008
metin.ozkan@analog.com 0:788f63dcf0a0 2009 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2010 }
metin.ozkan@analog.com 0:788f63dcf0a0 2011
metin.ozkan@analog.com 0:788f63dcf0a0 2012 int MAX77654::GetFastChargeCCValue(chg_cc_t *chg_cc)
metin.ozkan@analog.com 0:788f63dcf0a0 2013 {
metin.ozkan@analog.com 0:788f63dcf0a0 2014 int ret;
Okan Sahin 3:1e7cafcfdae7 2015 reg_cnfg_chg_e_t reg_cnfg_chg_e = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2016
metin.ozkan@analog.com 0:788f63dcf0a0 2017 ret = read_register(CNFG_CHG_E, (uint8_t *)&(reg_cnfg_chg_e));
metin.ozkan@analog.com 0:788f63dcf0a0 2018 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2019 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2020 }
metin.ozkan@analog.com 0:788f63dcf0a0 2021
metin.ozkan@analog.com 0:788f63dcf0a0 2022 *chg_cc = (chg_cc_t)reg_cnfg_chg_e.bits.chg_cc;
metin.ozkan@analog.com 0:788f63dcf0a0 2023
metin.ozkan@analog.com 0:788f63dcf0a0 2024 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2025 }
metin.ozkan@analog.com 0:788f63dcf0a0 2026
metin.ozkan@analog.com 0:788f63dcf0a0 2027 int MAX77654::SetFastChargSafetyTimer(t_fast_chg_t t_fast_chg)
metin.ozkan@analog.com 0:788f63dcf0a0 2028 {
Okan Sahin 3:1e7cafcfdae7 2029 reg_cnfg_chg_e_t reg_cnfg_chg_e = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2030
metin.ozkan@analog.com 0:788f63dcf0a0 2031 SET_BIT_FIELD(CNFG_CHG_E, reg_cnfg_chg_e, reg_cnfg_chg_e.bits.t_fast_chg, t_fast_chg);
metin.ozkan@analog.com 0:788f63dcf0a0 2032
metin.ozkan@analog.com 0:788f63dcf0a0 2033 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2034 }
metin.ozkan@analog.com 0:788f63dcf0a0 2035
metin.ozkan@analog.com 0:788f63dcf0a0 2036 int MAX77654::GetFastChargSafetyTimer(t_fast_chg_t *t_fast_chg)
metin.ozkan@analog.com 0:788f63dcf0a0 2037 {
metin.ozkan@analog.com 0:788f63dcf0a0 2038 int ret;
Okan Sahin 3:1e7cafcfdae7 2039 reg_cnfg_chg_e_t reg_cnfg_chg_e = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2040
metin.ozkan@analog.com 0:788f63dcf0a0 2041 ret = read_register(CNFG_CHG_E, (uint8_t *)&(reg_cnfg_chg_e));
metin.ozkan@analog.com 0:788f63dcf0a0 2042 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2043 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2044 }
metin.ozkan@analog.com 0:788f63dcf0a0 2045
metin.ozkan@analog.com 0:788f63dcf0a0 2046 *t_fast_chg = (t_fast_chg_t)reg_cnfg_chg_e.bits.t_fast_chg;
metin.ozkan@analog.com 0:788f63dcf0a0 2047
metin.ozkan@analog.com 0:788f63dcf0a0 2048 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2049 }
metin.ozkan@analog.com 0:788f63dcf0a0 2050
metin.ozkan@analog.com 0:788f63dcf0a0 2051 int MAX77654::SetFastChargeCCJEITA(chg_cc_t chg_cc_jeita)
metin.ozkan@analog.com 0:788f63dcf0a0 2052 {
Okan Sahin 3:1e7cafcfdae7 2053 reg_cnfg_chg_f_t reg_cnfg_chg_f = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2054
metin.ozkan@analog.com 0:788f63dcf0a0 2055 SET_BIT_FIELD(CNFG_CHG_F, reg_cnfg_chg_f, reg_cnfg_chg_f.bits.chg_cc_jeita, chg_cc_jeita);
metin.ozkan@analog.com 0:788f63dcf0a0 2056
metin.ozkan@analog.com 0:788f63dcf0a0 2057 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2058 }
metin.ozkan@analog.com 0:788f63dcf0a0 2059
metin.ozkan@analog.com 0:788f63dcf0a0 2060 int MAX77654::GetFastChargeCCJEITA(chg_cc_t *chg_cc_jeita)
metin.ozkan@analog.com 0:788f63dcf0a0 2061 {
metin.ozkan@analog.com 0:788f63dcf0a0 2062 int ret;
Okan Sahin 3:1e7cafcfdae7 2063 reg_cnfg_chg_f_t reg_cnfg_chg_f = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2064
metin.ozkan@analog.com 0:788f63dcf0a0 2065 ret = read_register(CNFG_CHG_F, (uint8_t *)&(reg_cnfg_chg_f));
metin.ozkan@analog.com 0:788f63dcf0a0 2066 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2067 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2068 }
metin.ozkan@analog.com 0:788f63dcf0a0 2069
metin.ozkan@analog.com 0:788f63dcf0a0 2070 *chg_cc_jeita = (chg_cc_t)reg_cnfg_chg_f.bits.chg_cc_jeita;
metin.ozkan@analog.com 0:788f63dcf0a0 2071
metin.ozkan@analog.com 0:788f63dcf0a0 2072 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2073 }
metin.ozkan@analog.com 0:788f63dcf0a0 2074
metin.ozkan@analog.com 0:788f63dcf0a0 2075 int MAX77654::SetThermistorEnable(thm_en_t thm_en)
metin.ozkan@analog.com 0:788f63dcf0a0 2076 {
Okan Sahin 3:1e7cafcfdae7 2077 reg_cnfg_chg_f_t reg_cnfg_chg_f = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2078
metin.ozkan@analog.com 0:788f63dcf0a0 2079 SET_BIT_FIELD(CNFG_CHG_F, reg_cnfg_chg_f, reg_cnfg_chg_f.bits.thm_en, thm_en);
metin.ozkan@analog.com 0:788f63dcf0a0 2080
metin.ozkan@analog.com 0:788f63dcf0a0 2081 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2082 }
metin.ozkan@analog.com 0:788f63dcf0a0 2083
metin.ozkan@analog.com 0:788f63dcf0a0 2084 int MAX77654::GetThermistorEnable(thm_en_t *thm_en)
metin.ozkan@analog.com 0:788f63dcf0a0 2085 {
metin.ozkan@analog.com 0:788f63dcf0a0 2086 int ret;
Okan Sahin 3:1e7cafcfdae7 2087 reg_cnfg_chg_f_t reg_cnfg_chg_f = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2088
metin.ozkan@analog.com 0:788f63dcf0a0 2089 ret = read_register(CNFG_CHG_F, (uint8_t *)&(reg_cnfg_chg_f));
metin.ozkan@analog.com 0:788f63dcf0a0 2090 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2091 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2092 }
metin.ozkan@analog.com 0:788f63dcf0a0 2093
metin.ozkan@analog.com 0:788f63dcf0a0 2094 *thm_en = (thm_en_t)reg_cnfg_chg_f.bits.thm_en;
metin.ozkan@analog.com 0:788f63dcf0a0 2095
metin.ozkan@analog.com 0:788f63dcf0a0 2096 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2097 }
metin.ozkan@analog.com 0:788f63dcf0a0 2098
metin.ozkan@analog.com 0:788f63dcf0a0 2099 int MAX77654::SetFastChargeBatteryRegVolt(chg_cv_t chg_cv)
metin.ozkan@analog.com 0:788f63dcf0a0 2100 {
Okan Sahin 3:1e7cafcfdae7 2101 reg_cnfg_chg_g_t reg_cnfg_chg_g = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2102
metin.ozkan@analog.com 0:788f63dcf0a0 2103 SET_BIT_FIELD(CNFG_CHG_G, reg_cnfg_chg_g, reg_cnfg_chg_g.bits.chg_cv, chg_cv);
metin.ozkan@analog.com 0:788f63dcf0a0 2104
metin.ozkan@analog.com 0:788f63dcf0a0 2105 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2106 }
metin.ozkan@analog.com 0:788f63dcf0a0 2107
metin.ozkan@analog.com 0:788f63dcf0a0 2108 int MAX77654::GetFastChargeBatteryRegVolt(chg_cv_t *chg_cv)
metin.ozkan@analog.com 0:788f63dcf0a0 2109 {
metin.ozkan@analog.com 0:788f63dcf0a0 2110 int ret;
Okan Sahin 3:1e7cafcfdae7 2111 reg_cnfg_chg_g_t reg_cnfg_chg_g = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2112
metin.ozkan@analog.com 0:788f63dcf0a0 2113 ret = read_register(CNFG_CHG_G, (uint8_t *)&(reg_cnfg_chg_g));
metin.ozkan@analog.com 0:788f63dcf0a0 2114 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2115 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2116 }
metin.ozkan@analog.com 0:788f63dcf0a0 2117
metin.ozkan@analog.com 0:788f63dcf0a0 2118 *chg_cv = (chg_cv_t)reg_cnfg_chg_g.bits.chg_cv;
metin.ozkan@analog.com 0:788f63dcf0a0 2119
metin.ozkan@analog.com 0:788f63dcf0a0 2120 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2121 }
metin.ozkan@analog.com 0:788f63dcf0a0 2122
metin.ozkan@analog.com 0:788f63dcf0a0 2123 int MAX77654::SetCHGINUSBSuspendMode(usbs_t usbs)
metin.ozkan@analog.com 0:788f63dcf0a0 2124 {
Okan Sahin 3:1e7cafcfdae7 2125 reg_cnfg_chg_g_t reg_cnfg_chg_g = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2126
metin.ozkan@analog.com 0:788f63dcf0a0 2127 SET_BIT_FIELD(CNFG_CHG_G, reg_cnfg_chg_g, reg_cnfg_chg_g.bits.usbs, usbs);
metin.ozkan@analog.com 0:788f63dcf0a0 2128
metin.ozkan@analog.com 0:788f63dcf0a0 2129 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2130 }
metin.ozkan@analog.com 0:788f63dcf0a0 2131
metin.ozkan@analog.com 0:788f63dcf0a0 2132 int MAX77654::GetCHGINUSBSuspendMode(usbs_t *usbs)
metin.ozkan@analog.com 0:788f63dcf0a0 2133 {
metin.ozkan@analog.com 0:788f63dcf0a0 2134 int ret;
Okan Sahin 3:1e7cafcfdae7 2135 reg_cnfg_chg_g_t reg_cnfg_chg_g = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2136
metin.ozkan@analog.com 0:788f63dcf0a0 2137 ret = read_register(CNFG_CHG_G, (uint8_t *)&(reg_cnfg_chg_g));
metin.ozkan@analog.com 0:788f63dcf0a0 2138 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2139 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2140 }
metin.ozkan@analog.com 0:788f63dcf0a0 2141
metin.ozkan@analog.com 0:788f63dcf0a0 2142 *usbs = (usbs_t)reg_cnfg_chg_g.bits.usbs;
metin.ozkan@analog.com 0:788f63dcf0a0 2143
metin.ozkan@analog.com 0:788f63dcf0a0 2144 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2145 }
metin.ozkan@analog.com 0:788f63dcf0a0 2146
metin.ozkan@analog.com 0:788f63dcf0a0 2147 int MAX77654::SetFastChargeVoltageJEITA(chg_cv_t chg_cv_jeita)
metin.ozkan@analog.com 0:788f63dcf0a0 2148 {
Okan Sahin 3:1e7cafcfdae7 2149 reg_cnfg_chg_h_t reg_cnfg_chg_h = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2150
metin.ozkan@analog.com 0:788f63dcf0a0 2151 SET_BIT_FIELD(CNFG_CHG_H, reg_cnfg_chg_h, reg_cnfg_chg_h.bits.chg_cv_jeita, chg_cv_jeita);
metin.ozkan@analog.com 0:788f63dcf0a0 2152
metin.ozkan@analog.com 0:788f63dcf0a0 2153 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2154 }
metin.ozkan@analog.com 0:788f63dcf0a0 2155
metin.ozkan@analog.com 0:788f63dcf0a0 2156 int MAX77654::GetFastChargeVoltageJEITA(chg_cv_t *chg_cv_jeita)
metin.ozkan@analog.com 0:788f63dcf0a0 2157 {
metin.ozkan@analog.com 0:788f63dcf0a0 2158 int ret;
Okan Sahin 3:1e7cafcfdae7 2159 reg_cnfg_chg_h_t reg_cnfg_chg_h = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2160
metin.ozkan@analog.com 0:788f63dcf0a0 2161 ret = read_register(CNFG_CHG_H, (uint8_t *)&(reg_cnfg_chg_h));
metin.ozkan@analog.com 0:788f63dcf0a0 2162 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2163 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2164 }
metin.ozkan@analog.com 0:788f63dcf0a0 2165
metin.ozkan@analog.com 0:788f63dcf0a0 2166 *chg_cv_jeita = (chg_cv_t)reg_cnfg_chg_h.bits.chg_cv_jeita;
metin.ozkan@analog.com 0:788f63dcf0a0 2167
metin.ozkan@analog.com 0:788f63dcf0a0 2168 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2169 }
metin.ozkan@analog.com 0:788f63dcf0a0 2170
metin.ozkan@analog.com 0:788f63dcf0a0 2171 int MAX77654::SetDischargeCurrentFullScale(imon_dischg_scale_t imon_dischg_scale)
metin.ozkan@analog.com 0:788f63dcf0a0 2172 {
Okan Sahin 3:1e7cafcfdae7 2173 reg_cnfg_chg_i_t reg_cnfg_chg_i = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2174
metin.ozkan@analog.com 0:788f63dcf0a0 2175 SET_BIT_FIELD(CNFG_CHG_I, reg_cnfg_chg_i, reg_cnfg_chg_i.bits.imon_dischg_scale, imon_dischg_scale);
metin.ozkan@analog.com 0:788f63dcf0a0 2176
metin.ozkan@analog.com 0:788f63dcf0a0 2177 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2178 }
metin.ozkan@analog.com 0:788f63dcf0a0 2179
metin.ozkan@analog.com 0:788f63dcf0a0 2180 int MAX77654::GetDischargeCurrentFullScale(imon_dischg_scale_t *imon_dischg_scale)
metin.ozkan@analog.com 0:788f63dcf0a0 2181 {
metin.ozkan@analog.com 0:788f63dcf0a0 2182 int ret;
Okan Sahin 3:1e7cafcfdae7 2183 reg_cnfg_chg_i_t reg_cnfg_chg_i = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2184
metin.ozkan@analog.com 0:788f63dcf0a0 2185 ret = read_register(CNFG_CHG_I, (uint8_t *)&(reg_cnfg_chg_i));
metin.ozkan@analog.com 0:788f63dcf0a0 2186 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2187 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2188 }
metin.ozkan@analog.com 0:788f63dcf0a0 2189
metin.ozkan@analog.com 0:788f63dcf0a0 2190 *imon_dischg_scale = (imon_dischg_scale_t)reg_cnfg_chg_i.bits.imon_dischg_scale;
metin.ozkan@analog.com 0:788f63dcf0a0 2191
metin.ozkan@analog.com 0:788f63dcf0a0 2192 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2193 }
metin.ozkan@analog.com 0:788f63dcf0a0 2194
metin.ozkan@analog.com 0:788f63dcf0a0 2195 int MAX77654::SetAMUX(mux_sel_t mux_sel)
metin.ozkan@analog.com 0:788f63dcf0a0 2196 {
Okan Sahin 3:1e7cafcfdae7 2197 reg_cnfg_chg_i_t reg_cnfg_chg_i = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2198
metin.ozkan@analog.com 0:788f63dcf0a0 2199 SET_BIT_FIELD(CNFG_CHG_I, reg_cnfg_chg_i, reg_cnfg_chg_i.bits.mux_sel, mux_sel);
metin.ozkan@analog.com 0:788f63dcf0a0 2200
metin.ozkan@analog.com 0:788f63dcf0a0 2201 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2202 }
metin.ozkan@analog.com 0:788f63dcf0a0 2203
metin.ozkan@analog.com 0:788f63dcf0a0 2204 int MAX77654::GetAMUX(mux_sel_t *mux_sel)
metin.ozkan@analog.com 0:788f63dcf0a0 2205 {
metin.ozkan@analog.com 0:788f63dcf0a0 2206 int ret;
Okan Sahin 3:1e7cafcfdae7 2207 reg_cnfg_chg_i_t reg_cnfg_chg_i = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2208
metin.ozkan@analog.com 0:788f63dcf0a0 2209 ret = read_register(CNFG_CHG_I, (uint8_t *)&(reg_cnfg_chg_i));
metin.ozkan@analog.com 0:788f63dcf0a0 2210 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2211 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2212 }
metin.ozkan@analog.com 0:788f63dcf0a0 2213
metin.ozkan@analog.com 0:788f63dcf0a0 2214 *mux_sel = (mux_sel_t)reg_cnfg_chg_i.bits.mux_sel;
metin.ozkan@analog.com 0:788f63dcf0a0 2215
metin.ozkan@analog.com 0:788f63dcf0a0 2216 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2217 }
metin.ozkan@analog.com 0:788f63dcf0a0 2218
metin.ozkan@analog.com 0:788f63dcf0a0 2219 int MAX77654::SetSBBTargetOutVoltage(uint8_t channel, tv_sbb_t tv_sbb)
metin.ozkan@analog.com 0:788f63dcf0a0 2220 {
metin.ozkan@analog.com 0:788f63dcf0a0 2221 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2222 reg_cnfg_sbb0_a_t reg_cnfg_sbb0_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2223 SET_BIT_FIELD(CNFG_SBB0_A, reg_cnfg_sbb0_a, reg_cnfg_sbb0_a.bits.tv_sbb0, tv_sbb);
metin.ozkan@analog.com 0:788f63dcf0a0 2224 }
metin.ozkan@analog.com 0:788f63dcf0a0 2225 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2226 reg_cnfg_sbb1_a_t reg_cnfg_sbb1_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2227 SET_BIT_FIELD(CNFG_SBB1_A, reg_cnfg_sbb1_a, reg_cnfg_sbb1_a.bits.tv_sbb1, tv_sbb);
metin.ozkan@analog.com 0:788f63dcf0a0 2228 }
metin.ozkan@analog.com 0:788f63dcf0a0 2229 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 2230 reg_cnfg_sbb2_a_t reg_cnfg_sbb2_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2231 SET_BIT_FIELD(CNFG_SBB2_A, reg_cnfg_sbb2_a, reg_cnfg_sbb2_a.bits.tv_sbb2, tv_sbb);
metin.ozkan@analog.com 0:788f63dcf0a0 2232 }
metin.ozkan@analog.com 0:788f63dcf0a0 2233 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2234 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2235 }
metin.ozkan@analog.com 0:788f63dcf0a0 2236
metin.ozkan@analog.com 0:788f63dcf0a0 2237 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2238 }
metin.ozkan@analog.com 0:788f63dcf0a0 2239
metin.ozkan@analog.com 0:788f63dcf0a0 2240 int MAX77654::GetSBBTargetOutVoltage(uint8_t channel, tv_sbb_t *tv_sbb)
metin.ozkan@analog.com 0:788f63dcf0a0 2241 {
metin.ozkan@analog.com 0:788f63dcf0a0 2242 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2243
metin.ozkan@analog.com 0:788f63dcf0a0 2244 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2245 reg_cnfg_sbb0_a_t reg_cnfg_sbb0_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2246 ret = read_register(CNFG_SBB0_A, (uint8_t *)&(reg_cnfg_sbb0_a));
metin.ozkan@analog.com 0:788f63dcf0a0 2247 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2248 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2249 }
metin.ozkan@analog.com 0:788f63dcf0a0 2250 *tv_sbb = (tv_sbb_t)reg_cnfg_sbb0_a.bits.tv_sbb0;
metin.ozkan@analog.com 0:788f63dcf0a0 2251 }
metin.ozkan@analog.com 0:788f63dcf0a0 2252 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2253 reg_cnfg_sbb1_a_t reg_cnfg_sbb1_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2254 ret = read_register(CNFG_SBB1_A, (uint8_t *)&(reg_cnfg_sbb1_a));
metin.ozkan@analog.com 0:788f63dcf0a0 2255 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2256 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2257 }
metin.ozkan@analog.com 0:788f63dcf0a0 2258 *tv_sbb = (tv_sbb_t)reg_cnfg_sbb1_a.bits.tv_sbb1;
metin.ozkan@analog.com 0:788f63dcf0a0 2259 }
metin.ozkan@analog.com 0:788f63dcf0a0 2260 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 2261 reg_cnfg_sbb2_a_t reg_cnfg_sbb2_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2262 ret = read_register(CNFG_SBB2_A, (uint8_t *)&(reg_cnfg_sbb2_a));
metin.ozkan@analog.com 0:788f63dcf0a0 2263 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2264 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2265 }
metin.ozkan@analog.com 0:788f63dcf0a0 2266 *tv_sbb = (tv_sbb_t)reg_cnfg_sbb2_a.bits.tv_sbb2;
metin.ozkan@analog.com 0:788f63dcf0a0 2267 }
metin.ozkan@analog.com 0:788f63dcf0a0 2268 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2269 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2270 }
metin.ozkan@analog.com 0:788f63dcf0a0 2271
metin.ozkan@analog.com 0:788f63dcf0a0 2272 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2273 }
metin.ozkan@analog.com 0:788f63dcf0a0 2274
metin.ozkan@analog.com 0:788f63dcf0a0 2275 int MAX77654::SetSIMOOperationMode(uint8_t channel, op_mode_t op_mode)
metin.ozkan@analog.com 0:788f63dcf0a0 2276 {
metin.ozkan@analog.com 0:788f63dcf0a0 2277 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2278 reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2279 SET_BIT_FIELD(CNFG_SBB0_B, reg_cnfg_sbb0_b, reg_cnfg_sbb0_b.bits.op_mode, op_mode);
metin.ozkan@analog.com 0:788f63dcf0a0 2280 }
metin.ozkan@analog.com 0:788f63dcf0a0 2281 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2282 reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2283 SET_BIT_FIELD(CNFG_SBB1_B, reg_cnfg_sbb1_b, reg_cnfg_sbb1_b.bits.op_mode, op_mode);
metin.ozkan@analog.com 0:788f63dcf0a0 2284 }
metin.ozkan@analog.com 0:788f63dcf0a0 2285 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 2286 reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2287 SET_BIT_FIELD(CNFG_SBB2_B, reg_cnfg_sbb2_b, reg_cnfg_sbb2_b.bits.op_mode, op_mode);
metin.ozkan@analog.com 0:788f63dcf0a0 2288 }
metin.ozkan@analog.com 0:788f63dcf0a0 2289 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2290 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2291 }
metin.ozkan@analog.com 0:788f63dcf0a0 2292
metin.ozkan@analog.com 0:788f63dcf0a0 2293 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2294 }
metin.ozkan@analog.com 0:788f63dcf0a0 2295
metin.ozkan@analog.com 0:788f63dcf0a0 2296 int MAX77654::GetSIMOOperationMode(uint8_t channel, op_mode_t *op_mode)
metin.ozkan@analog.com 0:788f63dcf0a0 2297 {
metin.ozkan@analog.com 0:788f63dcf0a0 2298 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2299
metin.ozkan@analog.com 0:788f63dcf0a0 2300 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2301 reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2302 ret = read_register(CNFG_SBB0_B, (uint8_t *)&(reg_cnfg_sbb0_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2303 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2304 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2305 }
metin.ozkan@analog.com 0:788f63dcf0a0 2306 *op_mode = (op_mode_t)reg_cnfg_sbb0_b.bits.op_mode;
metin.ozkan@analog.com 0:788f63dcf0a0 2307 }
metin.ozkan@analog.com 0:788f63dcf0a0 2308 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2309 reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2310 ret = read_register(CNFG_SBB1_B, (uint8_t *)&(reg_cnfg_sbb1_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2311 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2312 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2313 }
metin.ozkan@analog.com 0:788f63dcf0a0 2314 *op_mode = (op_mode_t)reg_cnfg_sbb1_b.bits.op_mode;
metin.ozkan@analog.com 0:788f63dcf0a0 2315 }
metin.ozkan@analog.com 0:788f63dcf0a0 2316 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 2317 reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2318 ret = read_register(CNFG_SBB2_B, (uint8_t *)&(reg_cnfg_sbb2_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2319 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2320 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2321 }
metin.ozkan@analog.com 0:788f63dcf0a0 2322 *op_mode = (op_mode_t)reg_cnfg_sbb2_b.bits.op_mode;
metin.ozkan@analog.com 0:788f63dcf0a0 2323 }
metin.ozkan@analog.com 0:788f63dcf0a0 2324 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2325 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2326 }
metin.ozkan@analog.com 0:788f63dcf0a0 2327
metin.ozkan@analog.com 0:788f63dcf0a0 2328 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2329 }
metin.ozkan@analog.com 0:788f63dcf0a0 2330
metin.ozkan@analog.com 0:788f63dcf0a0 2331 int MAX77654::SetSBBPeakCurrentLimit(uint8_t channel, ip_sbb_t ip_sbb)
metin.ozkan@analog.com 0:788f63dcf0a0 2332 {
metin.ozkan@analog.com 0:788f63dcf0a0 2333 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2334 reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2335 SET_BIT_FIELD(CNFG_SBB0_B, reg_cnfg_sbb0_b, reg_cnfg_sbb0_b.bits.ip_sbb0, ip_sbb);
metin.ozkan@analog.com 0:788f63dcf0a0 2336 }
metin.ozkan@analog.com 0:788f63dcf0a0 2337 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2338 reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2339 SET_BIT_FIELD(CNFG_SBB1_B, reg_cnfg_sbb1_b, reg_cnfg_sbb1_b.bits.ip_sbb1, ip_sbb);
metin.ozkan@analog.com 0:788f63dcf0a0 2340 }
metin.ozkan@analog.com 0:788f63dcf0a0 2341 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 2342 reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2343 SET_BIT_FIELD(CNFG_SBB2_B, reg_cnfg_sbb2_b, reg_cnfg_sbb2_b.bits.ip_sbb2, ip_sbb);
metin.ozkan@analog.com 0:788f63dcf0a0 2344 }
metin.ozkan@analog.com 0:788f63dcf0a0 2345 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2346 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2347 }
metin.ozkan@analog.com 0:788f63dcf0a0 2348
metin.ozkan@analog.com 0:788f63dcf0a0 2349 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2350 }
metin.ozkan@analog.com 0:788f63dcf0a0 2351
metin.ozkan@analog.com 0:788f63dcf0a0 2352 int MAX77654::GetSBBPeakCurrentLimit(uint8_t channel, ip_sbb_t *ip_sbb)
metin.ozkan@analog.com 0:788f63dcf0a0 2353 {
metin.ozkan@analog.com 0:788f63dcf0a0 2354 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2355
metin.ozkan@analog.com 0:788f63dcf0a0 2356 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2357 reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2358 ret = read_register(CNFG_SBB0_B, (uint8_t *)&(reg_cnfg_sbb0_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2359 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2360 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2361 }
metin.ozkan@analog.com 0:788f63dcf0a0 2362 *ip_sbb = (ip_sbb_t)reg_cnfg_sbb0_b.bits.ip_sbb0;
metin.ozkan@analog.com 0:788f63dcf0a0 2363 }
metin.ozkan@analog.com 0:788f63dcf0a0 2364 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2365 reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2366 ret = read_register(CNFG_SBB1_B, (uint8_t *)&(reg_cnfg_sbb1_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2367 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2368 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2369 }
metin.ozkan@analog.com 0:788f63dcf0a0 2370 *ip_sbb = (ip_sbb_t)reg_cnfg_sbb1_b.bits.ip_sbb1;
metin.ozkan@analog.com 0:788f63dcf0a0 2371 }
metin.ozkan@analog.com 0:788f63dcf0a0 2372 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 2373 reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2374 ret = read_register(CNFG_SBB2_B, (uint8_t *)&(reg_cnfg_sbb2_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2375 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2376 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2377 }
metin.ozkan@analog.com 0:788f63dcf0a0 2378 *ip_sbb = (ip_sbb_t)reg_cnfg_sbb2_b.bits.ip_sbb2;
metin.ozkan@analog.com 0:788f63dcf0a0 2379 }
metin.ozkan@analog.com 0:788f63dcf0a0 2380 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2381 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2382 }
metin.ozkan@analog.com 0:788f63dcf0a0 2383
metin.ozkan@analog.com 0:788f63dcf0a0 2384 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2385 }
metin.ozkan@analog.com 0:788f63dcf0a0 2386
metin.ozkan@analog.com 0:788f63dcf0a0 2387 int MAX77654::SetSBBActiveDischargeEnable(uint8_t channel, ade_sbb_t ade_sbb)
metin.ozkan@analog.com 0:788f63dcf0a0 2388 {
metin.ozkan@analog.com 0:788f63dcf0a0 2389 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2390 reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2391 SET_BIT_FIELD(CNFG_SBB0_B, reg_cnfg_sbb0_b, reg_cnfg_sbb0_b.bits.ade_sbb0, ade_sbb);
metin.ozkan@analog.com 0:788f63dcf0a0 2392 }
metin.ozkan@analog.com 0:788f63dcf0a0 2393 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2394 reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2395 SET_BIT_FIELD(CNFG_SBB1_B, reg_cnfg_sbb1_b, reg_cnfg_sbb1_b.bits.ade_sbb1, ade_sbb);
metin.ozkan@analog.com 0:788f63dcf0a0 2396 }
metin.ozkan@analog.com 0:788f63dcf0a0 2397 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 2398 reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2399 SET_BIT_FIELD(CNFG_SBB2_B, reg_cnfg_sbb2_b, reg_cnfg_sbb2_b.bits.ade_sbb2, ade_sbb);
metin.ozkan@analog.com 0:788f63dcf0a0 2400 }
metin.ozkan@analog.com 0:788f63dcf0a0 2401 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2402 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2403 }
metin.ozkan@analog.com 0:788f63dcf0a0 2404
metin.ozkan@analog.com 0:788f63dcf0a0 2405 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2406 }
metin.ozkan@analog.com 0:788f63dcf0a0 2407
metin.ozkan@analog.com 0:788f63dcf0a0 2408 int MAX77654::GetSBBActiveDischargeEnable(uint8_t channel, ade_sbb_t *ade_sbb)
metin.ozkan@analog.com 0:788f63dcf0a0 2409 {
metin.ozkan@analog.com 0:788f63dcf0a0 2410 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2411
metin.ozkan@analog.com 0:788f63dcf0a0 2412 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2413 reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2414 ret = read_register(CNFG_SBB0_B, (uint8_t *)&(reg_cnfg_sbb0_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2415 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2416 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2417 }
metin.ozkan@analog.com 0:788f63dcf0a0 2418 *ade_sbb = (ade_sbb_t)reg_cnfg_sbb0_b.bits.ade_sbb0;
metin.ozkan@analog.com 0:788f63dcf0a0 2419 }
metin.ozkan@analog.com 0:788f63dcf0a0 2420 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2421 reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2422 ret = read_register(CNFG_SBB1_B, (uint8_t *)&(reg_cnfg_sbb1_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2423 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2424 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2425 }
metin.ozkan@analog.com 0:788f63dcf0a0 2426 *ade_sbb = (ade_sbb_t)reg_cnfg_sbb1_b.bits.ade_sbb1;
metin.ozkan@analog.com 0:788f63dcf0a0 2427 }
metin.ozkan@analog.com 0:788f63dcf0a0 2428 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 2429 reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2430 ret = read_register(CNFG_SBB2_B, (uint8_t *)&(reg_cnfg_sbb2_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2431 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2432 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2433 }
metin.ozkan@analog.com 0:788f63dcf0a0 2434 *ade_sbb = (ade_sbb_t)reg_cnfg_sbb2_b.bits.ade_sbb2;
metin.ozkan@analog.com 0:788f63dcf0a0 2435 }
metin.ozkan@analog.com 0:788f63dcf0a0 2436 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2437 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2438 }
metin.ozkan@analog.com 0:788f63dcf0a0 2439
metin.ozkan@analog.com 0:788f63dcf0a0 2440 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2441 }
metin.ozkan@analog.com 0:788f63dcf0a0 2442
metin.ozkan@analog.com 0:788f63dcf0a0 2443 int MAX77654::SetSBBEnableControl(uint8_t channel, en_sbb_t en_sbb)
metin.ozkan@analog.com 0:788f63dcf0a0 2444 {
metin.ozkan@analog.com 0:788f63dcf0a0 2445 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2446 reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2447 SET_BIT_FIELD(CNFG_SBB0_B, reg_cnfg_sbb0_b, reg_cnfg_sbb0_b.bits.en_sbb0, en_sbb);
metin.ozkan@analog.com 0:788f63dcf0a0 2448 }
metin.ozkan@analog.com 0:788f63dcf0a0 2449 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2450 reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2451 SET_BIT_FIELD(CNFG_SBB1_B, reg_cnfg_sbb1_b, reg_cnfg_sbb1_b.bits.en_sbb1, en_sbb);
metin.ozkan@analog.com 0:788f63dcf0a0 2452 }
metin.ozkan@analog.com 0:788f63dcf0a0 2453 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 2454 reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2455 SET_BIT_FIELD(CNFG_SBB2_B, reg_cnfg_sbb2_b, reg_cnfg_sbb2_b.bits.en_sbb2, en_sbb);
metin.ozkan@analog.com 0:788f63dcf0a0 2456 }
metin.ozkan@analog.com 0:788f63dcf0a0 2457 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2458 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2459 }
metin.ozkan@analog.com 0:788f63dcf0a0 2460
metin.ozkan@analog.com 0:788f63dcf0a0 2461 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2462 }
metin.ozkan@analog.com 0:788f63dcf0a0 2463
metin.ozkan@analog.com 0:788f63dcf0a0 2464 int MAX77654::GetSBBEnableControl(uint8_t channel, en_sbb_t *en_sbb)
metin.ozkan@analog.com 0:788f63dcf0a0 2465 {
metin.ozkan@analog.com 0:788f63dcf0a0 2466 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2467
metin.ozkan@analog.com 0:788f63dcf0a0 2468 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2469 reg_cnfg_sbb0_b_t reg_cnfg_sbb0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2470 ret = read_register(CNFG_SBB0_B, (uint8_t *)&(reg_cnfg_sbb0_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2471 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2472 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2473 }
metin.ozkan@analog.com 0:788f63dcf0a0 2474 *en_sbb = (en_sbb_t)reg_cnfg_sbb0_b.bits.en_sbb0;
metin.ozkan@analog.com 0:788f63dcf0a0 2475 }
metin.ozkan@analog.com 0:788f63dcf0a0 2476 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2477 reg_cnfg_sbb1_b_t reg_cnfg_sbb1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2478 ret = read_register(CNFG_SBB1_B, (uint8_t *)&(reg_cnfg_sbb1_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2479 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2480 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2481 }
metin.ozkan@analog.com 0:788f63dcf0a0 2482 *en_sbb = (en_sbb_t)reg_cnfg_sbb1_b.bits.en_sbb1;
metin.ozkan@analog.com 0:788f63dcf0a0 2483 }
metin.ozkan@analog.com 0:788f63dcf0a0 2484 else if (channel == 2) {
Okan Sahin 3:1e7cafcfdae7 2485 reg_cnfg_sbb2_b_t reg_cnfg_sbb2_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2486 ret = read_register(CNFG_SBB2_B, (uint8_t *)&(reg_cnfg_sbb2_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2487 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2488 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2489 }
metin.ozkan@analog.com 0:788f63dcf0a0 2490 *en_sbb = (en_sbb_t)reg_cnfg_sbb2_b.bits.en_sbb2;
metin.ozkan@analog.com 0:788f63dcf0a0 2491 }
metin.ozkan@analog.com 0:788f63dcf0a0 2492 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2493 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2494 }
metin.ozkan@analog.com 0:788f63dcf0a0 2495
metin.ozkan@analog.com 0:788f63dcf0a0 2496 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2497 }
metin.ozkan@analog.com 0:788f63dcf0a0 2498
metin.ozkan@analog.com 0:788f63dcf0a0 2499 int MAX77654::SetCHGINInputCurrentLimit(ichgin_lim_def_t ichgin_lim_def)
metin.ozkan@analog.com 0:788f63dcf0a0 2500 {
Okan Sahin 3:1e7cafcfdae7 2501 reg_cnfg_sbb_top_t reg_cnfg_sbb_top = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2502
metin.ozkan@analog.com 0:788f63dcf0a0 2503 SET_BIT_FIELD(CNFG_SBB_TOP, reg_cnfg_sbb_top, reg_cnfg_sbb_top.bits.ichgin_lim_def, ichgin_lim_def);
metin.ozkan@analog.com 0:788f63dcf0a0 2504
metin.ozkan@analog.com 0:788f63dcf0a0 2505 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2506 }
metin.ozkan@analog.com 0:788f63dcf0a0 2507
metin.ozkan@analog.com 0:788f63dcf0a0 2508 int MAX77654::GetCHGINInputCurrentLimit(ichgin_lim_def_t *ichgin_lim_def)
metin.ozkan@analog.com 0:788f63dcf0a0 2509 {
metin.ozkan@analog.com 0:788f63dcf0a0 2510 int ret;
Okan Sahin 3:1e7cafcfdae7 2511 reg_cnfg_sbb_top_t reg_cnfg_sbb_top = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2512
metin.ozkan@analog.com 0:788f63dcf0a0 2513 ret = read_register(CNFG_SBB_TOP, (uint8_t *)&(reg_cnfg_sbb_top));
metin.ozkan@analog.com 0:788f63dcf0a0 2514 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2515 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2516 }
metin.ozkan@analog.com 0:788f63dcf0a0 2517
metin.ozkan@analog.com 0:788f63dcf0a0 2518 *ichgin_lim_def = (ichgin_lim_def_t)reg_cnfg_sbb_top.bits.ichgin_lim_def;
metin.ozkan@analog.com 0:788f63dcf0a0 2519
metin.ozkan@analog.com 0:788f63dcf0a0 2520 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2521 }
metin.ozkan@analog.com 0:788f63dcf0a0 2522
metin.ozkan@analog.com 0:788f63dcf0a0 2523 int MAX77654::SetSBBDriveStrength(drv_sbb_t drv_sbb)
metin.ozkan@analog.com 0:788f63dcf0a0 2524 {
Okan Sahin 3:1e7cafcfdae7 2525 reg_cnfg_sbb_top_t reg_cnfg_sbb_top = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2526
metin.ozkan@analog.com 0:788f63dcf0a0 2527 SET_BIT_FIELD(CNFG_SBB_TOP, reg_cnfg_sbb_top, reg_cnfg_sbb_top.bits.drv_sbb, drv_sbb);
metin.ozkan@analog.com 0:788f63dcf0a0 2528
metin.ozkan@analog.com 0:788f63dcf0a0 2529 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2530 }
metin.ozkan@analog.com 0:788f63dcf0a0 2531
metin.ozkan@analog.com 0:788f63dcf0a0 2532 int MAX77654::GetSBBDriveStrength(drv_sbb_t *drv_sbb)
metin.ozkan@analog.com 0:788f63dcf0a0 2533 {
metin.ozkan@analog.com 0:788f63dcf0a0 2534 int ret;
Okan Sahin 3:1e7cafcfdae7 2535 reg_cnfg_sbb_top_t reg_cnfg_sbb_top = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2536
metin.ozkan@analog.com 0:788f63dcf0a0 2537 ret = read_register(CNFG_SBB_TOP, (uint8_t *)&(reg_cnfg_sbb_top));
metin.ozkan@analog.com 0:788f63dcf0a0 2538 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2539 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2540 }
metin.ozkan@analog.com 0:788f63dcf0a0 2541
metin.ozkan@analog.com 0:788f63dcf0a0 2542 *drv_sbb = (drv_sbb_t)reg_cnfg_sbb_top.bits.drv_sbb;
metin.ozkan@analog.com 0:788f63dcf0a0 2543
metin.ozkan@analog.com 0:788f63dcf0a0 2544 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2545 }
metin.ozkan@analog.com 0:788f63dcf0a0 2546
metin.ozkan@analog.com 0:788f63dcf0a0 2547 int MAX77654::SetLDOTargetOutVoltage(uint8_t channel, tv_ldo_t tv_ldo)
metin.ozkan@analog.com 0:788f63dcf0a0 2548 {
metin.ozkan@analog.com 0:788f63dcf0a0 2549 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2550 reg_cnfg_ldo0_a_t reg_cnfg_ldo0_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2551 SET_BIT_FIELD(CNFG_LDO0_A, reg_cnfg_ldo0_a, reg_cnfg_ldo0_a.bits.tv_ldo0, tv_ldo);
metin.ozkan@analog.com 0:788f63dcf0a0 2552 }
metin.ozkan@analog.com 0:788f63dcf0a0 2553 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2554 reg_cnfg_ldo1_a_t reg_cnfg_ldo1_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2555 SET_BIT_FIELD(CNFG_LDO1_A, reg_cnfg_ldo1_a, reg_cnfg_ldo1_a.bits.tv_ldo1, tv_ldo);
metin.ozkan@analog.com 0:788f63dcf0a0 2556 }
metin.ozkan@analog.com 0:788f63dcf0a0 2557 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2558 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2559 }
metin.ozkan@analog.com 0:788f63dcf0a0 2560
metin.ozkan@analog.com 0:788f63dcf0a0 2561 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2562 }
metin.ozkan@analog.com 0:788f63dcf0a0 2563
metin.ozkan@analog.com 0:788f63dcf0a0 2564 int MAX77654::GetLDOTargetOutVoltage(uint8_t channel, tv_ldo_t *tv_ldo)
metin.ozkan@analog.com 0:788f63dcf0a0 2565 {
metin.ozkan@analog.com 0:788f63dcf0a0 2566 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2567
metin.ozkan@analog.com 0:788f63dcf0a0 2568 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2569 reg_cnfg_ldo0_a_t reg_cnfg_ldo0_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2570 ret = read_register(CNFG_LDO0_A, (uint8_t *)&(reg_cnfg_ldo0_a));
metin.ozkan@analog.com 0:788f63dcf0a0 2571 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2572 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2573 }
metin.ozkan@analog.com 0:788f63dcf0a0 2574 *tv_ldo = (tv_ldo_t)reg_cnfg_ldo0_a.bits.tv_ldo0;
metin.ozkan@analog.com 0:788f63dcf0a0 2575 }
metin.ozkan@analog.com 0:788f63dcf0a0 2576 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2577 reg_cnfg_ldo1_a_t reg_cnfg_ldo1_a = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2578 ret = read_register(CNFG_LDO1_A, (uint8_t *)&(reg_cnfg_ldo1_a));
metin.ozkan@analog.com 0:788f63dcf0a0 2579 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2580 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2581 }
metin.ozkan@analog.com 0:788f63dcf0a0 2582 *tv_ldo = (tv_ldo_t)reg_cnfg_ldo1_a.bits.tv_ldo1;
metin.ozkan@analog.com 0:788f63dcf0a0 2583 }
metin.ozkan@analog.com 0:788f63dcf0a0 2584 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2585 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2586 }
metin.ozkan@analog.com 0:788f63dcf0a0 2587
metin.ozkan@analog.com 0:788f63dcf0a0 2588 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2589 }
metin.ozkan@analog.com 0:788f63dcf0a0 2590
metin.ozkan@analog.com 0:788f63dcf0a0 2591 int MAX77654::SetLDOMode(uint8_t channel, ldo_md_t ldo_md)
metin.ozkan@analog.com 0:788f63dcf0a0 2592 {
metin.ozkan@analog.com 0:788f63dcf0a0 2593 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2594 reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2595 SET_BIT_FIELD(CNFG_LDO0_B, reg_cnfg_ldo0_b, reg_cnfg_ldo0_b.bits.ldo0_md, ldo_md);
metin.ozkan@analog.com 0:788f63dcf0a0 2596 }
metin.ozkan@analog.com 0:788f63dcf0a0 2597 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2598 reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2599 SET_BIT_FIELD(CNFG_LDO1_B, reg_cnfg_ldo1_b, reg_cnfg_ldo1_b.bits.ldo1_md, ldo_md);
metin.ozkan@analog.com 0:788f63dcf0a0 2600 }
metin.ozkan@analog.com 0:788f63dcf0a0 2601 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2602 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2603 }
metin.ozkan@analog.com 0:788f63dcf0a0 2604
metin.ozkan@analog.com 0:788f63dcf0a0 2605 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2606 }
metin.ozkan@analog.com 0:788f63dcf0a0 2607
metin.ozkan@analog.com 0:788f63dcf0a0 2608 int MAX77654::GetLDOMode(uint8_t channel, ldo_md_t *ldo_md)
metin.ozkan@analog.com 0:788f63dcf0a0 2609 {
metin.ozkan@analog.com 0:788f63dcf0a0 2610 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2611
metin.ozkan@analog.com 0:788f63dcf0a0 2612 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2613 reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2614 ret = read_register(CNFG_LDO0_B, (uint8_t *)&(reg_cnfg_ldo0_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2615 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2616 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2617 }
metin.ozkan@analog.com 0:788f63dcf0a0 2618 *ldo_md = (ldo_md_t)reg_cnfg_ldo0_b.bits.ldo0_md;
metin.ozkan@analog.com 0:788f63dcf0a0 2619 }
metin.ozkan@analog.com 0:788f63dcf0a0 2620 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2621 reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2622 ret = read_register(CNFG_LDO1_B, (uint8_t *)&(reg_cnfg_ldo1_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2623 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2624 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2625 }
metin.ozkan@analog.com 0:788f63dcf0a0 2626 *ldo_md = (ldo_md_t)reg_cnfg_ldo1_b.bits.ldo1_md;
metin.ozkan@analog.com 0:788f63dcf0a0 2627 }
metin.ozkan@analog.com 0:788f63dcf0a0 2628 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2629 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2630 }
metin.ozkan@analog.com 0:788f63dcf0a0 2631
metin.ozkan@analog.com 0:788f63dcf0a0 2632 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2633 }
metin.ozkan@analog.com 0:788f63dcf0a0 2634
metin.ozkan@analog.com 0:788f63dcf0a0 2635 int MAX77654::SetLDOActiveDischargeEnable(uint8_t channel, ade_ldo_t ade_ldo)
metin.ozkan@analog.com 0:788f63dcf0a0 2636 {
metin.ozkan@analog.com 0:788f63dcf0a0 2637 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2638 reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2639 SET_BIT_FIELD(CNFG_LDO0_B, reg_cnfg_ldo0_b, reg_cnfg_ldo0_b.bits.ade_ldo0, ade_ldo);
metin.ozkan@analog.com 0:788f63dcf0a0 2640 }
metin.ozkan@analog.com 0:788f63dcf0a0 2641 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2642 reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2643 SET_BIT_FIELD(CNFG_LDO1_B, reg_cnfg_ldo1_b, reg_cnfg_ldo1_b.bits.ade_ldo1, ade_ldo);
metin.ozkan@analog.com 0:788f63dcf0a0 2644 }
metin.ozkan@analog.com 0:788f63dcf0a0 2645 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2646 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2647 }
metin.ozkan@analog.com 0:788f63dcf0a0 2648
metin.ozkan@analog.com 0:788f63dcf0a0 2649 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2650 }
metin.ozkan@analog.com 0:788f63dcf0a0 2651
metin.ozkan@analog.com 0:788f63dcf0a0 2652 int MAX77654::GetLDOActiveDischargeEnable(uint8_t channel, ade_ldo_t *ade_ldo)
metin.ozkan@analog.com 0:788f63dcf0a0 2653 {
metin.ozkan@analog.com 0:788f63dcf0a0 2654 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2655
metin.ozkan@analog.com 0:788f63dcf0a0 2656 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2657 reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2658 ret = read_register(CNFG_LDO0_B, (uint8_t *)&(reg_cnfg_ldo0_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2659 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2660 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2661 }
metin.ozkan@analog.com 0:788f63dcf0a0 2662 *ade_ldo = (ade_ldo_t)reg_cnfg_ldo0_b.bits.ade_ldo0;
metin.ozkan@analog.com 0:788f63dcf0a0 2663 }
metin.ozkan@analog.com 0:788f63dcf0a0 2664 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2665 reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2666 ret = read_register(CNFG_LDO1_B, (uint8_t *)&(reg_cnfg_ldo1_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2667 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2668 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2669 }
metin.ozkan@analog.com 0:788f63dcf0a0 2670 *ade_ldo = (ade_ldo_t)reg_cnfg_ldo1_b.bits.ade_ldo1;
metin.ozkan@analog.com 0:788f63dcf0a0 2671 }
metin.ozkan@analog.com 0:788f63dcf0a0 2672 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2673 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2674 }
metin.ozkan@analog.com 0:788f63dcf0a0 2675
metin.ozkan@analog.com 0:788f63dcf0a0 2676 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2677 }
metin.ozkan@analog.com 0:788f63dcf0a0 2678
metin.ozkan@analog.com 0:788f63dcf0a0 2679 int MAX77654::SetLDOEnableControl(uint8_t channel, en_ldo_t en_ldo)
metin.ozkan@analog.com 0:788f63dcf0a0 2680 {
metin.ozkan@analog.com 0:788f63dcf0a0 2681 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2682 reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2683 SET_BIT_FIELD(CNFG_LDO0_B, reg_cnfg_ldo0_b, reg_cnfg_ldo0_b.bits.en_ldo0, en_ldo);
metin.ozkan@analog.com 0:788f63dcf0a0 2684 }
metin.ozkan@analog.com 0:788f63dcf0a0 2685 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2686 reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2687 SET_BIT_FIELD(CNFG_LDO1_B, reg_cnfg_ldo1_b, reg_cnfg_ldo1_b.bits.en_ldo1, en_ldo);
metin.ozkan@analog.com 0:788f63dcf0a0 2688 }
metin.ozkan@analog.com 0:788f63dcf0a0 2689 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2690 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2691 }
metin.ozkan@analog.com 0:788f63dcf0a0 2692
metin.ozkan@analog.com 0:788f63dcf0a0 2693 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2694 }
metin.ozkan@analog.com 0:788f63dcf0a0 2695
metin.ozkan@analog.com 0:788f63dcf0a0 2696 int MAX77654::GetLDOEnableControl(uint8_t channel, en_ldo_t *en_ldo)
metin.ozkan@analog.com 0:788f63dcf0a0 2697 {
metin.ozkan@analog.com 0:788f63dcf0a0 2698 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2699
metin.ozkan@analog.com 0:788f63dcf0a0 2700 if (channel == 0) {
Okan Sahin 3:1e7cafcfdae7 2701 reg_cnfg_ldo0_b_t reg_cnfg_ldo0_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2702 ret = read_register(CNFG_LDO0_B, (uint8_t *)&(reg_cnfg_ldo0_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2703 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2704 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2705 }
metin.ozkan@analog.com 0:788f63dcf0a0 2706 *en_ldo = (en_ldo_t)reg_cnfg_ldo0_b.bits.en_ldo0;
metin.ozkan@analog.com 0:788f63dcf0a0 2707 }
metin.ozkan@analog.com 0:788f63dcf0a0 2708 else if (channel == 1) {
Okan Sahin 3:1e7cafcfdae7 2709 reg_cnfg_ldo1_b_t reg_cnfg_ldo1_b = {0};
metin.ozkan@analog.com 0:788f63dcf0a0 2710 ret = read_register(CNFG_LDO1_B, (uint8_t *)&(reg_cnfg_ldo1_b));
metin.ozkan@analog.com 0:788f63dcf0a0 2711 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2712 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2713 }
metin.ozkan@analog.com 0:788f63dcf0a0 2714 *en_ldo = (en_ldo_t)reg_cnfg_ldo1_b.bits.en_ldo1;
metin.ozkan@analog.com 0:788f63dcf0a0 2715 }
metin.ozkan@analog.com 0:788f63dcf0a0 2716 else {
metin.ozkan@analog.com 0:788f63dcf0a0 2717 return MAX77654_INVALID_CHANNEL_NUMBER;
metin.ozkan@analog.com 0:788f63dcf0a0 2718 }
metin.ozkan@analog.com 0:788f63dcf0a0 2719
metin.ozkan@analog.com 0:788f63dcf0a0 2720 return MAX77654_NO_ERROR;
metin.ozkan@analog.com 0:788f63dcf0a0 2721 }
metin.ozkan@analog.com 0:788f63dcf0a0 2722
metin.ozkan@analog.com 0:788f63dcf0a0 2723 int MAX77654::IRQDisableAll()
metin.ozkan@analog.com 0:788f63dcf0a0 2724 {
metin.ozkan@analog.com 0:788f63dcf0a0 2725 int ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2726 uint8_t reg = 0;
metin.ozkan@analog.com 0:788f63dcf0a0 2727 uint8_t status = 0;
metin.ozkan@analog.com 0:788f63dcf0a0 2728
metin.ozkan@analog.com 0:788f63dcf0a0 2729 //Disable Masks in INTM_GLBL1
metin.ozkan@analog.com 0:788f63dcf0a0 2730 ret = write_register(INTM_GLBL1, &reg);
metin.ozkan@analog.com 0:788f63dcf0a0 2731 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2732 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2733 }
metin.ozkan@analog.com 0:788f63dcf0a0 2734 //Disable Masks in INTM_GLBL0
metin.ozkan@analog.com 0:788f63dcf0a0 2735 ret = write_register(INTM_GLBL0, &reg);
metin.ozkan@analog.com 0:788f63dcf0a0 2736 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2737 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2738 }
metin.ozkan@analog.com 0:788f63dcf0a0 2739 //Disable Masks in INT_M_CHG
metin.ozkan@analog.com 0:788f63dcf0a0 2740 ret = write_register(INT_M_CHG, &reg);
metin.ozkan@analog.com 0:788f63dcf0a0 2741 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2742 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2743 }
metin.ozkan@analog.com 0:788f63dcf0a0 2744
metin.ozkan@analog.com 0:788f63dcf0a0 2745 // Clear Interrupt Flags in INT_GLBL1
metin.ozkan@analog.com 0:788f63dcf0a0 2746 ret = read_register(INT_GLBL1, &status);
metin.ozkan@analog.com 0:788f63dcf0a0 2747 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2748 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2749 }
metin.ozkan@analog.com 0:788f63dcf0a0 2750 // Clear Interrupt Flags in INT_GLBL0
metin.ozkan@analog.com 0:788f63dcf0a0 2751 ret = read_register(INT_GLBL0, &status);
metin.ozkan@analog.com 0:788f63dcf0a0 2752 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2753 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2754 }
metin.ozkan@analog.com 0:788f63dcf0a0 2755 // Clear Interrupt Flags in INT_CHG
metin.ozkan@analog.com 0:788f63dcf0a0 2756 ret = read_register(INT_CHG, &status);
metin.ozkan@analog.com 0:788f63dcf0a0 2757 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2758 return ret;
metin.ozkan@analog.com 0:788f63dcf0a0 2759 }
metin.ozkan@analog.com 0:788f63dcf0a0 2760
metin.ozkan@analog.com 0:788f63dcf0a0 2761 return 0;
metin.ozkan@analog.com 0:788f63dcf0a0 2762 }
metin.ozkan@analog.com 0:788f63dcf0a0 2763
metin.ozkan@analog.com 0:788f63dcf0a0 2764 void MAX77654::SetInterruptHandler(int_glbl_t id, interrupt_handler_function func, void *cb)
metin.ozkan@analog.com 0:788f63dcf0a0 2765 {
metin.ozkan@analog.com 0:788f63dcf0a0 2766 interrupt_handler_list[id].func = func;
metin.ozkan@analog.com 0:788f63dcf0a0 2767 interrupt_handler_list[id].cb = cb;
metin.ozkan@analog.com 0:788f63dcf0a0 2768 }
metin.ozkan@analog.com 0:788f63dcf0a0 2769
metin.ozkan@analog.com 0:788f63dcf0a0 2770 void MAX77654::PostInterruptWork()
metin.ozkan@analog.com 0:788f63dcf0a0 2771 {
metin.ozkan@analog.com 0:788f63dcf0a0 2772 int ret;
Okan Sahin 3:1e7cafcfdae7 2773 uint8_t reg = 0, inten = 0, not_inten = 0, mask = 0;
metin.ozkan@analog.com 0:788f63dcf0a0 2774
metin.ozkan@analog.com 0:788f63dcf0a0 2775
metin.ozkan@analog.com 0:788f63dcf0a0 2776 while (true) {
metin.ozkan@analog.com 0:788f63dcf0a0 2777
metin.ozkan@analog.com 0:788f63dcf0a0 2778 ThisThread::flags_wait_any(POST_INTR_WORK_SIGNAL_ID);
metin.ozkan@analog.com 0:788f63dcf0a0 2779
metin.ozkan@analog.com 0:788f63dcf0a0 2780 // Check Interrupt Flags in INT_GLBL0
metin.ozkan@analog.com 0:788f63dcf0a0 2781 ret = read_register(INT_GLBL0, &reg);
metin.ozkan@analog.com 0:788f63dcf0a0 2782 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2783 return;
metin.ozkan@analog.com 0:788f63dcf0a0 2784 }
metin.ozkan@analog.com 0:788f63dcf0a0 2785
metin.ozkan@analog.com 0:788f63dcf0a0 2786 ret = read_register(INTM_GLBL0, &inten);
metin.ozkan@analog.com 0:788f63dcf0a0 2787 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2788 return;
metin.ozkan@analog.com 0:788f63dcf0a0 2789 }
metin.ozkan@analog.com 0:788f63dcf0a0 2790
metin.ozkan@analog.com 0:788f63dcf0a0 2791 not_inten = ~inten; // 0 means unmasked.
metin.ozkan@analog.com 0:788f63dcf0a0 2792
metin.ozkan@analog.com 0:788f63dcf0a0 2793 for (int i = 0; i < INT_GLBL1_GPI1_F; i++) {
metin.ozkan@analog.com 0:788f63dcf0a0 2794 mask = (1 << i);
metin.ozkan@analog.com 0:788f63dcf0a0 2795 if ((reg & mask) && (not_inten & mask)) {
metin.ozkan@analog.com 0:788f63dcf0a0 2796 if (interrupt_handler_list[i].func != NULL) {
metin.ozkan@analog.com 0:788f63dcf0a0 2797 interrupt_handler_list[i]
metin.ozkan@analog.com 0:788f63dcf0a0 2798 .func(interrupt_handler_list[i].cb);
metin.ozkan@analog.com 0:788f63dcf0a0 2799 }
metin.ozkan@analog.com 0:788f63dcf0a0 2800 }
metin.ozkan@analog.com 0:788f63dcf0a0 2801 }
metin.ozkan@analog.com 0:788f63dcf0a0 2802
metin.ozkan@analog.com 0:788f63dcf0a0 2803 // Check Interrupt Flags in INT_GLBL1
metin.ozkan@analog.com 0:788f63dcf0a0 2804 ret = read_register(INT_GLBL1, &reg);
metin.ozkan@analog.com 0:788f63dcf0a0 2805 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2806 return;
metin.ozkan@analog.com 0:788f63dcf0a0 2807 }
metin.ozkan@analog.com 0:788f63dcf0a0 2808
metin.ozkan@analog.com 0:788f63dcf0a0 2809 ret = read_register(INTM_GLBL1, &inten);
metin.ozkan@analog.com 0:788f63dcf0a0 2810 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2811 return;
metin.ozkan@analog.com 0:788f63dcf0a0 2812 }
metin.ozkan@analog.com 0:788f63dcf0a0 2813
metin.ozkan@analog.com 0:788f63dcf0a0 2814 not_inten = ~inten; // 0 means unmasked.
metin.ozkan@analog.com 0:788f63dcf0a0 2815
metin.ozkan@analog.com 0:788f63dcf0a0 2816 for (int i = INT_GLBL1_GPI1_F; i < INT_CHG_THM_I; i++) {
metin.ozkan@analog.com 0:788f63dcf0a0 2817 mask = (1 << (i - INT_GLBL1_GPI1_F));
metin.ozkan@analog.com 0:788f63dcf0a0 2818 if ((reg & mask) && (not_inten & mask)) {
metin.ozkan@analog.com 0:788f63dcf0a0 2819 if (interrupt_handler_list[i].func != NULL) {
metin.ozkan@analog.com 0:788f63dcf0a0 2820 interrupt_handler_list[i]
metin.ozkan@analog.com 0:788f63dcf0a0 2821 .func(interrupt_handler_list[i].cb);
metin.ozkan@analog.com 0:788f63dcf0a0 2822 }
metin.ozkan@analog.com 0:788f63dcf0a0 2823 }
metin.ozkan@analog.com 0:788f63dcf0a0 2824 }
metin.ozkan@analog.com 0:788f63dcf0a0 2825
metin.ozkan@analog.com 0:788f63dcf0a0 2826 // Check Interrupt Flags in INT_CHG
metin.ozkan@analog.com 0:788f63dcf0a0 2827 ret = read_register(INT_CHG, &reg);
metin.ozkan@analog.com 0:788f63dcf0a0 2828 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2829 return;
metin.ozkan@analog.com 0:788f63dcf0a0 2830 }
metin.ozkan@analog.com 0:788f63dcf0a0 2831
metin.ozkan@analog.com 0:788f63dcf0a0 2832 ret = read_register(INT_M_CHG, &inten);
metin.ozkan@analog.com 0:788f63dcf0a0 2833 if (ret != MAX77654_NO_ERROR) {
metin.ozkan@analog.com 0:788f63dcf0a0 2834 return;
metin.ozkan@analog.com 0:788f63dcf0a0 2835 }
metin.ozkan@analog.com 0:788f63dcf0a0 2836
metin.ozkan@analog.com 0:788f63dcf0a0 2837 not_inten = ~inten; // 0 means unmasked.
metin.ozkan@analog.com 0:788f63dcf0a0 2838
metin.ozkan@analog.com 0:788f63dcf0a0 2839 for (int i = INT_CHG_THM_I; i < INT_CHG_END; i++) {
metin.ozkan@analog.com 0:788f63dcf0a0 2840 mask = (1 << (i - INT_CHG_THM_I));
metin.ozkan@analog.com 0:788f63dcf0a0 2841 if ((reg & mask) && (not_inten & mask)) {
metin.ozkan@analog.com 0:788f63dcf0a0 2842 if (interrupt_handler_list[i].func != NULL) {
metin.ozkan@analog.com 0:788f63dcf0a0 2843 interrupt_handler_list[i]
metin.ozkan@analog.com 0:788f63dcf0a0 2844 .func(interrupt_handler_list[i].cb);
metin.ozkan@analog.com 0:788f63dcf0a0 2845 }
metin.ozkan@analog.com 0:788f63dcf0a0 2846 }
metin.ozkan@analog.com 0:788f63dcf0a0 2847 }
metin.ozkan@analog.com 0:788f63dcf0a0 2848 }
metin.ozkan@analog.com 0:788f63dcf0a0 2849 }
metin.ozkan@analog.com 0:788f63dcf0a0 2850 void MAX77654::InterruptHandler()
metin.ozkan@analog.com 0:788f63dcf0a0 2851 {
metin.ozkan@analog.com 0:788f63dcf0a0 2852 post_intr_work_thread->flags_set(POST_INTR_WORK_SIGNAL_ID);
metin.ozkan@analog.com 0:788f63dcf0a0 2853 }