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

clk: mediatek: add pericfg clocks for MT8183

Add pericfg clocks for MT8183, it's used when support USB
remote wakeup

Cc: Weiyi Lu <weiyi.lu@mediatek.com>
Signed-off-by: Chunfeng Yun <chunfeng.yun@mediatek.com>
Link: https://lkml.kernel.org/r/1566980533-28282-2-git-send-email-chunfeng.yun@mediatek.com
Acked-by: Rob Herring <robh@kernel.org>
Signed-off-by: Stephen Boyd <sboyd@kernel.org>

authored by

Chunfeng Yun and committed by
Stephen Boyd
f9e55ac2 5aa00ad3

+34
+30
drivers/clk/mediatek/clk-mt8183.c
··· 1002 1002 "msdc50_0_sel", 24), 1003 1003 }; 1004 1004 1005 + static const struct mtk_gate_regs peri_cg_regs = { 1006 + .set_ofs = 0x20c, 1007 + .clr_ofs = 0x20c, 1008 + .sta_ofs = 0x20c, 1009 + }; 1010 + 1011 + #define GATE_PERI(_id, _name, _parent, _shift) \ 1012 + GATE_MTK(_id, _name, _parent, &peri_cg_regs, _shift, \ 1013 + &mtk_clk_gate_ops_no_setclr_inv) 1014 + 1015 + static const struct mtk_gate peri_clks[] = { 1016 + GATE_PERI(CLK_PERI_AXI, "peri_axi", "axi_sel", 31), 1017 + }; 1018 + 1005 1019 static const struct mtk_gate_regs apmixed_cg_regs = { 1006 1020 .set_ofs = 0x20, 1007 1021 .clr_ofs = 0x20, ··· 1222 1208 return r; 1223 1209 } 1224 1210 1211 + static int clk_mt8183_peri_probe(struct platform_device *pdev) 1212 + { 1213 + struct clk_onecell_data *clk_data; 1214 + struct device_node *node = pdev->dev.of_node; 1215 + 1216 + clk_data = mtk_alloc_clk_data(CLK_PERI_NR_CLK); 1217 + 1218 + mtk_clk_register_gates(node, peri_clks, ARRAY_SIZE(peri_clks), 1219 + clk_data); 1220 + 1221 + return of_clk_add_provider(node, of_clk_src_onecell_get, clk_data); 1222 + } 1223 + 1225 1224 static int clk_mt8183_mcu_probe(struct platform_device *pdev) 1226 1225 { 1227 1226 struct clk_onecell_data *clk_data; ··· 1264 1237 }, { 1265 1238 .compatible = "mediatek,mt8183-infracfg", 1266 1239 .data = clk_mt8183_infra_probe, 1240 + }, { 1241 + .compatible = "mediatek,mt8183-pericfg", 1242 + .data = clk_mt8183_peri_probe, 1267 1243 }, { 1268 1244 .compatible = "mediatek,mt8183-mcucfg", 1269 1245 .data = clk_mt8183_mcu_probe,
+4
include/dt-bindings/clock/mt8183-clk.h
··· 284 284 #define CLK_INFRA_FBIST2FPC 100 285 285 #define CLK_INFRA_NR_CLK 101 286 286 287 + /* PERICFG */ 288 + #define CLK_PERI_AXI 0 289 + #define CLK_PERI_NR_CLK 1 290 + 287 291 /* MFGCFG */ 288 292 #define CLK_MFG_BG3D 0 289 293 #define CLK_MFG_NR_CLK 1