Message ID | 20220819125430.4920-3-povik+lin@cutebit.org |
---|---|
State | New |
Headers | show |
Series | ASoC platform driver for Apple MCA | expand |
On 19/08/2022 17:24, Martin Povišer wrote: > > >> On 19. 8. 2022, at 15:12, Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> wrote: >> >> On 19/08/2022 15:54, 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.dtsi | 70 ++++++++++++++++++++++++++++ >>> 1 file changed, 70 insertions(+) >>> >>> diff --git a/arch/arm64/boot/dts/apple/t8103.dtsi b/arch/arm64/boot/dts/apple/t8103.dtsi >>> index 51a63b29d404..2dc3125aca5b 100644 >>> --- a/arch/arm64/boot/dts/apple/t8103.dtsi >>> +++ b/arch/arm64/boot/dts/apple/t8103.dtsi >>> @@ -532,6 +532,76 @@ 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>; >>> + }; >>> + >>> + nco_clkref: clock-ref { >>> + compatible = "fixed-clock"; >>> + #clock-cells = <0>; >>> + clock-frequency = <900000000>; >>> + clock-output-names = "nco_ref"; >>> + }; >> >> Reference clocks are usually physically outside of SoC (e.g. on the >> board), so: >> 1. Not part of "soc" node. >> 2. It should be defined by board. At least clock-frequency should be there. > > Ah, right, this deserves commentary: Since this is a reverse-engineered > driver/platform support, we give up on knowing the clock tree exactly. Instead > we model the clock input to the Numerically Controlled Oscillator (‘nco’ node > below) with this fabulated fixed clock reference. > > I guess eventually the clock tree is rooted off the SoC, and there’s > nothing guaranteeing the same reference clock to the NCO across machines (being > function of the board wiring and the proprietary firmware). In the end I would > argue for keeping the ‘clock-ref’ here in ’soc' but have the clock-frequency > defined by board. Sounds reasonable? Yes. Best regards, Krzysztof
diff --git a/arch/arm64/boot/dts/apple/t8103.dtsi b/arch/arm64/boot/dts/apple/t8103.dtsi index 51a63b29d404..2dc3125aca5b 100644 --- a/arch/arm64/boot/dts/apple/t8103.dtsi +++ b/arch/arm64/boot/dts/apple/t8103.dtsi @@ -532,6 +532,76 @@ 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>; + }; + + nco_clkref: clock-ref { + compatible = "fixed-clock"; + #clock-cells = <0>; + clock-frequency = <900000000>; + clock-output-names = "nco_ref"; + }; + + nco: nco@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: mca@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.dtsi | 70 ++++++++++++++++++++++++++++ 1 file changed, 70 insertions(+)