From ea06b2709a0a47e1fb37faad856e38da4e987c38 Mon Sep 17 00:00:00 2001 From: "sw.multimedia" Date: Fri, 3 Sep 2021 21:10:50 +0800 Subject: starfive: add clock info in dts for audio --- arch/riscv/dts/jh7100.dtsi | 149 ++++++++++++++++++++++++++++++++ arch/riscv/dts/starfive_jh7100_clk.dtsi | 5 ++ 2 files changed, 154 insertions(+) diff --git a/arch/riscv/dts/jh7100.dtsi b/arch/riscv/dts/jh7100.dtsi index c3fb014c85..e97d8a58fd 100644 --- a/arch/riscv/dts/jh7100.dtsi +++ b/arch/riscv/dts/jh7100.dtsi @@ -2,6 +2,7 @@ /* Copyright (c) 2021 StarFive Technology Co., Ltd. */ /dts-v1/; +#include "starfive_jh7100_clk.dtsi" #include #include @@ -625,5 +626,153 @@ fuse-count = <0x200>; clocks = <&clkgen JH7100_CLK_OTP_APB>; }; + + i2sadc0: i2sadc0@10400000 { + compatible = "snps,designware-i2sadc0"; + reg = <0x0 0x10400000 0x0 0x1000>; + interrupt-parent = <&plic>; + /* interrupts = <59>; */ + /* interrupt-names = "rx"; */ + clocks = <&apb1clk>; + clock-names = "i2sclk"; + #sound-dai-cells = <0>; + dmas = <&dma2p 28>; + dma-names = "rx"; + }; + + i2svad: i2svad@10420000 { + compatible = "sf,sf-i2svad"; + reg = <0x0 0x10420000 0x0 0x1000> ; + interrupt-parent = <&plic>; + interrupts = <60>, <61>; + interrupt-names = "spintr", "slintr"; + clocks = <&apb1clk>; + clock-names = "i2sclk"; + #sound-dai-cells = <0>; + }; + + i2sdac0: i2sdac0@10450000 { + compatible = "snps,designware-i2sdac0"; + reg = <0x0 0x10450000 0x0 0x1000>; + interrupt-parent = <&plic>; + /*interrupts = <64>; */ + /*interrupt-names = "tx";*/ + clocks = <&apb1clk>; + clock-names = "i2sclk"; + #sound-dai-cells = <0>; + dmas = <&dma2p 30>; + dma-names = "tx"; + }; + + i2sdac1: i2sdac1@10460000 { + compatible = "snps,designware-i2sdac1"; + reg = <0x0 0x10460000 0x0 0x1000>; + interrupt-parent = <&plic>; + /*interrupts = <66>;*/ + /*interrupt-names = "tx";*/ + clocks = <&apb1clk>; + clock-names = "i2sclk"; + #sound-dai-cells = <0>; + dmas = <&dma2p 31>; + dma-names = "tx"; + }; + + i2sdac16k: i2sdac16k@10470000 { + compatible = "snps,designware-i2sdac16k"; + reg = <0x0 0x10470000 0x0 0x1000>; + interrupt-parent = <&plic>; + /* interrupts = <68>; */ + /* interrupt-names = "tx"; */ + clocks = <&apb1clk>; + clock-names = "i2sclk"; + #sound-dai-cells = <0>; + dmas = <&dma2p 29>; + dma-names = "tx"; + }; + + spdif0: spdif0@10430000 { + compatible = "starfive,sf-spdif"; + reg = <0x0 0x10430000 0x0 0x1000>; + interrupt-parent = <&plic>; + interrupts = <62>; + interrupt-names = "tx"; + clocks = <&audioclk>; + clock-names = "audioclk"; + #sound-dai-cells = <0>; + }; + + pdm: pdm@10410000 { + compatible = "starfive,sf-pdm"; + reg = <0x0 0x10410000 0x0 0x1000>, <0x0 0x10480000 0x0 0x1000>; + reg-names = "pdm", "audio-clk"; + clocks = <&audioclk>; + clock-names = "audioclk"; + #sound-dai-cells = <0>; + }; + + ac108_mclk: ac108_mclk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24576000>; + }; + + wm8960_mclk: wm8960_mclk { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <24576000>; + }; + + spdif_transmitter: spdif_transmitter { + compatible = "linux,spdif-dit"; + #sound-dai-cells = <0>; + }; + + spdif_receiver: spdif_receiver { + compatible = "linux,spdif-dir"; + #sound-dai-cells = <0>; + }; + + pwmdac: pwmdac@10440000 { + compatible = "sf,pwmdac"; + reg = <0x0 0x10440000 0x0 0x1000>; + clocks = <&apb1clk>; + dmas = <&dma2p 23>; + dma-names = "tx"; + #sound-dai-cells = <0>; + }; + + pwmdac_codec: pwmdac-transmitter { + compatible = "linux,pwmdac-dit"; + #sound-dai-cells = <0>; + }; + + dmic_codec: dmic_codec { + compatible = "dmic-codec"; + #sound-dai-cells = <0>; + }; + + sound:snd-card{ + compatible = "simple-audio-card"; + simple-audio-card,name = "Starfive-Multi-Sound-Card"; + #address-cells = <1>; + #size-cells = <0>; + + /* pwmdac */ + simple-audio-card,dai-link@0 { + reg = <0>; + status = "okay"; + format = "left_j"; + bitclock-master = <&sndcpu0>; + frame-master = <&sndcpu0>; + + sndcpu0: cpu { + sound-dai = <&pwmdac>; + }; + + codec { + sound-dai = <&pwmdac_codec>; + }; + }; + }; }; }; diff --git a/arch/riscv/dts/starfive_jh7100_clk.dtsi b/arch/riscv/dts/starfive_jh7100_clk.dtsi index 5e0ab73704..46e2a23729 100644 --- a/arch/riscv/dts/starfive_jh7100_clk.dtsi +++ b/arch/riscv/dts/starfive_jh7100_clk.dtsi @@ -109,4 +109,9 @@ clock-frequency = <125000000>; }; + audioclk: audioclk { + #clock-cells = <0>; + compatible = "fixed-clock"; + clock-frequency = <12288000>; + }; }; -- cgit v1.2.3