1 // SPDX-License-Identifier: GPL-2.0+ 2 /* 3 * SPMI bus uclass driver 4 * 5 * (C) Copyright 2015 Mateusz Kulikowski <mateusz.kulikowski (at) gmail.com> 6 */ 7 8 #include <common.h> 9 #include <dm.h> 10 #include <errno.h> 11 #include <spmi/spmi.h> 12 #include <linux/ctype.h> 13 14 int spmi_reg_read(struct udevice *dev, int usid, int pid, int reg) 15 { 16 const struct dm_spmi_ops *ops = dev_get_driver_ops(dev); 17 18 if (!ops || !ops->read) 19 return -ENOSYS; 20 21 return ops->read(dev, usid, pid, reg); 22 } 23 24 int spmi_reg_write(struct udevice *dev, int usid, int pid, int reg, 25 uint8_t value) 26 { 27 const struct dm_spmi_ops *ops = dev_get_driver_ops(dev); 28 29 if (!ops || !ops->write) 30 return -ENOSYS; 31 32 return ops->write(dev, usid, pid, reg, value); 33 } 34 35 UCLASS_DRIVER(spmi) = { 36 .id = UCLASS_SPMI, 37 .name = "spmi", 38 .post_bind = dm_scan_fdt_dev, 39 }; 40