From: Rick Chen <r...@andestech.com>

Add cache enable/disable ops to the DM cache uclass driver

Signed-off-by: Rick Chen <r...@andestech.com>
Cc: KC Lin <kc...@andestech.com>
Reviewed-by: Bin Meng <bmeng...@gmail.com>
---
 drivers/cache/cache-uclass.c | 20 ++++++++++++++++++++
 include/cache.h              | 31 +++++++++++++++++++++++++++++++
 2 files changed, 51 insertions(+)

diff --git a/drivers/cache/cache-uclass.c b/drivers/cache/cache-uclass.c
index 97ce024..3b20a10 100644
--- a/drivers/cache/cache-uclass.c
+++ b/drivers/cache/cache-uclass.c
@@ -17,6 +17,26 @@ int cache_get_info(struct udevice *dev, struct cache_info 
*info)
        return ops->get_info(dev, info);
 }
 
+int cache_enable(struct udevice *dev)
+{
+       struct cache_ops *ops = cache_get_ops(dev);
+
+       if (!ops->enable)
+               return -ENOSYS;
+
+       return ops->enable(dev);
+}
+
+int cache_disable(struct udevice *dev)
+{
+       struct cache_ops *ops = cache_get_ops(dev);
+
+       if (!ops->disable)
+               return -ENOSYS;
+
+       return ops->disable(dev);
+}
+
 UCLASS_DRIVER(cache) = {
        .id             = UCLASS_CACHE,
        .name           = "cache",
diff --git a/include/cache.h b/include/cache.h
index c6334ca..32f59fd 100644
--- a/include/cache.h
+++ b/include/cache.h
@@ -22,6 +22,22 @@ struct cache_ops {
         * @return 0 if OK, -ve on error
         */
        int (*get_info)(struct udevice *dev, struct cache_info *info);
+
+       /**
+        * enable() - Enable cache
+        *
+        * @dev:        Device to check (UCLASS_CACHE)
+        * @return 0 if OK, -ve on error
+        */
+       int (*enable)(struct udevice *dev);
+
+       /**
+        * disable() - Flush and disable cache
+        *
+        * @dev:        Device to check (UCLASS_CACHE)
+        * @return 0 if OK, -ve on error
+        */
+       int (*disable)(struct udevice *dev);
 };
 
 #define cache_get_ops(dev)     ((struct cache_ops *)(dev)->driver->ops)
@@ -35,4 +51,19 @@ struct cache_ops {
  */
 int cache_get_info(struct udevice *dev, struct cache_info *info);
 
+/**
+ * cache_enable() - Enable cache
+ *
+ * @dev:       Device to check (UCLASS_CACHE)
+ * @return 0 if OK, -ve on error
+ */
+int cache_enable(struct udevice *dev);
+
+/**
+ * cache_disable() - Flush and disable cache
+ *
+ * @dev:       Device to check (UCLASS_CACHE)
+ * @return 0 if OK, -ve on error
+ */
+int cache_disable(struct udevice *dev);
 #endif
-- 
2.7.4

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
https://lists.denx.de/listinfo/u-boot

Reply via email to