Message ID | 20220824160715.95779-3-povik+lin@cutebit.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | ASoC platform driver for Apple MCA | expand |
On 2022-08-24 18:07:13 +0200, Martin Povišer wrote: > Add the MCA I2S transceiver node and its supporting NCO, ADMAC nodes. > > Signed-off-by: Martin Povišer <povik+lin@cutebit.org> > --- > arch/arm64/boot/dts/apple/t8103-jxxx.dtsi | 4 ++ > arch/arm64/boot/dts/apple/t8103.dtsi | 73 +++++++++++++++++++++++ > 2 files changed, 77 insertions(+) > > diff --git a/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi b/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi > index fe2ae40fa9dd..503a1b243efa 100644 > --- a/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi > +++ b/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi > @@ -76,3 +76,7 @@ wifi0: network@0,0 { > local-mac-address = [00 00 00 00 00 00]; > }; > }; > + > +&nco_clkref { > + clock-frequency = <900000000>; > +}; > diff --git a/arch/arm64/boot/dts/apple/t8103.dtsi b/arch/arm64/boot/dts/apple/t8103.dtsi > index 51a63b29d404..5c01d5318386 100644 > --- a/arch/arm64/boot/dts/apple/t8103.dtsi > +++ b/arch/arm64/boot/dts/apple/t8103.dtsi > @@ -532,6 +532,79 @@ port02: pci@2,0 { > <0 0 0 4 &port02 0 0 0 3>; > }; > }; > + > + dart_sio: iommu@235004000 { this and all other nodes are not sorted by address wrt to the existing nodes. > + compatible = "apple,t8103-dart", "apple,dart"; The generic compatible "apple,dart" is not part of the DART bindings > + reg = <0x2 0x35004000 0x0 0x4000>; > + interrupt-parent = <&aic>; > + interrupts = <AIC_IRQ 635 IRQ_TYPE_LEVEL_HIGH>; > + #iommu-cells = <1>; > + power-domains = <&ps_sio_cpu>; > + }; > + > + /* > + * This is a fabulated representation of the input clock > + * to NCO since we don't know the true clock tree. > + */ > + nco_clkref: clock-ref { clocks are not valid inside "simple-bus", the node name "clock-ref" conflicts in "/", maybe use "clock-nco"? > + compatible = "fixed-clock"; > + #clock-cells = <0>; > + clock-output-names = "nco_ref"; > + }; > + > + nco: clock-controller@23b044000 { > + compatible = "apple,t8103-nco", "apple,nco"; > + reg = <0x2 0x3b044000 0x0 0x14000>; > + clocks = <&nco_clkref>; > + #clock-cells = <1>; > + }; > + > + 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>; The admac bindinds don't have "iommus" or "power-domains". Fix in https://github.com/jannau/linux/commit/c9a0ff4581197064c560b05e2a6861d723a8909d as preparation for Apple t600x (M1 Pro/Max/Ultra) devicetree patches. > + }; > + > + mca: i2s@38400000 { missing range offset in the node name > + 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>; > + }; > }; > }; I've have a fixed version of this patch in https://github.com/jannau/linux/commit/6ff76db8221d0f71cbacd9f6add58354350fcf56 I was preparing the same change for t600x so it made sense to apply changes to this patch as well. Except for order and the wrong address all issue were discovered by `make dtbs_check`. I plan to send https://github.com/jannau/linux/tree/apple-t600x-dts-for-v6.1 tomorrow. ciao Janne
Ciao Janne, thanks for the comments and fixes. > On 6. 9. 2022, at 0:39, Janne Grunau <janne@jannau.net> wrote: > > On 2022-08-24 18:07:13 +0200, Martin Povišer wrote: >> Add the MCA I2S transceiver node and its supporting NCO, ADMAC nodes. >> >> Signed-off-by: Martin Povišer <povik+lin@cutebit.org> >> --- >> arch/arm64/boot/dts/apple/t8103-jxxx.dtsi | 4 ++ >> arch/arm64/boot/dts/apple/t8103.dtsi | 73 +++++++++++++++++++++++ >> 2 files changed, 77 insertions(+) >> + /* >> + * This is a fabulated representation of the input clock >> + * to NCO since we don't know the true clock tree. >> + */ >> + nco_clkref: clock-ref { > > clocks are not valid inside "simple-bus", the node name "clock-ref" > conflicts in "/", maybe use "clock-nco"? I would smuggle ‘ref’ or something to that effect into the name, otherwise sure, let’s do it. Martin
diff --git a/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi b/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi index fe2ae40fa9dd..503a1b243efa 100644 --- a/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi +++ b/arch/arm64/boot/dts/apple/t8103-jxxx.dtsi @@ -76,3 +76,7 @@ wifi0: network@0,0 { local-mac-address = [00 00 00 00 00 00]; }; }; + +&nco_clkref { + clock-frequency = <900000000>; +}; diff --git a/arch/arm64/boot/dts/apple/t8103.dtsi b/arch/arm64/boot/dts/apple/t8103.dtsi index 51a63b29d404..5c01d5318386 100644 --- a/arch/arm64/boot/dts/apple/t8103.dtsi +++ b/arch/arm64/boot/dts/apple/t8103.dtsi @@ -532,6 +532,79 @@ port02: pci@2,0 { <0 0 0 4 &port02 0 0 0 3>; }; }; + + dart_sio: iommu@235004000 { + compatible = "apple,t8103-dart", "apple,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>; + }; + + /* + * This is a fabulated representation of the input clock + * to NCO since we don't know the true clock tree. + */ + nco_clkref: clock-ref { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-output-names = "nco_ref"; + }; + + nco: clock-controller@23b044000 { + compatible = "apple,t8103-nco", "apple,nco"; + reg = <0x2 0x3b044000 0x0 0x14000>; + clocks = <&nco_clkref>; + #clock-cells = <1>; + }; + + 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@38400000 { + 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>; + }; }; };
Add the MCA I2S transceiver node and its supporting NCO, ADMAC nodes. Signed-off-by: Martin Povišer <povik+lin@cutebit.org> --- arch/arm64/boot/dts/apple/t8103-jxxx.dtsi | 4 ++ arch/arm64/boot/dts/apple/t8103.dtsi | 73 +++++++++++++++++++++++ 2 files changed, 77 insertions(+)