From: Lokesh Vutla <lokeshvu...@ti.com>

Attempt to get and enable a vtt regulator if one is provided from the
dts. If we do not find one, continue as not all platforms have this.

Signed-off-by: Nishanth Menon <n...@ti.com>
Signed-off-by: Lokesh Vutla <lokeshvu...@ti.com>
Signed-off-by: Dave Gerlach <d-gerl...@ti.com>
---
 drivers/ram/k3-ddrss/k3-ddrss.c | 14 ++++++++++++++
 1 file changed, 14 insertions(+)

diff --git a/drivers/ram/k3-ddrss/k3-ddrss.c b/drivers/ram/k3-ddrss/k3-ddrss.c
index a10551491713..89d2eaec3d1a 100644
--- a/drivers/ram/k3-ddrss/k3-ddrss.c
+++ b/drivers/ram/k3-ddrss/k3-ddrss.c
@@ -15,6 +15,7 @@
 #include <asm/io.h>
 #include <power-domain.h>
 #include <wait_bit.h>
+#include <power/regulator.h>
 
 #include "lpddr4_obj_if.h"
 #include "lpddr4_if.h"
@@ -40,6 +41,7 @@ struct k3_ddrss_desc {
        u32 ddr_freq1;
        u32 ddr_freq2;
        u32 ddr_fhs_cnt;
+       struct udevice *vtt_supply;
 };
 
 static lpddr4_obj *driverdt;
@@ -192,6 +194,18 @@ static int k3_ddrss_power_on(struct k3_ddrss_desc *ddrss)
                return ret;
        }
 
+       ret = device_get_supply_regulator(ddrss->dev, "vtt-supply",
+                                   &ddrss->vtt_supply);
+       if (ret) {
+               dev_dbg(ddrss->dev, "vtt-supply not found.\n");
+       } else {
+               ret = regulator_set_value(ddrss->vtt_supply, 3300000);
+               if (ret)
+                       return ret;
+               dev_dbg(ddrss->dev, "VTT regulator enabled, volt = %d\n",
+                       regulator_get_value(ddrss->vtt_supply));
+       }
+
        return 0;
 }
 
-- 
2.28.0

Reply via email to