From 6c309a30819bf2a79c88b2fbe3dd08fc14a08edb Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 00:24:14 +1100 Subject: [PATCH 1/6] arm64: dts: apple: describe disabled T6032 package resources Describe Ultra media engines, DMA filters, input adapters and package resources on top of the revised M3 family description. Preserve every parent generation binding contract and select the Ultra layout independently. New hardware remains disabled. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM --- .../bindings/clock/apple,pmgr-clocks.yaml | 106 +++ .../devicetree/bindings/crypto/apple,aes.yaml | 116 ++- .../bindings/display/apple,dpin.yaml | 79 ++ .../bindings/dma/apple,pcie-piodma.yaml | 100 +- .../bindings/dma/apple,pciec-piodma.yaml | 89 ++ .../devicetree/bindings/iommu/apple,dapf.yaml | 2 + .../bindings/iommu/apple,dart-smmu.yaml | 2 + .../devicetree/bindings/media/apple,jpeg.yaml | 149 +-- .../bindings/media/apple,prores.yaml | 144 +-- .../bindings/media/apple,scaler.yaml | 137 ++- .../bindings/media/apple,t8140-ave.yaml | 184 ++-- .../bindings/soc/apple/apple,aon-ptd.yaml | 15 + .../bindings/soc/apple/apple,dwi.yaml | 101 +- .../bindings/soc/apple/apple,rsm.yaml | 102 ++- .../bindings/soc/apple/apple,t8140-mcc.yaml | 101 +- .../boot/dts/apple/t6032-peripherals.dtsi | 861 ++++++++++++++++++ arch/arm64/boot/dts/apple/t6032.dtsi | 2 + 17 files changed, 1895 insertions(+), 395 deletions(-) create mode 100644 Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml create mode 100644 Documentation/devicetree/bindings/display/apple,dpin.yaml create mode 100644 Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml create mode 100644 arch/arm64/boot/dts/apple/t6032-peripherals.dtsi diff --git a/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml b/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml new file mode 100644 index 0000000000000..5737fb2e12e12 --- /dev/null +++ b/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml @@ -0,0 +1,106 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/apple,pmgr-clocks.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple PMGR peripheral clock selectors + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + Peripheral input clocks managed by the SoC power manager. The clock + specifier is the SoC clock selector from the hardware description. It is + separate from a PMGR device/power-gate ID. Rates may change with performance + state and must not be represented as fixed clocks sampled at one boot. + The provider remains disabled until a generation-specific clock driver + can resolve selectors and coordinate ownership with firmware. + +select: + properties: + compatible: + contains: + enum: + - apple,t6041-pmgr-clocks + - apple,t8140-pmgr-clocks + - apple,t6032-pmgr-clocks + required: + - compatible + +properties: + compatible: true + +allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t6032-pmgr-clocks + required: + - compatible + then: + properties: + compatible: + items: + - const: apple,t6032-pmgr-clocks + - const: apple,pmgr-clocks + + '#clock-cells': + const: 1 + + required: + - compatible + - '#clock-cells' + + else: + properties: + compatible: + items: + - enum: + - apple,t6041-pmgr-clocks + - apple,t8140-pmgr-clocks + - const: apple,pmgr-clocks + + reg: + description: PMGR control apertures in hardware-description order. + minItems: 44 + maxItems: 63 + + '#clock-cells': + const: 1 + + apple,pmgr: + $ref: /schemas/types.yaml#/definitions/phandle + description: Primary PMGR syscon. Additional control banks are described by reg. + + required: + - reg + - compatible + - '#clock-cells' + - apple,pmgr + + allOf: + - if: + properties: + compatible: + contains: + const: apple,t6041-pmgr-clocks + then: + properties: + reg: + minItems: 63 + maxItems: 63 + - if: + properties: + compatible: + contains: + const: apple,t8140-pmgr-clocks + then: + properties: + reg: + minItems: 44 + maxItems: 44 + +unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/crypto/apple,aes.yaml b/Documentation/devicetree/bindings/crypto/apple,aes.yaml index 0469858e0a51d..252b6bedeb5a9 100644 --- a/Documentation/devicetree/bindings/crypto/apple,aes.yaml +++ b/Documentation/devicetree/bindings/crypto/apple,aes.yaml @@ -23,6 +23,7 @@ select: - apple,t8122-aes - apple,t6030-aes - apple,t6031-aes + - apple,t6032-aes required: - compatible @@ -35,19 +36,14 @@ allOf: compatible: contains: enum: - - apple,t8122-aes - - apple,t6030-aes - - apple,t6031-aes + - apple,t6032-aes required: - compatible then: properties: compatible: items: - - enum: - - apple,t8122-aes - - apple,t6030-aes - - apple,t6031-aes + - const: apple,t6032-aes - const: apple,aes reg: @@ -55,12 +51,15 @@ allOf: maxItems: 2 interrupts: + minItems: 1 maxItems: 1 power-domains: + minItems: 1 maxItems: 1 iommus: + minItems: 1 maxItems: 1 required: @@ -69,37 +68,78 @@ allOf: - interrupts - power-domains - iommus - else: - properties: - compatible: - oneOf: - - items: - - const: apple,t6041-aes - - const: apple,aes - - items: - - const: apple,t8140-aes - - const: apple,aes - - reg: - minItems: 3 - maxItems: 3 - description: Register apertures in hardware-description order. - - interrupts: - maxItems: 1 - - power-domains: - maxItems: 1 - - iommus: - maxItems: 1 - - required: - - compatible - - reg - - interrupts - - power-domains - - iommus + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t8122-aes + - apple,t6030-aes + - apple,t6031-aes + required: + - compatible + then: + properties: + compatible: + items: + - enum: + - apple,t8122-aes + - apple,t6030-aes + - apple,t6031-aes + - const: apple,aes + + reg: + minItems: 2 + maxItems: 2 + + interrupts: + maxItems: 1 + + power-domains: + maxItems: 1 + + iommus: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - power-domains + - iommus + + else: + properties: + compatible: + oneOf: + - items: + - const: apple,t6041-aes + - const: apple,aes + - items: + - const: apple,t8140-aes + - const: apple,aes + + reg: + minItems: 3 + maxItems: 3 + description: Register apertures in hardware-description order. + + interrupts: + maxItems: 1 + + power-domains: + maxItems: 1 + + iommus: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - power-domains + - iommus unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/display/apple,dpin.yaml b/Documentation/devicetree/bindings/display/apple,dpin.yaml new file mode 100644 index 0000000000000..da9f1275ed88d --- /dev/null +++ b/Documentation/devicetree/bindings/display/apple,dpin.yaml @@ -0,0 +1,79 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/apple,dpin.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple DisplayPort tunnel ingress + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + DisplayPort ingress registers and interrupt for a USB4 display tunnel. + +select: + properties: + compatible: + contains: + enum: + - apple,t6041-dpin + - apple,t6032-dpin + required: + - compatible + +properties: + compatible: true + +allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t6032-dpin + required: + - compatible + then: + properties: + compatible: + items: + - const: apple,t6032-dpin + - const: apple,dpin + + reg: + minItems: 1 + maxItems: 1 + + interrupts: + minItems: 1 + maxItems: 1 + + required: + - compatible + - reg + - interrupts + + else: + properties: + compatible: + oneOf: + - items: + - const: apple,t6041-dpin + - const: apple,dpin + + reg: + minItems: 1 + maxItems: 1 + description: Register apertures in hardware-description order. + + interrupts: + minItems: 1 + maxItems: 1 + + required: + - compatible + - reg + - interrupts + +unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml b/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml index f769bafe13aad..9beea527b4408 100644 --- a/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml +++ b/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml @@ -22,6 +22,7 @@ select: - apple,t8122-pcie-piodma - apple,t6030-pcie-piodma - apple,t6031-pcie-piodma + - apple,t6032-pcie-piodma required: - compatible @@ -34,60 +35,93 @@ allOf: compatible: contains: enum: - - apple,t8122-pcie-piodma - - apple,t6030-pcie-piodma - - apple,t6031-pcie-piodma + - apple,t6032-pcie-piodma required: - compatible then: properties: compatible: items: - - enum: - - apple,t8122-pcie-piodma - - apple,t6030-pcie-piodma - - apple,t6031-pcie-piodma + - const: apple,t6032-pcie-piodma - const: apple,pcie-piodma - reg: - minItems: 3 - maxItems: 4 - - interrupts: - maxItems: 1 - - iommus: - maxItems: 1 - - required: - - compatible - - reg - - interrupts - - iommus - - else: - properties: - compatible: - oneOf: - - items: - - const: apple,t6041-pcie-piodma - - const: apple,pcie-piodma - reg: minItems: 3 maxItems: 3 - description: Register apertures in hardware-description order. interrupts: + minItems: 1 maxItems: 1 iommus: + minItems: 1 maxItems: 1 required: - compatible - reg - interrupts - - iommus + else: + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t8122-pcie-piodma + - apple,t6030-pcie-piodma + - apple,t6031-pcie-piodma + required: + - compatible + then: + properties: + compatible: + items: + - enum: + - apple,t8122-pcie-piodma + - apple,t6030-pcie-piodma + - apple,t6031-pcie-piodma + - const: apple,pcie-piodma + + reg: + minItems: 3 + maxItems: 4 + + interrupts: + maxItems: 1 + + iommus: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - iommus + + else: + properties: + compatible: + oneOf: + - items: + - const: apple,t6041-pcie-piodma + - const: apple,pcie-piodma + + reg: + minItems: 3 + maxItems: 3 + description: Register apertures in hardware-description order. + + interrupts: + maxItems: 1 + + iommus: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - iommus unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml new file mode 100644 index 0000000000000..052a2cad5b011 --- /dev/null +++ b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml @@ -0,0 +1,89 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/dma/apple,pciec-piodma.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple PCIe tunnel PIODMA engine + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + PCIe tunnel auxiliary DMA register banks and completion interrupt. Its + stream is distinct from the tunnel endpoint streams in the same DART. + +select: + properties: + compatible: + contains: + enum: + - apple,t6041-pciec-piodma + - apple,t6032-pciec-piodma + required: + - compatible + +properties: + compatible: true + +allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t6032-pciec-piodma + required: + - compatible + then: + properties: + compatible: + items: + - const: apple,t6032-pciec-piodma + - const: apple,pciec-piodma + + reg: + minItems: 4 + maxItems: 4 + + interrupts: + minItems: 1 + maxItems: 1 + + iommus: + minItems: 1 + maxItems: 1 + + required: + - compatible + - reg + - interrupts + + else: + properties: + compatible: + oneOf: + - items: + - const: apple,t6041-pciec-piodma + - const: apple,pciec-piodma + + reg: + minItems: 4 + maxItems: 4 + description: Register apertures in hardware-description order. + + interrupts: + minItems: 1 + maxItems: 1 + + iommus: + minItems: 1 + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - iommus + +unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/iommu/apple,dapf.yaml b/Documentation/devicetree/bindings/iommu/apple,dapf.yaml index 2a1635099f474..014c2eee37c90 100644 --- a/Documentation/devicetree/bindings/iommu/apple,dapf.yaml +++ b/Documentation/devicetree/bindings/iommu/apple,dapf.yaml @@ -24,6 +24,7 @@ select: - apple,t8122-dapf - apple,t6030-dapf - apple,t6031-dapf + - apple,t6032-dapf required: - compatible @@ -34,6 +35,7 @@ properties: - apple,t8122-dapf - apple,t6030-dapf - apple,t6031-dapf + - apple,t6032-dapf - const: apple,dapf reg: diff --git a/Documentation/devicetree/bindings/iommu/apple,dart-smmu.yaml b/Documentation/devicetree/bindings/iommu/apple,dart-smmu.yaml index ba8b8fd188358..b6408684d1acf 100644 --- a/Documentation/devicetree/bindings/iommu/apple,dart-smmu.yaml +++ b/Documentation/devicetree/bindings/iommu/apple,dart-smmu.yaml @@ -24,6 +24,7 @@ select: - apple,t8122-dart-smmu - apple,t6030-dart-smmu - apple,t6031-dart-smmu + - apple,t6032-dart-smmu required: - compatible @@ -34,6 +35,7 @@ properties: - apple,t8122-dart-smmu - apple,t6030-dart-smmu - apple,t6031-dart-smmu + - apple,t6032-dart-smmu - const: apple,dart-smmu reg: diff --git a/Documentation/devicetree/bindings/media/apple,jpeg.yaml b/Documentation/devicetree/bindings/media/apple,jpeg.yaml index 1c44bcb260c7d..50d9ef51f5071 100644 --- a/Documentation/devicetree/bindings/media/apple,jpeg.yaml +++ b/Documentation/devicetree/bindings/media/apple,jpeg.yaml @@ -29,6 +29,7 @@ select: - apple,t8122-jpeg - apple,t6030-jpeg - apple,t6031-jpeg + - apple,t6032-jpeg required: - compatible @@ -41,94 +42,138 @@ allOf: compatible: contains: enum: - - apple,t8122-jpeg - - apple,t6030-jpeg - - apple,t6031-jpeg + - apple,t6032-jpeg required: - compatible then: properties: compatible: items: - - enum: - - apple,t8122-jpeg - - apple,t6030-jpeg - - apple,t6031-jpeg + - const: apple,t6032-jpeg - const: apple,jpeg reg: + minItems: 1 maxItems: 1 interrupts: + minItems: 1 maxItems: 1 power-domains: + minItems: 1 maxItems: 1 iommus: + minItems: 1 maxItems: 1 + clocks: + minItems: 2 + maxItems: 2 + required: - compatible - reg - interrupts - power-domains - iommus - + - clocks else: - properties: - compatible: - enum: - - apple,t6041-jpeg - - apple,t8140-jpeg - - reg: - maxItems: 1 - - interrupts: - maxItems: 1 + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t8122-jpeg + - apple,t6030-jpeg + - apple,t6031-jpeg + required: + - compatible + then: + properties: + compatible: + items: + - enum: + - apple,t8122-jpeg + - apple,t6030-jpeg + - apple,t6031-jpeg + - const: apple,jpeg - iommus: - maxItems: 1 + reg: + maxItems: 1 - power-domains: - minItems: 1 - items: - - description: The engine's power domain - - description: Performance request held while the engine works + interrupts: + maxItems: 1 - power-domain-names: - minItems: 1 - items: - - const: core - - const: perf + power-domains: + maxItems: 1 - apple,dma-range: - $ref: /schemas/types.yaml#/definitions/uint64-array - items: - - const: 0x10000000000 - - const: 0x100000000 - description: Device-visible DMA window, as a 64-bit base and size. - Only for engines with 32-bit buffer pointers. + iommus: + maxItems: 1 - required: - - compatible - - reg - - interrupts - - iommus - - power-domains + required: + - compatible + - reg + - interrupts + - power-domains + - iommus - allOf: - - if: + else: properties: compatible: - const: apple,t6041-jpeg - then: + enum: + - apple,t6041-jpeg + - apple,t8140-jpeg + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + iommus: + maxItems: 1 + + power-domains: + minItems: 1 + items: + - description: The engine's power domain + - description: Performance request held while the engine works + + power-domain-names: + minItems: 1 + items: + - const: core + - const: perf + + apple,dma-range: + $ref: /schemas/types.yaml#/definitions/uint64-array + items: + - const: 0x10000000000 + - const: 0x100000000 + description: Device-visible DMA window, as a 64-bit base and size. + Only for engines with 32-bit buffer pointers. + required: - - apple,dma-range - else: - properties: - apple,dma-range: false + - compatible + - reg + - interrupts + - iommus + - power-domains + + allOf: + - if: + properties: + compatible: + const: apple,t6041-jpeg + then: + required: + - apple,dma-range + else: + properties: + apple,dma-range: false unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/media/apple,prores.yaml b/Documentation/devicetree/bindings/media/apple,prores.yaml index bf8847a7947c9..61128e885c836 100644 --- a/Documentation/devicetree/bindings/media/apple,prores.yaml +++ b/Documentation/devicetree/bindings/media/apple,prores.yaml @@ -23,6 +23,7 @@ select: - apple,t8122-prores - apple,t6030-prores - apple,t6031-prores + - apple,t6032-prores required: - compatible @@ -35,19 +36,14 @@ allOf: compatible: contains: enum: - - apple,t8122-prores - - apple,t6030-prores - - apple,t6031-prores + - apple,t6032-prores required: - compatible then: properties: compatible: items: - - enum: - - apple,t8122-prores - - apple,t6030-prores - - apple,t6031-prores + - const: apple,t6032-prores - const: apple,prores reg: @@ -56,9 +52,10 @@ allOf: interrupts: minItems: 1 - maxItems: 2 + maxItems: 1 power-domains: + minItems: 1 maxItems: 1 iommus: @@ -71,51 +68,94 @@ allOf: - interrupts - power-domains - iommus - else: - properties: - compatible: - const: apple,t8140-prores - - reg: - items: - - description: Engine registers - - description: Wrapper registers - - reg-names: - items: - - const: core - - const: wrapper - - interrupts: - minItems: 1 - maxItems: 2 - - iommus: - maxItems: 1 - - power-domains: - minItems: 1 - items: - - description: The engine's power domain - - description: Performance request held while the engine works - - power-domain-names: - minItems: 1 - items: - - const: core - - const: perf - - resets: - maxItems: 1 - - required: - - compatible - - reg - - reg-names - - interrupts - - iommus - - power-domains + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t8122-prores + - apple,t6030-prores + - apple,t6031-prores + required: + - compatible + then: + properties: + compatible: + items: + - enum: + - apple,t8122-prores + - apple,t6030-prores + - apple,t6031-prores + - const: apple,prores + + reg: + minItems: 2 + maxItems: 3 + + interrupts: + minItems: 1 + maxItems: 2 + + power-domains: + maxItems: 1 + + iommus: + minItems: 1 + maxItems: 2 + + required: + - compatible + - reg + - interrupts + - power-domains + - iommus + + else: + properties: + compatible: + const: apple,t8140-prores + + reg: + items: + - description: Engine registers + - description: Wrapper registers + + reg-names: + items: + - const: core + - const: wrapper + + interrupts: + minItems: 1 + maxItems: 2 + + iommus: + maxItems: 1 + + power-domains: + minItems: 1 + items: + - description: The engine's power domain + - description: Performance request held while the engine works + + power-domain-names: + minItems: 1 + items: + - const: core + - const: perf + + resets: + maxItems: 1 + + required: + - compatible + - reg + - reg-names + - interrupts + - iommus + - power-domains unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/media/apple,scaler.yaml b/Documentation/devicetree/bindings/media/apple,scaler.yaml index 6ca38c48cab5b..d7a2ee63baeee 100644 --- a/Documentation/devicetree/bindings/media/apple,scaler.yaml +++ b/Documentation/devicetree/bindings/media/apple,scaler.yaml @@ -24,6 +24,7 @@ select: - apple,t8122-scaler - apple,t6030-scaler - apple,t6031-scaler + - apple,t6032-scaler required: - compatible @@ -36,59 +37,19 @@ allOf: compatible: contains: enum: - - apple,t8122-scaler - - apple,t6030-scaler - - apple,t6031-scaler + - apple,t6032-scaler required: - compatible then: properties: compatible: items: - - enum: - - apple,t8122-scaler - - apple,t6030-scaler - - apple,t6031-scaler + - const: apple,t6032-scaler - const: apple,scaler - reg: - minItems: 3 - maxItems: 4 - - interrupts: - minItems: 2 - maxItems: 2 - - power-domains: - minItems: 1 - maxItems: 2 - - iommus: - minItems: 1 - maxItems: 2 - - required: - - compatible - - reg - - interrupts - - power-domains - - iommus - - else: - properties: - compatible: - oneOf: - - items: - - const: apple,t6041-scaler - - const: apple,scaler - - items: - - const: apple,t8140-scaler - - const: apple,scaler - reg: minItems: 4 maxItems: 4 - description: Register apertures in hardware-description order. interrupts: minItems: 2 @@ -103,9 +64,7 @@ allOf: maxItems: 2 clocks: - maxItems: 1 - - resets: + minItems: 1 maxItems: 1 required: @@ -113,8 +72,94 @@ allOf: - reg - interrupts - power-domains - - resets - iommus - clocks + else: + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t8122-scaler + - apple,t6030-scaler + - apple,t6031-scaler + required: + - compatible + then: + properties: + compatible: + items: + - enum: + - apple,t8122-scaler + - apple,t6030-scaler + - apple,t6031-scaler + - const: apple,scaler + + reg: + minItems: 3 + maxItems: 4 + + interrupts: + minItems: 2 + maxItems: 2 + + power-domains: + minItems: 1 + maxItems: 2 + + iommus: + minItems: 1 + maxItems: 2 + + required: + - compatible + - reg + - interrupts + - power-domains + - iommus + + else: + properties: + compatible: + oneOf: + - items: + - const: apple,t6041-scaler + - const: apple,scaler + - items: + - const: apple,t8140-scaler + - const: apple,scaler + + reg: + minItems: 4 + maxItems: 4 + description: Register apertures in hardware-description order. + + interrupts: + minItems: 2 + maxItems: 2 + + power-domains: + minItems: 2 + maxItems: 2 + + iommus: + minItems: 2 + maxItems: 2 + + clocks: + maxItems: 1 + + resets: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - power-domains + - resets + - iommus + - clocks unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml b/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml index 3210b7884e921..ad592aa1b17f7 100644 --- a/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml +++ b/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml @@ -26,6 +26,7 @@ select: - apple,t8122-ave - apple,t6030-ave - apple,t6031-ave + - apple,t6032-ave required: - compatible @@ -38,19 +39,14 @@ allOf: compatible: contains: enum: - - apple,t8122-ave - - apple,t6030-ave - - apple,t6031-ave + - apple,t6032-ave required: - compatible then: properties: compatible: items: - - enum: - - apple,t8122-ave - - apple,t6030-ave - - apple,t6031-ave + - const: apple,t6032-ave - const: apple,ave reg: @@ -61,83 +57,127 @@ allOf: minItems: 5 maxItems: 5 - power-domains: - minItems: 1 - maxItems: 6 - - iommus: - minItems: 1 - maxItems: 2 - - required: - - compatible - - reg - - interrupts - - power-domains - - iommus - - else: - properties: - compatible: - enum: - - apple,t6000-ave - - apple,t6041-ave - - apple,t8112-ave - - apple,t8140-ave - - reg: - items: - - description: Codec registers - - description: Mailbox registers - - description: Coprocessor registers - - reg-names: - items: - - const: codec - - const: mailbox - - const: coproc - - interrupts: - items: - - description: Mailbox, raised when the firmware posts to a host ring - - description: Codec interrupt handled by the firmware - - description: Codec interrupt handled by the firmware - - description: Codec interrupt handled by the firmware - - description: Codec interrupt handled by the firmware - power-domains: minItems: 5 maxItems: 6 - power-domain-names: - minItems: 5 - items: - - const: dma - - const: pipe4 - - const: pipe5 - - const: me0 - - const: me1 - - const: perf - description: | - A performance floor the encoder needs to run at full speed, held - while the encoder is powered (for example the SoC rail floor of a - PMC). - iommus: + minItems: 2 maxItems: 2 - memory-region: - items: - - description: Preloaded firmware text - - description: Preloaded firmware data - required: - compatible - reg - - reg-names - interrupts - power-domains - - power-domain-names - iommus + else: + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t8122-ave + - apple,t6030-ave + - apple,t6031-ave + required: + - compatible + then: + properties: + compatible: + items: + - enum: + - apple,t8122-ave + - apple,t6030-ave + - apple,t6031-ave + - const: apple,ave + + reg: + minItems: 5 + maxItems: 5 + + interrupts: + minItems: 5 + maxItems: 5 + + power-domains: + minItems: 1 + maxItems: 6 + + iommus: + minItems: 1 + maxItems: 2 + + required: + - compatible + - reg + - interrupts + - power-domains + - iommus + + else: + properties: + compatible: + enum: + - apple,t6000-ave + - apple,t6041-ave + - apple,t8112-ave + - apple,t8140-ave + + reg: + items: + - description: Codec registers + - description: Mailbox registers + - description: Coprocessor registers + + reg-names: + items: + - const: codec + - const: mailbox + - const: coproc + + interrupts: + items: + - description: Mailbox, raised when the firmware posts to a host ring + - description: Codec interrupt handled by the firmware + - description: Codec interrupt handled by the firmware + - description: Codec interrupt handled by the firmware + - description: Codec interrupt handled by the firmware + + power-domains: + minItems: 5 + maxItems: 6 + + power-domain-names: + minItems: 5 + items: + - const: dma + - const: pipe4 + - const: pipe5 + - const: me0 + - const: me1 + - const: perf + description: | + A performance floor the encoder needs to run at full speed, held + while the encoder is powered (for example the SoC rail floor of a + PMC). + + iommus: + maxItems: 2 + + memory-region: + items: + - description: Preloaded firmware text + - description: Preloaded firmware data + + required: + - compatible + - reg + - reg-names + - interrupts + - power-domains + - power-domain-names + - iommus unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml b/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml index 25addf63b132c..6e38df75a2041 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml @@ -13,9 +13,24 @@ description: | Always-on power telemetry register banks and upstream interrupts. The firmware owns the telemetry data and interrupt routing at boot. +select: + properties: + compatible: + contains: + enum: + - apple,t6031-aon-ptd + - apple,t6032-aon-ptd + - apple,t6041-aon-ptd + - apple,t8140-aon-ptd + required: + - compatible + properties: compatible: oneOf: + - items: + - const: apple,t6032-aon-ptd + - const: apple,aon-ptd - items: - const: apple,t6031-aon-ptd - const: apple,aon-ptd diff --git a/Documentation/devicetree/bindings/soc/apple/apple,dwi.yaml b/Documentation/devicetree/bindings/soc/apple/apple,dwi.yaml index 9a0f5d4eaa00e..a6a75a16f931a 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,dwi.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,dwi.yaml @@ -23,6 +23,7 @@ select: - apple,t8122-dwi - apple,t6030-dwi - apple,t6031-dwi + - apple,t6032-dwi required: - compatible @@ -35,28 +36,26 @@ allOf: compatible: contains: enum: - - apple,t8122-dwi - - apple,t6030-dwi - - apple,t6031-dwi + - apple,t6032-dwi required: - compatible then: properties: compatible: items: - - enum: - - apple,t8122-dwi - - apple,t6030-dwi - - apple,t6031-dwi + - const: apple,t6032-dwi - const: apple,dwi reg: + minItems: 1 maxItems: 1 interrupts: + minItems: 1 maxItems: 1 power-domains: + minItems: 1 maxItems: 1 required: @@ -64,32 +63,68 @@ allOf: - reg - interrupts - power-domains - else: - properties: - compatible: - oneOf: - - items: - - const: apple,t6041-dwi - - const: apple,dwi - - items: - - const: apple,t8140-dwi - - const: apple,dwi - - reg: - maxItems: 1 - description: Register apertures in hardware-description order. - - interrupts: - maxItems: 1 - - power-domains: - maxItems: 1 - - required: - - compatible - - reg - - interrupts - - power-domains + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t8122-dwi + - apple,t6030-dwi + - apple,t6031-dwi + required: + - compatible + then: + properties: + compatible: + items: + - enum: + - apple,t8122-dwi + - apple,t6030-dwi + - apple,t6031-dwi + - const: apple,dwi + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + power-domains: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - power-domains + + else: + properties: + compatible: + oneOf: + - items: + - const: apple,t6041-dwi + - const: apple,dwi + - items: + - const: apple,t8140-dwi + - const: apple,dwi + + reg: + maxItems: 1 + description: Register apertures in hardware-description order. + + interrupts: + maxItems: 1 + + power-domains: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - power-domains unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml b/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml index 4332fa5347519..5c3d5db9a7c53 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml @@ -21,6 +21,7 @@ select: - apple,t8122-rsm - apple,t6030-rsm - apple,t6031-rsm + - apple,t6032-rsm required: - compatible @@ -33,19 +34,14 @@ allOf: compatible: contains: enum: - - apple,t8122-rsm - - apple,t6030-rsm - - apple,t6031-rsm + - apple,t6032-rsm required: - compatible then: properties: compatible: items: - - enum: - - apple,t8122-rsm - - apple,t6030-rsm - - apple,t6031-rsm + - const: apple,t6032-rsm - const: apple,rsm reg: @@ -53,43 +49,87 @@ allOf: maxItems: 2 interrupts: + minItems: 1 maxItems: 1 power-domains: + minItems: 1 maxItems: 1 iommus: + minItems: 1 maxItems: 1 required: - compatible - reg - interrupts + - power-domains - iommus - else: - properties: - compatible: - oneOf: - - items: - - const: apple,t8140-rsm - - const: apple,rsm - - reg: - minItems: 2 - maxItems: 2 - description: Register apertures in hardware-description order. - - interrupts: - maxItems: 1 - - iommus: - maxItems: 1 - - required: - - compatible - - reg - - interrupts - - iommus + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t8122-rsm + - apple,t6030-rsm + - apple,t6031-rsm + required: + - compatible + then: + properties: + compatible: + items: + - enum: + - apple,t8122-rsm + - apple,t6030-rsm + - apple,t6031-rsm + - const: apple,rsm + + reg: + minItems: 2 + maxItems: 2 + + interrupts: + maxItems: 1 + + power-domains: + maxItems: 1 + + iommus: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - iommus + + else: + properties: + compatible: + oneOf: + - items: + - const: apple,t8140-rsm + - const: apple,rsm + + reg: + minItems: 2 + maxItems: 2 + description: Register apertures in hardware-description order. + + interrupts: + maxItems: 1 + + iommus: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - iommus unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml index 44f2d14280637..952225ed9d728 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml @@ -26,6 +26,7 @@ select: - apple,t8122-mcc - apple,t6030-mcc - apple,t6031-mcc + - apple,t6032-mcc required: - compatible @@ -38,58 +39,82 @@ allOf: compatible: contains: enum: - - apple,t8122-mcc - - apple,t6030-mcc - - apple,t6031-mcc + - apple,t6032-mcc required: - compatible then: properties: compatible: items: - - enum: - - apple,t8122-mcc - - apple,t6030-mcc - - apple,t6031-mcc + - const: apple,t6032-mcc - const: apple,mcc reg: - minItems: 5 - maxItems: 11 + minItems: 20 + maxItems: 20 required: - compatible - reg - else: - properties: - compatible: - oneOf: - - enum: - - apple,t8132-mcc - - apple,t8140-mcc - - items: - - const: apple,t6041-mcc - - const: apple,t8140-mcc - - reg: - description: Per-plane blocks on T8140, or the two multicast apertures on T8132. - minItems: 1 - maxItems: 32 - - nonposted-mmio: true - - apple,boot-dma-devices: - $ref: /schemas/types.yaml#/definitions/phandle-array - items: - maxItems: 1 - description: - Devices that take over DMA the bootloader left running. Cache allocation - is enabled only once each of them is bound to its driver. - - required: - - compatible - - reg + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t8122-mcc + - apple,t6030-mcc + - apple,t6031-mcc + required: + - compatible + then: + properties: + compatible: + items: + - enum: + - apple,t8122-mcc + - apple,t6030-mcc + - apple,t6031-mcc + - const: apple,mcc + + reg: + minItems: 5 + maxItems: 11 + + required: + - compatible + - reg + + else: + properties: + compatible: + oneOf: + - enum: + - apple,t8132-mcc + - apple,t8140-mcc + - items: + - const: apple,t6041-mcc + - const: apple,t8140-mcc + + reg: + description: Per-plane blocks on T8140, or the two multicast apertures on T8132. + minItems: 1 + maxItems: 32 + + nonposted-mmio: true + + apple,boot-dma-devices: + $ref: /schemas/types.yaml#/definitions/phandle-array + items: + maxItems: 1 + description: + Devices that take over DMA the bootloader left running. Cache allocation + is enabled only once each of them is bound to its driver. + + required: + - compatible + - reg unevaluatedProperties: false diff --git a/arch/arm64/boot/dts/apple/t6032-peripherals.dtsi b/arch/arm64/boot/dts/apple/t6032-peripherals.dtsi new file mode 100644 index 0000000000000..648e5abf92a71 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6032-peripherals.dtsi @@ -0,0 +1,861 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Unclaimed resources of both T6032 dies. */ + +&die0 { + ultra_dart_rsm0: iommu@2a033c000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0xa033c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_scaler00: iommu@407200000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x4 0x07200000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_scaler10: iommu@3c7200000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x3 0xc7200000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_apr00: iommu@2c5028000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0xc5028000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_apr01: iommu@2c502c000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0xc502c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_apr10: iommu@287008000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0x87008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_jpeg00: iommu@2cf004000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0xcf004000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_jpeg10: iommu@2cf00c000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0xcf00c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_ave00: iommu@285030000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0x85030000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_ave01: iommu@285040000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0x85040000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_ave02: iommu@285020000 { + compatible = "apple,t6032-dart-smmu", "apple,dart-smmu"; + reg = <0x2 0x85020000 0x0 0x4000>; + status = "disabled"; + }; + + ultra_dart_ave03: filter@285044000 { + compatible = "apple,t6032-dapf", "apple,dapf"; + reg = <0x2 0x85044000 0x0 0x4000>; + status = "disabled"; + }; + + ultra_dart_ave10: iommu@3c5030000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x3 0xc5030000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_ave11: iommu@3c5040000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x3 0xc5040000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_ave12: iommu@3c5020000 { + compatible = "apple,t6032-dart-smmu", "apple,dart-smmu"; + reg = <0x3 0xc5020000 0x0 0x4000>; + status = "disabled"; + }; + + ultra_dart_ave13: filter@3c5044000 { + compatible = "apple,t6032-dapf", "apple,dapf"; + reg = <0x3 0xc5044000 0x0 0x4000>; + status = "disabled"; + }; + + ultra_dart_apciec00: iommu@721008000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x7 0x21008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_apciec10: iommu@b21008000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0xb 0x21008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_apciec20: iommu@f21008000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0xf 0x21008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_apciec30: iommu@1321008000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x13 0x21008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_apcie0_piodma: dma-controller@594010000 { + compatible = "apple,t6032-pcie-piodma", "apple,pcie-piodma"; + reg = <0x5 0x94010000 0x0 0x4000>, + <0x5 0x94014000 0x0 0x4000>, + <0x5 0x94018000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + iommus = <&pcie0_dart_0 15>; + status = "disabled"; + }; + + ultra_apcie1_piodma: dma-controller@595010000 { + compatible = "apple,t6032-pcie-piodma", "apple,pcie-piodma"; + reg = <0x5 0x95010000 0x0 0x4000>, + <0x5 0x95014000 0x0 0x4000>, + <0x5 0x95018000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + iommus = <&pcie0_dart_1 15>; + status = "disabled"; + }; + + ultra_apcie2_piodma: dma-controller@596010000 { + compatible = "apple,t6032-pcie-piodma", "apple,pcie-piodma"; + reg = <0x5 0x96010000 0x0 0x4000>, + <0x5 0x96014000 0x0 0x4000>, + <0x5 0x96018000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_apcie3_piodma: dma-controller@597010000 { + compatible = "apple,t6032-pcie-piodma", "apple,pcie-piodma"; + reg = <0x5 0x97010000 0x0 0x4000>, + <0x5 0x97014000 0x0 0x4000>, + <0x5 0x97018000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_apciec0_piodma: dma-controller@722000000 { + compatible = "apple,t6032-pciec-piodma", "apple,pciec-piodma"; + reg = <0x7 0x22000000 0x0 0x4000>, + <0x7 0x22004000 0x0 0x4000>, + <0x7 0x22008000 0x0 0x4000>, + <0x7 0x20008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + iommus = <&ultra_dart_apciec00 15>; + status = "disabled"; + }; + + ultra_apciec1_piodma: dma-controller@b22000000 { + compatible = "apple,t6032-pciec-piodma", "apple,pciec-piodma"; + reg = <0xb 0x22000000 0x0 0x4000>, + <0xb 0x22004000 0x0 0x4000>, + <0xb 0x22008000 0x0 0x4000>, + <0xb 0x20008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + iommus = <&ultra_dart_apciec10 15>; + status = "disabled"; + }; + + ultra_apciec2_piodma: dma-controller@f22000000 { + compatible = "apple,t6032-pciec-piodma", "apple,pciec-piodma"; + reg = <0xf 0x22000000 0x0 0x4000>, + <0xf 0x22004000 0x0 0x4000>, + <0xf 0x22008000 0x0 0x4000>, + <0xf 0x20008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + iommus = <&ultra_dart_apciec20 15>; + status = "disabled"; + }; + + ultra_apciec3_piodma: dma-controller@1322000000 { + compatible = "apple,t6032-pciec-piodma", "apple,pciec-piodma"; + reg = <0x13 0x22000000 0x0 0x4000>, + <0x13 0x22004000 0x0 0x4000>, + <0x13 0x22008000 0x0 0x4000>, + <0x13 0x20008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + iommus = <&ultra_dart_apciec30 15>; + status = "disabled"; + }; + + ultra_atc0_dpin0: displayport@701e50000 { + compatible = "apple,t6032-dpin", "apple,dpin"; + reg = <0x7 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_atc0_dpin1: displayport@701e58000 { + compatible = "apple,t6032-dpin", "apple,dpin"; + reg = <0x7 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_atc1_dpin0: displayport@b01e50000 { + compatible = "apple,t6032-dpin", "apple,dpin"; + reg = <0xb 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_atc1_dpin1: displayport@b01e58000 { + compatible = "apple,t6032-dpin", "apple,dpin"; + reg = <0xb 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_atc2_dpin0: displayport@f01e50000 { + compatible = "apple,t6032-dpin", "apple,dpin"; + reg = <0xf 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_atc2_dpin1: displayport@f01e58000 { + compatible = "apple,t6032-dpin", "apple,dpin"; + reg = <0xf 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_atc3_dpin0: displayport@1301e50000 { + compatible = "apple,t6032-dpin", "apple,dpin"; + reg = <0x13 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_atc3_dpin1: displayport@1301e58000 { + compatible = "apple,t6032-dpin", "apple,dpin"; + reg = <0x13 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_dwi: dwi@2929b0000 { + compatible = "apple,t6032-dwi", "apple,dwi"; + reg = <0x2 0x929b0000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dwi>; + status = "disabled"; + }; + + ultra_aes: crypto@39100c000 { + compatible = "apple,t6032-aes", "apple,aes"; + reg = <0x3 0x9100c000 0x0 0x4000>, + <0x2 0xa02a0000 0x0 0x8000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_aes>; + iommus = <&sio_dart 1>; + status = "disabled"; + }; + + ultra_aon_ptd: interrupt-controller@2a4dc0000 { + compatible = "apple,t6032-aon-ptd", "apple,aon-ptd"; + reg = <0x2 0xa4dc0000 0x0 0x4000>, + <0x2 0xa4dd0000 0x0 0x4000>, + <0x2 0xa4dd8000 0x0 0x4000>, + <0x2 0xa4de0000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + interrupt-controller; + #interrupt-cells = <1>; + #address-cells = <0>; + status = "disabled"; + }; + + ultra_rsm: rsm@2a0325000 { + compatible = "apple,t6032-rsm", "apple,rsm"; + reg = <0x2 0xa0325000 0x0 0x4000>, + <0x2 0xa03c0000 0x0 0x4>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_debug_gated>; + iommus = <&ultra_dart_rsm0 0>; + status = "disabled"; + }; + + ultra_scaler0: scaler@407000000 { + compatible = "apple,t6032-scaler", "apple,scaler"; + reg = <0x4 0x07000000 0x0 0x30000>, + <0x4 0x07210000 0x0 0x4000>, + <0x4 0x07204000 0x0 0x4000>, + <0x4 0x06000000 0x0 0x8000>; + interrupt-parent = <&aic>; + interrupts = , + ; + power-domains = <&ps_msr0>, <&ps_msr0_ase_core>; + iommus = <&ultra_dart_scaler00 0>, <&ultra_dart_scaler00 1>; + clocks = <&ultra_clocks 414>; + status = "disabled"; + }; + + ultra_scaler1: scaler@3c7000000 { + compatible = "apple,t6032-scaler", "apple,scaler"; + reg = <0x3 0xc7000000 0x0 0x30000>, + <0x3 0xc7210000 0x0 0x4000>, + <0x3 0xc7204000 0x0 0x4000>, + <0x3 0xc6000000 0x0 0x8000>; + interrupt-parent = <&aic>; + interrupts = , + ; + power-domains = <&ps_msr1>, <&ps_msr1_ase_core>; + iommus = <&ultra_dart_scaler10 0>, <&ultra_dart_scaler10 1>; + clocks = <&ultra_clocks 415>; + status = "disabled"; + }; + + ultra_apr0: video-codec@2c5000000 { + compatible = "apple,t6032-prores", "apple,prores"; + reg = <0x2 0xc5000000 0x0 0x4000>, + <0x2 0xc4000000 0x0 0x1000000>, + <0x2 0xc5078000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_scodec>; + iommus = <&ultra_dart_apr00 1>, <&ultra_dart_apr01 1>; + status = "disabled"; + }; + + ultra_apr1: video-codec@287000000 { + compatible = "apple,t6032-prores", "apple,prores"; + reg = <0x2 0x87000000 0x0 0x4000>, + <0x2 0x86000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_prores>; + iommus = <&ultra_dart_apr10 0>; + status = "disabled"; + }; + + ultra_jpeg0: jpeg@2cf000000 { + compatible = "apple,t6032-jpeg", "apple,jpeg"; + reg = <0x2 0xcf000000 0x0 0x8000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + iommus = <&ultra_dart_jpeg00 0>; + clocks = <&ultra_clocks 350>, <&ultra_clocks 351>; + status = "disabled"; + }; + + ultra_jpeg1: jpeg@2cf008000 { + compatible = "apple,t6032-jpeg", "apple,jpeg"; + reg = <0x2 0xcf008000 0x0 0x8000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + iommus = <&ultra_dart_jpeg10 0>; + clocks = <&ultra_clocks 350>, <&ultra_clocks 351>; + status = "disabled"; + }; + + ultra_ave0: video-encoder@285100000 { + compatible = "apple,t6032-ave", "apple,ave"; + reg = <0x2 0x85100000 0x0 0x45c000>, + <0x2 0x85800000 0x0 0x800000>, + <0x2 0x85050000 0x0 0x4000>, + <0x2 0x92800430 0x0 0x20c>, + <0x2 0x84000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + ; + power-domains = <&ps_venc0_sys>, <&ps_venc0_pipe4>, <&ps_venc0_pipe5>, <&ps_venc0_me0>, <&ps_venc0_me1>, <&ps_venc0_dma>; + iommus = <&ultra_dart_ave00 0>, <&ultra_dart_ave01 0>; + status = "disabled"; + }; + + ultra_ave1: video-encoder@3c5100000 { + compatible = "apple,t6032-ave", "apple,ave"; + reg = <0x3 0xc5100000 0x0 0x45c000>, + <0x3 0xc5800000 0x0 0x800000>, + <0x3 0xc5050000 0x0 0x4000>, + <0x2 0x92280510 0x0 0x7b14>, + <0x3 0xc4000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + ; + power-domains = <&ps_venc1_pipe4>, <&ps_venc1_pipe5>, <&ps_venc1_me0>, <&ps_venc1_me1>, <&ps_venc1_dma>; + iommus = <&ultra_dart_ave10 0>, <&ultra_dart_ave11 0>; + status = "disabled"; + }; + +}; + +&die1 { + ultra_dart_scaler20: iommu@407200000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x4 0x07200000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_scaler30: iommu@3c7200000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x3 0xc7200000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_apr20: iommu@2c5028000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0xc5028000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_apr21: iommu@2c502c000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0xc502c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_apr30: iommu@287008000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0x87008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_jpeg20: iommu@2cf004000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0xcf004000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_jpeg30: iommu@2cf00c000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0xcf00c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_ave20: iommu@285030000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0x85030000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_ave21: iommu@285040000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x2 0x85040000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_ave22: iommu@285020000 { + compatible = "apple,t6032-dart-smmu", "apple,dart-smmu"; + reg = <0x2 0x85020000 0x0 0x4000>; + status = "disabled"; + }; + + ultra_dart_ave23: filter@285044000 { + compatible = "apple,t6032-dapf", "apple,dapf"; + reg = <0x2 0x85044000 0x0 0x4000>; + status = "disabled"; + }; + + ultra_dart_ave30: iommu@3c5030000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x3 0xc5030000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_ave31: iommu@3c5040000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x3 0xc5040000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_ave32: iommu@3c5020000 { + compatible = "apple,t6032-dart-smmu", "apple,dart-smmu"; + reg = <0x3 0xc5020000 0x0 0x4000>; + status = "disabled"; + }; + + ultra_dart_ave33: filter@3c5044000 { + compatible = "apple,t6032-dapf", "apple,dapf"; + reg = <0x3 0xc5044000 0x0 0x4000>; + status = "disabled"; + }; + + ultra_dart_apciec40: iommu@721008000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0x7 0x21008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_dart_apciec50: iommu@b21008000 { + compatible = "apple,t6031-dart", "apple,t8110-dart"; + reg = <0xb 0x21008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ultra_apciec4_piodma: dma-controller@722000000 { + compatible = "apple,t6032-pciec-piodma", "apple,pciec-piodma"; + reg = <0x7 0x22000000 0x0 0x4000>, + <0x7 0x22004000 0x0 0x4000>, + <0x7 0x22008000 0x0 0x4000>, + <0x7 0x20008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + iommus = <&ultra_dart_apciec40 15>; + status = "disabled"; + }; + + ultra_apciec5_piodma: dma-controller@b22000000 { + compatible = "apple,t6032-pciec-piodma", "apple,pciec-piodma"; + reg = <0xb 0x22000000 0x0 0x4000>, + <0xb 0x22004000 0x0 0x4000>, + <0xb 0x22008000 0x0 0x4000>, + <0xb 0x20008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + iommus = <&ultra_dart_apciec50 15>; + status = "disabled"; + }; + + ultra_atc4_dpin0: displayport@701e50000 { + compatible = "apple,t6032-dpin", "apple,dpin"; + reg = <0x7 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_atc4_dpin1: displayport@701e58000 { + compatible = "apple,t6032-dpin", "apple,dpin"; + reg = <0x7 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_atc5_dpin0: displayport@b01e50000 { + compatible = "apple,t6032-dpin", "apple,dpin"; + reg = <0xb 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_atc5_dpin1: displayport@b01e58000 { + compatible = "apple,t6032-dpin", "apple,dpin"; + reg = <0xb 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + ultra_scaler2: scaler@407000000 { + compatible = "apple,t6032-scaler", "apple,scaler"; + reg = <0x4 0x07000000 0x0 0x30000>, + <0x4 0x07210000 0x0 0x4000>, + <0x4 0x07204000 0x0 0x4000>, + <0x4 0x06000000 0x0 0x8000>; + interrupt-parent = <&aic>; + interrupts = , + ; + power-domains = <&ps_msr0_die1>, <&ps_msr0_ase_core_die1>; + iommus = <&ultra_dart_scaler20 0>, <&ultra_dart_scaler20 1>; + clocks = <&ultra_clocks 268435870>; + status = "disabled"; + }; + + ultra_scaler3: scaler@3c7000000 { + compatible = "apple,t6032-scaler", "apple,scaler"; + reg = <0x3 0xc7000000 0x0 0x30000>, + <0x3 0xc7210000 0x0 0x4000>, + <0x3 0xc7204000 0x0 0x4000>, + <0x3 0xc6000000 0x0 0x8000>; + interrupt-parent = <&aic>; + interrupts = , + ; + power-domains = <&ps_msr1_die1>, <&ps_msr1_ase_core_die1>; + iommus = <&ultra_dart_scaler30 0>, <&ultra_dart_scaler30 1>; + clocks = <&ultra_clocks 268435871>; + status = "disabled"; + }; + + ultra_apr2: video-codec@2c5000000 { + compatible = "apple,t6032-prores", "apple,prores"; + reg = <0x2 0xc5000000 0x0 0x4000>, + <0x2 0xc4000000 0x0 0x1000000>, + <0x2 0xc5078000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_scodec_die1>; + iommus = <&ultra_dart_apr20 1>, <&ultra_dart_apr21 1>; + status = "disabled"; + }; + + ultra_apr3: video-codec@287000000 { + compatible = "apple,t6032-prores", "apple,prores"; + reg = <0x2 0x87000000 0x0 0x4000>, + <0x2 0x86000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_prores_die1>; + iommus = <&ultra_dart_apr30 0>; + status = "disabled"; + }; + + ultra_jpeg2: jpeg@2cf000000 { + compatible = "apple,t6032-jpeg", "apple,jpeg"; + reg = <0x2 0xcf000000 0x0 0x8000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg_die1>; + iommus = <&ultra_dart_jpeg20 0>; + clocks = <&ultra_clocks 268435806>, <&ultra_clocks 268435807>; + status = "disabled"; + }; + + ultra_jpeg3: jpeg@2cf008000 { + compatible = "apple,t6032-jpeg", "apple,jpeg"; + reg = <0x2 0xcf008000 0x0 0x8000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg_die1>; + iommus = <&ultra_dart_jpeg30 0>; + clocks = <&ultra_clocks 268435806>, <&ultra_clocks 268435807>; + status = "disabled"; + }; + + ultra_ave2: video-encoder@285100000 { + compatible = "apple,t6032-ave", "apple,ave"; + reg = <0x2 0x85100000 0x0 0x45c000>, + <0x2 0x85800000 0x0 0x800000>, + <0x2 0x85050000 0x0 0x4000>, + <0x2 0x92800430 0x0 0x20c>, + <0x2 0x84000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + ; + power-domains = <&ps_venc0_sys_die1>, <&ps_venc0_pipe4_die1>, <&ps_venc0_pipe5_die1>, <&ps_venc0_me0_die1>, <&ps_venc0_me1_die1>, <&ps_venc0_dma_die1>; + iommus = <&ultra_dart_ave20 0>, <&ultra_dart_ave21 0>; + status = "disabled"; + }; + + ultra_ave3: video-encoder@3c5100000 { + compatible = "apple,t6032-ave", "apple,ave"; + reg = <0x3 0xc5100000 0x0 0x45c000>, + <0x3 0xc5800000 0x0 0x800000>, + <0x3 0xc5050000 0x0 0x4000>, + <0x2 0x92280510 0x0 0x7b14>, + <0x3 0xc4000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + ; + power-domains = <&ps_venc1_pipe4_die1>, <&ps_venc1_pipe5_die1>, <&ps_venc1_me0_die1>, <&ps_venc1_me1_die1>, <&ps_venc1_dma_die1>; + iommus = <&ultra_dart_ave30 0>, <&ultra_dart_ave31 0>; + status = "disabled"; + }; + +}; + +/ { + ultra_mcc: memory-controller@2903c0000 { + compatible = "apple,t6032-mcc", "apple,mcc"; + reg = <0x2 0x903c0000 0x0 0x20000>, + <0x2 0x904d0000 0x0 0x149c>, + <0x2 0x92818000 0x0 0x4000>, + <0x22 0x92818000 0x0 0x4000>, + <0x2 0x20000000 0x0 0x2000000>, + <0x2 0x22000000 0x0 0x2000000>, + <0x2 0x24000000 0x0 0x2000000>, + <0x2 0x26000000 0x0 0x2000000>, + <0x2 0x28000000 0x0 0x2000000>, + <0x2 0x2a000000 0x0 0x2000000>, + <0x2 0x2c000000 0x0 0x2000000>, + <0x2 0x2e000000 0x0 0x2000000>, + <0x22 0x20000000 0x0 0x2000000>, + <0x22 0x22000000 0x0 0x2000000>, + <0x22 0x24000000 0x0 0x2000000>, + <0x22 0x26000000 0x0 0x2000000>, + <0x22 0x28000000 0x0 0x2000000>, + <0x22 0x2a000000 0x0 0x2000000>, + <0x22 0x2c000000 0x0 0x2000000>, + <0x22 0x2e000000 0x0 0x2000000>; + status = "disabled"; + }; + +}; + +/ { + ultra_clocks: clocks { + compatible = "apple,t6032-pmgr-clocks", "apple,pmgr-clocks"; + #clock-cells = <1>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6032.dtsi b/arch/arm64/boot/dts/apple/t6032.dtsi index 469cd8cbff72a..4b72abc681a48 100644 --- a/arch/arm64/boot/dts/apple/t6032.dtsi +++ b/arch/arm64/boot/dts/apple/t6032.dtsi @@ -463,3 +463,5 @@ &ps_afr_d2d_1_die1 { status = "okay"; }; + +#include "t6032-peripherals.dtsi" From 1e994ada65d41e77253c79560769e518c179aa0b Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 00:34:06 +1100 Subject: [PATCH 2/6] dt-bindings: apple: normalize single-entry resource constraints Keep single-entry arrays in the form required by the DT meta-schema while retaining the revised M3 parent resource contracts. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM --- Documentation/devicetree/bindings/crypto/apple,aes.yaml | 3 --- Documentation/devicetree/bindings/display/apple,dpin.yaml | 4 ---- Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml | 2 -- Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml | 4 ---- Documentation/devicetree/bindings/media/apple,jpeg.yaml | 4 ---- Documentation/devicetree/bindings/media/apple,prores.yaml | 2 -- Documentation/devicetree/bindings/media/apple,scaler.yaml | 1 - Documentation/devicetree/bindings/phy/apple,atcphy.yaml | 1 - Documentation/devicetree/bindings/soc/apple/apple,dwi.yaml | 3 --- Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml | 3 --- 10 files changed, 27 deletions(-) diff --git a/Documentation/devicetree/bindings/crypto/apple,aes.yaml b/Documentation/devicetree/bindings/crypto/apple,aes.yaml index 252b6bedeb5a9..2155f96bbf21e 100644 --- a/Documentation/devicetree/bindings/crypto/apple,aes.yaml +++ b/Documentation/devicetree/bindings/crypto/apple,aes.yaml @@ -51,15 +51,12 @@ allOf: maxItems: 2 interrupts: - minItems: 1 maxItems: 1 power-domains: - minItems: 1 maxItems: 1 iommus: - minItems: 1 maxItems: 1 required: diff --git a/Documentation/devicetree/bindings/display/apple,dpin.yaml b/Documentation/devicetree/bindings/display/apple,dpin.yaml index da9f1275ed88d..1555517dc3fa1 100644 --- a/Documentation/devicetree/bindings/display/apple,dpin.yaml +++ b/Documentation/devicetree/bindings/display/apple,dpin.yaml @@ -42,11 +42,9 @@ allOf: - const: apple,dpin reg: - minItems: 1 maxItems: 1 interrupts: - minItems: 1 maxItems: 1 required: @@ -63,12 +61,10 @@ allOf: - const: apple,dpin reg: - minItems: 1 maxItems: 1 description: Register apertures in hardware-description order. interrupts: - minItems: 1 maxItems: 1 required: diff --git a/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml b/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml index 9beea527b4408..3962bdf01e424 100644 --- a/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml +++ b/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml @@ -50,11 +50,9 @@ allOf: maxItems: 3 interrupts: - minItems: 1 maxItems: 1 iommus: - minItems: 1 maxItems: 1 required: diff --git a/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml index 052a2cad5b011..a5a11223c242e 100644 --- a/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml +++ b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml @@ -47,11 +47,9 @@ allOf: maxItems: 4 interrupts: - minItems: 1 maxItems: 1 iommus: - minItems: 1 maxItems: 1 required: @@ -73,11 +71,9 @@ allOf: description: Register apertures in hardware-description order. interrupts: - minItems: 1 maxItems: 1 iommus: - minItems: 1 maxItems: 1 required: diff --git a/Documentation/devicetree/bindings/media/apple,jpeg.yaml b/Documentation/devicetree/bindings/media/apple,jpeg.yaml index 50d9ef51f5071..598caf5dec64a 100644 --- a/Documentation/devicetree/bindings/media/apple,jpeg.yaml +++ b/Documentation/devicetree/bindings/media/apple,jpeg.yaml @@ -53,19 +53,15 @@ allOf: - const: apple,jpeg reg: - minItems: 1 maxItems: 1 interrupts: - minItems: 1 maxItems: 1 power-domains: - minItems: 1 maxItems: 1 iommus: - minItems: 1 maxItems: 1 clocks: diff --git a/Documentation/devicetree/bindings/media/apple,prores.yaml b/Documentation/devicetree/bindings/media/apple,prores.yaml index 61128e885c836..2ef41f5ff8d01 100644 --- a/Documentation/devicetree/bindings/media/apple,prores.yaml +++ b/Documentation/devicetree/bindings/media/apple,prores.yaml @@ -51,11 +51,9 @@ allOf: maxItems: 3 interrupts: - minItems: 1 maxItems: 1 power-domains: - minItems: 1 maxItems: 1 iommus: diff --git a/Documentation/devicetree/bindings/media/apple,scaler.yaml b/Documentation/devicetree/bindings/media/apple,scaler.yaml index d7a2ee63baeee..619b3deea2889 100644 --- a/Documentation/devicetree/bindings/media/apple,scaler.yaml +++ b/Documentation/devicetree/bindings/media/apple,scaler.yaml @@ -64,7 +64,6 @@ allOf: maxItems: 2 clocks: - minItems: 1 maxItems: 1 required: diff --git a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml index ffe8cca0207fa..5364f6dd8871b 100644 --- a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml +++ b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml @@ -209,7 +209,6 @@ allOf: - mode-switch - ports - $defs: apple,tunable: $ref: /schemas/types.yaml#/definitions/uint32-matrix diff --git a/Documentation/devicetree/bindings/soc/apple/apple,dwi.yaml b/Documentation/devicetree/bindings/soc/apple/apple,dwi.yaml index a6a75a16f931a..61fb7aaee8e23 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,dwi.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,dwi.yaml @@ -47,15 +47,12 @@ allOf: - const: apple,dwi reg: - minItems: 1 maxItems: 1 interrupts: - minItems: 1 maxItems: 1 power-domains: - minItems: 1 maxItems: 1 required: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml b/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml index 5c3d5db9a7c53..0d0d5e8d813b1 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml @@ -49,15 +49,12 @@ allOf: maxItems: 2 interrupts: - minItems: 1 maxItems: 1 power-domains: - minItems: 1 maxItems: 1 iommus: - minItems: 1 maxItems: 1 required: From 34deae25d3783fd57224a2c27ffeb0222f18eced Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 00:34:17 +1100 Subject: [PATCH 3/6] dt-bindings: apple: leave the parent ATCPHY contract unchanged Keep the Ultra delta limited to the resource bindings it extends. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM --- Documentation/devicetree/bindings/phy/apple,atcphy.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml index 5364f6dd8871b..ffe8cca0207fa 100644 --- a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml +++ b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml @@ -209,6 +209,7 @@ allOf: - mode-switch - ports + $defs: apple,tunable: $ref: /schemas/types.yaml#/definitions/uint32-matrix From ec6376c30304c3df0bb3b23f549f495d14be9149 Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 00:37:52 +1100 Subject: [PATCH 4/6] dt-bindings: apple: keep the inherited ATCPHY schema lint clean Remove the extra blank line reported by the required full-series binding check. The parent hardware contract is unchanged. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM --- Documentation/devicetree/bindings/phy/apple,atcphy.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml index ffe8cca0207fa..5364f6dd8871b 100644 --- a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml +++ b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml @@ -209,7 +209,6 @@ allOf: - mode-switch - ports - $defs: apple,tunable: $ref: /schemas/types.yaml#/definitions/uint32-matrix From 356ff8459be885254feb222b4f835c90300917a1 Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 00:40:23 +1100 Subject: [PATCH 5/6] dt-bindings: apple: expose MCC DMA phandle type to the decoder Keep the common boot DMA dependency type at the schema root so nested generation variants do not leave its DTB value decoded as a byte string. Preserve every generation-specific register layout. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM --- .../bindings/soc/apple/apple,t8140-mcc.yaml | 26 +++++++++---------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml index 952225ed9d728..e7685496fd841 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml @@ -33,6 +33,18 @@ select: properties: compatible: true + apple,boot-dma-devices: + $ref: /schemas/types.yaml#/definitions/phandle-array + items: + maxItems: 1 + description: + Devices that take over DMA the bootloader left running. Cache allocation + is enabled only once each of them is bound to its driver. + + required: + - compatible + - reg + allOf: - if: properties: @@ -104,19 +116,7 @@ allOf: nonposted-mmio: true - apple,boot-dma-devices: - $ref: /schemas/types.yaml#/definitions/phandle-array - items: - maxItems: 1 - description: - Devices that take over DMA the bootloader left running. Cache allocation - is enabled only once each of them is bound to its driver. - - required: - - compatible - - reg - -unevaluatedProperties: false + unevaluatedProperties: false examples: - | From c54f6b4d86ff37140c3aa8a6a5f5ded00b538612 Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 00:40:48 +1100 Subject: [PATCH 6/6] dt-bindings: apple: correct MCC root property indentation Keep the hoisted property at the schema root, and retain the existing branch requirements and root unevaluatedProperties closure. Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Assisted-by: LLM --- .../bindings/soc/apple/apple,t8140-mcc.yaml | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml index e7685496fd841..069189483633a 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml @@ -34,16 +34,12 @@ properties: compatible: true apple,boot-dma-devices: - $ref: /schemas/types.yaml#/definitions/phandle-array - items: - maxItems: 1 - description: - Devices that take over DMA the bootloader left running. Cache allocation - is enabled only once each of them is bound to its driver. - - required: - - compatible - - reg + $ref: /schemas/types.yaml#/definitions/phandle-array + items: + maxItems: 1 + description: + Devices that take over DMA the bootloader left running. Cache allocation + is enabled only once each of them is bound to its driver. allOf: - if: @@ -116,7 +112,11 @@ allOf: nonposted-mmio: true - unevaluatedProperties: false + required: + - compatible + - reg + +unevaluatedProperties: false examples: - |