common: Drop linux/delay.h from common header
[oweals/u-boot.git] / drivers / misc / misc-uclass.c
index 13a6ea508b14a37c83c99131c4eefbd1460c6fd0..55381edc9808f4c5cccd385eb0c96407e9517c74 100644 (file)
@@ -1,7 +1,6 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright (C) 2010 Thomas Chou <thomas@wytron.com.tw>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -45,7 +44,31 @@ int misc_ioctl(struct udevice *dev, unsigned long request, void *buf)
        return ops->ioctl(dev, request, buf);
 }
 
+int misc_call(struct udevice *dev, int msgid, void *tx_msg, int tx_size,
+             void *rx_msg, int rx_size)
+{
+       const struct misc_ops *ops = device_get_ops(dev);
+
+       if (!ops->call)
+               return -ENOSYS;
+
+       return ops->call(dev, msgid, tx_msg, tx_size, rx_msg, rx_size);
+}
+
+int misc_set_enabled(struct udevice *dev, bool val)
+{
+       const struct misc_ops *ops = device_get_ops(dev);
+
+       if (!ops->set_enabled)
+               return -ENOSYS;
+
+       return ops->set_enabled(dev, val);
+}
+
 UCLASS_DRIVER(misc) = {
        .id             = UCLASS_MISC,
        .name           = "misc",
+#if CONFIG_IS_ENABLED(OF_CONTROL) && !CONFIG_IS_ENABLED(OF_PLATDATA)
+       .post_bind      = dm_scan_fdt_dev,
+#endif
 };