[U-Boot] [PATCH 1/7 V5] EXYNOS: CLK: Add i2c clock
Rajeshwari Birje
rajeshwari.birje at gmail.com
Thu Jul 19 08:01:16 CEST 2012
Hi Simon Glass,
Thank you for comments.
On Wed, Jul 18, 2012 at 10:46 PM, Simon Glass <sjg at chromium.org> wrote:
> 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
>
>
-- Sorry for inconvenience.. will correct them
>> ---
>> 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 ()
-- ok.
>
>> + aclk_66_pre = sclk/(ratio+1);
>
> spaces around operators, and below
-- will correct this.
>
>> + 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
> _______________________________________________
> U-Boot mailing list
> U-Boot at lists.denx.de
> http://lists.denx.de/mailman/listinfo/u-boot
More information about the U-Boot
mailing list