summaryrefslogtreecommitdiff
path: root/drivers/i3c/i3c-uclass.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/i3c/i3c-uclass.c')
-rw-r--r--drivers/i3c/i3c-uclass.c38
1 files changed, 38 insertions, 0 deletions
diff --git a/drivers/i3c/i3c-uclass.c b/drivers/i3c/i3c-uclass.c
new file mode 100644
index 00000000000..72944424c1d
--- /dev/null
+++ b/drivers/i3c/i3c-uclass.c
@@ -0,0 +1,38 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Copyright (C) 2025 Altera Corporation <www.altera.com>
+ */
+
+#include <dm.h>
+#include <i3c.h>
+#include <errno.h>
+#include <log.h>
+#include <dm/device-internal.h>
+#include <linux/ctype.h>
+
+int dm_i3c_read(struct udevice *dev, u32 dev_number,
+ u8 *buf, u32 num_bytes)
+{
+ struct dm_i3c_ops *ops = i3c_get_ops(dev);
+
+ if (!ops->read)
+ return -ENOSYS;
+
+ return ops->read(dev, dev_number, buf, num_bytes);
+}
+
+int dm_i3c_write(struct udevice *dev, u32 dev_number,
+ u8 *buf, u32 num_bytes)
+{
+ struct dm_i3c_ops *ops = i3c_get_ops(dev);
+
+ if (!ops->write)
+ return -ENOSYS;
+
+ return ops->write(dev, dev_number, buf, num_bytes);
+}
+
+UCLASS_DRIVER(i3c) = {
+ .id = UCLASS_I3C,
+ .name = "i3c",
+};