Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

clk: ralink: mtmips: fix clock plan for Ralink SoC RT3883

Clock plan for Ralink SoC RT3883 needs an extra 'periph' clock to properly
set some peripherals that has this clock as their parent. When this driver
was mainlined we could not find any active users of this SoC so we cannot
perform any real tests for it. Now, one user of a Belkin f9k1109 version 1
device which uses this SoC appear and reported some issues in openWRT:
- https://github.com/openwrt/openwrt/issues/16054
The peripherals that are wrong are 'uart', 'i2c', 'i2s' and 'uartlite' which
has a not defined 'periph' clock as parent. Hence, introduce it to have a
properly working clock plan for this SoC.

Fixes: 6f3b15586eef ("clk: ralink: add clock and reset driver for MTMIPS SoCs")
Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20240910044024.120009-2-sergio.paracuellos@gmail.com
Signed-off-by: Stephen Boyd <sboyd@kernel.org>

authored by

Sergio Paracuellos and committed by
Stephen Boyd
33239152 9bf7cfdb

+7 -2
+7 -2
drivers/clk/ralink/clk-mtmips.c
··· 267 267 CLK_FIXED("xtal", NULL, 40000000) 268 268 }; 269 269 270 + static struct mtmips_clk_fixed rt3883_fixed_clocks[] = { 271 + CLK_FIXED("xtal", NULL, 40000000), 272 + CLK_FIXED("periph", "xtal", 40000000) 273 + }; 274 + 270 275 static struct mtmips_clk_fixed rt3352_fixed_clocks[] = { 271 276 CLK_FIXED("periph", "xtal", 40000000) 272 277 }; ··· 784 779 static const struct mtmips_clk_data rt3883_clk_data = { 785 780 .clk_base = rt3883_clks_base, 786 781 .num_clk_base = ARRAY_SIZE(rt3883_clks_base), 787 - .clk_fixed = rt305x_fixed_clocks, 788 - .num_clk_fixed = ARRAY_SIZE(rt305x_fixed_clocks), 782 + .clk_fixed = rt3883_fixed_clocks, 783 + .num_clk_fixed = ARRAY_SIZE(rt3883_fixed_clocks), 789 784 .clk_factor = NULL, 790 785 .num_clk_factor = 0, 791 786 .clk_periph = rt5350_pherip_clks,