summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTroy Mitchell <troy.mitchell@linux.spacemit.com>2026-07-21 19:35:57 -0700
committerYixun Lan <dlan@kernel.org>2026-07-29 01:20:13 +0000
commitcd01c677869affe1b01403ca2fad8fc0fe85e8bd (patch)
tree26efd9c6e2f3802e1f368a8d98eeda8bcb23674b
parent46380e4b1534c1626cecd7f4d0abb5e0cce09af6 (diff)
downloadlinux-next-cd01c677869affe1b01403ca2fad8fc0fe85e8bd.tar.gz
linux-next-cd01c677869affe1b01403ca2fad8fc0fe85e8bd.zip
riscv: dts: spacemit: k3: add i2s0-i2s5 nodes
Add the six SSPA-based I2S controller nodes for the K3 SoC. i2s0 and i2s2-i2s5 each have a dedicated per-controller sysclk divider, so they use the published 7-clock layout (sysclk, bclk, bus, func, sysclk_div, c_sysclk, c_bclk). i2s1 uses 6 clocks (sysclk, bclk, bus, func, c_sysclk, c_bclk) because its sysclk is driven directly by a DDN (ISCCR0) and has no separate divider stage. Signed-off-by: Troy Mitchell <troy.mitchell@linux.spacemit.com> Reviewed-by: Yixun Lan <dlan@kernel.org> Link: https://patch.msgid.link/20260721-kx-i2s-dts-v1-3-d22cb6cfaab5@linux.spacemit.com Signed-off-by: Yixun Lan <dlan@kernel.org>
-rw-r--r--arch/riscv/boot/dts/spacemit/k3.dtsi119
1 files changed, 119 insertions, 0 deletions
diff --git a/arch/riscv/boot/dts/spacemit/k3.dtsi b/arch/riscv/boot/dts/spacemit/k3.dtsi
index c3f2dce0969c..0eb24fac4733 100644
--- a/arch/riscv/boot/dts/spacemit/k3.dtsi
+++ b/arch/riscv/boot/dts/spacemit/k3.dtsi
@@ -1170,6 +1170,125 @@
status = "disabled";
};
+ i2s0: i2s@d4026000 {
+ compatible = "spacemit,k3-i2s";
+ reg = <0x0 0xd4026000 0x0 0x30>;
+ clocks = <&syscon_mpmu CLK_MPMU_I2S0_SYSCLK>,
+ <&syscon_apbc CLK_APBC_I2S0_BCLK>,
+ <&syscon_apbc CLK_APBC_I2S0_BUS>,
+ <&syscon_apbc CLK_APBC_I2S0>,
+ <&syscon_mpmu CLK_MPMU_I2S0_SYSCLK_DIV>,
+ <&syscon_mpmu CLK_MPMU_I2S_SYSCLK>,
+ <&syscon_mpmu CLK_MPMU_I2S_BCLK>;
+ clock-names = "sysclk", "bclk", "bus", "func",
+ "sysclk_div", "c_sysclk", "c_bclk";
+ dmas = <&pdma 21>, <&pdma 22>;
+ dma-names = "tx", "rx";
+ resets = <&syscon_apbc RESET_APBC_I2S0>;
+ #sound-dai-cells = <0>;
+
+ status = "disabled";
+ };
+
+ i2s1: i2s@d4026800 {
+ compatible = "spacemit,k3-i2s";
+ reg = <0x0 0xd4026800 0x0 0x30>;
+ clocks = <&syscon_mpmu CLK_MPMU_I2S1_SYSCLK>,
+ <&syscon_apbc CLK_APBC_I2S1_BCLK>,
+ <&syscon_apbc CLK_APBC_I2S1_BUS>,
+ <&syscon_apbc CLK_APBC_I2S1>,
+ <&syscon_mpmu CLK_MPMU_I2S_SYSCLK>,
+ <&syscon_mpmu CLK_MPMU_I2S_BCLK>;
+ clock-names = "sysclk", "bclk", "bus", "func",
+ "c_sysclk", "c_bclk";
+ dmas = <&pdma 23>, <&pdma 24>;
+ dma-names = "tx", "rx";
+ resets = <&syscon_apbc RESET_APBC_I2S1>;
+ #sound-dai-cells = <0>;
+
+ status = "disabled";
+ };
+
+ i2s2: i2s@d4027000 {
+ compatible = "spacemit,k3-i2s";
+ reg = <0x0 0xd4027000 0x0 0x30>;
+ clocks = <&syscon_mpmu CLK_MPMU_I2S2_SYSCLK>,
+ <&syscon_apbc CLK_APBC_I2S2_BCLK>,
+ <&syscon_apbc CLK_APBC_I2S2_BUS>,
+ <&syscon_apbc CLK_APBC_I2S2>,
+ <&syscon_mpmu CLK_MPMU_I2S2_SYSCLK_DIV>,
+ <&syscon_mpmu CLK_MPMU_I2S_SYSCLK>,
+ <&syscon_mpmu CLK_MPMU_I2S_BCLK>;
+ clock-names = "sysclk", "bclk", "bus", "func",
+ "sysclk_div", "c_sysclk", "c_bclk";
+ dmas = <&pdma 56>, <&pdma 57>;
+ dma-names = "tx", "rx";
+ resets = <&syscon_apbc RESET_APBC_I2S2>;
+ #sound-dai-cells = <0>;
+
+ status = "disabled";
+ };
+
+ i2s3: i2s@d4027800 {
+ compatible = "spacemit,k3-i2s";
+ reg = <0x0 0xd4027800 0x0 0x30>;
+ clocks = <&syscon_mpmu CLK_MPMU_I2S3_SYSCLK>,
+ <&syscon_apbc CLK_APBC_I2S3_BCLK>,
+ <&syscon_apbc CLK_APBC_I2S3_BUS>,
+ <&syscon_apbc CLK_APBC_I2S3>,
+ <&syscon_mpmu CLK_MPMU_I2S3_SYSCLK_DIV>,
+ <&syscon_mpmu CLK_MPMU_I2S_SYSCLK>,
+ <&syscon_mpmu CLK_MPMU_I2S_BCLK>;
+ clock-names = "sysclk", "bclk", "bus", "func",
+ "sysclk_div", "c_sysclk", "c_bclk";
+ dmas = <&pdma 58>, <&pdma 59>;
+ dma-names = "tx", "rx";
+ resets = <&syscon_apbc RESET_APBC_I2S3>;
+ #sound-dai-cells = <0>;
+
+ status = "disabled";
+ };
+
+ i2s4: i2s@d4041000 {
+ compatible = "spacemit,k3-i2s";
+ reg = <0x0 0xd4041000 0x0 0x30>;
+ clocks = <&syscon_mpmu CLK_MPMU_I2S4_SYSCLK>,
+ <&syscon_apbc CLK_APBC_I2S4_BCLK>,
+ <&syscon_apbc CLK_APBC_I2S4_BUS>,
+ <&syscon_apbc CLK_APBC_I2S4>,
+ <&syscon_mpmu CLK_MPMU_I2S4_SYSCLK_DIV>,
+ <&syscon_mpmu CLK_MPMU_I2S_SYSCLK>,
+ <&syscon_mpmu CLK_MPMU_I2S_BCLK>;
+ clock-names = "sysclk", "bclk", "bus", "func",
+ "sysclk_div", "c_sysclk", "c_bclk";
+ dmas = <&pdma 60>, <&pdma 61>;
+ dma-names = "tx", "rx";
+ resets = <&syscon_apbc RESET_APBC_I2S4>;
+ #sound-dai-cells = <0>;
+
+ status = "disabled";
+ };
+
+ i2s5: i2s@d4041800 {
+ compatible = "spacemit,k3-i2s";
+ reg = <0x0 0xd4041800 0x0 0x30>;
+ clocks = <&syscon_mpmu CLK_MPMU_I2S5_SYSCLK>,
+ <&syscon_apbc CLK_APBC_I2S5_BCLK>,
+ <&syscon_apbc CLK_APBC_I2S5_BUS>,
+ <&syscon_apbc CLK_APBC_I2S5>,
+ <&syscon_mpmu CLK_MPMU_I2S5_SYSCLK_DIV>,
+ <&syscon_mpmu CLK_MPMU_I2S_SYSCLK>,
+ <&syscon_mpmu CLK_MPMU_I2S_BCLK>;
+ clock-names = "sysclk", "bclk", "bus", "func",
+ "sysclk_div", "c_sysclk", "c_bclk";
+ dmas = <&pdma 62>, <&pdma 63>;
+ dma-names = "tx", "rx";
+ resets = <&syscon_apbc RESET_APBC_I2S5>;
+ #sound-dai-cells = <0>;
+
+ status = "disabled";
+ };
+
syscon_mpmu: system-controller@d4050000 {
compatible = "spacemit,k3-syscon-mpmu";
reg = <0x0 0xd4050000 0x0 0x10000>;