ARM: imx: clk-vf610: fix SAI clock tree
authorStefan Agner <stefan@agner.ch>
Sun, 18 Oct 2015 04:05:20 +0000 (21:05 -0700)
committerShawn Guo <shawnguo@kernel.org>
Wed, 2 Dec 2015 01:46:26 +0000 (09:46 +0800)
commit3b60a26fdc3b32c00d750458df33d414e8f924ce
treea998fa604028e85fcf4b50e4d55b981420c9681c
parent897ed0ca5979f103b8de3c09bcca2ae4860eb5a5
ARM: imx: clk-vf610: fix SAI clock tree

The Synchronous Audio Interface (SAI) instances are clocked by
independent clocks: The bus clock and the audio clock (as shown in
Figure 51-1 in the Vybrid Reference Manual). The clock gates in
CCGR0/CCGR1 for SAI0 through SAI3 are bus clock gates, as access
tests to the registers with/without gating those clocks have shown.
The audio clock is gated by the SAIx_EN gates in CCM_CSCDR1,
followed by a clock divider (SAIx_DIV). Currently, the parent of
the bus clock gates has been assigned to SAIx_DIV, which is not
involved in the bus clock path for the SAI instances (see chapter
9.10.12, SAI clocking in the Vybrid Reference Manual).

Fix this by define the parent clock of VF610_CLK_SAIx to be the bus
clock.

If the driver needs the audio clock (when used in master mode), a
fixed device tree is required which assign the audio clock properly
to VF610_CLK_SAIx_DIV.

Signed-off-by: Stefan Agner <stefan@agner.ch>
Acked-by: Stephen Boyd <sboyd@codeaurora.org>
Signed-off-by: Shawn Guo <shawnguo@kernel.org>
drivers/clk/imx/clk-vf610.c