arm64: dts: apple: t600x: Add MCA and its support
authorJanne Grunau <j@jannau.net>
Fri, 16 Sep 2022 14:25:50 +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 and its supporting ADMAC and NCO nodes.

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/t600x-common.dtsi
arch/arm64/boot/dts/apple/t600x-die0.dtsi
arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi
arch/arm64/boot/dts/apple/t600x-j375.dtsi

index e29b88e2c85369a3caff968a7164af2a6ae12cb8..f5fac1926a2598bbe6d2f318c9ac6ca7dfdc21b0 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";
+       };
 };
index 2d66eead8aee648967069d7f1df04286db0c1621..639c90e108a70a973a4e65e9a9b3863b75bd1af0 100644 (file)
@@ -7,6 +7,13 @@
  */
 
 
+       nco: clock-controller@28e03c000 {
+               compatible = "apple,t6000-nco", "apple,nco";
+               reg = <0x2 0x8e03c000 0x0 0x14000>;
+               clocks = <&nco_clkref>;
+               #clock-cells = <1>;
+       };
+
        aic: interrupt-controller@28e100000 {
                compatible = "apple,t6000-aic", "apple,aic2";
                #interrupt-cells = <4>;
                interrupts = <AIC_IRQ 0 631 IRQ_TYPE_LEVEL_HIGH>;
        };
 
+       dart_sio_0: iommu@39b004000 {
+               compatible = "apple,t6000-dart";
+               reg = <0x3 0x9b004000 0x0 0x4000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ 0 1130 IRQ_TYPE_LEVEL_HIGH>;
+               #iommu-cells = <1>;
+               power-domains = <&ps_sio_cpu>;
+       };
+
+       dart_sio_1: iommu@39b008000 {
+               compatible = "apple,t6000-dart";
+               reg = <0x3 0x9b008000 0x0 0x8000>;
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ 0 1130 IRQ_TYPE_LEVEL_HIGH>;
+               #iommu-cells = <1>;
+               power-domains = <&ps_sio_cpu>;
+       };
+
        i2c0: i2c@39b040000 {
                compatible = "apple,t6000-i2c", "apple,i2c";
                reg = <0x3 0x9b040000 0x0 0x4000>;
                status = "disabled";
        };
 
+       admac: dma-controller@39b400000 {
+               compatible = "apple,t6000-admac", "apple,admac";
+               reg = <0x3 0x9b400000 0x0 0x34000>;
+               #dma-cells = <1>;
+               dma-channels = <16>;
+               interrupts-extended = <0>,
+                                     <&aic AIC_IRQ 0 1118 IRQ_TYPE_LEVEL_HIGH>,
+                                     <0>,
+                                     <0>;
+               iommus = <&dart_sio_0 2>, <&dart_sio_1 2>;
+               power-domains = <&ps_sio_adma>;
+       };
+
+       mca: mca@39b600000 {
+               compatible = "apple,t6000-mca", "apple,mca";
+               reg = <0x3 0x9b600000 0x0 0x10000>,
+                     <0x3 0x9b500000 0x0 0x20000>;
+               clocks = <&nco 0>, <&nco 1>, <&nco 2>, <&nco 3>;
+               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>;
+               dma-names = "tx0a", "rx0a", "tx0b", "rx0b",
+                           "tx1a", "rx1a", "tx1b", "rx1b",
+                           "tx2a", "rx2a", "tx2b", "rx2b",
+                           "tx3a", "rx3a", "tx3b", "rx3b";
+               interrupt-parent = <&aic>;
+               interrupts = <AIC_IRQ 0 1112 IRQ_TYPE_LEVEL_HIGH>,
+                            <AIC_IRQ 0 1113 IRQ_TYPE_LEVEL_HIGH>,
+                            <AIC_IRQ 0 1114 IRQ_TYPE_LEVEL_HIGH>,
+                            <AIC_IRQ 0 1115 IRQ_TYPE_LEVEL_HIGH>;
+               power-domains = <&ps_audio_p>, <&ps_mca0>, <&ps_mca1>,
+                               <&ps_mca2>, <&ps_mca3>;
+               resets = <&ps_audio_p>;
+               #sound-dai-cells = <1>;
+       };
+
        pcie0_dart_0: dart@581008000 {
                compatible = "apple,t6000-dart";
                reg = <0x5 0x81008000 0x0 0x4000>;
index 8079200aeb128bbe148771f1fcf681ee6cb3068f..34906d522f0a06a58be1ea990d2f7c650dc99237 100644 (file)
        };
 };
 
+&nco_clkref {
+       clock-frequency = <1068000000>;
+};
+
 /* PCIe devices */
 &port00 {
        /* WLAN */
index 99984b96e8d0c0feb1aa2567b3c3cd297e750ba4..00d3a9447c89fb09aa549e92b252bbd23a09207c 100644 (file)
        };
 };
 
+&nco_clkref {
+       clock-frequency = <1068000000>;
+};
+
 /* PCIe devices */
 &port00 {
        /* WLAN */