<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/next/linux-next.git/drivers/clk/nuvoton, branch master</title>
<subtitle>The linux-next integration testing tree</subtitle>
<id>https://git.rulkc.org/pub/scm/linux/kernel/git/next/linux-next.git/atom?h=master</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/linux/kernel/git/next/linux-next.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/next/linux-next.git/'/>
<updated>2026-06-29T17:27:28+00:00</updated>
<entry>
<title>clk: nuvoton: ma35d1: fix ma35d1_clk_pll_determine_rate logic</title>
<updated>2026-06-29T17:27:28+00:00</updated>
<author>
<name>Joey Lu</name>
<email>a0987203069@gmail.com</email>
</author>
<published>2026-05-21T01:42:20+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=e1311954cb600d5f95cd9e2fe9a7376edc2ac3c5'/>
<id>urn:sha1:e1311954cb600d5f95cd9e2fe9a7376edc2ac3c5</id>
<content type='text'>
ma35d1_clk_pll_determine_rate() called ma35d1_pll_find_closest()
unconditionally before the switch statement, and then every case
branch overwrote pll_freq by reading the current hardware registers.
For CAPLL and DDRPLL this means find_closest() ran unnecessarily
(and incorrectly, since those PLLs are read-only) and its result
was silently discarded.

Fix by moving the find_closest() call inside the APLL/EPLL/VPLL
branch where it belongs.  Group CAPLL and DDRPLL together as
read-only PLLs that simply report their current rate; handle them
with an explicit if/else to keep the CAPLL (SMIC design) and DDRPLL
(standard design) paths distinct.

Fixes: 691521a367cf ("clk: nuvoton: Add clock driver for ma35d1 clock controller")
Signed-off-by: Joey Lu &lt;a0987203069@gmail.com&gt;
Signed-off-by: Brian Masney &lt;bmasney@redhat.com&gt;
</content>
</entry>
<entry>
<title>clk: nuvoton: ma35d1: fix PLL_CTL1_FRAC bit field width and fractional calc</title>
<updated>2026-06-29T17:27:28+00:00</updated>
<author>
<name>Joey Lu</name>
<email>a0987203069@gmail.com</email>
</author>
<published>2026-05-21T01:42:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=26de5aed72d80bd8aec2583134aca3597c64fda9'/>
<id>urn:sha1:26de5aed72d80bd8aec2583134aca3597c64fda9</id>
<content type='text'>
PLL_CTL1_FRAC was defined as GENMASK(31, 24), covering only 8 bits.
The hardware fractional field occupies bits [31:8] (24 bits), so the
mask must be GENMASK(31, 8).

The previous fractional-mode calculation used FIELD_MAX(PLL_CTL1_FRAC)
as the denominator to obtain 2 decimal places.  With the corrected 24-bit
mask the old divisor is wrong; replace the arithmetic with a proper
24-bit fixed-point rounding to 3 decimal places using the kernel's
DIV_ROUND_CLOSEST_ULL helper:

  n_frac = n * 1000 + DIV_ROUND_CLOSEST_ULL(x * 1000, 1 &lt;&lt; 24)

Fixes: 691521a367cf ("clk: nuvoton: Add clock driver for ma35d1 clock controller")
Signed-off-by: Joey Lu &lt;a0987203069@gmail.com&gt;
Reviewed-by: Brian Masney &lt;bmasney@redhat.com&gt;
Signed-off-by: Brian Masney &lt;bmasney@redhat.com&gt;
</content>
</entry>
<entry>
<title>clk: nuvoton: ma35d1: fix ignored div_u64 return values in PLL freq calculation</title>
<updated>2026-06-29T17:27:28+00:00</updated>
<author>
<name>Joey Lu</name>
<email>a0987203069@gmail.com</email>
</author>
<published>2026-05-21T01:42:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=b3a2223a7805c7e6759a32a5d6ca574ad07e2710'/>
<id>urn:sha1:b3a2223a7805c7e6759a32a5d6ca574ad07e2710</id>
<content type='text'>
div_u64() does not modify its argument in place; the return value must
be assigned.  Both ma35d1_calc_smic_pll_freq() and ma35d1_calc_pll_freq()
called div_u64() and discarded the result, leaving pll_freq holding the
undivided product and thus returning a frequency orders of magnitude too
high.

Fixes: 691521a367cf ("clk: nuvoton: Add clock driver for ma35d1 clock controller")

Reviewed-by: Brian Masney &lt;bmasney@redhat.com&gt;
Signed-off-by: Joey Lu &lt;a0987203069@gmail.com&gt;
Signed-off-by: Brian Masney &lt;bmasney@redhat.com&gt;
</content>
</entry>
<entry>
<title>clk: nuvoton: ma35d1-divider: convert from divider_round_rate() to divider_determine_rate()</title>
<updated>2026-01-22T15:48:25+00:00</updated>
<author>
<name>Brian Masney</name>
<email>bmasney@redhat.com</email>
</author>
<published>2026-01-08T21:16:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=9329d784ca9aad03b12508128797d40fd1f2e0c1'/>
<id>urn:sha1:9329d784ca9aad03b12508128797d40fd1f2e0c1</id>
<content type='text'>
The divider_round_rate() function is now deprecated, so let's migrate
to divider_determine_rate() instead so that this deprecated API can be
removed.

Note that when the main function itself was migrated to use
determine_rate, this was mistakenly converted to:

    req-&gt;rate = divider_round_rate(...)

This is invalid in the case when an error occurs since it can set the
rate to a negative value.

Fixes: 215f8aa095a1 ("clk: nuvoton: ma35d1-divider: convert from round_rate() to determine_rate()")
Signed-off-by: Brian Masney &lt;bmasney@redhat.com&gt;
</content>
</entry>
<entry>
<title>clk: nuvoton: ma35d1-pll: convert from round_rate() to determine_rate()</title>
<updated>2025-09-08T13:41:27+00:00</updated>
<author>
<name>Brian Masney</name>
<email>bmasney@redhat.com</email>
</author>
<published>2025-08-11T15:18:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=cd9e9bbfd93be277e316ee854614e2c4cd502fa8'/>
<id>urn:sha1:cd9e9bbfd93be277e316ee854614e2c4cd502fa8</id>
<content type='text'>
The round_rate() clk ops is deprecated, so migrate this driver from
round_rate() to determine_rate() using the Coccinelle semantic patch
on the cover letter of this series.

Signed-off-by: Brian Masney &lt;bmasney@redhat.com&gt;
</content>
</entry>
<entry>
<title>clk: nuvoton: ma35d1-divider: convert from round_rate() to determine_rate()</title>
<updated>2025-09-08T13:41:27+00:00</updated>
<author>
<name>Brian Masney</name>
<email>bmasney@redhat.com</email>
</author>
<published>2025-08-11T15:18:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=215f8aa095a1e3384ab5d84bae6b86cab0e491be'/>
<id>urn:sha1:215f8aa095a1e3384ab5d84bae6b86cab0e491be</id>
<content type='text'>
The round_rate() clk ops is deprecated, so migrate this driver from
round_rate() to determine_rate() using the Coccinelle semantic patch
on the cover letter of this series.

Signed-off-by: Brian Masney &lt;bmasney@redhat.com&gt;
</content>
</entry>
<entry>
<title>clk: nuvoton: Do not enable by default during compile testing</title>
<updated>2025-06-20T07:21:15+00:00</updated>
<author>
<name>Krzysztof Kozlowski</name>
<email>krzysztof.kozlowski@linaro.org</email>
</author>
<published>2025-04-04T11:56:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=e813fc758c842d65cac348a6b62cfc389a6ec0ea'/>
<id>urn:sha1:e813fc758c842d65cac348a6b62cfc389a6ec0ea</id>
<content type='text'>
Enabling the compile test should not cause automatic enabling of all
drivers.  Restrict the default to ARCH also for individual driver, even
though its choice is not visible without selecting parent Kconfig
symbol, because otherwise selecting parent would select the child during
compile testing.

Signed-off-by: Krzysztof Kozlowski &lt;krzysztof.kozlowski@linaro.org&gt;
Link: https://lore.kernel.org/r/20250404-kconfig-defaults-clk-v1-2-4d2df5603332@linaro.org
Signed-off-by: Stephen Boyd &lt;sboyd@kernel.org&gt;
</content>
</entry>
<entry>
<title>clk: nuvoton: Convert to devm_platform_ioremap_resource()</title>
<updated>2023-08-22T21:52:11+00:00</updated>
<author>
<name>Yangtao Li</name>
<email>frank.li@vivo.com</email>
</author>
<published>2023-07-05T06:53:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=257cb9f2da55d5d97cdeaa68d11202595aede27d'/>
<id>urn:sha1:257cb9f2da55d5d97cdeaa68d11202595aede27d</id>
<content type='text'>
Use devm_platform_ioremap_resource() to simplify code.

Signed-off-by: Yangtao Li &lt;frank.li@vivo.com&gt;
Link: https://lore.kernel.org/r/20230705065313.67043-12-frank.li@vivo.com
Acked-by: Jacky Huang &lt;ychuang3@nuvoton.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@kernel.org&gt;
</content>
</entry>
<entry>
<title>clk: nuvoton: Use clk_parent_data instead of string for parent clock</title>
<updated>2023-06-22T15:02:50+00:00</updated>
<author>
<name>Jacky Huang</name>
<email>ychuang3@nuvoton.com</email>
</author>
<published>2023-06-22T14:13:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=f50a000b42195a0e0d22c34c16b7c488b22063a2'/>
<id>urn:sha1:f50a000b42195a0e0d22c34c16b7c488b22063a2</id>
<content type='text'>
For the declaration of parent clocks, use struct clk_parent_data instead
of a string. Due to the change in the passed arguments, replace the usage
of devm_clk_hw_register_mux() with clk_hw_register_mux_parent_data() for
all cases.

Signed-off-by: Jacky Huang &lt;ychuang3@nuvoton.com&gt;
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
</entry>
<entry>
<title>clk: nuvoton: Update all constant hex values to lowercase</title>
<updated>2023-06-22T15:02:50+00:00</updated>
<author>
<name>Jacky Huang</name>
<email>ychuang3@nuvoton.com</email>
</author>
<published>2023-06-22T14:13:42+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=ebd617b675438a75d773833f5d87b70fbdb88e96'/>
<id>urn:sha1:ebd617b675438a75d773833f5d87b70fbdb88e96</id>
<content type='text'>
The constant hex values used to define register offsets were written
in uppercase. This patch update all these constant hex values to
be lowercase.

Signed-off-by: Jacky Huang &lt;ychuang3@nuvoton.com&gt;
Signed-off-by: Arnd Bergmann &lt;arnd@arndb.de&gt;
</content>
</entry>
</feed>
