riscv: dts: starfive: Add JH7110 PWM-DAC support
authorHal Feng <hal.feng@starfivetech.com>
Mon, 14 Aug 2023 08:06:18 +0000 (16:06 +0800)
committerConor Dooley <conor.dooley@microchip.com>
Wed, 13 Sep 2023 13:32:02 +0000 (14:32 +0100)
Add PWM-DAC support for StarFive JH7110 SoC.

Reviewed-by: Walker Chen <walker.chen@starfivetech.com>
Signed-off-by: Hal Feng <hal.feng@starfivetech.com>
Signed-off-by: Conor Dooley <conor.dooley@microchip.com>
arch/riscv/boot/dts/starfive/jh7110-starfive-visionfive-2.dtsi
arch/riscv/boot/dts/starfive/jh7110.dtsi

index 7179f1a31cf219bfe5a2cd9eb0a333fd9968a347..c4f389a9309b9012bd7865b879e1d182eba4a8f5 100644 (file)
                gpios = <&sysgpio 35 GPIO_ACTIVE_HIGH>;
                priority = <224>;
        };
+
+       pwmdac_codec: pwmdac-codec {
+               compatible = "linux,spdif-dit";
+               #sound-dai-cells = <0>;
+       };
+
+       sound-pwmdac {
+               compatible = "simple-audio-card";
+               simple-audio-card,name = "StarFive-PWMDAC-Sound-Card";
+               #address-cells = <1>;
+               #size-cells = <0>;
+
+               simple-audio-card,dai-link@0 {
+                       reg = <0>;
+                       format = "left_j";
+                       bitclock-master = <&sndcpu0>;
+                       frame-master = <&sndcpu0>;
+
+                       sndcpu0: cpu {
+                               sound-dai = <&pwmdac>;
+                       };
+
+                       codec {
+                               sound-dai = <&pwmdac_codec>;
+                       };
+               };
+       };
 };
 
 &dvp_clk {
        status = "okay";
 };
 
+&pwmdac {
+       pinctrl-names = "default";
+       pinctrl-0 = <&pwmdac_pins>;
+       status = "okay";
+};
+
 &qspi {
        #address-cells = <1>;
        #size-cells = <0>;
                };
        };
 
+       pwmdac_pins: pwmdac-0 {
+               pwmdac-pins {
+                       pinmux = <GPIOMUX(33, GPOUT_SYS_PWMDAC_LEFT,
+                                             GPOEN_ENABLE,
+                                             GPI_NONE)>,
+                                <GPIOMUX(34, GPOUT_SYS_PWMDAC_RIGHT,
+                                             GPOEN_ENABLE,
+                                             GPI_NONE)>;
+                       bias-disable;
+                       drive-strength = <2>;
+                       input-disable;
+                       input-schmitt-disable;
+                       slew-rate = <0>;
+               };
+       };
+
        spi0_pins: spi0-0 {
                mosi-pins {
                        pinmux = <GPIOMUX(52, GPOUT_SYS_SPI0_TXD,
index 621b68c02ea86f3ebb40c9950fec2bd4959c7bd7..9f31dec57c0d19c5eec940d227162bf96ce63ff2 100644 (file)
                        status = "disabled";
                };
 
+               pwmdac: pwmdac@100b0000 {
+                       compatible = "starfive,jh7110-pwmdac";
+                       reg = <0x0 0x100b0000 0x0 0x1000>;
+                       clocks = <&syscrg JH7110_SYSCLK_PWMDAC_APB>,
+                                <&syscrg JH7110_SYSCLK_PWMDAC_CORE>;
+                       clock-names = "apb", "core";
+                       resets = <&syscrg JH7110_SYSRST_PWMDAC_APB>;
+                       dmas = <&dma 22>;
+                       dma-names = "tx";
+                       #sound-dai-cells = <0>;
+                       status = "disabled";
+               };
+
                usb0: usb@10100000 {
                        compatible = "starfive,jh7110-usb";
                        ranges = <0x0 0x0 0x10100000 0x100000>;