Home | History | Annotate | Download | only in spmi
      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