dmaengine.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v1 00/10] Apple M1 Pro/Max/Ultra device trees
@ 2022-09-16 14:25 Janne Grunau
  2022-09-16 14:25 ` [PATCH v1 01/10] dt-bindings: dma: apple,admac: Add iommus and power-domains properties Janne Grunau
  2022-09-17  9:17 ` [PATCH v1 00/10] Apple M1 Pro/Max/Ultra device trees Marc Zyngier
  0 siblings, 2 replies; 5+ messages in thread
From: Janne Grunau @ 2022-09-16 14:25 UTC (permalink / raw)
  To: asahi
  Cc: Mark Kettenis, Alyssa Rosenzweig, Hector Martin,
	Krzysztof Kozlowski, Marc Zyngier, Martin Povišer,
	Rob Herring, Sven Peter, Thomas Gleixner, Vinod Koul, devicetree,
	dmaengine, linux-arm-kernel, linux-kernel

Hej,

this series contains device trees for Apple's M1 Pro, Max and Ultra SoCs
and devices based on these SoCs.

Quoting from the main commit:

| These SoCs are found in Apple devices with M1 Pro (t6000), M1 Max
| (t6001) and M1 Ultra (t6002).
|
| t6000 is a cut-down version of t6001, so the former just includes the
| latter and disables the missing bits (This is currently just one PMGR
| node and all of its domains.
|
| t6002 is two connected t6001 dies. The implementation seems to use
| t6001 with blocks disabled (mostly on the second die). MMIO addresses on
| the second die have a constant offset. The interrupt controller is
| multi-die aware. This setup can be represented in the device tree with
| two top level "soc" nodes. The MMIO offset is applied via "ranges" and
| devices are included with preproceesor macros to make the node labels
| unique and to specify the die number for the interrupt definition.
|
| Device nodes are distributed over dtsi files based on whether they are
| present on both dies or just on the first die. The only execption is the
| NVMe controller which resides on the second die. Its nodes are in a
| separate file.

This series depends for full functionality on t600x dart support (latest
version at
https://lore.kernel.org/linux-iommu/20220916094152.87137-1-j@jannau.net/T/#t
expected to be picked up for 6.1). This is the usual device tree /
driver changes runtime dependency.

Even with the t6000-dart support t600x devices are not terribly useful
in upstream. There is no input device support. The laptop's keyboard
and touchpad are missing SPI and HID over SPI drivers. The dwc3
USB-C ports are not yet added since they require special handling
after disconnect. The PCIe based USB xhci controller in the Mac Studio
requires firmware downloaded in a similar way as USB_XHCI_PCI_RENESAS.

To simplify dependency handling this series carries mostly identical
device tree additions for M1 and M1 Pro/Max/Ultra as part of the in
development audio support.

The series passes dtbs_check with 3 additional dt bindings changes:
- "dt-bindings: apple,aic: Fix required item "apple,fiq-index" in
  affinity description" (merged as da3b1c294d47 in Linus' repo)
- "ASoC: Add Apple MCA I2S transceiver bindings" (6ed462d1c11675)
  in sound/for-next
- "dt-bindings: iommu: dart: add t6000 compatible"
  https://lore.kernel.org/linux-iommu/20220901012519.7167-2-j@jannau.net/

New bindings passes dt_binding_check.

best regards,
Janne

Changes in v1:
- added proper ranges for t6002 soc nodes
- use unit addresses from ranges for t6002 soc nodes
- C preprocessor cleanup
- drop apple,aic.yaml binding fix, already sent as fix to Linus
- add t8103 pmgr tree reparenting commit for admac

Hector Martin (3):
  arm64: dts: apple: Fix j45x model years
  arm64: dts: apple: Add initial t6000/t6001/t6002 DTs
  arm64: dts: apple: Add J314 and J316 devicetrees

Janne Grunau (5):
  dt-bindings: dma: apple,admac: Add iommus and power-domains properties
  dt-bindings: apple,aic2: Add CPU PMU per-cpu pseudo-interrupts
  dt-bindings: arm: apple: Add t6001/t6002 Mac Studio compatibles
  arm64: dts: apple: Add J375 devicetrees
  arm64: dts: apple: t600x: Add MCA and its support

Martin Povišer (2):
  arm64: dts: apple: t8103: Add AUDIO_P parent to the SIO_ADMA power
    domain
  arm64: dts: apple: t8103: Add MCA and its support

 .../devicetree/bindings/arm/apple.yaml        |   14 +-
 .../devicetree/bindings/dma/apple,admac.yaml  |    7 +
 .../interrupt-controller/apple,aic2.yaml      |   29 +
 arch/arm64/boot/dts/apple/Makefile            |    6 +
 arch/arm64/boot/dts/apple/multi-die-cpp.h     |   22 +
 arch/arm64/boot/dts/apple/t6000-j314s.dts     |   18 +
 arch/arm64/boot/dts/apple/t6000-j316s.dts     |   18 +
 arch/arm64/boot/dts/apple/t6000.dtsi          |   18 +
 arch/arm64/boot/dts/apple/t6001-j314c.dts     |   18 +
 arch/arm64/boot/dts/apple/t6001-j316c.dts     |   18 +
 arch/arm64/boot/dts/apple/t6001-j375c.dts     |   18 +
 arch/arm64/boot/dts/apple/t6001.dtsi          |   63 +
 arch/arm64/boot/dts/apple/t6002-j375d.dts     |   50 +
 arch/arm64/boot/dts/apple/t6002.dtsi          |  175 ++
 arch/arm64/boot/dts/apple/t600x-common.dtsi   |  137 ++
 arch/arm64/boot/dts/apple/t600x-die0.dtsi     |  360 +++
 arch/arm64/boot/dts/apple/t600x-dieX.dtsi     |  103 +
 .../arm64/boot/dts/apple/t600x-gpio-pins.dtsi |   45 +
 .../arm64/boot/dts/apple/t600x-j314-j316.dtsi |  114 +
 arch/arm64/boot/dts/apple/t600x-j375.dtsi     |  117 +
 arch/arm64/boot/dts/apple/t600x-nvme.dtsi     |   42 +
 arch/arm64/boot/dts/apple/t600x-pmgr.dtsi     | 2012 +++++++++++++++++
 arch/arm64/boot/dts/apple/t8103-j456.dts      |    2 +-
 arch/arm64/boot/dts/apple/t8103-j457.dts      |    2 +-
 arch/arm64/boot/dts/apple/t8103-jxxx.dtsi     |    4 +
 arch/arm64/boot/dts/apple/t8103-pmgr.dtsi     |    2 +-
 arch/arm64/boot/dts/apple/t8103.dtsi          |   73 +
 27 files changed, 3483 insertions(+), 4 deletions(-)
 create mode 100644 arch/arm64/boot/dts/apple/multi-die-cpp.h
 create mode 100644 arch/arm64/boot/dts/apple/t6000-j314s.dts
 create mode 100644 arch/arm64/boot/dts/apple/t6000-j316s.dts
 create mode 100644 arch/arm64/boot/dts/apple/t6000.dtsi
 create mode 100644 arch/arm64/boot/dts/apple/t6001-j314c.dts
 create mode 100644 arch/arm64/boot/dts/apple/t6001-j316c.dts
 create mode 100644 arch/arm64/boot/dts/apple/t6001-j375c.dts
 create mode 100644 arch/arm64/boot/dts/apple/t6001.dtsi
 create mode 100644 arch/arm64/boot/dts/apple/t6002-j375d.dts
 create mode 100644 arch/arm64/boot/dts/apple/t6002.dtsi
 create mode 100644 arch/arm64/boot/dts/apple/t600x-common.dtsi
 create mode 100644 arch/arm64/boot/dts/apple/t600x-die0.dtsi
 create mode 100644 arch/arm64/boot/dts/apple/t600x-dieX.dtsi
 create mode 100644 arch/arm64/boot/dts/apple/t600x-gpio-pins.dtsi
 create mode 100644 arch/arm64/boot/dts/apple/t600x-j314-j316.dtsi
 create mode 100644 arch/arm64/boot/dts/apple/t600x-j375.dtsi
 create mode 100644 arch/arm64/boot/dts/apple/t600x-nvme.dtsi
 create mode 100644 arch/arm64/boot/dts/apple/t600x-pmgr.dtsi

-- 
2.35.1


^ permalink raw reply	[flat|nested] 5+ messages in thread

* [PATCH v1 01/10] dt-bindings: dma: apple,admac: Add iommus and power-domains properties
  2022-09-16 14:25 [PATCH v1 00/10] Apple M1 Pro/Max/Ultra device trees Janne Grunau
@ 2022-09-16 14:25 ` Janne Grunau
  2022-09-29 16:31   ` Vinod Koul
  2022-09-17  9:17 ` [PATCH v1 00/10] Apple M1 Pro/Max/Ultra device trees Marc Zyngier
  1 sibling, 1 reply; 5+ messages in thread
From: Janne Grunau @ 2022-09-16 14:25 UTC (permalink / raw)
  To: asahi
  Cc: Mark Kettenis, Martin Povišer, Krzysztof Kozlowski,
	Alyssa Rosenzweig, Hector Martin, Krzysztof Kozlowski,
	Rob Herring, Sven Peter, Vinod Koul, devicetree, dmaengine,
	linux-arm-kernel, linux-kernel

Apple's ADMAC is on all supported Apple silicon SoCs behind an IOMMU
and has its own power-domain.

Signed-off-by: Janne Grunau <j@jannau.net>
Acked-by: Martin Povišer <povik+lin@cutebit.org>
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

---

Changes in v1:
 - added Martin's and Krzysztof's ack

 Documentation/devicetree/bindings/dma/apple,admac.yaml | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/Documentation/devicetree/bindings/dma/apple,admac.yaml b/Documentation/devicetree/bindings/dma/apple,admac.yaml
index bdc8c129c4f5..3b1e667f7ea0 100644
--- a/Documentation/devicetree/bindings/dma/apple,admac.yaml
+++ b/Documentation/devicetree/bindings/dma/apple,admac.yaml
@@ -49,6 +49,13 @@ properties:
       in an interrupts-extended list the disconnected positions will contain
       an empty phandle reference <0>.
 
+  iommus:
+    minItems: 1
+    maxItems: 2
+
+  power-domains:
+    maxItems: 1
+
 required:
   - compatible
   - reg
-- 
2.35.1


^ permalink raw reply related	[flat|nested] 5+ messages in thread

* Re: [PATCH v1 00/10] Apple M1 Pro/Max/Ultra device trees
  2022-09-16 14:25 [PATCH v1 00/10] Apple M1 Pro/Max/Ultra device trees Janne Grunau
  2022-09-16 14:25 ` [PATCH v1 01/10] dt-bindings: dma: apple,admac: Add iommus and power-domains properties Janne Grunau
@ 2022-09-17  9:17 ` Marc Zyngier
  1 sibling, 0 replies; 5+ messages in thread
From: Marc Zyngier @ 2022-09-17  9:17 UTC (permalink / raw)
  To: Janne Grunau
  Cc: asahi, Mark Kettenis, Alyssa Rosenzweig, Hector Martin,
	Krzysztof Kozlowski, Martin Povišer, Rob Herring,
	Sven Peter, Thomas Gleixner, Vinod Koul, devicetree, dmaengine,
	linux-arm-kernel, linux-kernel

On Fri, 16 Sep 2022 15:25:40 +0100,
Janne Grunau <j@jannau.net> wrote:
> 
> Hej,
> 
> this series contains device trees for Apple's M1 Pro, Max and Ultra SoCs
> and devices based on these SoCs.
> 
> Quoting from the main commit:
> 
> | These SoCs are found in Apple devices with M1 Pro (t6000), M1 Max
> | (t6001) and M1 Ultra (t6002).
> |
> | t6000 is a cut-down version of t6001, so the former just includes the
> | latter and disables the missing bits (This is currently just one PMGR
> | node and all of its domains.
> |
> | t6002 is two connected t6001 dies. The implementation seems to use
> | t6001 with blocks disabled (mostly on the second die). MMIO addresses on
> | the second die have a constant offset. The interrupt controller is
> | multi-die aware. This setup can be represented in the device tree with
> | two top level "soc" nodes. The MMIO offset is applied via "ranges" and
> | devices are included with preproceesor macros to make the node labels
> | unique and to specify the die number for the interrupt definition.
> |
> | Device nodes are distributed over dtsi files based on whether they are
> | present on both dies or just on the first die. The only execption is the
> | NVMe controller which resides on the second die. Its nodes are in a
> | separate file.
> 
> This series depends for full functionality on t600x dart support (latest
> version at
> https://lore.kernel.org/linux-iommu/20220916094152.87137-1-j@jannau.net/T/#t
> expected to be picked up for 6.1). This is the usual device tree /
> driver changes runtime dependency.
> 
> Even with the t6000-dart support t600x devices are not terribly useful
> in upstream. There is no input device support. The laptop's keyboard
> and touchpad are missing SPI and HID over SPI drivers. The dwc3
> USB-C ports are not yet added since they require special handling
> after disconnect. The PCIe based USB xhci controller in the Mac Studio
> requires firmware downloaded in a similar way as USB_XHCI_PCI_RENESAS.
> 
> To simplify dependency handling this series carries mostly identical
> device tree additions for M1 and M1 Pro/Max/Ultra as part of the in
> development audio support.
> 
> The series passes dtbs_check with 3 additional dt bindings changes:
> - "dt-bindings: apple,aic: Fix required item "apple,fiq-index" in
>   affinity description" (merged as da3b1c294d47 in Linus' repo)
> - "ASoC: Add Apple MCA I2S transceiver bindings" (6ed462d1c11675)
>   in sound/for-next
> - "dt-bindings: iommu: dart: add t6000 compatible"
>   https://lore.kernel.org/linux-iommu/20220901012519.7167-2-j@jannau.net/
> 
> New bindings passes dt_binding_check.

For the whole series:

Acked-by: Marc Zyngier <maz@kernel.org>

	M.

-- 
Without deviation from the norm, progress is not possible.

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v1 01/10] dt-bindings: dma: apple,admac: Add iommus and power-domains properties
  2022-09-16 14:25 ` [PATCH v1 01/10] dt-bindings: dma: apple,admac: Add iommus and power-domains properties Janne Grunau
@ 2022-09-29 16:31   ` Vinod Koul
  2022-09-29 17:40     ` Martin Povišer
  0 siblings, 1 reply; 5+ messages in thread
From: Vinod Koul @ 2022-09-29 16:31 UTC (permalink / raw)
  To: Janne Grunau
  Cc: asahi, Mark Kettenis, Martin Povišer, Krzysztof Kozlowski,
	Alyssa Rosenzweig, Hector Martin, Krzysztof Kozlowski,
	Rob Herring, Sven Peter, devicetree, dmaengine, linux-arm-kernel,
	linux-kernel

On 16-09-22, 16:25, Janne Grunau wrote:
> Apple's ADMAC is on all supported Apple silicon SoCs behind an IOMMU
> and has its own power-domain.

Applied, thanks

-- 
~Vinod

^ permalink raw reply	[flat|nested] 5+ messages in thread

* Re: [PATCH v1 01/10] dt-bindings: dma: apple,admac: Add iommus and power-domains properties
  2022-09-29 16:31   ` Vinod Koul
@ 2022-09-29 17:40     ` Martin Povišer
  0 siblings, 0 replies; 5+ messages in thread
From: Martin Povišer @ 2022-09-29 17:40 UTC (permalink / raw)
  To: Vinod Koul
  Cc: Janne Grunau, asahi, Mark Kettenis, Krzysztof Kozlowski,
	Alyssa Rosenzweig, Hector Martin, Krzysztof Kozlowski,
	Rob Herring, Sven Peter, devicetree, dmaengine, linux-arm-kernel,
	linux-kernel


> On 29. 9. 2022, at 18:31, Vinod Koul <vkoul@kernel.org> wrote:
> 
> On 16-09-22, 16:25, Janne Grunau wrote:
>> Apple's ADMAC is on all supported Apple silicon SoCs behind an IOMMU
>> and has its own power-domain.
> 
> Applied, thanks

Hi Vinod,

this has been picked up by Hector and is staged in asahi-soc/dt [0].
I see you haven’t pushed yet. Would it be possible to drop the patch
on your end so we don’t end up with two commits for the same change?
(I assume that would be an issue.)

To recapitulate: There are two ADMAC binding changes to go in for 6.1,
they are both in asahi-soc/dt. I know I initially asked you to apply
this patch when the series was an RFC.

Thanks,
Martin

[0] https://github.com/AsahiLinux/linux/commit/3ac3865735a83bd1c0dae7ad73b74621774755cb

> -- 
> ~Vinod
> 


^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2022-09-29 17:40 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-09-16 14:25 [PATCH v1 00/10] Apple M1 Pro/Max/Ultra device trees Janne Grunau
2022-09-16 14:25 ` [PATCH v1 01/10] dt-bindings: dma: apple,admac: Add iommus and power-domains properties Janne Grunau
2022-09-29 16:31   ` Vinod Koul
2022-09-29 17:40     ` Martin Povišer
2022-09-17  9:17 ` [PATCH v1 00/10] Apple M1 Pro/Max/Ultra device trees Marc Zyngier

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).