[PATCH v2 05/10] clk: berlin: add driver for BG2x complex divider cells
Alexandre Belloni
alexandre.belloni at free-electrons.com
Thu May 15 00:56:59 PDT 2014
On 14/05/2014 at 22:15:16 +0200, Sebastian Hesselbarth wrote :
> +static u8 berlin2_div_get_parent(struct clk_hw *hw)
> +{
> + struct berlin2_div *div = to_berlin2_div(hw);
> + struct berlin2_div_map *map = &div->map;
> + u32 reg;
> + u8 index = 0;
> +
> + if (div->lock)
> + spin_lock(div->lock);
> +
> + /* PLL_SWITCH == 0 is index 0 */
> + reg = readl_relaxed(div->base + map->pll_switch_offs);
> + reg &= BIT(map->pll_switch_shift);
> + if (reg) {
> + reg = readl_relaxed(div->base + map->pll_select_offs);
> + reg >>= map->pll_select_shift;
> + reg &= PLL_SELECT_MASK;
> + index = 1 + reg;
After getting more insight, I think we don't need to add 1, see my
comment on the next patchs.
--
Alexandre Belloni, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
More information about the linux-arm-kernel
mailing list