1 // SPDX-License-Identifier: GPL-2.0+ OR BSD-3-Clause
3 * Copyright (C) 2018, STMicroelectronics - All Rights Reserved
10 #include <power/pmic.h>
11 #include <power/stpmu1.h>
13 #define STMPU1_NUM_OF_REGS 0x100
15 static int stpmu1_reg_count(struct udevice *dev)
17 return STMPU1_NUM_OF_REGS;
20 static int stpmu1_write(struct udevice *dev, uint reg, const uint8_t *buff,
25 ret = dm_i2c_write(dev, reg, buff, len);
27 dev_err(dev, "%s: failed to write register %#x :%d",
33 static int stpmu1_read(struct udevice *dev, uint reg, uint8_t *buff, int len)
37 ret = dm_i2c_read(dev, reg, buff, len);
39 dev_err(dev, "%s: failed to read register %#x : %d",
45 static struct dm_pmic_ops stpmu1_ops = {
46 .reg_count = stpmu1_reg_count,
48 .write = stpmu1_write,
51 static const struct udevice_id stpmu1_ids[] = {
52 { .compatible = "st,stpmu1" },
56 U_BOOT_DRIVER(pmic_stpmu1) = {
57 .name = "stpmu1_pmic",
59 .of_match = stpmu1_ids,