
From: Lokesh Vutla lokeshvutla@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 nm@ti.com Signed-off-by: Lokesh Vutla lokeshvutla@ti.com Signed-off-by: Dave Gerlach d-gerlach@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; }