summaryrefslogtreecommitdiff
path: root/drivers/clk/mediatek/clk-mt7981.c
AgeCommit message (Collapse)Author
2025-05-22clk: mediatek: add dummy clk enable/disable ops for apmixedsys clocksWeijie Gao
Starting from commit ac30d90f336 (clk: Ensure the parent clocks are enabled while reparenting), MediaTek filogic platforms will crash on booting when initializing mmc devices. The root cause is that to simplify the code, we reused the topckgen ops for apmixedsys clocks as they share the get_rate with topckgen clocks while the clk enable/disable ops are not available for apmixedsys clocks. Now that a clock will be enabled first before reparenting, we have to add dummy enable/disable ops for apmixedsys to avoid unexpected behavior when apmixedsys clocks are the parent clock of the to-be-reparenting clocks. Fixes: 40746bf429d (clk: mediatek: add clock driver support for MediaTek MT7981 SoC) Fixes: 37d5a9a29dc (clk: mediatek: add clock driver support for MediaTek MT7986 SoC) Fixes: ece4e5804f5 (clk: mediatek: add clock driver support for MediaTek MT7987 SoC) Fixes: 421436981a2 (clk: mediatek: add clock driver support for MediaTek MT7988 SoC) Signed-off-by: Sam Shih <sam.shih@mediatek.com> Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2025-01-23clk: mediatek: fix uninitialized fields issue in INFRA_MUX structWeijie Gao
This patch adds missing initialization of fields in INFRA_MUX struct which caused uart broken after any other infra mux being enabled by 'clk_prepare_enable' Signed-off-by: Sam Shih <sam.shih@mediatek.com> Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>
2024-08-19clk: mediatek: mt7981: rename CK to CLKChristian Marangi
Rename each entry from CK to CLK to match the include in upstream kernel linux. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19clk: mediatek: mt7981: convert to unified infracfg gates + muxesChristian Marangi
Convert to infracfg gates + muxes implementation now that it's supported. Drop infracfg-ao nodes and rename all infracfg-ao clocks to infracfg. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19clk: mediatek: mt7981: fix support for pwm3 clockChristian Marangi
Add and fix support for pwm3 clock. In the pwm DTSI node we were actually using PWM2 clock for PWM3. Now that we have correct ID also add the missing entry of gate and mux to support PWM3 clock. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19clk: mediatek: mt7981: replace infracfg ID with upstream linuxChristian Marangi
Replace infracfg clk ID with upstream linux version. Add some missing clk for PWM3 and for PCIe. The same format is used here with the factor first, then mux and then gates. To correctly reference the gates in clk_gate function, define the gates_offs value in clk_tree now that they are at an offset from mux and factor. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19clk: mediatek: mt7981: drop 1/1 spurious factorChristian Marangi
Now that we can have advanced parent handling for mux, we can drop spurious infracfg 1/1 factor. This is in preparation to make the clk ID match the ID in upstream include for mt7981. Drop the factor entry from mt7981-clk.h and reference to them in mt7981.dtsi. Muxes and gates are updated to reference the topckgen clk following how it's done in upstream kernel linux. Add relevant clk type flag in clk_tree for infracfg and topckgen. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19clk: mediatek: mt7981: implement sgmii0/1 clockChristian Marangi
Implement missing sgmii0/1 clock and update the compatible the DTS to match upstream kernel linux and in preparation for OF_UPSTREAM support since the ethernet node define these additional clocks. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19clk: mediatek: mt7981: fix wrong parent list for INFRA_PWM1_SEL muxChristian Marangi
Fix wrong parent list for INFRA_PWM1_SEL mux. The list is incorrect and the parents are just 2. This also match the upstream linux implementation. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19clk: mediatek: mt7981: fix wrong parent for TOP_FAUD clockChristian Marangi
Fix wrong parent for TOP_FAUD clock. Upstream linux sets the parent for TOP_FAUD to TOP_AUD_SEL instead of CB_CKSQ_40M. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19clk: mediatek: mt7981: fix wrong mux width for pwm2 and pwm1 clockChristian Marangi
Fix wrong mux width for pwm2 and pwm1. Upstream have width 1 but U-Boot have width set to 2. Change the value to follow upstream implementation. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19clk: mediatek: mt7981: fix typo for infra_i2c0_ckChristian Marangi
Fix a typo for infra_i2c0_ck where 0 was misspelled as O. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-08-19clk: mediatek: mt7981: add missing clock for infra_ipcie_pipeChristian Marangi
Add missing clock for infra_ipcie_pipe to make PCIe correctly work. This clock is a parent of the fixed clock from topckgen cb_cksq_40m. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2024-07-08clk: mediatek: mt7981: support alternative compatible for fixed-pllsChristian Marangi
Support alternative compatible for fixed-plls clocks used upstream with the compatible mediatek,mt7981-apmixedsys. Signed-off-by: Christian Marangi <ansuelsmth@gmail.com>
2022-09-23clk: mediatek: add clock driver support for MediaTek MT7981 SoCWeijie Gao
This patch adds clock driver support for MediaTek MT7981 SoC Reviewed-by: Sean Anderson <seanga2@gmail.com> Reviewed-by: Simon Glass <sjg@chromium.org> Signed-off-by: Weijie Gao <weijie.gao@mediatek.com>