spmi-uclass.c 807 B

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