omap2 clock: init clksel clock parents to hardware reality at clock init
Source-selectable clksel clocks have a 'default parent' assigned to them
at compile-time. This default parent may or may not match the reality
that is configured in the hardware registers by the bootloader. Clock tree
recalculations could be erratic if the struct clk parent field contents
don't match the hardware registers.
Resolve this by creating omap2_init_clksel_parent() to read the hardware
registers and update the struct clk parent field as appropriate for clksel
clocks. Add an '.init' field to each source-selectable clk structure so
that the parent is fixed up when the clock is initially registered. (We
don't do this for clksel clocks that are only rate-selectable, since they
only have one possible parent clock.)
Signed-off-by: Paul Walmsley <paul@pwsan.com> Signed-off-by: Tony Lindgren <tony@atomide.com>