mirror of
https://github.com/AsahiLinux/u-boot
synced 2025-02-17 22:49:02 +00:00
clk/ast2500: Add SD clock
In order to use the clock from the sdhci driver, add the SD clock. Signed-off-by: Joel Stanley <joel@jms.id.au>
This commit is contained in:
parent
85bb3a4eee
commit
50204533dc
1 changed files with 23 additions and 0 deletions
|
@ -12,6 +12,7 @@
|
||||||
#include <asm/arch/scu_ast2500.h>
|
#include <asm/arch/scu_ast2500.h>
|
||||||
#include <dm/lists.h>
|
#include <dm/lists.h>
|
||||||
#include <dt-bindings/clock/aspeed-clock.h>
|
#include <dt-bindings/clock/aspeed-clock.h>
|
||||||
|
#include <dt-bindings/reset/ast2500-reset.h>
|
||||||
#include <linux/delay.h>
|
#include <linux/delay.h>
|
||||||
#include <linux/err.h>
|
#include <linux/err.h>
|
||||||
|
|
||||||
|
@ -426,6 +427,25 @@ static ulong ast2500_configure_d2pll(struct ast2500_scu *scu, ulong rate)
|
||||||
return new_rate;
|
return new_rate;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#define SCU_CLKSTOP_SDIO 27
|
||||||
|
static ulong ast2500_enable_sdclk(struct ast2500_scu *scu)
|
||||||
|
{
|
||||||
|
u32 reset_bit;
|
||||||
|
u32 clkstop_bit;
|
||||||
|
|
||||||
|
reset_bit = BIT(ASPEED_RESET_SDIO);
|
||||||
|
clkstop_bit = BIT(SCU_CLKSTOP_SDIO);
|
||||||
|
|
||||||
|
setbits_le32(&scu->sysreset_ctrl1, reset_bit);
|
||||||
|
udelay(100);
|
||||||
|
//enable clk
|
||||||
|
clrbits_le32(&scu->clk_stop_ctrl1, clkstop_bit);
|
||||||
|
mdelay(10);
|
||||||
|
clrbits_le32(&scu->sysreset_ctrl1, reset_bit);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static ulong ast2500_clk_set_rate(struct clk *clk, ulong rate)
|
static ulong ast2500_clk_set_rate(struct clk *clk, ulong rate)
|
||||||
{
|
{
|
||||||
struct ast2500_clk_priv *priv = dev_get_priv(clk->dev);
|
struct ast2500_clk_priv *priv = dev_get_priv(clk->dev);
|
||||||
|
@ -481,6 +501,9 @@ static int ast2500_clk_enable(struct clk *clk)
|
||||||
case ASPEED_CLK_D2PLL:
|
case ASPEED_CLK_D2PLL:
|
||||||
ast2500_configure_d2pll(priv->scu, D2PLL_DEFAULT_RATE);
|
ast2500_configure_d2pll(priv->scu, D2PLL_DEFAULT_RATE);
|
||||||
break;
|
break;
|
||||||
|
case ASPEED_CLK_GATE_SDCLK:
|
||||||
|
ast2500_enable_sdclk(priv->scu);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
debug("%s: unknown clk %ld\n", __func__, clk->id);
|
debug("%s: unknown clk %ld\n", __func__, clk->id);
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
|
|
Loading…
Add table
Reference in a new issue