A couple build fixes for issues exposed this merge window and a fix for
the eMMC clk on AST2600 SoCs that fixes the rate that is calculated by the clk framework. -----BEGIN PGP SIGNATURE----- iQJFBAABCAAvFiEE9L57QeeUxqYDyoaDrQKIl8bklSUFAl8PqrgRHHNib3lkQGtl cm5lbC5vcmcACgkQrQKIl8bklSVsAw/+NISk+CvBU9DfwuAt1Nm0MckXoocLgBdd XAvjCwPxEXLHcAX9r96+ikXLydKWjPoTv6kbHZ+dsFqhif3apjndYXnu6f+1rZd7 74d4W34e4YK/XRt9iWrK/asQ27ZqyCLFD+r494/StzzJ9tlkyj4XBgJWn5CoAWMl CoNqAtyI++2kCvfRafKXUXXOkVuaRt5yOnFzwKQJZloL4KjBCi2oViwYMezwHBaA 1N1oE3BtcUnb2CZ6Aum/HI9OWpsHWzg9Ne0uPIhOMFGIBgfnUN95pN17OBulRGM2 Xq2osrHEOlTOEZN1YmxcCx6doEjLVbI82qsDtxJX2H4e7y+cQgVPNs4eVwKYYCiF HD/yZxpvSPPB3agtWmcWHdnCmodVF63iLsWwyZ53SOjDDLmCNsYdQeL7Puwzgdts hNaW8e3XG/N44PcXemeDoQJ7iF0TmHM+3pwsObvHnWydrnpZgasDCYlQmCLcJxtI A0V4Fx975P2Bq9YwWn4cl94BaZYTiP6qXJGER9hJBpdDFSowf8WJODGdoPYnQRPO GnPXZK+w3wFaMhy7shf/BP+MsBZXSOmglGHEzXne2c8uw0fbLXWXhIj1mh1nRVm5 +RMd5w/nghDlrEm1ME6To1KVv2VLrr67tN8o7CMnD4ewmt5+yT4AqD9UPTjKum80 jbPCeSjecYw= =TzDz -----END PGP SIGNATURE----- Merge tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux into master Pull clk fixes from Stephen Boyd: "A couple build fixes for issues exposed this merge window and a fix for the eMMC clk on AST2600 SoCs that fixes the rate that is calculated by the clk framework" * tag 'clk-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/clk/linux: clk: Specify IOMEM dependency for HSDK pll driver clk: AST2600: Add mux for EMMC clock clk: mvebu: ARMADA_AP_CPU_CLK needs to select ARMADA_AP_CP_HELPER
This commit is contained in:
commit
f8456690ba
|
@ -50,6 +50,7 @@ source "drivers/clk/versatile/Kconfig"
|
||||||
config CLK_HSDK
|
config CLK_HSDK
|
||||||
bool "PLL Driver for HSDK platform"
|
bool "PLL Driver for HSDK platform"
|
||||||
depends on OF || COMPILE_TEST
|
depends on OF || COMPILE_TEST
|
||||||
|
depends on IOMEM
|
||||||
help
|
help
|
||||||
This driver supports the HSDK core, system, ddr, tunnel and hdmi PLLs
|
This driver supports the HSDK core, system, ddr, tunnel and hdmi PLLs
|
||||||
control.
|
control.
|
||||||
|
|
|
@ -131,6 +131,18 @@ static const struct clk_div_table ast2600_eclk_div_table[] = {
|
||||||
{ 0 }
|
{ 0 }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
static const struct clk_div_table ast2600_emmc_extclk_div_table[] = {
|
||||||
|
{ 0x0, 2 },
|
||||||
|
{ 0x1, 4 },
|
||||||
|
{ 0x2, 6 },
|
||||||
|
{ 0x3, 8 },
|
||||||
|
{ 0x4, 10 },
|
||||||
|
{ 0x5, 12 },
|
||||||
|
{ 0x6, 14 },
|
||||||
|
{ 0x7, 16 },
|
||||||
|
{ 0 }
|
||||||
|
};
|
||||||
|
|
||||||
static const struct clk_div_table ast2600_mac_div_table[] = {
|
static const struct clk_div_table ast2600_mac_div_table[] = {
|
||||||
{ 0x0, 4 },
|
{ 0x0, 4 },
|
||||||
{ 0x1, 4 },
|
{ 0x1, 4 },
|
||||||
|
@ -390,6 +402,11 @@ static struct clk_hw *aspeed_g6_clk_hw_register_gate(struct device *dev,
|
||||||
return hw;
|
return hw;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const char *const emmc_extclk_parent_names[] = {
|
||||||
|
"emmc_extclk_hpll_in",
|
||||||
|
"mpll",
|
||||||
|
};
|
||||||
|
|
||||||
static const char * const vclk_parent_names[] = {
|
static const char * const vclk_parent_names[] = {
|
||||||
"dpll",
|
"dpll",
|
||||||
"d1pll",
|
"d1pll",
|
||||||
|
@ -459,16 +476,32 @@ static int aspeed_g6_clk_probe(struct platform_device *pdev)
|
||||||
return PTR_ERR(hw);
|
return PTR_ERR(hw);
|
||||||
aspeed_g6_clk_data->hws[ASPEED_CLK_UARTX] = hw;
|
aspeed_g6_clk_data->hws[ASPEED_CLK_UARTX] = hw;
|
||||||
|
|
||||||
/* EMMC ext clock divider */
|
/* EMMC ext clock */
|
||||||
hw = clk_hw_register_gate(dev, "emmc_extclk_gate", "hpll", 0,
|
hw = clk_hw_register_fixed_factor(dev, "emmc_extclk_hpll_in", "hpll",
|
||||||
scu_g6_base + ASPEED_G6_CLK_SELECTION1, 15, 0,
|
0, 1, 2);
|
||||||
&aspeed_g6_clk_lock);
|
|
||||||
if (IS_ERR(hw))
|
if (IS_ERR(hw))
|
||||||
return PTR_ERR(hw);
|
return PTR_ERR(hw);
|
||||||
hw = clk_hw_register_divider_table(dev, "emmc_extclk", "emmc_extclk_gate", 0,
|
|
||||||
scu_g6_base + ASPEED_G6_CLK_SELECTION1, 12, 3, 0,
|
hw = clk_hw_register_mux(dev, "emmc_extclk_mux",
|
||||||
ast2600_div_table,
|
emmc_extclk_parent_names,
|
||||||
&aspeed_g6_clk_lock);
|
ARRAY_SIZE(emmc_extclk_parent_names), 0,
|
||||||
|
scu_g6_base + ASPEED_G6_CLK_SELECTION1, 11, 1,
|
||||||
|
0, &aspeed_g6_clk_lock);
|
||||||
|
if (IS_ERR(hw))
|
||||||
|
return PTR_ERR(hw);
|
||||||
|
|
||||||
|
hw = clk_hw_register_gate(dev, "emmc_extclk_gate", "emmc_extclk_mux",
|
||||||
|
0, scu_g6_base + ASPEED_G6_CLK_SELECTION1,
|
||||||
|
15, 0, &aspeed_g6_clk_lock);
|
||||||
|
if (IS_ERR(hw))
|
||||||
|
return PTR_ERR(hw);
|
||||||
|
|
||||||
|
hw = clk_hw_register_divider_table(dev, "emmc_extclk",
|
||||||
|
"emmc_extclk_gate", 0,
|
||||||
|
scu_g6_base +
|
||||||
|
ASPEED_G6_CLK_SELECTION1, 12,
|
||||||
|
3, 0, ast2600_emmc_extclk_div_table,
|
||||||
|
&aspeed_g6_clk_lock);
|
||||||
if (IS_ERR(hw))
|
if (IS_ERR(hw))
|
||||||
return PTR_ERR(hw);
|
return PTR_ERR(hw);
|
||||||
aspeed_g6_clk_data->hws[ASPEED_CLK_EMMC] = hw;
|
aspeed_g6_clk_data->hws[ASPEED_CLK_EMMC] = hw;
|
||||||
|
|
|
@ -42,6 +42,7 @@ config ARMADA_AP806_SYSCON
|
||||||
|
|
||||||
config ARMADA_AP_CPU_CLK
|
config ARMADA_AP_CPU_CLK
|
||||||
bool
|
bool
|
||||||
|
select ARMADA_AP_CP_HELPER
|
||||||
|
|
||||||
config ARMADA_CP110_SYSCON
|
config ARMADA_CP110_SYSCON
|
||||||
bool
|
bool
|
||||||
|
|
Loading…
Reference in New Issue