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:
parent
aa04de65ce
commit
6bce753f9d
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue