arm64: dts: apple: t8103: Add MCA and its support
authorMartin Povišer <povik+lin@cutebit.org>
Fri, 16 Sep 2022 14:25:49 +0000 (16:25 +0200)
committerHector Martin <marcan@marcan.st>
Mon, 24 Oct 2022 04:44:22 +0000 (13:44 +0900)
Add the MCA I2S transceiver node and its supporting NCO, ADMAC nodes.

Signed-off-by: Martin Povišer <povik+lin@cutebit.org>
Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Hector Martin <marcan@marcan.st>
arch/arm64/boot/dts/apple/t8103-jxxx.dtsi
arch/arm64/boot/dts/apple/t8103.dtsi

index 3d15b8e2a6c1e62bb13199ed267fa41815312ca9..9706d26f9c6428ea1c0ba76558f900ae9c177e63 100644 (file)
@@ -78,3 +78,7 @@
                apple,antenna-sku = "XX";
        };
 };
+
+&nco_clkref {
+       clock-frequency = <900000000>;
+};
index 51a63b29d4045ee3a34c34567dba1916c73026bb..51bc901482dba5b9d999a4e04037ed03c9e87c54 100644 (file)
                clock-output-names = "clkref";
        };
 
+       /*
+        * This is a fabulated representation of the input clock
+        * to NCO since we don't know the true clock tree.
+        */
+       nco_clkref: clock-ref-nco {
+               compatible = "fixed-clock";
+               #clock-cells = <0>;
+               clock-output-names = "nco_ref";
+       };
+
        soc {
                compatible = "simple-bus";
                #address-cells = <2>;
                ranges;
                nonposted-mmio;
 
+               dart_sio: iommu@235004000 {
+                       compatible = "apple,t8103-dart";
+                       reg = <0x2 0x35004000 0x0 0x4000>;
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 635 IRQ_TYPE_LEVEL_HIGH>;
+                       #iommu-cells = <1>;
+                       power-domains = <&ps_sio_cpu>;
+               };
+
                i2c0: i2c@235010000 {
                        compatible = "apple,t8103-i2c", "apple,i2c";
                        reg = <0x2 0x35010000 0x0 0x4000>;
                        status = "disabled";
                };
 
+               admac: dma-controller@238200000 {
+                       compatible = "apple,t8103-admac", "apple,admac";
+                       reg = <0x2 0x38200000 0x0 0x34000>;
+                       dma-channels = <24>;
+                       interrupts-extended = <0>,
+                                             <&aic AIC_IRQ 626 IRQ_TYPE_LEVEL_HIGH>,
+                                             <0>,
+                                             <0>;
+                       #dma-cells = <1>;
+                       iommus = <&dart_sio 2>;
+                       power-domains = <&ps_sio_adma>;
+               };
+
+               mca: i2s@238400000 {
+                       compatible = "apple,t8103-mca", "apple,mca";
+                       reg = <0x2 0x38400000 0x0 0x18000>,
+                             <0x2 0x38300000 0x0 0x30000>;
+
+                       interrupt-parent = <&aic>;
+                       interrupts = <AIC_IRQ 619 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 620 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 621 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 622 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 623 IRQ_TYPE_LEVEL_HIGH>,
+                                    <AIC_IRQ 624 IRQ_TYPE_LEVEL_HIGH>;
+
+                       resets = <&ps_audio_p>;
+                       clocks = <&nco 0>, <&nco 1>, <&nco 2>,
+                                <&nco 3>, <&nco 4>, <&nco 4>;
+                       power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>,
+                                       <&ps_mca2>, <&ps_mca3>, <&ps_mca4>, <&ps_mca5>;
+                       dmas = <&admac 0>, <&admac 1>, <&admac 2>, <&admac 3>,
+                              <&admac 4>, <&admac 5>, <&admac 6>, <&admac 7>,
+                              <&admac 8>, <&admac 9>, <&admac 10>, <&admac 11>,
+                              <&admac 12>, <&admac 13>, <&admac 14>, <&admac 15>,
+                              <&admac 16>, <&admac 17>, <&admac 18>, <&admac 19>,
+                              <&admac 20>, <&admac 21>, <&admac 22>, <&admac 23>;
+                       dma-names = "tx0a", "rx0a", "tx0b", "rx0b",
+                               "tx1a", "rx1a", "tx1b", "rx1b",
+                               "tx2a", "rx2a", "tx2b", "rx2b",
+                               "tx3a", "rx3a", "tx3b", "rx3b",
+                               "tx4a", "rx4a", "tx4b", "rx4b",
+                               "tx5a", "rx5a", "tx5b", "rx5b";
+
+                       #sound-dai-cells = <1>;
+               };
+
+               nco: clock-controller@23b044000 {
+                       compatible = "apple,t8103-nco", "apple,nco";
+                       reg = <0x2 0x3b044000 0x0 0x14000>;
+                       clocks = <&nco_clkref>;
+                       #clock-cells = <1>;
+               };
+
                aic: interrupt-controller@23b100000 {
                        compatible = "apple,t8103-aic", "apple,aic";
                        #interrupt-cells = <3>;