exynos:clock: Add i2c clock
authorPiotr Wilczek <p.wilczek@samsung.com>
Tue, 20 Nov 2012 02:19:02 +0000 (02:19 +0000)
committerTom Rini <trini@ti.com>
Tue, 11 Dec 2012 20:17:31 +0000 (13:17 -0700)
This patch adds i2c clock for Exynos4

Signed-off-by: Piotr Wilczek <p.wilczek@samsung.com>
Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com>
CC: Minkyu Kang <mk7.kang@samsung.com>
arch/arm/cpu/armv7/exynos/clock.c

index 4f3b451be9955cc6e09047b5daedbe39ea2c412f..21e45d2e828cb2913666cd7ec0358ab2aee7471f 100644 (file)
@@ -732,6 +732,21 @@ static unsigned long exynos5_get_i2c_clk(void)
        return aclk_66;
 }
 
+static unsigned long exynos4_get_i2c_clk(void)
+{
+       struct exynos4_clock *clk =
+               (struct exynos4_clock *)samsung_get_base_clock();
+       unsigned long sclk, aclk_100;
+       unsigned int ratio;
+
+       sclk = get_pll_clk(APLL);
+
+       ratio = (readl(&clk->div_top)) >> 4;
+       ratio &= 0xf;
+       aclk_100 = sclk / (ratio + 1);
+       return aclk_100;
+}
+
 unsigned long get_pll_clk(int pllreg)
 {
        if (cpu_is_exynos5())
@@ -752,6 +767,8 @@ unsigned long get_i2c_clk(void)
 {
        if (cpu_is_exynos5()) {
                return exynos5_get_i2c_clk();
+       } else if (cpu_is_exynos4()) {
+               return exynos4_get_i2c_clk();
        } else {
                debug("I2C clock is not set for this CPU\n");
                return 0;