video/console: Factor out actual character output
[oweals/u-boot.git] / drivers / pch / pch-uclass.c
index 48a3965a7644e6e00e30b4250d7b023d043f8555..caf8b72803cac90d7ed8fa0522ef65d07ecde69f 100644 (file)
@@ -1,16 +1,12 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * Copyright (c) 2015 Google, Inc
  * Written by Simon Glass <sjg@chromium.org>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
 #include <dm.h>
 #include <pch.h>
-#include <dm/root.h>
-
-DECLARE_GLOBAL_DATA_PTR;
 
 int pch_get_spi_base(struct udevice *dev, ulong *sbasep)
 {
@@ -44,20 +40,29 @@ int pch_get_gpio_base(struct udevice *dev, u32 *gbasep)
        return ops->get_gpio_base(dev, gbasep);
 }
 
-static int pch_uclass_post_bind(struct udevice *bus)
+int pch_get_io_base(struct udevice *dev, u32 *iobasep)
+{
+       struct pch_ops *ops = pch_get_ops(dev);
+
+       *iobasep = 0;
+       if (!ops->get_io_base)
+               return -ENOSYS;
+
+       return ops->get_io_base(dev, iobasep);
+}
+
+int pch_ioctl(struct udevice *dev, ulong req, void *data, int size)
 {
-       /*
-        * Scan the device tree for devices
-        *
-        * Before relocation, only bind devices marked for pre-relocation
-        * use.
-        */
-       return dm_scan_fdt_node(bus, gd->fdt_blob, bus->of_offset,
-                               gd->flags & GD_FLG_RELOC ? false : true);
+       struct pch_ops *ops = pch_get_ops(dev);
+
+       if (!ops->ioctl)
+               return -ENOSYS;
+
+       return ops->ioctl(dev, req, data, size);
 }
 
 UCLASS_DRIVER(pch) = {
        .id             = UCLASS_PCH,
        .name           = "pch",
-       .post_bind      = pch_uclass_post_bind,
+       .post_bind      = dm_scan_fdt_dev,
 };