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:
- Not part of "soc" node.
- 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?
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 {
Here node name is as well wrong.
Node names should be generic. https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetre...
OK
Best, Martin
Best regards, Krzysztof