summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorStephen Boyd <sboyd@kernel.org>2023-04-13 02:19:39 +0300
committerStephen Boyd <sboyd@kernel.org>2023-04-13 02:19:39 +0300
commit80e9552e843b2ec7d813cfdb71f84f738df0d044 (patch)
treec8e43633ad2c90dfb1e28e09837c97c070ff037f /include
parentfe15c26ee26efa11741a7b632e9f23b01aca4cc6 (diff)
parent8a05f5cccdbe851265bf513643ada48c26b1267f (diff)
downloadlinux-80e9552e843b2ec7d813cfdb71f84f738df0d044.tar.xz
Merge tag 'clk-imx-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/abelvesa/linux into clk-imx
Pull i.MX clk driver updates from Abel Vesa: - Add clock generic devm_clk_hw_register_gate_parent_data. - Add audiomix block control for i.MX8MP. - Add support for determine_rate to composite-8m. - Add new macro for composite-8m to allow custom flags. - Let the LCDIF Pixel clock of i.MX8MM and i.MX8MN set parent rate. - Provide clock name in error message for clk-gpr-mux on get parent failure. - Drop duplicate imx_clk_mux_flags macro. - Register the i.MX8MP Media Disp2 Pix clock as bus clock. - Add Media LDB root clock to i.MX8MP. - Make i.MX8MP nand_usdhc_bus clock as non-critical. - Fix the rate table for fracn-gppll. - Disable HW control for the fracn-gppll in order to be controlled by register write. - Add support for interger PLL in fracn-gppll. - Add mcore_booted module parameter to i.MX93 provider. - Add NIC, A55 and ARM PLL clocks to i.MX93. - Fix i.MX8ULP XBAR_DIVBUS and AD_SLOW clock parents. - Use "divider closest" clock type for PLL4_PFD dividers on i.MX8ULP to get more accurate clock rates. - Mark the MU0_Bi and TPM5 clocks on i.MX8ULP as critical. - Update some of the critical clocks flags to allow glitchless on-the-fly rate change. * tag 'clk-imx-6.4' of git://git.kernel.org/pub/scm/linux/kernel/git/abelvesa/linux: (25 commits) clk: imx: imx8ulp: update clk flag for system critical clock clk: imx: imx8ulp: Add tpm5 clock as critical gate clock clk: imx: imx8ulp: keep MU0_B clock enabled always clk: imx: imx8ulp: Add divider closest support to get more accurate clock rate clk: imx: imx8ulp: Fix XBAR_DIVBUS and AD_SLOW clock parents clk: imx: imx93: Add nic and A55 clk dt-bindings: clock: imx93: add NIC, A55 and ARM PLL CLK clk: imx: imx93: add mcore_booted module paratemter clk: imx: fracn-gppll: Add 300MHz freq support for imx9 clk: imx: fracn-gppll: support integer pll clk: imx: fracn-gppll: disable hardware select control clk: imx: fracn-gppll: fix the rate table clk: imx: imx8mp: change the 'nand_usdhc_bus' clock to non-critical clk: imx: imx8mp: Add LDB root clock dt-bindings: clock: imx8mp: Add LDB clock entry clk: imx: imx8mp: correct DISP2 pixel clock type clk: imx: drop duplicated macro clk: imx: clk-gpr-mux: Provide clock name in error message clk: imx: Let IMX8MN_CLK_DISP_PIXEL set parent rate clk: imx8mm: Let IMX8MM_CLK_LCDIF_PIXEL set parent rate ...
Diffstat (limited to 'include')
-rw-r--r--include/dt-bindings/clock/imx8mp-clock.h4
-rw-r--r--include/dt-bindings/clock/imx93-clock.h6
-rw-r--r--include/linux/clk-provider.h19
3 files changed, 26 insertions, 3 deletions
diff --git a/include/dt-bindings/clock/imx8mp-clock.h b/include/dt-bindings/clock/imx8mp-clock.h
index ede1f65a3147..3f28ce685f41 100644
--- a/include/dt-bindings/clock/imx8mp-clock.h
+++ b/include/dt-bindings/clock/imx8mp-clock.h
@@ -334,8 +334,8 @@
#define IMX8MP_CLK_SAI6_ROOT 326
#define IMX8MP_CLK_SAI7_ROOT 327
#define IMX8MP_CLK_PDM_ROOT 328
-
-#define IMX8MP_CLK_END 329
+#define IMX8MP_CLK_MEDIA_LDB_ROOT 329
+#define IMX8MP_CLK_END 330
#define IMX8MP_CLK_AUDIOMIX_SAI1_IPG 0
#define IMX8MP_CLK_AUDIOMIX_SAI1_MCLK1 1
diff --git a/include/dt-bindings/clock/imx93-clock.h b/include/dt-bindings/clock/imx93-clock.h
index 8e02859d8ce2..35a1f62053a5 100644
--- a/include/dt-bindings/clock/imx93-clock.h
+++ b/include/dt-bindings/clock/imx93-clock.h
@@ -199,6 +199,10 @@
#define IMX93_CLK_MU1_B_GATE 194
#define IMX93_CLK_MU2_A_GATE 195
#define IMX93_CLK_MU2_B_GATE 196
-#define IMX93_CLK_END 197
+#define IMX93_CLK_NIC_AXI 197
+#define IMX93_CLK_ARM_PLL 198
+#define IMX93_CLK_A55_SEL 199
+#define IMX93_CLK_A55_CORE 200
+#define IMX93_CLK_END 201
#endif
diff --git a/include/linux/clk-provider.h b/include/linux/clk-provider.h
index 842e72a5348f..92b7c794c627 100644
--- a/include/linux/clk-provider.h
+++ b/include/linux/clk-provider.h
@@ -608,6 +608,25 @@ struct clk *clk_register_gate(struct device *dev, const char *name,
__devm_clk_hw_register_gate((dev), NULL, (name), (parent_name), NULL, \
NULL, (flags), (reg), (bit_idx), \
(clk_gate_flags), (lock))
+
+/**
+ * devm_clk_hw_register_gate - register a gate clock with the clock framework
+ * @dev: device that is registering this clock
+ * @name: name of this clock
+ * @parent_data: parent clk data
+ * @flags: framework-specific flags for this clock
+ * @reg: register address to control gating of this clock
+ * @bit_idx: which bit in the register controls gating of this clock
+ * @clk_gate_flags: gate-specific flags for this clock
+ * @lock: shared register lock for this clock
+ */
+#define devm_clk_hw_register_gate_parent_data(dev, name, parent_data, flags, \
+ reg, bit_idx, clk_gate_flags, \
+ lock) \
+ __devm_clk_hw_register_gate((dev), NULL, (name), NULL, NULL, \
+ (parent_data), (flags), (reg), (bit_idx), \
+ (clk_gate_flags), (lock))
+
void clk_unregister_gate(struct clk *clk);
void clk_hw_unregister_gate(struct clk_hw *hw);
int clk_gate_is_enabled(struct clk_hw *hw);