[U-Boot] [PATCH 1/7 V5] EXYNOS: CLK: Add i2c clock
Simon Glass
sjg at chromium.org
Wed Jul 18 19:16:39 CEST 2012
Hi,
On Thu, Jul 5, 2012 at 12:59 PM, Rajeshwari Shinde
<rajeshwari.s at samsung.com> wrote:
> This adds i2c clock information for EXYNOS5.
>
> Signed-off-by: Alim Akhtar <alim.akhtar at samsung.com>
> Signed-off-by: Doug Anderson <dianders at chromium.org>
> Signed-off-by: Rajeshwari Shinde <rajeshwari.s at samsung.com>
> Acked-by: Simon Glass <sjg at chromium.org>
Sorry for late comments. Please see below for some nits.
Also I get these warnings with the samsung/master branch at present:
clock.c: In function 'get_pll_clk':
clock.c:178:6: warning: 'fout_sel' may be used uninitialized in this
function [-Wmaybe-uninitialized]
clock.c:101:35: note: 'fout_sel' was declared here
pinmux.c: In function 'exynos_pinmux_config':
pinmux.c:100:20: warning: 'gpio_func' may be used uninitialized in
this function [-Wmaybe-uninitialized]
pinmux.c:69:16: note: 'gpio_func' was declared here
pinmux.c:99:3: warning: 'start' may be used uninitialized in this
function [-Wmaybe-uninitialized]
pinmux.c:69:9: note: 'start' was declared here
clock.c: In function 'get_pll_clk':
clock.c:178:6: warning: 'fout_sel' may be used uninitialized in this
function [-Wmaybe-uninitialized]
clock.c:101:35: note: 'fout_sel' was declared here
pinmux.c: In function 'exynos_pinmux_config':
pinmux.c:100:20: warning: 'gpio_func' may be used uninitialized in
this function [-Wmaybe-uninitialized]
pinmux.c:69:16: note: 'gpio_func' was declared here
pinmux.c:99:3: warning: 'start' may be used uninitialized in this
function [-Wmaybe-uninitialized]
pinmux.c:69:9: note: 'start' was declared here
> ---
> changes in V2:
> - Incorporated comments from Simon Glass which are removed extra
> braces around (readl(&clk->div_top1)) >> 24 and gave a tab space for
> return statement.
> Changes in V3:
> - None
> Changes in V4:
> - None
> Changes in V5:
> - None.
> arch/arm/cpu/armv7/exynos/clock.c | 33 ++++++++++++++++++++++++++++++++
> arch/arm/include/asm/arch-exynos/clk.h | 1 +
> 2 files changed, 34 insertions(+), 0 deletions(-)
>
> diff --git a/arch/arm/cpu/armv7/exynos/clock.c b/arch/arm/cpu/armv7/exynos/clock.c
> index fc0ed5e..83ee25e 100644
> --- a/arch/arm/cpu/armv7/exynos/clock.c
> +++ b/arch/arm/cpu/armv7/exynos/clock.c
> @@ -602,6 +602,29 @@ void exynos4_set_mipi_clk(void)
> 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);
Don't really need the ()
> + aclk_66_pre = sclk/(ratio+1);
spaces around operators, and below
> + ratio = readl(&clk->div_top0);
> + ratio &= (0x7);
> + aclk_66 = aclk_66_pre/(ratio+1);
> + return aclk_66;
> +}
> +
> unsigned long get_pll_clk(int pllreg)
> {
> if (cpu_is_exynos5())
> @@ -618,6 +641,16 @@ unsigned long get_arm_clk(void)
> 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)
> {
> if (cpu_is_exynos5())
> diff --git a/arch/arm/include/asm/arch-exynos/clk.h b/arch/arm/include/asm/arch-exynos/clk.h
> index e99339a..5529025 100644
> --- a/arch/arm/include/asm/arch-exynos/clk.h
> +++ b/arch/arm/include/asm/arch-exynos/clk.h
> @@ -31,6 +31,7 @@
>
> unsigned long get_pll_clk(int pllreg);
> unsigned long get_arm_clk(void);
> +unsigned long get_i2c_clk(void);
> unsigned long get_pwm_clk(void);
> unsigned long get_uart_clk(int dev_index);
> void set_mmc_clk(int dev_index, unsigned int div);
> --
> 1.7.4.4
>
Regards,
Simon
More information about the U-Boot
mailing list