From: Richard Fitzgerald <rf@opensource.cirrus.com>
To: mturquette@baylibre.com, sboyd@kernel.org, bmasney@redhat.com,
robh@kernel.org, krzk+dt@kernel.org, conor+dt@kernel.org
Cc: linux-clk@vger.kernel.org, devicetree@vger.kernel.org,
linux-kernel@vger.kernel.org, patches@opensource.cirrus.com
Subject: [PATCH v6 0/3] Cirrus Logic CS2600 clock device
Date: Tue, 30 Jun 2026 16:55:46 +0100 [thread overview]
Message-ID: <20260630155549.824059-1-rf@opensource.cirrus.com> (raw)
This patch set provides Common Clock Framework support for the
Cirrus Logic CS2600 Fractional-N Clock Synthesizer and Multiplier.
KUnit testing is included in the series.
Major changes:
v6 changes:
- Convert DT smart mode selection from an enum property to two booleans.
- Fix DT clock names to match the datasheet names.
- Add DT property to explicitly flag that the internal oscillator should
be used instead of inferring it from having a variable definition of
clock-names.
- Add DT support for setting BCLK invert, FSYNC invert, and FSYNC duty
cycles.
- More DT examples
- Merged and factored-out duplicated code in the driver.
- Fixed rounding errors that caused the calculated frequency to drift when
it was passed into clock core and then passed back to the driver.
- Fixed driver bugs where the functions for one clock relied on the
register values of other clocks being set already, which is not
guaranteed.
- Fix a bug where the (mandatory) REF_CLK_IN wasn't requested and enabled
when using CLK_IN as the frequency reference in manual mode.
- Lots of code cleanup in the driver
- Fix driver bugs.
- Added KUnit test.
v5 changes:
- Change dt-binding to dt-bindings in commit message
- Add minItems to clocks
- Remove unneeded comments for the cirrus,aux-output-source enums
v4 changes:
- Change DT discription to add more detial.
- Move reg property to keep consistent with the required list.
- Add enum to string DT inputs and change the input values to lower case.
- Change unevauatedProperties to additionalProperties
- Reove black line.
v3 changes:
- Changed clock-names in device tree to an emum since the both clocks
are not always required.
- Changed cirrus,aux-output-source to a string input.
- Added cirrus,clock-mode as a string input.
- Fixed ordering in DT example.
- Removed dt-bindings .h file.
- Add in_range to allow for acceptable ranges for clock rates.
v2 changes:
- Remove | from after "discription" in DT binding.
- Remove discription from "clocks" in DT binding.
- Change ref_clk to xti
- Clarify auxiliary clock pin
- Change DT example to not have "reg" for the bus
- Change DT example to change i2c@0 to i2c
- Remove "OUTPUT" from the clock ouputs in the dt binding include file.
- Remove AUX_OUT defines
- Use do_div when dividing u64 by a u32
- Include the dt bindings include file
- Use the includes from the dt bindings include file aux output.
- Move of_device_id and i2c_device_id tables next to i2c_driver struct.
Paul Handrigan (2):
dt-bindings: clock: cs2600: Add support for the CS2600
clk: cs2600: Add Fractional-N clock driver
Richard Fitzgerald (1):
clk: cs2600: Add KUnit test for CS2600 driver
.../bindings/clock/cirrus,cs2600.yaml | 262 ++
MAINTAINERS | 8 +
drivers/clk/Kconfig | 1 +
drivers/clk/Makefile | 1 +
drivers/clk/cirrus/Kconfig | 23 +
drivers/clk/cirrus/Makefile | 27 +
drivers/clk/cirrus/clk-cs2600-kunit.c | 2495 +++++++++++++++++
drivers/clk/cirrus/clk-cs2600-kunit.h | 18 +
drivers/clk/cirrus/clk-cs2600.c | 1274 +++++++++
drivers/clk/cirrus/clk-cs2600.h | 163 ++
drivers/clk/cirrus/kunit_clk_cs2600.dtsi | 40 +
.../clk/cirrus/kunit_clk_cs2600_assigned.dtso | 27 +
.../kunit_clk_cs2600_aux1_out_clk_in.dtso | 17 +
...it_clk_cs2600_aux1_out_clk_in_missing.dtso | 17 +
...kunit_clk_cs2600_aux1_out_freq_unlock.dtso | 17 +
...unit_clk_cs2600_aux1_out_phase_unlock.dtso | 17 +
.../kunit_clk_cs2600_aux1_out_ref_clk_in.dtso | 17 +
.../cirrus/kunit_clk_cs2600_bclk_invert.dtso | 17 +
.../cirrus/kunit_clk_cs2600_fsync_duty_1.dtso | 17 +
.../cirrus/kunit_clk_cs2600_fsync_duty_2.dtso | 17 +
.../kunit_clk_cs2600_fsync_duty_32.dtso | 17 +
.../cirrus/kunit_clk_cs2600_fsync_invert.dtso | 17 +
.../kunit_clk_cs2600_manual_intosc_clkin.dtso | 17 +
.../kunit_clk_cs2600_manual_intosc_only.dtso | 17 +
.../kunit_clk_cs2600_manual_refclk_clkin.dtso | 16 +
.../kunit_clk_cs2600_manual_refclk_only.dtso | 16 +
.../kunit_clk_cs2600_name_output_clocks.dtso | 23 +
...it_clk_cs2600_smart_clkin_only_intosc.dtso | 19 +
...it_clk_cs2600_smart_clkin_only_refclk.dtso | 18 +
.../cirrus/kunit_clk_cs2600_smart_intosc.dtso | 18 +
.../cirrus/kunit_clk_cs2600_smart_refclk.dtso | 17 +
.../dt-bindings/clock/cirrus,cs2600-clock.h | 18 +
32 files changed, 4688 insertions(+)
create mode 100644 Documentation/devicetree/bindings/clock/cirrus,cs2600.yaml
create mode 100644 drivers/clk/cirrus/Kconfig
create mode 100644 drivers/clk/cirrus/Makefile
create mode 100644 drivers/clk/cirrus/clk-cs2600-kunit.c
create mode 100644 drivers/clk/cirrus/clk-cs2600-kunit.h
create mode 100644 drivers/clk/cirrus/clk-cs2600.c
create mode 100644 drivers/clk/cirrus/clk-cs2600.h
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600.dtsi
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_assigned.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_aux1_out_clk_in.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_aux1_out_clk_in_missing.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_aux1_out_freq_unlock.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_aux1_out_phase_unlock.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_aux1_out_ref_clk_in.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_bclk_invert.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_fsync_duty_1.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_fsync_duty_2.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_fsync_duty_32.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_fsync_invert.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_manual_intosc_clkin.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_manual_intosc_only.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_manual_refclk_clkin.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_manual_refclk_only.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_name_output_clocks.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_smart_clkin_only_intosc.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_smart_clkin_only_refclk.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_smart_intosc.dtso
create mode 100644 drivers/clk/cirrus/kunit_clk_cs2600_smart_refclk.dtso
create mode 100644 include/dt-bindings/clock/cirrus,cs2600-clock.h
--
2.47.3
next reply other threads:[~2026-06-30 15:56 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-06-30 15:55 Richard Fitzgerald [this message]
2026-06-30 15:55 ` [PATCH v6 1/3] dt-bindings: clock: cs2600: Add support for the CS2600 Richard Fitzgerald
2026-07-01 6:48 ` Krzysztof Kozlowski
2026-07-01 8:59 ` Richard Fitzgerald
2026-06-30 15:55 ` [PATCH v6 2/3] clk: cs2600: Add Fractional-N clock driver Richard Fitzgerald
2026-06-30 16:11 ` sashiko-bot
2026-07-01 9:38 ` Richard Fitzgerald
2026-06-30 16:59 ` Uwe Kleine-König
2026-06-30 15:55 ` [PATCH v6 3/3] clk: cs2600: Add KUnit test for CS2600 driver Richard Fitzgerald
2026-06-30 16:14 ` sashiko-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260630155549.824059-1-rf@opensource.cirrus.com \
--to=rf@opensource.cirrus.com \
--cc=bmasney@redhat.com \
--cc=conor+dt@kernel.org \
--cc=devicetree@vger.kernel.org \
--cc=krzk+dt@kernel.org \
--cc=linux-clk@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mturquette@baylibre.com \
--cc=patches@opensource.cirrus.com \
--cc=robh@kernel.org \
--cc=sboyd@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox