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