mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-26 14:40:41 +00:00
EXYNOS: CLK: Add i2c clock
This adds i2c clock information for EXYNOS5. Signed-off-by: Alim Akhtar <alim.akhtar@samsung.com> Signed-off-by: Doug Anderson <dianders@chromium.org> Signed-off-by: Rajeshwari Shinde <rajeshwari.s@samsung.com> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
9c06782863
commit
989feb8c52
2 changed files with 34 additions and 0 deletions
|
@ -578,6 +578,29 @@ void exynos4_set_mipi_clk(void)
|
||||||
writel(cfg, &clk->div_lcd0);
|
writel(cfg, &clk->div_lcd0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* I2C
|
||||||
|
*
|
||||||
|
* exynos5: obtaining the I2C clock
|
||||||
|
*/
|
||||||
|
static unsigned long exynos5_get_i2c_clk(void)
|
||||||
|
{
|
||||||
|
struct exynos5_clock *clk =
|
||||||
|
(struct exynos5_clock *)samsung_get_base_clock();
|
||||||
|
unsigned long aclk_66, aclk_66_pre, sclk;
|
||||||
|
unsigned int ratio;
|
||||||
|
|
||||||
|
sclk = get_pll_clk(MPLL);
|
||||||
|
|
||||||
|
ratio = (readl(&clk->div_top1)) >> 24;
|
||||||
|
ratio &= 0x7;
|
||||||
|
aclk_66_pre = sclk / (ratio + 1);
|
||||||
|
ratio = readl(&clk->div_top0);
|
||||||
|
ratio &= 0x7;
|
||||||
|
aclk_66 = aclk_66_pre / (ratio + 1);
|
||||||
|
return aclk_66;
|
||||||
|
}
|
||||||
|
|
||||||
unsigned long get_pll_clk(int pllreg)
|
unsigned long get_pll_clk(int pllreg)
|
||||||
{
|
{
|
||||||
if (cpu_is_exynos5())
|
if (cpu_is_exynos5())
|
||||||
|
@ -594,6 +617,16 @@ unsigned long get_arm_clk(void)
|
||||||
return exynos4_get_arm_clk();
|
return exynos4_get_arm_clk();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
unsigned long get_i2c_clk(void)
|
||||||
|
{
|
||||||
|
if (cpu_is_exynos5()) {
|
||||||
|
return exynos5_get_i2c_clk();
|
||||||
|
} else {
|
||||||
|
debug("I2C clock is not set for this CPU\n");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
unsigned long get_pwm_clk(void)
|
unsigned long get_pwm_clk(void)
|
||||||
{
|
{
|
||||||
if (cpu_is_exynos5())
|
if (cpu_is_exynos5())
|
||||||
|
|
|
@ -30,6 +30,7 @@
|
||||||
|
|
||||||
unsigned long get_pll_clk(int pllreg);
|
unsigned long get_pll_clk(int pllreg);
|
||||||
unsigned long get_arm_clk(void);
|
unsigned long get_arm_clk(void);
|
||||||
|
unsigned long get_i2c_clk(void);
|
||||||
unsigned long get_pwm_clk(void);
|
unsigned long get_pwm_clk(void);
|
||||||
unsigned long get_uart_clk(int dev_index);
|
unsigned long get_uart_clk(int dev_index);
|
||||||
void set_mmc_clk(int dev_index, unsigned int div);
|
void set_mmc_clk(int dev_index, unsigned int div);
|
||||||
|
|
Loading…
Reference in a new issue