exynos5420: Fix the way the rate of the input clock for i2c buses is found.

The clock divider was being read from registers incorrectly which meant that
the periph rate was wrong.

Change-Id: I50efb62849ef29bdfb0efc56c49642d3edca094c
Signed-off-by: Gabe Black <gabeblack@chromium.org>
Reviewed-on: http://review.coreboot.org/3699
Tested-by: build bot (Jenkins)
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
This commit is contained in:
Gabe Black 2013-06-22 19:43:40 -07:00 committed by Stefan Reinauer
parent 7dd581494d
commit cf7509cfd1
1 changed files with 2 additions and 3 deletions

View File

@ -196,9 +196,8 @@ unsigned long clock_get_periph_rate(enum periph_id peripheral)
case PERIPH_ID_I2C9: case PERIPH_ID_I2C9:
case PERIPH_ID_I2C10: case PERIPH_ID_I2C10:
sclk = get_pll_clk(MPLL); sclk = get_pll_clk(MPLL);
sub_div = ((readl(&clk->clk_div_top1) >> 24) & 0x7) + 1; div = ((readl(&clk->clk_div_top1) >> 8) & 0x3f) + 1;
div = (readl(&clk->clk_div_top0) & 0x7) + 1; return sclk / div;
return (sclk / sub_div) / div;
default: default:
printk(BIOS_DEBUG, "%s: invalid peripheral %d", __func__, peripheral); printk(BIOS_DEBUG, "%s: invalid peripheral %d", __func__, peripheral);
return -1; return -1;