clk: add support for TI CDCE6214
From: | Sascha Hauer <s.hauer-AT-pengutronix.de> | |
To: | Michael Turquette <mturquette-AT-baylibre.com>, Stephen Boyd <sboyd-AT-kernel.org>, Rob Herring <robh-AT-kernel.org>, Krzysztof Kozlowski <krzk+dt-AT-kernel.org>, Conor Dooley <conor+dt-AT-kernel.org> | |
Subject: | [PATCH v7 0/2] clk: add support for TI CDCE6214 | |
Date: | Wed, 01 Oct 2025 10:12:52 +0200 | |
Message-ID: | <20251001-clk-cdce6214-v7-0-5f8b44da95a5@pengutronix.de> | |
Cc: | linux-clk-AT-vger.kernel.org, linux-kernel-AT-vger.kernel.org, devicetree-AT-vger.kernel.org, kernel-AT-pengutronix.de, Linus Walleij <linus.walleij-AT-linaro.org>, linux-gpio-AT-vger.kernel.org, Alvin Šipraga <alsi-AT-bang-olufsen.dk>, Sascha Hauer <s.hauer-AT-pengutronix.de> | |
Archive-link: | Article |
The CDCE6214 is a Ultra-Low Power Clock Generator With One PLL, Four Differential Outputs, Two Inputs, and Internal EEPROM. This series adds a common clk framework driver for this chip along with the dt-bindings document. The cdce6214 needs several pins to be configured for different input/output modes which are abstracted with a pinctrl driver. In v5 I tried to split up the patch into a non controversial part (to be applied) and a part which needs more discussion (to be applied later). That was not very well received, so I merged it back in v6. I didn't mention that explicitly in v6, so doing it now. v7 contains only small changes, mostly binding updates requested by Rob. Sascha Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de> --- Changes in v7: - add missing blank line between properties in binding (Rob) - drop unnecessary #size-cells #address-cells in binding (Rob) - add vendor prefix to custom properties (Rob) - Use standard units where appropriate (Rob) - add dependency to PINCTRL and select GENERIC_PINCONF (0day bot) - re-add missing SPDX in ti,cdce6214.h - Link to v6: https://lore.kernel.org/r/20250903-clk-cdce6214-v6-0-b2cc... Changes in v6: - merge split up patches back together (forgot to mention when sending v6) - use pinctrl subsystem to configure pins - Link to v5: https://lore.kernel.org/r/20250618-clk-cdce6214-v5-0-9938... Changes in v5: - Reword commit message for binding patch (Krzysztof) - Make clock binding yaml simpler (Krzysztof) - add link to datasheet to driver code (Stephen) - Drop inclusion of linux/clk.h (Stephen) - Add missing #include <linux/bitfield.h> (Kernel test robot) - simplify cdce6214_clk_out0_get_parent() (Stephen) - Use divider_get_val() where appropriate (Stephen) - Add Rxx defines for registers (Stephen) - Add define for magic value 24 (Stephen) - introduce and use cdce6214_clk_psx_mask() (Stephen) - Use clamp() instead of open code (Stephen) - declare const arrays const (Stephen) - more use of dev_err_probe() (Stephen) - use determine_rate() instead of round_rate (Stephen) - split out pin configuration to separate patches - Link to v4: https://lore.kernel.org/r/20250430-clk-cdce6214-v4-0-9f15... Changes in v4: - add missing '>' modifier in include/dt-bindings/clock/ti,cdce6214.h - fix clocks maxItems should be 2 - add missing license in include/dt-bindings/clock/ti,cdce6214.h - Fix checkpatch issues - Link to v3: https://lore.kernel.org/r/20250410-clk-cdce6214-v3-0-d73c... Changes in v3: - Use string properties instead of int for enums - Use units from property-units in dtschema - Link to v2: https://lore.kernel.org/r/20250409-clk-cdce6214-v2-0-40b2... Changes in v2: - Use consistent quotes in binding document - make clock-names an enum to make each clock fully optional - drop '|' in binding description where not needed - encode clock input mode into integer - encode clock output mode into integer - do not use defines for reg properties - support setting load capacity for the oscillator via device tree - support setting Bias current for the oscillator via device tree - support setting polarities of CMOS outputs via device tree - fix compatible string in driver - remove unused struct cdce6214_config - Link to v1: https://lore.kernel.org/r/20250408-clk-cdce6214-v1-0-bd4e... --- Sascha Hauer (2): dt-bindings: clock: add TI CDCE6214 binding clk: add TI CDCE6214 clock driver .../devicetree/bindings/clock/ti,cdce6214.yaml | 192 +++ drivers/clk/Kconfig | 9 + drivers/clk/Makefile | 1 + drivers/clk/clk-cdce6214.c | 1620 ++++++++++++++++++++ include/dt-bindings/clock/ti,cdce6214.h | 25 + 5 files changed, 1847 insertions(+) --- base-commit: e5f0a698b34ed76002dc5cff3804a61c80233a7a change-id: 20250408-clk-cdce6214-0c74043dc267 Best regards, -- Sascha Hauer <s.hauer@pengutronix.de>