[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