diff options
author | Lucas Stach <l.stach@pengutronix.de> | 2018-11-15 15:30:28 +0100 |
---|---|---|
committer | Stephen Boyd <sboyd@kernel.org> | 2018-12-10 11:39:16 -0800 |
commit | 3cc48976e9763209ccf0ccc47c8e3e5fc464c557 (patch) | |
tree | c8a544e82ec0a0d99f5b98ce72aebf253611a72e /include/linux/clk-provider.h | |
parent | a29be9185d195bf5abd5ff5482a26800d58bac19 (diff) |
clk: imx6q: handle ENET PLL bypass
The ENET PLL is different from the other i.MX6 PLLs, as it has
multiple outputs with different post-dividers, which are all
bypassed if the single bypass bit is activated. The hardware setup
looks something like this:
_
refclk-o---PLL---o----DIV1-----| \
| | |M |----OUT1
o-----------------------|_/
| | _
| o----DIV2-----| \
| | |M |----OUT2
o-----------------------|_/
| | _
| `----DIV3-----| \
| |M |----OUT3
`-----------------------|_/
The bypass bit not only bypasses the PLL, but also the attached
post-dividers. This would be reasonbly straight forward to model
with a single output, or with different bypass bits for each output,
but sadly the HW guys decided that it would be good to actuate all
3 muxes with a single bit.
So the need to have the PLL bypassed for one of the outputs always
affects 2 other (in our model) independent branches of the clock
tree.
This means the decision to bypass this PLL is a system wide design
choice and should not be changed on-the-fly, so we can treat any
bapass configuration as static. As such we can just register the
post-dividiers with a ratio that reflects the bypass status, which
allows us to bypass the PLL without breaking our abstraction model
and with it DT stability.
Signed-off-by: Lucas Stach <l.stach@pengutronix.de>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Diffstat (limited to 'include/linux/clk-provider.h')
0 files changed, 0 insertions, 0 deletions