rockchip dmc: add ddr set rate interface

Change-Id: Ie3f5ac29621f1298a759daf44a1caf68d18b9a46
Signed-off-by: Tang Yun ping <typ@rock-chips.com>
This commit is contained in:
Tang Yun ping 2018-12-27 17:07:32 +08:00 committed by Kever Yang
parent aa04de65ce
commit 6bce753f9d
2 changed files with 19 additions and 0 deletions

View File

@ -7,9 +7,14 @@
#define __ROCKCHIP_DMC_H_ #define __ROCKCHIP_DMC_H_
#include <dm.h> #include <dm.h>
#ifndef MHZ
#define MHZ (1000 * 1000)
#endif
int rockchip_ddrclk_sip_set_rate_v2(unsigned long drate); int rockchip_ddrclk_sip_set_rate_v2(unsigned long drate);
unsigned long rockchip_ddrclk_sip_recalc_rate_v2(void); unsigned long rockchip_ddrclk_sip_recalc_rate_v2(void);
unsigned long rockchip_ddrclk_sip_round_rate_v2(unsigned long rate); unsigned long rockchip_ddrclk_sip_round_rate_v2(unsigned long rate);
int rockchip_dmcfreq_probe(struct udevice *dev); int rockchip_dmcfreq_probe(struct udevice *dev);
int set_ddr_freq(unsigned long freq);
#endif #endif

View File

@ -867,6 +867,20 @@ unsigned long rockchip_ddrclk_sip_round_rate_v2(unsigned long rate)
return 0; return 0;
} }
int set_ddr_freq(unsigned long freq)
{
if (freq < MHZ)
freq *= MHZ;
if (freq) {
freq = rockchip_ddrclk_sip_round_rate_v2(freq);
rockchip_ddrclk_sip_set_rate_v2(freq);
}
freq = rockchip_ddrclk_sip_recalc_rate_v2();
printf("current ddr freq:%lu Hz\n", freq);
return freq;
}
int rockchip_dmcfreq_probe(struct udevice *dev) int rockchip_dmcfreq_probe(struct udevice *dev)
{ {
int ret; int ret;