// SPDX-License-Identifier: GPL-2.0+ /* * (C) Copyright 2014 Texas Instruments Incorporated - http://www.ti.com * Author: Felipe Balbi <balbi@ti.com> */ #include <common.h> #include <i2c.h> #include <linux/errno.h> #include <power/pmic.h> #include <power/tps62362.h> /** * tps62362_voltage_update() - Function to change a voltage level, as this * is a multi-step process. * @reg: Register address to write to * @volt_sel: Voltage register value to write * @return: 0 on success, 1 on failure */ int tps62362_voltage_update(unsigned char reg, unsigned char volt_sel) { if (reg > TPS62362_NUM_REGS) return 1; return i2c_write(TPS62362_I2C_ADDR, reg, 1, &volt_sel, 1); } int power_tps62362_init(unsigned char bus) { static const char name[] = "TPS62362"; struct pmic *p = pmic_alloc(); if (!p) { printf("%s: POWER allocation error!\n", __func__); return -ENOMEM; } p->name = name; p->interface = PMIC_I2C; p->number_of_regs = TPS62362_NUM_REGS; p->hw.i2c.addr = TPS62362_I2C_ADDR; p->hw.i2c.tx_num = 1; p->bus = bus; return 0; }