spmi-uclass.c 841 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. #define LOG_CATEGORY UCLASS_SPMI
  8. #include <common.h>
  9. #include <dm.h>
  10. #include <errno.h>
  11. #include <spmi/spmi.h>
  12. #include <linux/ctype.h>
  13. int spmi_reg_read(struct udevice *dev, int usid, int pid, int reg)
  14. {
  15. const struct dm_spmi_ops *ops = dev_get_driver_ops(dev);
  16. if (!ops || !ops->read)
  17. return -ENOSYS;
  18. return ops->read(dev, usid, pid, reg);
  19. }
  20. int spmi_reg_write(struct udevice *dev, int usid, int pid, int reg,
  21. uint8_t value)
  22. {
  23. const struct dm_spmi_ops *ops = dev_get_driver_ops(dev);
  24. if (!ops || !ops->write)
  25. return -ENOSYS;
  26. return ops->write(dev, usid, pid, reg, value);
  27. }
  28. UCLASS_DRIVER(spmi) = {
  29. .id = UCLASS_SPMI,
  30. .name = "spmi",
  31. .post_bind = dm_scan_fdt_dev,
  32. };