<feed xmlns='http://www.w3.org/2005/Atom'>
<title>kernel/git/stable/linux.git/include/soc/spacemit, branch master</title>
<subtitle>Linux kernel stable tree</subtitle>
<id>https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=master</id>
<link rel='self' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/'/>
<updated>2026-07-29T02:42:06+00:00</updated>
<entry>
<title>clk: spacemit: k3: fix i2s clock topology</title>
<updated>2026-07-29T02:42:06+00:00</updated>
<author>
<name>Troy Mitchell</name>
<email>troy.mitchell@linux.spacemit.com</email>
</author>
<published>2026-07-17T07:26:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=e6b17a690c2f920963d6a9328642bb090f3be587'/>
<id>urn:sha1:e6b17a690c2f920963d6a9328642bb090f3be587</id>
<content type='text'>
The K3 i2s clocks were modelled as a single path behind one MPMU
register:

    pll1_d96_25p6 / i2s_153p6_base
      `-- i2s_sysclk_src (mux+gate, MPMU_ISCCR)
            `-- i2s1_sysclk (DDN, MPMU_ISCCR)
                  |-- i2s_bclk (div+gate, MPMU_ISCCR)
                  `-- i2s2_sysclk (mux, parent 0)

The hardware actually has two i2s clock control registers, ISCCR0
(0x0040) and ISCCR1 (0x0044): ISCCR1 drives the common sysclk shared
by i2s0/2/3/4/5 and the common bclk, whose divider always implies a
fixed 1/2 factor in front, while ISCCR0 drives a dedicated path for
i2s1:

    pll1_d96_25p6 / i2s_153p6_base
      |-- i2s_sysclk_src (mux+gate, MPMU_ISCCR1)
      |     `-- i2s_sysclk (DDN, MPMU_ISCCR1)
      |           |-- i2s_bclk_factor (fixed factor, /2)
      |           |     `-- i2s_bclk (div+gate, MPMU_ISCCR1)
      |           `-- i2s2_sysclk (mux, parent 0)
      `-- i2s1_sysclk_src (mux+gate, MPMU_ISCCR0)
            `-- i2s1_sysclk (DDN, MPMU_ISCCR0)

Because of this mismatch, i2s_bclk reported twice the real rate, and
the dedicated i2s1 clock path could not be described in DT at all.

Model the tree as above: split the MPMU_ISCCR register macro into
MPMU_ISCCR0 and MPMU_ISCCR1 to match the hardware register names,
rename the common DDN to i2s_sysclk, insert the fixed 1/2 factor
i2s_bclk_factor in front of i2s_bclk, and add the i2s1_sysclk_src mux
and i2s1_sysclk DDN backed by MPMU_ISCCR0. CLK_MPMU_I2S1_SYSCLK now
refers to the dedicated i2s1 clock; no in-tree user references this
ID, so nothing is affected by the change of meaning.

Fixes: e371a77255b8 ("clk: spacemit: k3: add the clock tree")
Signed-off-by: Troy Mitchell &lt;troy.mitchell@linux.spacemit.com&gt;
Reviewed-by: Yixun Lan &lt;dlan@kernel.org&gt;
Link: https://patch.msgid.link/20260717-k3-clk-fix-i2s-v1-2-e95001a692ee@linux.spacemit.com
Signed-off-by: Yixun Lan &lt;dlan@kernel.org&gt;
</content>
</entry>
<entry>
<title>clk: spacemit: k3: Fix PCIe clock register offset</title>
<updated>2026-06-02T07:16:59+00:00</updated>
<author>
<name>Yixun Lan</name>
<email>dlan@kernel.org</email>
</author>
<published>2026-05-11T02:59:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=2f20c859a82a291483a8b3f01cbfbb1642782a14'/>
<id>urn:sha1:2f20c859a82a291483a8b3f01cbfbb1642782a14</id>
<content type='text'>
The offset of PCIe Clock CTRL register for port B and C controller was
wrongly swapped, correct it here.

Fixes: 091d19cc2401 ("clk: spacemit: k3: extract common header")
Acked-by: Conor Dooley &lt;conor.dooley@microchip.com&gt;
Link: https://patch.msgid.link/20260511-06-pci-clk-fix-v2-2-c9a5e563bab3@kernel.org
Signed-off-by: Yixun Lan &lt;dlan@kernel.org&gt;
</content>
</entry>
<entry>
<title>clk: spacemit: k3: extract common header</title>
<updated>2026-01-09T02:46:25+00:00</updated>
<author>
<name>Yixun Lan</name>
<email>dlan@gentoo.org</email>
</author>
<published>2025-12-20T13:28:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=091d19cc24018f2bd783e932fb2403cb7a2bdb3c'/>
<id>urn:sha1:091d19cc24018f2bd783e932fb2403cb7a2bdb3c</id>
<content type='text'>
Extracting common header file, which will be shared by clock and reset
drivers. So will make it easy to add reset driver for K3 SoC later.

Link: https://lore.kernel.org/r/20260108-k3-clk-v5-4-42a11b74ad58@gentoo.org
Signed-off-by: Yixun Lan &lt;dlan@gentoo.org&gt;
</content>
</entry>
<entry>
<title>clk: spacemit: prepare common ccu header</title>
<updated>2026-01-09T00:47:53+00:00</updated>
<author>
<name>Yixun Lan</name>
<email>dlan@gentoo.org</email>
</author>
<published>2025-12-19T13:52:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=2b7a02c322922a37cc5fc15d055b794cc2193062'/>
<id>urn:sha1:2b7a02c322922a37cc5fc15d055b794cc2193062</id>
<content type='text'>
In order to prepare adding clock driver for new K3 SoC, extract generic
code to a separate common ccu header file, so they are not defined
in K1 SoC-specific file, and then can be shared by all clock drivers.

Link: https://lore.kernel.org/r/20260108-06-k1-clk-common-v4-1-badf635993d3@gentoo.org
Reviewed-by: Alex Elder &lt;elder@riscstar.com&gt;
Signed-off-by: Yixun Lan &lt;dlan@gentoo.org&gt;
</content>
</entry>
<entry>
<title>clk: spacemit: fix i2s clock</title>
<updated>2025-09-20T05:54:46+00:00</updated>
<author>
<name>Troy Mitchell</name>
<email>troy.mitchell@linux.spacemit.com</email>
</author>
<published>2025-09-11T03:34:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=519cff1d85694cbdf33b27591740e7e37348e6b4'/>
<id>urn:sha1:519cff1d85694cbdf33b27591740e7e37348e6b4</id>
<content type='text'>
Defining i2s_bclk and i2s_sysclk as fixed-rate clocks is insufficient
for real I2S use cases.

Moreover, the current I2S clock configuration does not work as expected
due to missing parent clocks.

This patch adds the missing parent clocks, defines i2s_sysclk as
a DDN clock, and i2s_bclk as a DIV clock.

A special note for i2s_bclk:

From the register definition, the i2s_bclk divider always implies
an additional 1/2 factor.

The following table shows the correspondence between index
and frequency division coefficients:

| index |  div  |
|-------|-------|
|   0   |   2   |
|   1   |   4   |
|   2   |   6   |
|   3   |   8   |

From a software perspective, introducing i2s_bclk_factor as the
parent of i2s_bclk is sufficient to address the issue.

The I2S-related clock registers can be found here [1].

Link:
https://developer.spacemit.com/documentation?token=LCrKwWDasiJuROkVNusc2pWTnEb
[1]

Fixes: 1b72c59db0add ("clk: spacemit: Add clock support for SpacemiT K1 SoC")
Co-developer: Jinmei Wei &lt;weijinmei@linux.spacemit.com&gt;
Suggested-by: Haylen Chu &lt;heylenay@4d2.org&gt;
Signed-off-by: Jinmei Wei &lt;weijinmei@linux.spacemit.com&gt;
Signed-off-by: Troy Mitchell &lt;troy.mitchell@linux.spacemit.com&gt;
Signed-off-by: Stephen Boyd &lt;sboyd@kernel.org&gt;
</content>
</entry>
<entry>
<title>reset: spacemit: add support for SpacemiT CCU resets</title>
<updated>2025-07-07T13:54:16+00:00</updated>
<author>
<name>Alex Elder</name>
<email>elder@riscstar.com</email>
</author>
<published>2025-07-02T11:37:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=c479d7cf06c3d65532442fa368b058e05dbba1a2'/>
<id>urn:sha1:c479d7cf06c3d65532442fa368b058e05dbba1a2</id>
<content type='text'>
Implement reset support for SpacemiT CCUs.  A SpacemiT reset controller
device is an auxiliary device associated with a clock controller (CCU).

This patch defines the reset controllers for the MPMU, APBC, and MPMU
CCUs, which already define clock controllers.  It also adds RCPU, RCPU2,
and ACPB2 CCUs, which only define resets.

Signed-off-by: Alex Elder &lt;elder@riscstar.com&gt;
Reviewed-by: Philipp Zabel &lt;p.zabel@pengutronix.de&gt;
Reviewed-by: Yixun Lan &lt;dlan@gentoo.org&gt;
Acked-by: Philipp Zabel &lt;p.zabel@pengutronix.de&gt;
Link: https://lore.kernel.org/r/20250702113709.291748-6-elder@riscstar.com
Signed-off-by: Yixun Lan &lt;dlan@gentoo.org&gt;
</content>
</entry>
<entry>
<title>clk: spacemit: set up reset auxiliary devices</title>
<updated>2025-07-03T15:24:00+00:00</updated>
<author>
<name>Alex Elder</name>
<email>elder@riscstar.com</email>
</author>
<published>2025-07-02T11:37:05+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=988543522ebd6a9af53c288833503f0501e401b0'/>
<id>urn:sha1:988543522ebd6a9af53c288833503f0501e401b0</id>
<content type='text'>
Add a new reset_name field to the spacemit_ccu_data structure.  If it is
non-null, the CCU implements a reset controller, and the name will be
used in the name for the auxiliary device that implements it.

Define a new type to hold an auxiliary device as well as the regmap
pointer that will be needed by CCU reset controllers.  Set up code to
initialize and add an auxiliary device for any CCU that implements reset
functionality.

Make it optional for a CCU to implement a clock controller.  This
doesn't apply to any of the existing CCUs but will for some new ones
that will be added soon.

Signed-off-by: Alex Elder &lt;elder@riscstar.com&gt;
Reviewed-by: Haylen Chu &lt;heylenay@4d2.org&gt;
Reviewed-by: Yixun Lan &lt;dlan@gentoo.org&gt;
Link: https://lore.kernel.org/r/20250702113709.291748-4-elder@riscstar.com
Signed-off-by: Yixun Lan &lt;dlan@gentoo.org&gt;
</content>
</entry>
<entry>
<title>soc: spacemit: create a header for clock/reset registers</title>
<updated>2025-07-03T15:23:57+00:00</updated>
<author>
<name>Alex Elder</name>
<email>elder@riscstar.com</email>
</author>
<published>2025-07-02T11:37:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.rulkc.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=bf6239ddaa6a73a44cd8ea3afec5fc82ed900038'/>
<id>urn:sha1:bf6239ddaa6a73a44cd8ea3afec5fc82ed900038</id>
<content type='text'>
Move the definitions of register offsets and fields used by the SpacemiT
K1 SoC CCUs into a separate header file, so that they can be shared by
the reset driver that will be found under drivers/reset.

Signed-off-by: Alex Elder &lt;elder@riscstar.com&gt;
Reviewed-by: Haylen Chu &lt;heylenay@4d2.org&gt;
Reviewed-by: Yixun Lan &lt;dlan@gentoo.org&gt;
Link: https://lore.kernel.org/r/20250702113709.291748-3-elder@riscstar.com
Signed-off-by: Yixun Lan &lt;dlan@gentoo.org&gt;
</content>
</entry>
</feed>
