arm64: tegra: Add audio devices on Tegra234
authorSameer Pujar <spujar@nvidia.com>
Thu, 27 Jan 2022 07:27:34 +0000 (12:57 +0530)
committerThierry Reding <treding@nvidia.com>
Thu, 24 Feb 2022 19:06:53 +0000 (20:06 +0100)
Add following devices which are part of APE subsystem
 * ACONNECT, AGIC and ADMA
 * AHUB and children (ADMAIF, I2S, DMIC, DSPK, MVC, SFC,
   AMX, ADX and Mixer)

Signed-off-by: Sameer Pujar <spujar@nvidia.com>
Signed-off-by: Thierry Reding <treding@nvidia.com>
arch/arm64/boot/dts/nvidia/tegra234.dtsi

index 7786fd8e3cc6e8875a2de8c7924bf554507c7654..d20da6af71724814da79db8da7a8fa37579482cf 100644 (file)
@@ -5,6 +5,7 @@
 #include <dt-bindings/interrupt-controller/arm-gic.h>
 #include <dt-bindings/mailbox/tegra186-hsp.h>
 #include <dt-bindings/memory/tegra234-mc.h>
+#include <dt-bindings/power/tegra234-powergate.h>
 #include <dt-bindings/reset/tegra234-reset.h>
 
 / {
 
                ranges = <0x0 0x0 0x0 0x40000000>;
 
+               aconnect@2900000 {
+                       compatible = "nvidia,tegra234-aconnect",
+                                    "nvidia,tegra210-aconnect";
+                       clocks = <&bpmp TEGRA234_CLK_APE>,
+                                <&bpmp TEGRA234_CLK_APB2APE>;
+                       clock-names = "ape", "apb2ape";
+                       power-domains = <&bpmp TEGRA234_POWER_DOMAIN_AUD>;
+                       #address-cells = <1>;
+                       #size-cells = <1>;
+                       ranges = <0x02900000 0x02900000 0x200000>;
+                       status = "disabled";
+
+                       tegra_ahub: ahub@2900800 {
+                               compatible = "nvidia,tegra234-ahub";
+                               reg = <0x02900800 0x800>;
+                               clocks = <&bpmp TEGRA234_CLK_AHUB>;
+                               clock-names = "ahub";
+                               assigned-clocks = <&bpmp TEGRA234_CLK_AHUB>;
+                               assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
+                               #address-cells = <1>;
+                               #size-cells = <1>;
+                               ranges = <0x02900800 0x02900800 0x11800>;
+                               status = "disabled";
+
+                               tegra_i2s1: i2s@2901000 {
+                                       compatible = "nvidia,tegra234-i2s",
+                                                    "nvidia,tegra210-i2s";
+                                       reg = <0x2901000 0x100>;
+                                       clocks = <&bpmp TEGRA234_CLK_I2S1>,
+                                                <&bpmp TEGRA234_CLK_I2S1_SYNC_INPUT>;
+                                       clock-names = "i2s", "sync_input";
+                                       assigned-clocks = <&bpmp TEGRA234_CLK_I2S1>;
+                                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
+                                       assigned-clock-rates = <1536000>;
+                                       sound-name-prefix = "I2S1";
+                                       status = "disabled";
+                               };
+
+                               tegra_i2s2: i2s@2901100 {
+                                       compatible = "nvidia,tegra234-i2s",
+                                                    "nvidia,tegra210-i2s";
+                                       reg = <0x2901100 0x100>;
+                                       clocks = <&bpmp TEGRA234_CLK_I2S2>,
+                                                <&bpmp TEGRA234_CLK_I2S2_SYNC_INPUT>;
+                                       clock-names = "i2s", "sync_input";
+                                       assigned-clocks = <&bpmp TEGRA234_CLK_I2S2>;
+                                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
+                                       assigned-clock-rates = <1536000>;
+                                       sound-name-prefix = "I2S2";
+                                       status = "disabled";
+                               };
+
+                               tegra_i2s3: i2s@2901200 {
+                                       compatible = "nvidia,tegra234-i2s",
+                                                    "nvidia,tegra210-i2s";
+                                       reg = <0x2901200 0x100>;
+                                       clocks = <&bpmp TEGRA234_CLK_I2S3>,
+                                                <&bpmp TEGRA234_CLK_I2S3_SYNC_INPUT>;
+                                       clock-names = "i2s", "sync_input";
+                                       assigned-clocks = <&bpmp TEGRA234_CLK_I2S3>;
+                                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
+                                       assigned-clock-rates = <1536000>;
+                                       sound-name-prefix = "I2S3";
+                                       status = "disabled";
+                               };
+
+                               tegra_i2s4: i2s@2901300 {
+                                       compatible = "nvidia,tegra234-i2s",
+                                                    "nvidia,tegra210-i2s";
+                                       reg = <0x2901300 0x100>;
+                                       clocks = <&bpmp TEGRA234_CLK_I2S4>,
+                                                <&bpmp TEGRA234_CLK_I2S4_SYNC_INPUT>;
+                                       clock-names = "i2s", "sync_input";
+                                       assigned-clocks = <&bpmp TEGRA234_CLK_I2S4>;
+                                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
+                                       assigned-clock-rates = <1536000>;
+                                       sound-name-prefix = "I2S4";
+                                       status = "disabled";
+                               };
+
+                               tegra_i2s5: i2s@2901400 {
+                                       compatible = "nvidia,tegra234-i2s",
+                                                    "nvidia,tegra210-i2s";
+                                       reg = <0x2901400 0x100>;
+                                       clocks = <&bpmp TEGRA234_CLK_I2S5>,
+                                                <&bpmp TEGRA234_CLK_I2S5_SYNC_INPUT>;
+                                       clock-names = "i2s", "sync_input";
+                                       assigned-clocks = <&bpmp TEGRA234_CLK_I2S5>;
+                                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
+                                       assigned-clock-rates = <1536000>;
+                                       sound-name-prefix = "I2S5";
+                                       status = "disabled";
+                               };
+
+                               tegra_i2s6: i2s@2901500 {
+                                       compatible = "nvidia,tegra234-i2s",
+                                                    "nvidia,tegra210-i2s";
+                                       reg = <0x2901500 0x100>;
+                                       clocks = <&bpmp TEGRA234_CLK_I2S6>,
+                                                <&bpmp TEGRA234_CLK_I2S6_SYNC_INPUT>;
+                                       clock-names = "i2s", "sync_input";
+                                       assigned-clocks = <&bpmp TEGRA234_CLK_I2S6>;
+                                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
+                                       assigned-clock-rates = <1536000>;
+                                       sound-name-prefix = "I2S6";
+                                       status = "disabled";
+                               };
+
+                               tegra_sfc1: sfc@2902000 {
+                                       compatible = "nvidia,tegra234-sfc",
+                                                    "nvidia,tegra210-sfc";
+                                       reg = <0x2902000 0x200>;
+                                       sound-name-prefix = "SFC1";
+                                       status = "disabled";
+                               };
+
+                               tegra_sfc2: sfc@2902200 {
+                                       compatible = "nvidia,tegra234-sfc",
+                                                    "nvidia,tegra210-sfc";
+                                       reg = <0x2902200 0x200>;
+                                       sound-name-prefix = "SFC2";
+                                       status = "disabled";
+                               };
+
+                               tegra_sfc3: sfc@2902400 {
+                                       compatible = "nvidia,tegra234-sfc",
+                                                    "nvidia,tegra210-sfc";
+                                       reg = <0x2902400 0x200>;
+                                       sound-name-prefix = "SFC3";
+                                       status = "disabled";
+                               };
+
+                               tegra_sfc4: sfc@2902600 {
+                                       compatible = "nvidia,tegra234-sfc",
+                                                    "nvidia,tegra210-sfc";
+                                       reg = <0x2902600 0x200>;
+                                       sound-name-prefix = "SFC4";
+                                       status = "disabled";
+                               };
+
+                               tegra_amx1: amx@2903000 {
+                                       compatible = "nvidia,tegra234-amx",
+                                                    "nvidia,tegra194-amx";
+                                       reg = <0x2903000 0x100>;
+                                       sound-name-prefix = "AMX1";
+                                       status = "disabled";
+                               };
+
+                               tegra_amx2: amx@2903100 {
+                                       compatible = "nvidia,tegra234-amx",
+                                                    "nvidia,tegra194-amx";
+                                       reg = <0x2903100 0x100>;
+                                       sound-name-prefix = "AMX2";
+                                       status = "disabled";
+                               };
+
+                               tegra_amx3: amx@2903200 {
+                                       compatible = "nvidia,tegra234-amx",
+                                                    "nvidia,tegra194-amx";
+                                       reg = <0x2903200 0x100>;
+                                       sound-name-prefix = "AMX3";
+                                       status = "disabled";
+                               };
+
+                               tegra_amx4: amx@2903300 {
+                                       compatible = "nvidia,tegra234-amx",
+                                                    "nvidia,tegra194-amx";
+                                       reg = <0x2903300 0x100>;
+                                       sound-name-prefix = "AMX4";
+                                       status = "disabled";
+                               };
+
+                               tegra_adx1: adx@2903800 {
+                                       compatible = "nvidia,tegra234-adx",
+                                                    "nvidia,tegra210-adx";
+                                       reg = <0x2903800 0x100>;
+                                       sound-name-prefix = "ADX1";
+                                       status = "disabled";
+                               };
+
+                               tegra_adx2: adx@2903900 {
+                                       compatible = "nvidia,tegra234-adx",
+                                                    "nvidia,tegra210-adx";
+                                       reg = <0x2903900 0x100>;
+                                       sound-name-prefix = "ADX2";
+                                       status = "disabled";
+                               };
+
+                               tegra_adx3: adx@2903a00 {
+                                       compatible = "nvidia,tegra234-adx",
+                                                    "nvidia,tegra210-adx";
+                                       reg = <0x2903a00 0x100>;
+                                       sound-name-prefix = "ADX3";
+                                       status = "disabled";
+                               };
+
+                               tegra_adx4: adx@2903b00 {
+                                       compatible = "nvidia,tegra234-adx",
+                                                    "nvidia,tegra210-adx";
+                                       reg = <0x2903b00 0x100>;
+                                       sound-name-prefix = "ADX4";
+                                       status = "disabled";
+                               };
+
+
+                               tegra_dmic1: dmic@2904000 {
+                                       compatible = "nvidia,tegra234-dmic",
+                                                    "nvidia,tegra210-dmic";
+                                       reg = <0x2904000 0x100>;
+                                       clocks = <&bpmp TEGRA234_CLK_DMIC1>;
+                                       clock-names = "dmic";
+                                       assigned-clocks = <&bpmp TEGRA234_CLK_DMIC1>;
+                                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
+                                       assigned-clock-rates = <3072000>;
+                                       sound-name-prefix = "DMIC1";
+                                       status = "disabled";
+                               };
+
+                               tegra_dmic2: dmic@2904100 {
+                                       compatible = "nvidia,tegra234-dmic",
+                                                    "nvidia,tegra210-dmic";
+                                       reg = <0x2904100 0x100>;
+                                       clocks = <&bpmp TEGRA234_CLK_DMIC2>;
+                                       clock-names = "dmic";
+                                       assigned-clocks = <&bpmp TEGRA234_CLK_DMIC2>;
+                                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
+                                       assigned-clock-rates = <3072000>;
+                                       sound-name-prefix = "DMIC2";
+                                       status = "disabled";
+                               };
+
+                               tegra_dmic3: dmic@2904200 {
+                                       compatible = "nvidia,tegra234-dmic",
+                                                    "nvidia,tegra210-dmic";
+                                       reg = <0x2904200 0x100>;
+                                       clocks = <&bpmp TEGRA234_CLK_DMIC3>;
+                                       clock-names = "dmic";
+                                       assigned-clocks = <&bpmp TEGRA234_CLK_DMIC3>;
+                                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
+                                       assigned-clock-rates = <3072000>;
+                                       sound-name-prefix = "DMIC3";
+                                       status = "disabled";
+                               };
+
+                               tegra_dmic4: dmic@2904300 {
+                                       compatible = "nvidia,tegra234-dmic",
+                                                    "nvidia,tegra210-dmic";
+                                       reg = <0x2904300 0x100>;
+                                       clocks = <&bpmp TEGRA234_CLK_DMIC4>;
+                                       clock-names = "dmic";
+                                       assigned-clocks = <&bpmp TEGRA234_CLK_DMIC4>;
+                                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
+                                       assigned-clock-rates = <3072000>;
+                                       sound-name-prefix = "DMIC4";
+                                       status = "disabled";
+                               };
+
+                               tegra_dspk1: dspk@2905000 {
+                                       compatible = "nvidia,tegra234-dspk",
+                                                    "nvidia,tegra186-dspk";
+                                       reg = <0x2905000 0x100>;
+                                       clocks = <&bpmp TEGRA234_CLK_DSPK1>;
+                                       clock-names = "dspk";
+                                       assigned-clocks = <&bpmp TEGRA234_CLK_DSPK1>;
+                                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
+                                       assigned-clock-rates = <12288000>;
+                                       sound-name-prefix = "DSPK1";
+                                       status = "disabled";
+                               };
+
+                               tegra_dspk2: dspk@2905100 {
+                                       compatible = "nvidia,tegra234-dspk",
+                                                    "nvidia,tegra186-dspk";
+                                       reg = <0x2905100 0x100>;
+                                       clocks = <&bpmp TEGRA234_CLK_DSPK2>;
+                                       clock-names = "dspk";
+                                       assigned-clocks = <&bpmp TEGRA234_CLK_DSPK2>;
+                                       assigned-clock-parents = <&bpmp TEGRA234_CLK_PLLA_OUT0>;
+                                       assigned-clock-rates = <12288000>;
+                                       sound-name-prefix = "DSPK2";
+                                       status = "disabled";
+                               };
+
+                               tegra_mvc1: mvc@290a000 {
+                                       compatible = "nvidia,tegra234-mvc",
+                                                    "nvidia,tegra210-mvc";
+                                       reg = <0x290a000 0x200>;
+                                       sound-name-prefix = "MVC1";
+                                       status = "disabled";
+                               };
+
+                               tegra_mvc2: mvc@290a200 {
+                                       compatible = "nvidia,tegra234-mvc",
+                                                    "nvidia,tegra210-mvc";
+                                       reg = <0x290a200 0x200>;
+                                       sound-name-prefix = "MVC2";
+                                       status = "disabled";
+                               };
+
+                               tegra_amixer: amixer@290bb00 {
+                                       compatible = "nvidia,tegra234-amixer",
+                                                    "nvidia,tegra210-amixer";
+                                       reg = <0x290bb00 0x800>;
+                                       sound-name-prefix = "MIXER1";
+                                       status = "disabled";
+                               };
+
+                               tegra_admaif: admaif@290f000 {
+                                       compatible = "nvidia,tegra234-admaif",
+                                                    "nvidia,tegra186-admaif";
+                                       reg = <0x0290f000 0x1000>;
+                                       dmas = <&adma 1>, <&adma 1>,
+                                              <&adma 2>, <&adma 2>,
+                                              <&adma 3>, <&adma 3>,
+                                              <&adma 4>, <&adma 4>,
+                                              <&adma 5>, <&adma 5>,
+                                              <&adma 6>, <&adma 6>,
+                                              <&adma 7>, <&adma 7>,
+                                              <&adma 8>, <&adma 8>,
+                                              <&adma 9>, <&adma 9>,
+                                              <&adma 10>, <&adma 10>,
+                                              <&adma 11>, <&adma 11>,
+                                              <&adma 12>, <&adma 12>,
+                                              <&adma 13>, <&adma 13>,
+                                              <&adma 14>, <&adma 14>,
+                                              <&adma 15>, <&adma 15>,
+                                              <&adma 16>, <&adma 16>,
+                                              <&adma 17>, <&adma 17>,
+                                              <&adma 18>, <&adma 18>,
+                                              <&adma 19>, <&adma 19>,
+                                              <&adma 20>, <&adma 20>;
+                                       dma-names = "rx1", "tx1",
+                                                   "rx2", "tx2",
+                                                   "rx3", "tx3",
+                                                   "rx4", "tx4",
+                                                   "rx5", "tx5",
+                                                   "rx6", "tx6",
+                                                   "rx7", "tx7",
+                                                   "rx8", "tx8",
+                                                   "rx9", "tx9",
+                                                   "rx10", "tx10",
+                                                   "rx11", "tx11",
+                                                   "rx12", "tx12",
+                                                   "rx13", "tx13",
+                                                   "rx14", "tx14",
+                                                   "rx15", "tx15",
+                                                   "rx16", "tx16",
+                                                   "rx17", "tx17",
+                                                   "rx18", "tx18",
+                                                   "rx19", "tx19",
+                                                   "rx20", "tx20";
+                                       interconnects = <&mc TEGRA234_MEMORY_CLIENT_APEDMAR &emc>,
+                                                       <&mc TEGRA234_MEMORY_CLIENT_APEDMAW &emc>;
+                                       interconnect-names = "dma-mem", "write";
+                                       iommus = <&smmu_niso0 TEGRA234_SID_APE>;
+                                       status = "disabled";
+                               };
+                       };
+
+                       adma: dma-controller@2930000 {
+                               compatible = "nvidia,tegra234-adma",
+                                            "nvidia,tegra186-adma";
+                               reg = <0x02930000 0x20000>;
+                               interrupt-parent = <&agic>;
+                               interrupts =  <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 6 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 11 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 13 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 17 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 18 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>,
+                                             <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
+                               #dma-cells = <1>;
+                               clocks = <&bpmp TEGRA234_CLK_AHUB>;
+                               clock-names = "d_audio";
+                               status = "disabled";
+                       };
+
+                       agic: interrupt-controller@2a40000 {
+                               compatible = "nvidia,tegra234-agic",
+                                            "nvidia,tegra210-agic";
+                               #interrupt-cells = <3>;
+                               interrupt-controller;
+                               reg = <0x02a41000 0x1000>,
+                                     <0x02a42000 0x2000>;
+                               interrupts = <GIC_SPI 145
+                                             (GIC_CPU_MASK_SIMPLE(4) |
+                                              IRQ_TYPE_LEVEL_HIGH)>;
+                               clocks = <&bpmp TEGRA234_CLK_APE>;
+                               clock-names = "clk";
+                               status = "disabled";
+                       };
+               };
+
                misc@100000 {
                        compatible = "nvidia,tegra234-misc";
                        reg = <0x00100000 0xf000>,