summaryrefslogtreecommitdiffstats
path: root/include/linux/clk
diff options
context:
space:
mode:
authorLuca Ceresoli <luca@lucaceresoli.net>2021-05-27 23:16:47 +0200
committerStephen Boyd <sboyd@kernel.org>2021-06-08 17:53:17 -0700
commitfc336ae622df0ec114dbe5551a4d2760c535ecd0 (patch)
treedc9cd6d3f3728696fc9b919b9a1840986b7321ee /include/linux/clk
parent6efb943b8616ec53a5e444193dccf1af9ad627b5 (diff)
downloadlinux-fc336ae622df0ec114dbe5551a4d2760c535ecd0.tar.gz
linux-fc336ae622df0ec114dbe5551a4d2760c535ecd0.tar.bz2
linux-fc336ae622df0ec114dbe5551a4d2760c535ecd0.zip
clk: vc5: fix output disabling when enabling a FOD
On 5P49V6965, when an output is enabled we enable the corresponding FOD. When this happens for the first time, and specifically when writing register VC5_OUT_DIV_CONTROL in vc5_clk_out_prepare(), all other outputs are stopped for a short time and then restarted. According to Renesas support this is intended: "The reason for that is VC6E has synced up all output function". This behaviour can be disabled at least on VersaClock 6E devices, of which only the 5P49V6965 is currently implemented by this driver. This requires writing bit 7 (bypass_sync{1..4}) in register 0x20..0x50. Those registers are named "Unused Factory Reserved Register", and the bits are documented as "Skip VDDO<N> verification", which does not clearly explain the relation to FOD sync. However according to Renesas support as well as my testing setting this bit does prevent disabling of all clock outputs when enabling a FOD. See "VersaClock ® 6E Family Register Descriptions and Programming Guide" (August 30, 2018), Table 116 "Power Up VDD check", page 58: https://www.renesas.com/us/en/document/mau/versaclock-6e-family-register-descriptions-and-programming-guide Signed-off-by: Luca Ceresoli <luca@lucaceresoli.net> Reviewed-by: Adam Ford <aford173@gmail.com> Link: https://lore.kernel.org/r/20210527211647.1520720-1-luca@lucaceresoli.net Fixes: 2bda748e6ad8 ("clk: vc5: Add support for IDT VersaClock 5P49V6965") Signed-off-by: Stephen Boyd <sboyd@kernel.org>
Diffstat (limited to 'include/linux/clk')
0 files changed, 0 insertions, 0 deletions