clk: bcm: Support rate change propagation on bcm2835 clocks
authorBoris Brezillon <boris.brezillon@free-electrons.com>
Thu, 1 Dec 2016 21:00:19 +0000 (22:00 +0100)
committerRaspbian kernel package updater <root@raspbian.org>
Sat, 31 Mar 2018 14:45:24 +0000 (15:45 +0100)
commita1b37e56ed44529a1be68dba54d99f4a43368bf1
treeb00631af91fc379169e5271052e17e9cb60b5981
parentaa53fa6e5ff1597351f51be8ddaff7e621ed3b77
clk: bcm: Support rate change propagation on bcm2835 clocks

Some peripheral clocks, like the VEC (Video EnCoder) clock need to be set
to a precise rate (in our case 108MHz). With the current implementation,
where peripheral clocks are not allowed to forward rate change requests
to their parents, it is impossible to match this requirement unless the
bootloader has configured things correctly, or a specific rate has been
assigned through the DT (with the assigned-clk-rates property).

Add a new field to struct bcm2835_clock_data to specify which parent
clocks accept rate change propagation, and support set rate propagation
in bcm2835_clock_determine_rate().

Signed-off-by: Boris Brezillon <boris.brezillon@free-electrons.com>
Reviewed-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Stephen Boyd <sboyd@codeaurora.org>
(cherry picked from commit 155e8b3b0ee320ae866b97dd31eba8a1f080a772)
drivers/clk/bcm/clk-bcm2835.c