blob: d9a2b6904b0956e3d213d868f7773e54d8c72581 [file] [log] [blame]
Tom Rini10e47792018-05-06 17:58:06 -04001// SPDX-License-Identifier: GPL-2.0+
Jelle van der Waa3f3a3092016-02-23 18:47:19 +01002/*
3 * (C) Copyright 2016
4 * Jelle van der Waa <jelle@vdwaa.nl>
Jelle van der Waa3f3a3092016-02-23 18:47:19 +01005 */
Jelle van der Waa3f3a3092016-02-23 18:47:19 +01006#include <i2c.h>
7#include <sy8106a.h>
8
9#define SY8106A_I2C_ADDR 0x65
10#define SY8106A_VOUT1_SEL 1
11#define SY8106A_VOUT1_SEL_ENABLE (1 << 7)
12
Simon Glass7ec24132024-09-29 19:49:48 -060013#ifdef CONFIG_XPL_BUILD
Jelle van der Waa3f3a3092016-02-23 18:47:19 +010014static u8 sy8106a_mvolt_to_cfg(int mvolt, int min, int max, int div)
15{
16 if (mvolt < min)
17 mvolt = min;
18 else if (mvolt > max)
19 mvolt = max;
20
21 return (mvolt - min) / div;
22}
23
24int sy8106a_set_vout1(unsigned int mvolt)
25{
26 u8 data = sy8106a_mvolt_to_cfg(mvolt, 680, 1950, 10) | SY8106A_VOUT1_SEL_ENABLE;
27 return i2c_write(SY8106A_I2C_ADDR, SY8106A_VOUT1_SEL, 1, &data, 1);
28}
Jernej Skrabeccb7d2b82017-04-27 00:03:34 +020029#endif