diff --git a/Documentation/devicetree/bindings/arm/cpus.yaml b/Documentation/devicetree/bindings/arm/cpus.yaml index cb77cae013408..51c9dbb6aff0d 100644 --- a/Documentation/devicetree/bindings/arm/cpus.yaml +++ b/Documentation/devicetree/bindings/arm/cpus.yaml @@ -39,6 +39,42 @@ description: |+ described below. properties: + apple,firmware-cpu-id: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Native Apple hardware-description CPU identifier. This is not a Linux + CPU index and can omit classification bits present in MPIDR_EL1. + + apple,implementation-registers: + $ref: /schemas/types.yaml#/definitions/uint64-array + items: + - description: Physical base address + - description: Aperture length in bytes + description: | + CPU implementation register aperture associated with this CPU. + Cluster-shared views can overlap; describing them does not grant + access or specify register initialization or performance policy. + + apple,acc-registers: + $ref: /schemas/types.yaml#/definitions/uint64-array + items: + - description: Physical base address + - description: Aperture length in bytes + description: | + cluster ACC register aperture associated with this CPU. + Cluster-shared views can overlap; describing them does not grant + access or specify register initialization or performance policy. + + apple,cpm-registers: + $ref: /schemas/types.yaml#/definitions/uint64-array + items: + - description: Physical base address + - description: Aperture length in bytes + description: | + cluster CPM register aperture associated with this CPU. + Cluster-shared views can overlap; describing them does not grant + access or specify register initialization or performance policy. + reg: maxItems: 1 description: > diff --git a/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml b/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml index 71e74f7d59a83..4b824f33d4928 100644 --- a/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml +++ b/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml @@ -16,14 +16,23 @@ description: | 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. + Selectors are scoped by the referenced PMGR; a dual-die platform has + one provider per die. properties: compatible: - items: - - enum: - - apple,t6041-pmgr-clocks - - apple,t8140-pmgr-clocks - - const: apple,pmgr-clocks + oneOf: + - items: + - enum: + - apple,t6041-pmgr-clocks + - apple,t8140-pmgr-clocks + - const: apple,pmgr-clocks + - items: + - const: apple,t8103-pmgr-clocks + - const: apple,pmgr-clocks + - items: + - const: apple,t6000-pmgr-clocks + - const: apple,pmgr-clocks reg: description: PMGR control apertures in hardware-description order. diff --git a/Documentation/devicetree/bindings/crypto/apple,aes.yaml b/Documentation/devicetree/bindings/crypto/apple,aes.yaml index 516a7ae14036f..272f4abbee796 100644 --- a/Documentation/devicetree/bindings/crypto/apple,aes.yaml +++ b/Documentation/devicetree/bindings/crypto/apple,aes.yaml @@ -11,7 +11,8 @@ maintainers: description: | AES hardware attached to the SIO DART. The register banks are the - engine, shared control and auxiliary control windows, in that order. + engine and shared control windows, with a third auxiliary window on + newer variants. T6000 uses both SIO translation banks for the same stream. properties: compatible: @@ -22,11 +23,16 @@ properties: - items: - const: apple,t8140-aes - const: apple,aes + - items: + - const: apple,t8103-aes + - const: apple,aes + - items: + - const: apple,t6000-aes + - const: apple,aes reg: - minItems: 3 + minItems: 2 maxItems: 3 - description: Register apertures in hardware-description order. interrupts: minItems: 1 @@ -38,7 +44,7 @@ properties: iommus: minItems: 1 - maxItems: 1 + maxItems: 2 required: - compatible @@ -47,4 +53,32 @@ required: - power-domains - iommus +allOf: + - if: + properties: + compatible: + contains: + enum: ["apple,t8103-aes", "apple,t6000-aes"] + then: + properties: + reg: + maxItems: 2 + else: + properties: + reg: + minItems: 3 + - if: + properties: + compatible: + contains: + const: apple,t6000-aes + then: + properties: + iommus: + minItems: 2 + else: + properties: + iommus: + maxItems: 1 + additionalProperties: false diff --git a/Documentation/devicetree/bindings/display/apple,dcp.yaml b/Documentation/devicetree/bindings/display/apple,dcp.yaml index 081f923b497e6..325507184a5ca 100644 --- a/Documentation/devicetree/bindings/display/apple,dcp.yaml +++ b/Documentation/devicetree/bindings/display/apple,dcp.yaml @@ -63,7 +63,7 @@ properties: - enum: [disp-2, iop-vbar] - enum: [disp-3, iop-vbar] - enum: [disp-4, iop-vbar] - - const: iop-vbar + - enum: [iop-vbar, coproc-aux] mboxes: maxItems: 1 diff --git a/Documentation/devicetree/bindings/display/apple,dpin.yaml b/Documentation/devicetree/bindings/display/apple,dpin.yaml index a58aef9bb9c3c..adea6de6528fa 100644 --- a/Documentation/devicetree/bindings/display/apple,dpin.yaml +++ b/Documentation/devicetree/bindings/display/apple,dpin.yaml @@ -18,6 +18,12 @@ properties: - items: - const: apple,t6041-dpin - const: apple,dpin + - items: + - const: apple,t8103-dpin + - const: apple,dpin + - items: + - const: apple,t6000-dpin + - const: apple,dpin reg: minItems: 1 diff --git a/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml index 18313d789cd7b..627eb9e6fe87e 100644 --- a/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml +++ b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml @@ -19,6 +19,12 @@ properties: - items: - const: apple,t6041-pciec-piodma - const: apple,pciec-piodma + - items: + - const: apple,t8103-pciec-piodma + - const: apple,pciec-piodma + - items: + - const: apple,t6000-pciec-piodma + - const: apple,pciec-piodma reg: minItems: 4 diff --git a/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml b/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml index 71053bd3841a5..346e2b9be870e 100644 --- a/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml +++ b/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml @@ -17,6 +17,20 @@ description: | properties: compatible: oneOf: + - items: + - enum: + - apple,t8103-error-handler + - apple,t6000-error-handler + - apple,t6001-error-handler + - apple,t6002-error-handler + - const: apple,soc-error-handler + - items: + - enum: + - apple,t8103-event-log + - apple,t6000-event-log + - apple,t6001-event-log + - apple,t6002-event-log + - const: apple,soc-event-log - items: - const: apple,t6041-error-handler - const: apple,soc-error-handler @@ -32,13 +46,12 @@ properties: interrupts: minItems: 9 - maxItems: 89 + maxItems: 268 reg: - minItems: 25 - maxItems: 25 - description: | - T6041 per-source NI0 through NI6 status apertures, in interrupt order. + minItems: 1 + maxItems: 205 + description: Per-source status and event-log register apertures. required: - compatible @@ -55,6 +68,9 @@ allOf: interrupts: minItems: 89 maxItems: 89 + reg: + minItems: 25 + maxItems: 25 required: - reg - if: @@ -88,6 +104,134 @@ allOf: minItems: 9 maxItems: 9 + - if: + properties: + compatible: + contains: + const: apple,t8103-error-handler + then: + properties: + interrupts: + minItems: 11 + maxItems: 11 + reg: + minItems: 18 + maxItems: 18 + required: + - reg + + - if: + properties: + compatible: + contains: + const: apple,t8103-event-log + then: + properties: + interrupts: + minItems: 16 + maxItems: 16 + reg: + minItems: 16 + maxItems: 16 + required: + - reg + + - if: + properties: + compatible: + contains: + const: apple,t6000-error-handler + then: + properties: + interrupts: + minItems: 76 + maxItems: 76 + reg: + minItems: 55 + maxItems: 55 + required: + - reg + + - if: + properties: + compatible: + contains: + const: apple,t6000-event-log + then: + properties: + interrupts: + minItems: 28 + maxItems: 28 + reg: + minItems: 28 + maxItems: 28 + required: + - reg + + - if: + properties: + compatible: + contains: + const: apple,t6001-error-handler + then: + properties: + interrupts: + minItems: 127 + maxItems: 127 + reg: + minItems: 90 + maxItems: 90 + required: + - reg + + - if: + properties: + compatible: + contains: + const: apple,t6001-event-log + then: + properties: + interrupts: + minItems: 28 + maxItems: 28 + reg: + minItems: 28 + maxItems: 28 + required: + - reg + + - if: + properties: + compatible: + contains: + const: apple,t6002-error-handler + then: + properties: + interrupts: + minItems: 268 + maxItems: 268 + reg: + minItems: 205 + maxItems: 205 + required: + - reg + + - if: + properties: + compatible: + contains: + const: apple,t6002-event-log + then: + properties: + interrupts: + minItems: 54 + maxItems: 54 + reg: + minItems: 54 + maxItems: 54 + required: + - reg + additionalProperties: false examples: diff --git a/Documentation/devicetree/bindings/iommu/apple,ane-dma.yaml b/Documentation/devicetree/bindings/iommu/apple,ane-dma.yaml new file mode 100644 index 0000000000000..9f5b4b869e411 --- /dev/null +++ b/Documentation/devicetree/bindings/iommu/apple,ane-dma.yaml @@ -0,0 +1,43 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iommu/apple,ane-dma.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple M1 Neural Engine auxiliary DMA aperture + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + An auxiliary address-translation aperture accompanies the three Neural + Engine DART register banks. It is described separately because it is + not an instance of the general-purpose DART programming model. + Its interrupt is shared with the DART banks. + +properties: + compatible: + items: + - enum: + - apple,t6000-ane-dma + - const: apple,ane-dma + + reg: + minItems: 1 + maxItems: 1 + + interrupts: + minItems: 1 + maxItems: 1 + + power-domains: + minItems: 1 + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/iommu/apple,ave-dma.yaml b/Documentation/devicetree/bindings/iommu/apple,ave-dma.yaml new file mode 100644 index 0000000000000..447b2b541cd33 --- /dev/null +++ b/Documentation/devicetree/bindings/iommu/apple,ave-dma.yaml @@ -0,0 +1,47 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/iommu/apple,ave-dma.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple video encoder auxiliary DMA apertures + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + Auxiliary translation and protection apertures accompany the video + encoder DMA DARTs. They are described separately because they do not + implement the programming model of the general-purpose DART driver. + The interrupt is shared with the codec DART instances. + +properties: + compatible: + oneOf: + - items: + - enum: + - apple,t8103-ave-dma + - const: apple,ave-dma + - items: + - const: apple,t6000-ave-dma + - const: apple,ave-dma + + reg: + minItems: 2 + maxItems: 2 + + interrupts: + minItems: 1 + maxItems: 1 + + power-domains: + minItems: 1 + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/iommu/apple,dart.yaml b/Documentation/devicetree/bindings/iommu/apple,dart.yaml index a5455e4eac35a..b272a431fcc24 100644 --- a/Documentation/devicetree/bindings/iommu/apple,dart.yaml +++ b/Documentation/devicetree/bindings/iommu/apple,dart.yaml @@ -23,6 +23,10 @@ description: |+ properties: compatible: oneOf: + - items: + - const: apple,t6000-display-dart + - const: apple,t6000-dart + - const: apple,t8110-dart - enum: - apple,t8103-dart - apple,t8103-usb4-dart @@ -172,6 +176,21 @@ required: - interrupts allOf: + - if: + properties: + compatible: + contains: + const: apple,t6000-display-dart + then: + properties: + reg: + minItems: 2 + required: + - reg-names + else: + properties: + reg: + maxItems: 1 - if: properties: reg: diff --git a/Documentation/devicetree/bindings/media/apple,jpeg.yaml b/Documentation/devicetree/bindings/media/apple,jpeg.yaml index 056e1d33c00fd..5f546f1236f08 100644 --- a/Documentation/devicetree/bindings/media/apple,jpeg.yaml +++ b/Documentation/devicetree/bindings/media/apple,jpeg.yaml @@ -12,8 +12,9 @@ maintainers: description: | Apple Silicon JPEG engines are directly programmed memory-to-memory codecs. Each engine has a dedicated interrupt and DART stream. Multiple engines can - share a power domain. The power controller manages the gate; no separate - clock or firmware interface is required. + share a power domain. The power controller manages the gate. Earlier + engines also identify native input-clock selectors. The codec has no + firmware interface. On T6041 the DMA window reserves one 4 GiB slice of the DART high alias for the engine's 32-bit buffer pointer registers. T8140 engines take 64-bit @@ -21,9 +22,15 @@ description: | properties: compatible: - enum: - - apple,t6041-jpeg - - apple,t8140-jpeg + oneOf: + - enum: + - apple,t6041-jpeg + - apple,t8140-jpeg + - items: + - enum: + - apple,t8103-jpeg + - apple,t6000-jpeg + - const: apple,jpeg reg: maxItems: 1 @@ -34,6 +41,10 @@ properties: iommus: maxItems: 1 + clocks: + minItems: 1 + maxItems: 2 + power-domains: minItems: 1 items: diff --git a/Documentation/devicetree/bindings/media/apple,prores.yaml b/Documentation/devicetree/bindings/media/apple,prores.yaml index 4124c331a9f8c..d710304ecd5f1 100644 --- a/Documentation/devicetree/bindings/media/apple,prores.yaml +++ b/Documentation/devicetree/bindings/media/apple,prores.yaml @@ -21,6 +21,9 @@ properties: - items: - const: apple,t6041-prores - const: apple,prores + - items: + - const: apple,t6000-prores + - const: apple,prores reg: minItems: 2 diff --git a/Documentation/devicetree/bindings/media/apple,scaler.yaml b/Documentation/devicetree/bindings/media/apple,scaler.yaml index 62ae10462d76b..381924ae488fe 100644 --- a/Documentation/devicetree/bindings/media/apple,scaler.yaml +++ b/Documentation/devicetree/bindings/media/apple,scaler.yaml @@ -23,11 +23,16 @@ properties: - items: - const: apple,t8140-scaler - const: apple,scaler + - items: + - const: apple,t8103-scaler + - const: apple,scaler + - items: + - const: apple,t6000-scaler + - const: apple,scaler reg: - minItems: 4 + minItems: 2 maxItems: 4 - description: Register apertures in hardware-description order. interrupts: minItems: 2 @@ -57,4 +62,30 @@ required: - iommus - clocks +allOf: + - if: + properties: + compatible: + contains: + const: apple,t8103-scaler + then: + properties: + reg: + maxItems: 2 + else: + if: + properties: + compatible: + contains: + const: apple,t6000-scaler + then: + properties: + reg: + minItems: 3 + maxItems: 3 + else: + properties: + reg: + minItems: 4 + additionalProperties: false diff --git a/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml b/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml index dadb98b19f822..a3e38b3a21e4b 100644 --- a/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml +++ b/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml @@ -16,23 +16,35 @@ description: | properties: compatible: - enum: - - apple,t6000-ave - - apple,t6041-ave - - apple,t8112-ave - - apple,t8140-ave + oneOf: + - enum: + - apple,t6000-ave + - apple,t6000-ave + - apple,t8112-ave + - apple,t6041-ave + - apple,t8112-ave + - apple,t8140-ave + - items: + - const: apple,t8103-ave + - const: apple,ave reg: + minItems: 3 items: - description: Codec registers - description: Mailbox registers - description: Coprocessor registers + - description: Power-management registers + - description: Firmware PIO aperture reg-names: + minItems: 3 items: - const: codec - const: mailbox - const: coproc + - const: pmgr + - const: pio interrupts: items: @@ -42,6 +54,9 @@ properties: - description: Codec interrupt handled by the firmware - description: Codec interrupt handled by the firmware + clocks: + maxItems: 1 + power-domains: minItems: 5 maxItems: 6 @@ -77,4 +92,17 @@ required: - power-domain-names - iommus +allOf: + - if: + properties: + compatible: + contains: + enum: ["apple,t6041-ave", "apple,t8140-ave"] + then: + properties: + reg: + maxItems: 3 + reg-names: + maxItems: 3 + additionalProperties: false diff --git a/Documentation/devicetree/bindings/misc/apple,radio-pmu.yaml b/Documentation/devicetree/bindings/misc/apple,radio-pmu.yaml index 934fd143ec834..be530f5dee66c 100644 --- a/Documentation/devicetree/bindings/misc/apple,radio-pmu.yaml +++ b/Documentation/devicetree/bindings/misc/apple,radio-pmu.yaml @@ -15,10 +15,17 @@ description: | properties: compatible: - items: - - enum: - - apple,t6041-radio-pmu - - const: apple,radio-pmu + oneOf: + - items: + - enum: + - apple,t6041-radio-pmu + - const: apple,radio-pmu + - items: + - const: apple,t6000-wifibt-pmu + - const: apple,radio-pmu + - items: + - const: apple,t6000-uwb-pmu + - const: apple,radio-pmu reg: maxItems: 1 diff --git a/Documentation/devicetree/bindings/misc/apple,sd-card-control.yaml b/Documentation/devicetree/bindings/misc/apple,sd-card-control.yaml index 7671d72d9b306..6d5a0fa359a53 100644 --- a/Documentation/devicetree/bindings/misc/apple,sd-card-control.yaml +++ b/Documentation/devicetree/bindings/misc/apple,sd-card-control.yaml @@ -16,7 +16,9 @@ description: | properties: compatible: items: - - const: apple,t6041-sd-card-control + - enum: + - apple,t6041-sd-card-control + - apple,t6000-sd-card-control - const: apple,sd-card-control reg: diff --git a/Documentation/devicetree/bindings/net/apple,aqc107-i2c.yaml b/Documentation/devicetree/bindings/net/apple,aqc107-i2c.yaml new file mode 100644 index 0000000000000..735b88c3cf354 --- /dev/null +++ b/Documentation/devicetree/bindings/net/apple,aqc107-i2c.yaml @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/apple,aqc107-i2c.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple Aquantia Ethernet I2C sideband + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + The Ethernet controller exposes an I2C control interface in addition to + its PCIe host interface. This node identifies the addressed sideband, + not a second PCIe Ethernet controller. + +properties: + compatible: + items: + - enum: + - apple,t8103-aqc107-i2c + - apple,t6000-aqc107-i2c + - const: apple,aqc107-i2c + + reg: + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/net/nfc/apple,stockholm-spmi-v1.yaml b/Documentation/devicetree/bindings/net/nfc/apple,stockholm-spmi-v1.yaml new file mode 100644 index 0000000000000..01ff9113f2d3f --- /dev/null +++ b/Documentation/devicetree/bindings/net/nfc/apple,stockholm-spmi-v1.yaml @@ -0,0 +1,35 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/nfc/apple,stockholm-spmi-v1.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple first-generation Stockholm SPMI endpoint + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + The first-generation Stockholm endpoint occupies one SPMI slave address. + It is distinct from the later model-96 transport. Firmware command + sequences and an OS ownership handoff are not part of this description. + +properties: + compatible: + oneOf: + - items: + - const: apple,t6000-stockholm-spmi-v1 + - const: apple,stockholm-spmi-v1 + + - items: + - const: apple,t8103-stockholm-spmi-v1 + - const: apple,stockholm-spmi-v1 + + reg: + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/npu/apple,ane.yaml b/Documentation/devicetree/bindings/npu/apple,ane.yaml index 68215f2bf074b..5931b9fe569af 100644 --- a/Documentation/devicetree/bindings/npu/apple,ane.yaml +++ b/Documentation/devicetree/bindings/npu/apple,ane.yaml @@ -23,15 +23,19 @@ description: properties: compatible: - enum: - - apple,t8103-ane - - apple,t6000-ane - - apple,t6020-ane - - apple,t6021-ane - - apple,t6022-ane - - apple,t6041-ane - - apple,t8112-ane - - apple,t8140-ane + oneOf: + - enum: + - apple,t8103-ane + - apple,t6000-ane + - apple,t6020-ane + - apple,t6021-ane + - apple,t6022-ane + - apple,t6041-ane + - apple,t8112-ane + - apple,t8140-ane + - items: + - const: apple,t6001-ane + - const: apple,ane reg: minItems: 1 diff --git a/Documentation/devicetree/bindings/nvmem/apple,spmi-nvmem.yaml b/Documentation/devicetree/bindings/nvmem/apple,spmi-nvmem.yaml index fa484e773d5a9..00976bc2fd7a0 100644 --- a/Documentation/devicetree/bindings/nvmem/apple,spmi-nvmem.yaml +++ b/Documentation/devicetree/bindings/nvmem/apple,spmi-nvmem.yaml @@ -24,6 +24,7 @@ properties: - apple,maverick-pmic - apple,monaco-pmic - apple,sera-pmic + - apple,simetra-pmic - apple,stowe-pmic - apple,vale-pmic - const: apple,spmi-nvmem diff --git a/Documentation/devicetree/bindings/phy/apple,atcrt.yaml b/Documentation/devicetree/bindings/phy/apple,atcrt.yaml new file mode 100644 index 0000000000000..e2898b85fb9bb --- /dev/null +++ b/Documentation/devicetree/bindings/phy/apple,atcrt.yaml @@ -0,0 +1,31 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/apple,atcrt.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple ATC retimer control interface + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + An addressed retimer control interface on an I2C bus. This does not + transfer PHY, reset or firmware ownership to the host. + +properties: + compatible: + items: + - enum: + - apple,t8103-atcrt + - apple,t6000-atcrt + - const: apple,atcrt + + reg: + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/phy/apple,ausb-phy.yaml b/Documentation/devicetree/bindings/phy/apple,ausb-phy.yaml new file mode 100644 index 0000000000000..437a467891a03 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/apple,ausb-phy.yaml @@ -0,0 +1,45 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/apple,ausb-phy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple T6000 AUSB port PHY + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + An AUSB port PHY has its own register aperture and control gate. + Its shared USB3 PHY is described by the phys reference. + +properties: + compatible: + items: + - enum: + - apple,t6000-ausb-phy + - const: apple,ausb-phy + + reg: + minItems: 1 + maxItems: 1 + + power-domains: + minItems: 1 + maxItems: 1 + + phys: + minItems: 1 + maxItems: 1 + + '#phy-cells': + const: 0 + +required: + - compatible + - reg + - power-domains + - phys + - '#phy-cells' + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/phy/apple,ausb-usb3-phy.yaml b/Documentation/devicetree/bindings/phy/apple,ausb-usb3-phy.yaml new file mode 100644 index 0000000000000..45524041b5f09 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/apple,ausb-usb3-phy.yaml @@ -0,0 +1,40 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/apple,ausb-usb3-phy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple T6000 shared AUSB USB3 PHY + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + The shared AUSB USB3 PHY exposes control and analogue apertures. + It supplies the two AUSB port PHYs and has separate USB and always-on gates. + +properties: + compatible: + items: + - enum: + - apple,t6000-ausb-usb3-phy + - const: apple,ausb-usb3-phy + + reg: + minItems: 21 + maxItems: 21 + + power-domains: + minItems: 2 + maxItems: 2 + + '#phy-cells': + const: 0 + +required: + - compatible + - reg + - power-domains + - '#phy-cells' + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/pwm/apple,pwm.yaml b/Documentation/devicetree/bindings/pwm/apple,pwm.yaml new file mode 100644 index 0000000000000..d5f2bbbbfc06e --- /dev/null +++ b/Documentation/devicetree/bindings/pwm/apple,pwm.yaml @@ -0,0 +1,48 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/pwm/apple,pwm.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple timer PWM controller + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + The timer PWM controller is distinct from the FPWM keyboard-backlight + controller. It has one register aperture, one interrupt and a PMGR gate. + On T6000 the plain-PWM view shares its register bank with FPWM0, + but has a distinct gate and interrupt. Ownership must be coordinated + before either interface is used alongside the other. + +properties: + compatible: + oneOf: + - items: + - enum: + - apple,t8103-pwm + - const: apple,pwm + - items: + - const: apple,t6000-pwm + - const: apple,pwm + + reg: + minItems: 1 + maxItems: 1 + + interrupts: + minItems: 1 + maxItems: 1 + + power-domains: + minItems: 1 + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - power-domains + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,aft.yaml b/Documentation/devicetree/bindings/soc/apple/apple,aft.yaml new file mode 100644 index 0000000000000..28a2e832fefb2 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/apple/apple,aft.yaml @@ -0,0 +1,32 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/soc/apple/apple,aft.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple fabric trace controller + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + The fabric trace controller exposes a register aperture used by the + processor debug infrastructure. Trace programs and debug sequences are + firmware policy and are not part of this hardware description. + +properties: + compatible: + items: + - enum: + - apple,t8103-aft + - const: apple,aft + + reg: + minItems: 1 + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,cpu-debug.yaml b/Documentation/devicetree/bindings/soc/apple/apple,cpu-debug.yaml index 1770af2c28fc1..a054139ba3b31 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,cpu-debug.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,cpu-debug.yaml @@ -11,7 +11,10 @@ maintainers: description: | Processor debug register apertures. Access ownership must be established - before a debugger accesses this block. + before a debugger accesses this block. M1-family descriptors identify + per-CPU CoreSight and UTTDBG views. Views can overlap within one CPU + aperture and must not be reserved as independent exclusive resources. + Debug programs and implementation-control sequences are not described. properties: compatible: @@ -19,12 +22,32 @@ properties: - items: - const: apple,t6041-cpu-debug - const: apple,cpu-debug + - items: + - const: apple,t8103-cpu-debug + - const: apple,cpu-debug + - items: + - const: apple,t6000-cpu-debug + - const: apple,cpu-debug reg: - minItems: 2 - maxItems: 2 + minItems: 1 + maxItems: 64 description: Register apertures in hardware-description order. + reg-names: + minItems: 1 + maxItems: 64 + items: + pattern: '^cpu[0-9]+-(coresight|uttdbg)$' + + apple,cpu-ids: + $ref: /schemas/types.yaml#/definitions/uint64-array + minItems: 1 + maxItems: 64 + description: Native CPU identifiers corresponding to each register view. Values + match apple,firmware-cpu-id on CPU nodes, not Linux CPU indices or + complete architectural MPIDR_EL1 values. + interrupts: minItems: 1 maxItems: 1 @@ -32,6 +55,25 @@ properties: required: - compatible - reg - - interrupts + +allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t8103-cpu-debug + - apple,t6000-cpu-debug + then: + required: + - reg-names + - apple,cpu-ids + else: + properties: + reg: + minItems: 2 + maxItems: 2 + required: + - interrupts additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,debug-port.yaml b/Documentation/devicetree/bindings/soc/apple/apple,debug-port.yaml index 549ad92ccaf14..0c4b3496367ed 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,debug-port.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,debug-port.yaml @@ -23,6 +23,9 @@ properties: - items: - const: apple,t8140-debug-port - const: apple,debug-port + - items: + - const: apple,t6000-debug-port + - const: apple,debug-port swclk-gpios: maxItems: 1 diff --git a/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml b/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml index ad3619b64fb0c..9ee4a45c910d9 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml @@ -20,18 +20,25 @@ description: properties: compatible: - items: - - enum: - - apple,t6020-dockchannel - - apple,t6030-dockchannel - - apple,t6031-dockchannel - - apple,t6041-dockchannel - - apple,t8112-dockchannel - - apple,t8122-dockchannel - - apple,t8132-dockchannel - - apple,t8140-dockchannel - - apple,t8142-dockchannel - - const: apple,dockchannel + oneOf: + - items: + - enum: + - apple,t6020-dockchannel + - apple,t6030-dockchannel + - apple,t6031-dockchannel + - apple,t6041-dockchannel + - apple,t8112-dockchannel + - apple,t8122-dockchannel + - apple,t8132-dockchannel + - apple,t8140-dockchannel + - apple,t8142-dockchannel + - const: apple,dockchannel + - items: + - const: apple,t8103-dockchannel + - const: apple,dockchannel + - items: + - const: apple,t6000-dockchannel + - const: apple,dockchannel reg: maxItems: 1 diff --git a/Documentation/devicetree/bindings/soc/apple/apple,dwi.yaml b/Documentation/devicetree/bindings/soc/apple/apple,dwi.yaml index f6d84bf0f371c..820b48ce38ca6 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,dwi.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,dwi.yaml @@ -22,6 +22,12 @@ properties: - items: - const: apple,t8140-dwi - const: apple,dwi + - items: + - const: apple,t8103-dwi + - const: apple,dwi + - items: + - const: apple,t6000-dwi + - const: apple,dwi reg: minItems: 1 diff --git a/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml b/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml index 4337488e5392b..6b7874ffa1f46 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml @@ -31,11 +31,17 @@ properties: - apple,t8132-pmp-v2 - apple,t8140-pmp-v2 - const: apple,t6000-pmp-v2 + - items: + - const: apple,t8103-pmp + - const: apple,pmp reg: - items: - - description: Firmware SRAM - - description: ASC control registers + minItems: 2 + maxItems: 37 + description: + Coprocessor and peripheral register views. First-generation firmware + views include shared apertures; a driver must coordinate ownership + rather than claim every view as an exclusive resource. reg-names: items: @@ -52,7 +58,8 @@ properties: maxItems: 1 power-domains: - maxItems: 1 + minItems: 1 + maxItems: 2 apple,pmp-report: $ref: /schemas/types.yaml#/definitions/phandle @@ -105,10 +112,34 @@ patternProperties: required: - compatible - reg - - reg-names + - iommus - mboxes - mbox-names - - iommus + +allOf: + - if: + properties: + compatible: + contains: + const: apple,t8103-pmp + then: + properties: + reg: + minItems: 37 + power-domains: + minItems: 2 + required: + - power-domains + else: + properties: + reg: + maxItems: 2 + power-domains: + maxItems: 1 + required: + - reg-names + - mboxes + - mbox-names additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,processor-trace.yaml b/Documentation/devicetree/bindings/soc/apple/apple,processor-trace.yaml index 6207bfbe14d0b..95f796c9b6081 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,processor-trace.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,processor-trace.yaml @@ -23,6 +23,13 @@ properties: - const: apple,t8140-processor-trace - const: apple,processor-trace + - items: + - const: apple,t8103-processor-trace + - const: apple,processor-trace + - items: + - const: apple,t6000-processor-trace + - const: apple,processor-trace + required: - compatible diff --git a/Documentation/devicetree/bindings/soc/apple/apple,sac-manager.yaml b/Documentation/devicetree/bindings/soc/apple/apple,sac-manager.yaml index 3e6a309f0a694..d53308d8dff15 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,sac-manager.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,sac-manager.yaml @@ -23,6 +23,13 @@ properties: - const: apple,t8140-sac-manager - const: apple,sac-manager + - items: + - const: apple,t8103-sac-manager + - const: apple,sac-manager + - items: + - const: apple,t6000-sac-manager + - const: apple,sac-manager + required: - compatible diff --git a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml index 63767db0cea1a..aaf91808584fc 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml @@ -18,6 +18,11 @@ description: properties: compatible: oneOf: + - items: + - enum: + - apple,t8103-mcc + - apple,t6000-mcc + - const: apple,mcc - enum: - apple,t8132-mcc - apple,t8140-mcc @@ -26,7 +31,7 @@ properties: - const: apple,t8140-mcc reg: - description: Per-plane blocks on T8140, or the two multicast apertures on T8132. + description: Per-plane blocks or multicast memory-controller apertures. minItems: 1 maxItems: 32 diff --git a/Documentation/devicetree/bindings/sound/apple,alc.yaml b/Documentation/devicetree/bindings/sound/apple,alc.yaml new file mode 100644 index 0000000000000..1488d351e512a --- /dev/null +++ b/Documentation/devicetree/bindings/sound/apple,alc.yaml @@ -0,0 +1,39 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/sound/apple,alc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple Audio Leap controller + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + Firmware microphone capture controller using an ADMAC instance. The + hardware description identifies the controller instance and its DMA + provider. Stream buffer geometry, microphone calibration and firmware + control sequences are runtime data and must not be copied into DTS. + +properties: + compatible: + items: + - enum: + - apple,t8103-alc + - apple,t6000-alc + - const: apple,alc + + apple,dma-controller: + $ref: /schemas/types.yaml#/definitions/phandle + description: ADMAC controller used by the firmware capture service. + + apple,instance-id: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Hardware controller instance number. + +required: + - compatible + - apple,dma-controller + - apple,instance-id + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/sound/apple,t6030-dpaudio.yaml b/Documentation/devicetree/bindings/sound/apple,t6030-dpaudio.yaml index e9552af888ba6..890af4c59a24e 100644 --- a/Documentation/devicetree/bindings/sound/apple,t6030-dpaudio.yaml +++ b/Documentation/devicetree/bindings/sound/apple,t6030-dpaudio.yaml @@ -89,7 +89,7 @@ allOf: properties: compatible: contains: - enum: [apple,t6030-dpaudio, apple,t6041-dpaudio] + enum: ["apple,t6030-dpaudio", "apple,t6041-dpaudio"] then: properties: reg: false diff --git a/Documentation/devicetree/bindings/spi/apple,spi.yaml b/Documentation/devicetree/bindings/spi/apple,spi.yaml index 515d3dab78b65..1c6e0ec93c581 100644 --- a/Documentation/devicetree/bindings/spi/apple,spi.yaml +++ b/Documentation/devicetree/bindings/spi/apple,spi.yaml @@ -31,6 +31,9 @@ properties: - apple,t8112-spi - apple,t6000-spi - const: apple,spi + - items: + - const: apple,t6000-spi + - const: apple,t8103-spi reg: maxItems: 1 diff --git a/Documentation/devicetree/bindings/spmi/apple,spmi-monitor.yaml b/Documentation/devicetree/bindings/spmi/apple,spmi-monitor.yaml new file mode 100644 index 0000000000000..339968b27e083 --- /dev/null +++ b/Documentation/devicetree/bindings/spmi/apple,spmi-monitor.yaml @@ -0,0 +1,42 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/spmi/apple,spmi-monitor.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple first-generation SPMI secondary and event resources + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + The primary PMIC bus is serviced by the polled SPMI driver. Its secondary + controller and interrupt-status apertures, and its external AIC interrupt, + remain firmware-owned. Describing them separately preserves the active + polled register window without enabling an unqualified interrupt path. + +properties: + compatible: + items: + - const: apple,t6000-spmi-monitor + - const: apple,spmi-monitor + + reg: + items: + - description: Secondary controller registers + - description: Interrupt-status registers + + interrupts: + maxItems: 1 + + apple,controller: + $ref: /schemas/types.yaml#/definitions/phandle + description: Primary polled SPMI controller sharing these resources. + +required: + - compatible + - reg + - interrupts + - apple,controller + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/spmi/apple,spmi.yaml b/Documentation/devicetree/bindings/spmi/apple,spmi.yaml index 0b35a017bb808..5ef0fbfaeed7f 100644 --- a/Documentation/devicetree/bindings/spmi/apple,spmi.yaml +++ b/Documentation/devicetree/bindings/spmi/apple,spmi.yaml @@ -37,9 +37,16 @@ properties: - apple,t8112-spmi - const: apple,spmi - const: apple,t8142-spmi + - items: + - const: apple,t6000-spmi + - const: apple,t8103-spmi reg: - maxItems: 1 + minItems: 1 + maxItems: 3 + description: + Primary controller aperture, optionally followed by secondary control + and interrupt-status apertures on first-generation Macs. interrupts: maxItems: 1 diff --git a/Documentation/devicetree/bindings/spmi/apple,viper-spmi.yaml b/Documentation/devicetree/bindings/spmi/apple,viper-spmi.yaml new file mode 100644 index 0000000000000..cee7e76833d47 --- /dev/null +++ b/Documentation/devicetree/bindings/spmi/apple,viper-spmi.yaml @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/spmi/apple,viper-spmi.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple Viper SPMI endpoint + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + A Viper endpoint on an auxiliary SPMI bus. Its register protocol and + firmware ownership are separate from those of the primary PMIC. + +properties: + compatible: + oneOf: + - items: + - const: apple,t6000-viper-spmi + - const: apple,viper-spmi + + reg: + maxItems: 1 + +required: + - compatible + - reg + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/thermal/apple,die-temperature-sensor.yaml b/Documentation/devicetree/bindings/thermal/apple,die-temperature-sensor.yaml new file mode 100644 index 0000000000000..861f6d486b9c0 --- /dev/null +++ b/Documentation/devicetree/bindings/thermal/apple,die-temperature-sensor.yaml @@ -0,0 +1,62 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/thermal/apple,die-temperature-sensor.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple T8103 die temperature sensor registers + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + Each channel has a readback register and, where present, independent + control, accumulator and alarm registers. Channels share larger PMGR or + CPU apertures, so only their individual registers are described here. + Register addresses do not describe sensor calibration, alarm thresholds + or firmware control sequences. A driver needs a separate calibration + handoff before reporting temperatures. + +properties: + compatible: + items: + - const: apple,t8103-die-temperature-sensor + - const: apple,die-temperature-sensor + + reg: + minItems: 2 + maxItems: 17 + + reg-names: + minItems: 2 + maxItems: 17 + items: + enum: + - readbk + - readbk1 + - readcnt + - readsum + - ctl0-clr + - ctl0-set + - ctl1 + - ctl1-clr + - ctl1-set + - ctl2 + - ctl2-clr + - ctl2-set + - ctl3-clr + - ctl3-set + - ctl4-clr + - ctl4-set + - alarm0 + - alarm1 + - alarm2 + - alarm3 + - status + +required: + - compatible + - reg + - reg-names + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml b/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml index 8e31d99e85792..2b7e2492cf3c3 100644 --- a/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml +++ b/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml @@ -18,6 +18,12 @@ properties: - items: - const: apple,t6041-aic-timebase - const: apple,aic-timebase + - items: + - const: apple,t8103-aic-timebase + - const: apple,aic-timebase + - items: + - const: apple,t6000-aic-timebase + - const: apple,aic-timebase reg: minItems: 1 diff --git a/Documentation/devicetree/bindings/usb/apple,ausb-drd.yaml b/Documentation/devicetree/bindings/usb/apple,ausb-drd.yaml new file mode 100644 index 0000000000000..89e67d4527489 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/apple,ausb-drd.yaml @@ -0,0 +1,51 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/usb/apple,ausb-drd.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple T6000 AUSB dual-role controller + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: | + The AUSB controller has four register apertures and four interrupt + sources. Both DMA translation banks use stream 3. Its PHY is separate. + +properties: + compatible: + items: + - enum: + - apple,t6000-ausb-drd + - const: apple,ausb-drd + + reg: + minItems: 4 + maxItems: 4 + + interrupts: + minItems: 4 + maxItems: 4 + + power-domains: + minItems: 1 + maxItems: 1 + + phys: + minItems: 1 + maxItems: 1 + + iommus: + minItems: 2 + maxItems: 2 + +required: + - compatible + - reg + - interrupts + - power-domains + - phys + - iommus + +additionalProperties: false diff --git a/arch/arm64/boot/dts/apple/t6000-aux-spmi.dtsi b/arch/arm64/boot/dts/apple/t6000-aux-spmi.dtsi new file mode 100644 index 0000000000000..d6f7294d077c3 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6000-aux-spmi.dtsi @@ -0,0 +1,99 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Disabled auxiliary SPMI resources; primary polled PMIC access is retained. */ + +&{/soc} { + primary_spmi_monitor: spmi-monitor@2920a0e00 { + compatible = "apple,t6000-spmi-monitor", "apple,spmi-monitor"; + reg = <0x2 0x920a0e00 0x0 0x100>, + <0x2 0x920a0400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + apple,controller = <&nub_spmi0>; + status = "disabled"; + }; +}; + +&nub_spmi1 { + reg = <0x2 0x920a9300 0x0 0x100>, + <0x2 0x920a8e00 0x0 0x100>, + <0x2 0x920a8400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + spmi-device@d { + compatible = "apple,t6000-viper-spmi", "apple,viper-spmi"; + reg = <0xd SPMI_USID>; + status = "disabled"; + }; +}; + +&clvr_spmi0 { + reg = <0x2 0x8e501100 0x0 0x100>, + <0x2 0x8e500e00 0x0 0x100>, + <0x2 0x8e500400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; +}; + +&clvr_spmi1 { + reg = <0x2 0x8e509100 0x0 0x100>, + <0x2 0x8e508e00 0x0 0x100>, + <0x2 0x8e508400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; +}; + +&clvr_spmi2 { + reg = <0x2 0x8e511100 0x0 0x100>, + <0x2 0x8e510e00 0x0 0x100>, + <0x2 0x8e510400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; +}; + +&aop_spmi0 { + reg = <0x2 0x93829300 0x0 0x100>, + <0x2 0x93828e00 0x0 0x100>, + <0x2 0x93828400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + spmi-device@e { + compatible = "apple,t6000-wifibt-pmu", "apple,radio-pmu"; + reg = <0xe SPMI_USID>; + status = "disabled"; + }; + spmi-device@f { + compatible = "apple,t6000-uwb-pmu", "apple,radio-pmu"; + reg = <0xf SPMI_USID>; + status = "disabled"; + }; +}; + +&aop_spmi1 { + reg = <0x2 0x9382d300 0x0 0x100>, + <0x2 0x9382ce00 0x0 0x100>, + <0x2 0x9382c400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + nfc@c { + compatible = "apple,t6000-stockholm-spmi-v1", "apple,stockholm-spmi-v1"; + reg = <0xc SPMI_USID>; + status = "disabled"; + }; +}; + +&spi4 { + compatible = "apple,t6000-spi", "apple,t8103-spi"; + clocks = <&peripheral_clocks 380>; +}; diff --git a/arch/arm64/boot/dts/apple/t6000-cpu-debug.dtsi b/arch/arm64/boot/dts/apple/t6000-cpu-debug.dtsi new file mode 100644 index 0000000000000..921c305561892 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6000-cpu-debug.dtsi @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Explicit CPU register descriptors; no firmware debug sequences. */ + +/ { + cpu_debug: debug-controller@210010000 { + compatible = "apple,t6000-cpu-debug", "apple,cpu-debug"; + reg = <0x2 0x10010000 0x0 0x300c8>, + <0x2 0x10110000 0x0 0x300c8>, + <0x2 0x11010000 0x0 0x300c8>, + <0x2 0x11110000 0x0 0x300c8>, + <0x2 0x11210000 0x0 0x300c8>, + <0x2 0x11310000 0x0 0x300c8>, + <0x2 0x12010000 0x0 0x300c8>, + <0x2 0x12110000 0x0 0x300c8>, + <0x2 0x12210000 0x0 0x300c8>, + <0x2 0x12310000 0x0 0x300c8>; + reg-names = "cpu0-coresight", "cpu1-coresight", "cpu2-coresight", "cpu3-coresight", "cpu4-coresight", "cpu5-coresight", "cpu6-coresight", "cpu7-coresight", "cpu8-coresight", "cpu9-coresight"; + apple,cpu-ids = /bits/ 64 <0x0 0x1 0x100 0x101 0x102 0x103 0x200 0x201 0x202 0x203>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6000-cpu-registers.dtsi b/arch/arm64/boot/dts/apple/t6000-cpu-registers.dtsi new file mode 100644 index 0000000000000..a1054df2b2fe6 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6000-cpu-registers.dtsi @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Address/length metadata only; implementation programming stays in drivers. */ + +&{/cpus/cpu@0} { + apple,firmware-cpu-id = <0x0>; + apple,implementation-registers = /bits/ 64 <0x210050000 0x9008>; + apple,acc-registers = /bits/ 64 <0x210f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x210e40000 0x9010>; +}; + +&{/cpus/cpu@1} { + apple,firmware-cpu-id = <0x1>; + apple,implementation-registers = /bits/ 64 <0x210150000 0x9008>; + apple,acc-registers = /bits/ 64 <0x210f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x210e40000 0x9010>; +}; + +&{/cpus/cpu@10100} { + apple,firmware-cpu-id = <0x100>; + apple,implementation-registers = /bits/ 64 <0x211050000 0x9008>; + apple,acc-registers = /bits/ 64 <0x211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x211e40000 0x9010>; +}; + +&{/cpus/cpu@10101} { + apple,firmware-cpu-id = <0x101>; + apple,implementation-registers = /bits/ 64 <0x211150000 0x9008>; + apple,acc-registers = /bits/ 64 <0x211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x211e40000 0x9010>; +}; + +&{/cpus/cpu@10102} { + apple,firmware-cpu-id = <0x102>; + apple,implementation-registers = /bits/ 64 <0x211250000 0x9008>; + apple,acc-registers = /bits/ 64 <0x211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x211e40000 0x9010>; +}; + +&{/cpus/cpu@10103} { + apple,firmware-cpu-id = <0x103>; + apple,implementation-registers = /bits/ 64 <0x211350000 0x9008>; + apple,acc-registers = /bits/ 64 <0x211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x211e40000 0x9010>; +}; + +&{/cpus/cpu@10200} { + apple,firmware-cpu-id = <0x200>; + apple,implementation-registers = /bits/ 64 <0x212050000 0x9008>; + apple,acc-registers = /bits/ 64 <0x212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x212e40000 0x9010>; +}; + +&{/cpus/cpu@10201} { + apple,firmware-cpu-id = <0x201>; + apple,implementation-registers = /bits/ 64 <0x212150000 0x9008>; + apple,acc-registers = /bits/ 64 <0x212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x212e40000 0x9010>; +}; + +&{/cpus/cpu@10202} { + apple,firmware-cpu-id = <0x202>; + apple,implementation-registers = /bits/ 64 <0x212250000 0x9008>; + apple,acc-registers = /bits/ 64 <0x212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x212e40000 0x9010>; +}; + +&{/cpus/cpu@10203} { + apple,firmware-cpu-id = <0x203>; + apple,implementation-registers = /bits/ 64 <0x212350000 0x9008>; + apple,acc-registers = /bits/ 64 <0x212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x212e40000 0x9010>; +}; diff --git a/arch/arm64/boot/dts/apple/t6000-firmware-interfaces.dtsi b/arch/arm64/boot/dts/apple/t6000-firmware-interfaces.dtsi new file mode 100644 index 0000000000000..4e250d79d709d --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6000-firmware-interfaces.dtsi @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Firmware-owned interfaces with no AP MMIO aperture in the hardware data. */ + +/ { + processor_trace: processor-trace { + compatible = "apple,t6000-processor-trace", "apple,processor-trace"; + status = "disabled"; + }; + + sac_manager: sac-manager { + compatible = "apple,t6000-sac-manager", "apple,sac-manager"; + status = "disabled"; + }; + nub_swd0: debug-port { + compatible = "apple,t6000-debug-port", "apple,debug-port"; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6000-j314s-control.dtsi b/arch/arm64/boot/dts/apple/t6000-j314s-control.dtsi new file mode 100644 index 0000000000000..c123806d4e6aa --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6000-j314s-control.dtsi @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Populated board control clients. Transport ownership is not transferred. */ + +&i2c4 { + sd_card_control: sd-card-control@20 { + compatible = "apple,t6000-sd-card-control", "apple,sd-card-control"; + reg = <0x20>; + status = "disabled"; + }; +}; + +&spi4 { + panel_controller: panel-timing-controller@0 { + compatible = "parade,dp855"; + reg = <0>; + status = "disabled"; + + i2c { + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + temperature-sensor@70 { + compatible = "ti,tmp103"; + reg = <0x70>; + status = "disabled"; + }; + temperature-sensor@71 { + compatible = "ti,tmp103"; + reg = <0x71>; + status = "disabled"; + }; + temperature-sensor@72 { + compatible = "ti,tmp103"; + reg = <0x72>; + status = "disabled"; + }; + }; + }; +}; + +/ { + alc0: microphone-service { + compatible = "apple,t6000-alc", "apple,alc"; + apple,dma-controller = <&aop_admac>; + apple,instance-id = <0>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6000-j314s.dts b/arch/arm64/boot/dts/apple/t6000-j314s.dts index a3c26b7819d43..0c187b3e82b86 100644 --- a/arch/arm64/boot/dts/apple/t6000-j314s.dts +++ b/arch/arm64/boot/dts/apple/t6000-j314s.dts @@ -83,3 +83,5 @@ compatible = "apple,j314-macaudio", "apple,macaudio"; model = "MacBook Pro J314"; }; + +#include "t6000-j314s-control.dtsi" diff --git a/arch/arm64/boot/dts/apple/t6000-peripherals.dtsi b/arch/arm64/boot/dts/apple/t6000-peripherals.dtsi new file mode 100644 index 0000000000000..f4c9bdc3ce87a --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6000-peripherals.dtsi @@ -0,0 +1,472 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Disabled resource descriptions for T6000. */ + +&{/soc} { + ane0_dma: dma-controller@285804000 { + compatible = "apple,t6000-ane-dma", "apple,ane-dma"; + reg = <0x2 0x85804000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane_sys>; + status = "disabled"; + }; + + aic_timebase: timer@28e148000 { + compatible = "apple,t6000-aic-timebase", "apple,aic-timebase"; + reg = <0x2 0x8e148000 0x0 0x1000>; + status = "disabled"; + }; + + dwi: bus-controller@28e208000 { + compatible = "apple,t6000-dwi", "apple,dwi"; + reg = <0x2 0x8e208000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dwi>; + status = "disabled"; + }; + + dockchannel_uart: fifo@29250c000 { + compatible = "apple,t6000-dockchannel", "apple,dockchannel"; + reg = <0x2 0x9250c000 0x0 0x18>; + interrupt-parent = <&aic>; + interrupts = ; + reg-names = "irq"; + ranges = <0 0x2 0x92528000 0x10004>; + #address-cells = <1>; + #size-cells = <1>; + interrupt-controller; + #interrupt-cells = <2>; + status = "disabled"; + }; + + apr0: video-codec@311000000 { + compatible = "apple,t6000-prores", "apple,prores"; + reg = <0x3 0x11000000 0x0 0x4000>, + <0x3 0x10000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_scodec>; + iommus = <&apr0_dart 0>; + reg-names = "core", "wrapper"; + status = "disabled"; + }; + + apr0_dart: iommu@311008000 { + compatible = "apple,t8110-dart"; + reg = <0x3 0x11008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_scodec>; + #iommu-cells = <1>; + status = "disabled"; + }; + + aes: crypto@39b060000 { + compatible = "apple,t6000-aes", "apple,aes"; + reg = <0x3 0x9b060000 0x0 0x4000>, + <0x2 0x922d0000 0x0 0x8000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_aes>; + iommus = <&sio_dart_0 1>, <&sio_dart_1 1>; + status = "disabled"; + }; + + jpeg0: jpeg@409000000 { + compatible = "apple,t6000-jpeg", "apple,jpeg"; + reg = <0x4 0x09000000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + clocks = <&peripheral_clocks 354>, <&peripheral_clocks 355>; + iommus = <&jpeg0_dart 0>; + status = "disabled"; + }; + + jpeg0_dart: iommu@409004000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x09004000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + #iommu-cells = <1>; + status = "disabled"; + }; + + jpeg1: jpeg@409008000 { + compatible = "apple,t6000-jpeg", "apple,jpeg"; + reg = <0x4 0x09008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + clocks = <&peripheral_clocks 354>, <&peripheral_clocks 355>; + iommus = <&jpeg1_dart 0>; + status = "disabled"; + }; + + jpeg1_dart: iommu@40900c000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x0900c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + #iommu-cells = <1>; + status = "disabled"; + }; + + scaler0: scaler@40b000000 { + compatible = "apple,t6000-scaler", "apple,scaler"; + reg = <0x4 0x0b000000 0x0 0x28000>, + <0x4 0x0b210000 0x0 0x4000>, + <0x4 0x0b204000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + ; + power-domains = <&ps_msr0>, <&ps_msr0_ase_core>; + clocks = <&peripheral_clocks 356>; + iommus = <&scaler0_dart 0>, <&scaler0_dart 1>; + resets = <&ps_msr0>; + status = "disabled"; + }; + + scaler0_dart: iommu@40b200000 { + compatible = "apple,t8110-dart"; + reg = <0x4 0x0b200000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_msr0>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave0_dma: dma-controller@40d020000 { + compatible = "apple,t6000-ave-dma", "apple,ave-dma"; + reg = <0x4 0x0d020000 0x0 0x4000>, + <0x4 0x0d044000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc_sys>; + status = "disabled"; + }; + + atc0_dpin0: displayport@701e50000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0x7 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + atc0_dpin1: displayport@701e58000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0x7 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + apciec0_piodma: dma-controller@722000000 { + compatible = "apple,t6000-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 = <&apciec0_dart 15>; + status = "disabled"; + }; + + atc1_dpin0: displayport@b01e50000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xb 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + atc1_dpin1: displayport@b01e58000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xb 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + apciec1_piodma: dma-controller@b22000000 { + compatible = "apple,t6000-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 = <&apciec1_dart 15>; + status = "disabled"; + }; + + atc2_dpin0: displayport@f01e50000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xf 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + atc2_dpin1: displayport@f01e58000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xf 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + apciec2_piodma: dma-controller@f22000000 { + compatible = "apple,t6000-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 = <&apciec2_dart 15>; + status = "disabled"; + }; +}; + +/ { + peripheral_clocks: clock-controller { + compatible = "apple,t6000-pmgr-clocks", "apple,pmgr-clocks"; + #clock-cells = <1>; + apple,pmgr = <&pmgr>; + status = "disabled"; + }; + + mcc: memory-controller@200000000 { + compatible = "apple,t6000-mcc", "apple,mcc"; + reg = <0x2 0x00000000 0x0 0x1000000>, + <0x2 0x01000000 0x0 0x1000000>, + <0x2 0x02000000 0x0 0x1000000>, + <0x2 0x03000000 0x0 0x1000000>; + status = "disabled"; + }; + + soc_events: event-log@28e080000 { + compatible = "apple,t6000-event-log", "apple,soc-event-log"; + reg = <0x2 0x8e080000 0x0 0x80000>, + <0x2 0x8e580000 0x0 0x80000>, + <0x2 0x8e680000 0x0 0x74000>, + <0x2 0x8e45c000 0x0 0x4000>, + <0x2 0x8e460000 0x0 0x4000>, + <0x2 0x8e464000 0x0 0x4000>, + <0x2 0x8e468000 0x0 0x4000>, + <0x2 0x8e46c000 0x0 0x4000>, + <0x2 0x8e458000 0x0 0x4000>, + <0x2 0x8e428000 0x0 0x8000>, + <0x2 0x8e430000 0x0 0x8000>, + <0x2 0x8e418000 0x0 0x8000>, + <0x2 0x8e410000 0x0 0x8000>, + <0x2 0x8e420000 0x0 0x8000>, + <0x2 0x8e400000 0x0 0x8000>, + <0x2 0x8e408000 0x0 0x8000>, + <0x2 0x8e438000 0x0 0x8000>, + <0x2 0x8e440000 0x0 0x8000>, + <0x2 0x92200000 0x0 0x80000>, + <0x2 0x8e000000 0x0 0x80000>, + <0x2 0x8e600000 0x0 0x4c000>, + <0x2 0x92280000 0x0 0x74000>, + <0x2 0x85838000 0x0 0x8000>, + <0x5 0x09838000 0x0 0x8000>, + <0x2 0x85868000 0x0 0x4000>, + <0x5 0x09868000 0x0 0x4000>, + <0x4 0x04e20000 0x0 0x4000>, + <0x4 0x04e20000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + status = "disabled"; + }; + + soc_errors: error-handler@395440000 { + compatible = "apple,t6000-error-handler", "apple,soc-error-handler"; + reg = <0x3 0x95440000 0x0 0x40000>, + <0x2 0x8e000000 0x0 0x80000>, + <0x2 0x8e080000 0x0 0x80000>, + <0x2 0x00000000 0x0 0x1000000>, + <0x2 0x01000000 0x0 0x1000000>, + <0x2 0x02000000 0x0 0x1000000>, + <0x2 0x03000000 0x0 0x1000000>, + <0x2 0x82000000 0x0 0x4000>, + <0x3 0x04000000 0x0 0x4000>, + <0x3 0x83000000 0x0 0x4000>, + <0x4 0x02000000 0x0 0x4000>, + <0x2 0x58d00000 0x0 0x20000>, + <0x2 0x59100000 0x0 0x20000>, + <0x2 0x5ad00000 0x0 0x20000>, + <0x2 0x5b100000 0x0 0x20000>, + <0x2 0x59500000 0x0 0x20000>, + <0x2 0x5b500000 0x0 0x20000>, + <0x2 0x5b900000 0x0 0x20000>, + <0x2 0x4fa00000 0x0 0x20000>, + <0x2 0x50a00000 0x0 0x20000>, + <0x2 0x50e00000 0x0 0x20000>, + <0x2 0x4fa80000 0x0 0x20000>, + <0x2 0x50a80000 0x0 0x20000>, + <0x2 0x64300000 0x0 0x20000>, + <0x2 0x65300000 0x0 0x20000>, + <0x2 0x64700000 0x0 0x20000>, + <0x2 0x66300000 0x0 0x20000>, + <0x2 0x65700000 0x0 0x20000>, + <0x2 0x67300000 0x0 0x20000>, + <0x2 0x64b00000 0x0 0x20000>, + <0x2 0x66700000 0x0 0x20000>, + <0x2 0x65b00000 0x0 0x20000>, + <0x2 0x67700000 0x0 0x20000>, + <0x2 0x58900000 0x0 0x20000>, + <0x2 0x5a900000 0x0 0x20000>, + <0x2 0x5c000000 0x0 0x20000>, + <0x2 0x5d000000 0x0 0x20000>, + <0x2 0x4f600000 0x0 0x20000>, + <0x2 0x50600000 0x0 0x20000>, + <0x2 0x52000000 0x0 0x20000>, + <0x2 0x53000000 0x0 0x20000>, + <0x2 0x4f032000 0x0 0x1000>, + <0x2 0x4f332000 0x0 0x1000>, + <0x2 0x50032000 0x0 0x1000>, + <0x2 0x50332000 0x0 0x1000>, + <0x2 0x58032000 0x0 0x1000>, + <0x2 0x58332000 0x0 0x1000>, + <0x2 0x58632000 0x0 0x1000>, + <0x2 0x5a032000 0x0 0x1000>, + <0x2 0x5a332000 0x0 0x1000>, + <0x2 0x5a632000 0x0 0x1000>, + <0x2 0x64032000 0x0 0x1000>, + <0x2 0x66032000 0x0 0x1000>, + <0x2 0x65032000 0x0 0x1000>, + <0x2 0x67032000 0x0 0x1000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + status = "disabled"; + }; + + pwm1: pwm@39b030000 { + compatible = "apple,t6000-pwm", "apple,pwm"; + reg = <0x3 0x9b030000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_fpwm1>; + status = "disabled"; + }; +}; + +&ave { + reg = <0x4 0x0d100000 0x0 0x45c000>, + <0x4 0x0d050000 0x0 0x8000>, + <0x4 0x0d800000 0x0 0x800000>, + <0x2 0x8e588000 0x0 0x24>, + <0x4 0x0c000000 0x0 0x1000000>; + reg-names = "codec", "mailbox", "coproc", "pmgr", "pio"; + clocks = <&peripheral_clocks 350>; +}; diff --git a/arch/arm64/boot/dts/apple/t6000.dtsi b/arch/arm64/boot/dts/apple/t6000.dtsi index 75b3fcf23b573..a553c9341e0cb 100644 --- a/arch/arm64/boot/dts/apple/t6000.dtsi +++ b/arch/arm64/boot/dts/apple/t6000.dtsi @@ -10,7 +10,7 @@ /* This chip is just a cut down version of t6001, so include it and disable the missing parts */ #define GPU_REPEAT(x) - +#define APPLE_T6000_SUBSET #include "t6001.dtsi" / { @@ -90,3 +90,12 @@ power-domains = <&ps_ane_sys_cpu>, <&ps_ane_set1>, <&ps_ane_set2>, <&ps_ane_set3>, <&ps_ane_set4>, <&ps_pms_sram>; }; + +#include "t6000-peripherals.dtsi" +#include "t6000-aux-spmi.dtsi" + +#include "t6000-firmware-interfaces.dtsi" + +#include "t6000-cpu-debug.dtsi" + +#include "t6000-cpu-registers.dtsi" diff --git a/arch/arm64/boot/dts/apple/t6001-aux-spmi.dtsi b/arch/arm64/boot/dts/apple/t6001-aux-spmi.dtsi new file mode 100644 index 0000000000000..22df14c962e9e --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6001-aux-spmi.dtsi @@ -0,0 +1,137 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Disabled auxiliary SPMI resources; primary polled PMIC access is retained. */ + +&{/soc} { + primary_spmi_monitor: spmi-monitor@2920a0e00 { + compatible = "apple,t6000-spmi-monitor", "apple,spmi-monitor"; + reg = <0x2 0x920a0e00 0x0 0x100>, + <0x2 0x920a0400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + apple,controller = <&nub_spmi0>; + status = "disabled"; + }; + + clvr_spmi3: spmi@28e519100 { + compatible = "apple,t6000-spmi", "apple,t8103-spmi"; + reg = <0x2 0x8e519100 0x0 0x100>, + <0x2 0x8e518e00 0x0 0x100>, + <0x2 0x8e518400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + #address-cells = <2>; + #size-cells = <0>; + status = "disabled"; + pmic@f { + compatible = "apple,monaco-pmic", "apple,spmi-nvmem"; + reg = <0xf SPMI_USID>; + status = "disabled"; + }; + }; + + clvr_spmi4: spmi@28e521100 { + compatible = "apple,t6000-spmi", "apple,t8103-spmi"; + reg = <0x2 0x8e521100 0x0 0x100>, + <0x2 0x8e520e00 0x0 0x100>, + <0x2 0x8e520400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + #address-cells = <2>; + #size-cells = <0>; + status = "disabled"; + pmic@f { + compatible = "apple,monaco-pmic", "apple,spmi-nvmem"; + reg = <0xf SPMI_USID>; + status = "disabled"; + }; + }; +}; + +&nub_spmi1 { + reg = <0x2 0x920a9300 0x0 0x100>, + <0x2 0x920a8e00 0x0 0x100>, + <0x2 0x920a8400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + spmi-device@d { + compatible = "apple,t6000-viper-spmi", "apple,viper-spmi"; + reg = <0xd SPMI_USID>; + status = "disabled"; + }; +}; + +&clvr_spmi0 { + reg = <0x2 0x8e501100 0x0 0x100>, + <0x2 0x8e500e00 0x0 0x100>, + <0x2 0x8e500400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; +}; + +&clvr_spmi1 { + reg = <0x2 0x8e509100 0x0 0x100>, + <0x2 0x8e508e00 0x0 0x100>, + <0x2 0x8e508400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; +}; + +&clvr_spmi2 { + reg = <0x2 0x8e511100 0x0 0x100>, + <0x2 0x8e510e00 0x0 0x100>, + <0x2 0x8e510400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; +}; + +&aop_spmi0 { + reg = <0x2 0x93829300 0x0 0x100>, + <0x2 0x93828e00 0x0 0x100>, + <0x2 0x93828400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + spmi-device@e { + compatible = "apple,t6000-wifibt-pmu", "apple,radio-pmu"; + reg = <0xe SPMI_USID>; + status = "disabled"; + }; + spmi-device@f { + compatible = "apple,t6000-uwb-pmu", "apple,radio-pmu"; + reg = <0xf SPMI_USID>; + status = "disabled"; + }; +}; + +&aop_spmi1 { + reg = <0x2 0x9382d300 0x0 0x100>, + <0x2 0x9382ce00 0x0 0x100>, + <0x2 0x9382c400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + nfc@c { + compatible = "apple,t6000-stockholm-spmi-v1", "apple,stockholm-spmi-v1"; + reg = <0xc SPMI_USID>; + status = "disabled"; + }; +}; + +&spi4 { + compatible = "apple,t6000-spi", "apple,t8103-spi"; + clocks = <&peripheral_clocks 380>; +}; diff --git a/arch/arm64/boot/dts/apple/t6001-cpu-debug.dtsi b/arch/arm64/boot/dts/apple/t6001-cpu-debug.dtsi new file mode 100644 index 0000000000000..921c305561892 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6001-cpu-debug.dtsi @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Explicit CPU register descriptors; no firmware debug sequences. */ + +/ { + cpu_debug: debug-controller@210010000 { + compatible = "apple,t6000-cpu-debug", "apple,cpu-debug"; + reg = <0x2 0x10010000 0x0 0x300c8>, + <0x2 0x10110000 0x0 0x300c8>, + <0x2 0x11010000 0x0 0x300c8>, + <0x2 0x11110000 0x0 0x300c8>, + <0x2 0x11210000 0x0 0x300c8>, + <0x2 0x11310000 0x0 0x300c8>, + <0x2 0x12010000 0x0 0x300c8>, + <0x2 0x12110000 0x0 0x300c8>, + <0x2 0x12210000 0x0 0x300c8>, + <0x2 0x12310000 0x0 0x300c8>; + reg-names = "cpu0-coresight", "cpu1-coresight", "cpu2-coresight", "cpu3-coresight", "cpu4-coresight", "cpu5-coresight", "cpu6-coresight", "cpu7-coresight", "cpu8-coresight", "cpu9-coresight"; + apple,cpu-ids = /bits/ 64 <0x0 0x1 0x100 0x101 0x102 0x103 0x200 0x201 0x202 0x203>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6001-cpu-registers.dtsi b/arch/arm64/boot/dts/apple/t6001-cpu-registers.dtsi new file mode 100644 index 0000000000000..a1054df2b2fe6 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6001-cpu-registers.dtsi @@ -0,0 +1,72 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Address/length metadata only; implementation programming stays in drivers. */ + +&{/cpus/cpu@0} { + apple,firmware-cpu-id = <0x0>; + apple,implementation-registers = /bits/ 64 <0x210050000 0x9008>; + apple,acc-registers = /bits/ 64 <0x210f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x210e40000 0x9010>; +}; + +&{/cpus/cpu@1} { + apple,firmware-cpu-id = <0x1>; + apple,implementation-registers = /bits/ 64 <0x210150000 0x9008>; + apple,acc-registers = /bits/ 64 <0x210f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x210e40000 0x9010>; +}; + +&{/cpus/cpu@10100} { + apple,firmware-cpu-id = <0x100>; + apple,implementation-registers = /bits/ 64 <0x211050000 0x9008>; + apple,acc-registers = /bits/ 64 <0x211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x211e40000 0x9010>; +}; + +&{/cpus/cpu@10101} { + apple,firmware-cpu-id = <0x101>; + apple,implementation-registers = /bits/ 64 <0x211150000 0x9008>; + apple,acc-registers = /bits/ 64 <0x211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x211e40000 0x9010>; +}; + +&{/cpus/cpu@10102} { + apple,firmware-cpu-id = <0x102>; + apple,implementation-registers = /bits/ 64 <0x211250000 0x9008>; + apple,acc-registers = /bits/ 64 <0x211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x211e40000 0x9010>; +}; + +&{/cpus/cpu@10103} { + apple,firmware-cpu-id = <0x103>; + apple,implementation-registers = /bits/ 64 <0x211350000 0x9008>; + apple,acc-registers = /bits/ 64 <0x211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x211e40000 0x9010>; +}; + +&{/cpus/cpu@10200} { + apple,firmware-cpu-id = <0x200>; + apple,implementation-registers = /bits/ 64 <0x212050000 0x9008>; + apple,acc-registers = /bits/ 64 <0x212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x212e40000 0x9010>; +}; + +&{/cpus/cpu@10201} { + apple,firmware-cpu-id = <0x201>; + apple,implementation-registers = /bits/ 64 <0x212150000 0x9008>; + apple,acc-registers = /bits/ 64 <0x212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x212e40000 0x9010>; +}; + +&{/cpus/cpu@10202} { + apple,firmware-cpu-id = <0x202>; + apple,implementation-registers = /bits/ 64 <0x212250000 0x9008>; + apple,acc-registers = /bits/ 64 <0x212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x212e40000 0x9010>; +}; + +&{/cpus/cpu@10203} { + apple,firmware-cpu-id = <0x203>; + apple,implementation-registers = /bits/ 64 <0x212350000 0x9008>; + apple,acc-registers = /bits/ 64 <0x212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x212e40000 0x9010>; +}; diff --git a/arch/arm64/boot/dts/apple/t6001-display-extra.dtsi b/arch/arm64/boot/dts/apple/t6001-display-extra.dtsi new file mode 100644 index 0000000000000..d06ac3ac4c18d --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6001-display-extra.dtsi @@ -0,0 +1,132 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Additional display engines; firmware and route ownership are unqualified. */ + +&{/soc} { + dispext2_dart: iommu@48b304000 { + compatible = "apple,t6000-display-dart", "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x8b304000 0x0 0x4000>, + <0x4 0x8b300000 0x0 0x4000>; + reg-names = "dart", "auxiliary"; + #iommu-cells = <5>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dispext2_cpu0>; + status = "disabled"; + }; + + dcpext2_dart: iommu@48b30c000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x8b30c000 0x0 0x4000>; + #iommu-cells = <5>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dispext2_cpu0>; + status = "disabled"; + }; + + dcpext2_mbox: mailbox@48bc08000 { + compatible = "apple,t6000-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x4 0x8bc08000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + ; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + power-domains = <&ps_dispext2_cpu0>; + resets = <&ps_dispext2_cpu0>; + status = "disabled"; + }; + + dcpext2: dcp@48bc00000 { + compatible = "apple,t6000-dcpext", "apple,dcpext"; + reg = <0x4 0x8bc00000 0x0 0x4000>, + <0x4 0x8a000000 0x0 0x3000000>, + <0x4 0x8b320000 0x0 0x4000>, + <0x4 0x8b344000 0x0 0x4000>, + <0x4 0x8b800000 0x0 0x800000>, + <0x2 0x8e3d0000 0x0 0x4000>, + <0x4 0x8b850000 0x0 0x4000>; + reg-names = "coproc", "disp-0", "disp-1", "disp-2", + "disp-3", "disp-4", "coproc-aux"; + mboxes = <&dcpext2_mbox>; + mbox-names = "mbox"; + iommus = <&dcpext2_dart 0 0x0 0x0 0x0 0xfc000000>; + power-domains = <&ps_dispext2_cpu0>; + resets = <&ps_dispext2_cpu0>; + apple,dcp-index = <3>; + phandle = <&dcpext2>; + status = "disabled"; + + piodma { + iommus = <&dispext2_dart 4 0x0 0x0 0x0 0xfc000000>; + status = "disabled"; + }; + }; + + dispext3_dart: iommu@48e304000 { + compatible = "apple,t6000-display-dart", "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x8e304000 0x0 0x4000>, + <0x4 0x8e300000 0x0 0x4000>; + reg-names = "dart", "auxiliary"; + #iommu-cells = <5>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dispext3_cpu0>; + status = "disabled"; + }; + + dcpext3_dart: iommu@48e30c000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x8e30c000 0x0 0x4000>; + #iommu-cells = <5>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dispext3_cpu0>; + status = "disabled"; + }; + + dcpext3_mbox: mailbox@48ec08000 { + compatible = "apple,t6000-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x4 0x8ec08000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + ; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + power-domains = <&ps_dispext3_cpu0>; + resets = <&ps_dispext3_cpu0>; + status = "disabled"; + }; + + dcpext3: dcp@48ec00000 { + compatible = "apple,t6000-dcpext", "apple,dcpext"; + reg = <0x4 0x8ec00000 0x0 0x4000>, + <0x4 0x8d000000 0x0 0x3000000>, + <0x4 0x8e320000 0x0 0x4000>, + <0x4 0x8e344000 0x0 0x4000>, + <0x4 0x8e800000 0x0 0x800000>, + <0x2 0x8e3d0000 0x0 0x4000>, + <0x4 0x8e850000 0x0 0x4000>; + reg-names = "coproc", "disp-0", "disp-1", "disp-2", + "disp-3", "disp-4", "coproc-aux"; + mboxes = <&dcpext3_mbox>; + mbox-names = "mbox"; + iommus = <&dcpext3_dart 0 0x0 0x0 0x0 0xfc000000>; + power-domains = <&ps_dispext3_cpu0>; + resets = <&ps_dispext3_cpu0>; + apple,dcp-index = <4>; + phandle = <&dcpext3>; + status = "disabled"; + + piodma { + iommus = <&dispext3_dart 4 0x0 0x0 0x0 0xfc000000>; + status = "disabled"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6001-firmware-interfaces.dtsi b/arch/arm64/boot/dts/apple/t6001-firmware-interfaces.dtsi new file mode 100644 index 0000000000000..4e250d79d709d --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6001-firmware-interfaces.dtsi @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Firmware-owned interfaces with no AP MMIO aperture in the hardware data. */ + +/ { + processor_trace: processor-trace { + compatible = "apple,t6000-processor-trace", "apple,processor-trace"; + status = "disabled"; + }; + + sac_manager: sac-manager { + compatible = "apple,t6000-sac-manager", "apple,sac-manager"; + status = "disabled"; + }; + nub_swd0: debug-port { + compatible = "apple,t6000-debug-port", "apple,debug-port"; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6001-j314c-control.dtsi b/arch/arm64/boot/dts/apple/t6001-j314c-control.dtsi new file mode 100644 index 0000000000000..c123806d4e6aa --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6001-j314c-control.dtsi @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Populated board control clients. Transport ownership is not transferred. */ + +&i2c4 { + sd_card_control: sd-card-control@20 { + compatible = "apple,t6000-sd-card-control", "apple,sd-card-control"; + reg = <0x20>; + status = "disabled"; + }; +}; + +&spi4 { + panel_controller: panel-timing-controller@0 { + compatible = "parade,dp855"; + reg = <0>; + status = "disabled"; + + i2c { + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + temperature-sensor@70 { + compatible = "ti,tmp103"; + reg = <0x70>; + status = "disabled"; + }; + temperature-sensor@71 { + compatible = "ti,tmp103"; + reg = <0x71>; + status = "disabled"; + }; + temperature-sensor@72 { + compatible = "ti,tmp103"; + reg = <0x72>; + status = "disabled"; + }; + }; + }; +}; + +/ { + alc0: microphone-service { + compatible = "apple,t6000-alc", "apple,alc"; + apple,dma-controller = <&aop_admac>; + apple,instance-id = <0>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6001-j314c.dts b/arch/arm64/boot/dts/apple/t6001-j314c.dts index 23be760ba6e49..b9c1a1b751a51 100644 --- a/arch/arm64/boot/dts/apple/t6001-j314c.dts +++ b/arch/arm64/boot/dts/apple/t6001-j314c.dts @@ -79,3 +79,5 @@ compatible = "apple,j314-macaudio", "apple,macaudio"; model = "MacBook Pro J314"; }; + +#include "t6001-j314c-control.dtsi" diff --git a/arch/arm64/boot/dts/apple/t6001-j316c-control.dtsi b/arch/arm64/boot/dts/apple/t6001-j316c-control.dtsi new file mode 100644 index 0000000000000..c123806d4e6aa --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6001-j316c-control.dtsi @@ -0,0 +1,48 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Populated board control clients. Transport ownership is not transferred. */ + +&i2c4 { + sd_card_control: sd-card-control@20 { + compatible = "apple,t6000-sd-card-control", "apple,sd-card-control"; + reg = <0x20>; + status = "disabled"; + }; +}; + +&spi4 { + panel_controller: panel-timing-controller@0 { + compatible = "parade,dp855"; + reg = <0>; + status = "disabled"; + + i2c { + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + temperature-sensor@70 { + compatible = "ti,tmp103"; + reg = <0x70>; + status = "disabled"; + }; + temperature-sensor@71 { + compatible = "ti,tmp103"; + reg = <0x71>; + status = "disabled"; + }; + temperature-sensor@72 { + compatible = "ti,tmp103"; + reg = <0x72>; + status = "disabled"; + }; + }; + }; +}; + +/ { + alc0: microphone-service { + compatible = "apple,t6000-alc", "apple,alc"; + apple,dma-controller = <&aop_admac>; + apple,instance-id = <0>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6001-j316c.dts b/arch/arm64/boot/dts/apple/t6001-j316c.dts index d171d9c1200b8..5cef2b47f8a7d 100644 --- a/arch/arm64/boot/dts/apple/t6001-j316c.dts +++ b/arch/arm64/boot/dts/apple/t6001-j316c.dts @@ -79,3 +79,5 @@ compatible = "apple,j316-macaudio", "apple,macaudio"; model = "MacBook Pro J316"; }; + +#include "t6001-j316c-control.dtsi" diff --git a/arch/arm64/boot/dts/apple/t6001-j375c-control.dtsi b/arch/arm64/boot/dts/apple/t6001-j375c-control.dtsi new file mode 100644 index 0000000000000..dc1ca66240a53 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6001-j375c-control.dtsi @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Populated board control clients. Transport ownership is not transferred. */ + +&i2c4 { + sd_card_control: sd-card-control@20 { + compatible = "apple,t6000-sd-card-control", "apple,sd-card-control"; + reg = <0x20>; + status = "disabled"; + }; +}; + +&i2c5 { + ethernet_sideband: ethernet-sideband@32 { + compatible = "apple,t6000-aqc107-i2c", "apple,aqc107-i2c"; + reg = <0x32>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6001-j375c-peripherals.dtsi b/arch/arm64/boot/dts/apple/t6001-j375c-peripherals.dtsi new file mode 100644 index 0000000000000..9cce8435e76cd --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6001-j375c-peripherals.dtsi @@ -0,0 +1,32 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Disabled resource descriptions for T6001. */ + +&{/soc} { + atc3_dpin0: displayport@1301e50000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0x13 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + atc3_dpin1: displayport@1301e58000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0x13 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + apciec3_piodma: dma-controller@1322000000 { + compatible = "apple,t6000-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 = <&apciec3_dart 15>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6001-j375c.dts b/arch/arm64/boot/dts/apple/t6001-j375c.dts index f3f98f0380090..35cd50028b75b 100644 --- a/arch/arm64/boot/dts/apple/t6001-j375c.dts +++ b/arch/arm64/boot/dts/apple/t6001-j375c.dts @@ -60,3 +60,7 @@ }; #include "hwmon-fan-dual.dtsi" + +#include "t6001-j375c-peripherals.dtsi" + +#include "t6001-j375c-control.dtsi" diff --git a/arch/arm64/boot/dts/apple/t6001-peripherals.dtsi b/arch/arm64/boot/dts/apple/t6001-peripherals.dtsi new file mode 100644 index 0000000000000..1fc0d1afc3b94 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6001-peripherals.dtsi @@ -0,0 +1,712 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Disabled resource descriptions for T6001. */ + +&{/soc} { + ane0_dma: dma-controller@285804000 { + compatible = "apple,t6000-ane-dma", "apple,ane-dma"; + reg = <0x2 0x85804000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane_sys>; + status = "disabled"; + }; + + aic_timebase: timer@28e148000 { + compatible = "apple,t6000-aic-timebase", "apple,aic-timebase"; + reg = <0x2 0x8e148000 0x0 0x1000>; + status = "disabled"; + }; + + dwi: bus-controller@28e208000 { + compatible = "apple,t6000-dwi", "apple,dwi"; + reg = <0x2 0x8e208000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dwi>; + status = "disabled"; + }; + + dockchannel_uart: fifo@29250c000 { + compatible = "apple,t6000-dockchannel", "apple,dockchannel"; + reg = <0x2 0x9250c000 0x0 0x18>; + interrupt-parent = <&aic>; + interrupts = ; + reg-names = "irq"; + ranges = <0 0x2 0x92528000 0x10004>; + #address-cells = <1>; + #size-cells = <1>; + interrupt-controller; + #interrupt-cells = <2>; + status = "disabled"; + }; + + apr0: video-codec@311000000 { + compatible = "apple,t6000-prores", "apple,prores"; + reg = <0x3 0x11000000 0x0 0x4000>, + <0x3 0x10000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_scodec>; + iommus = <&apr0_dart 0>; + reg-names = "core", "wrapper"; + status = "disabled"; + }; + + apr0_dart: iommu@311008000 { + compatible = "apple,t8110-dart"; + reg = <0x3 0x11008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_scodec>; + #iommu-cells = <1>; + status = "disabled"; + }; + + aes: crypto@39b060000 { + compatible = "apple,t6000-aes", "apple,aes"; + reg = <0x3 0x9b060000 0x0 0x4000>, + <0x2 0x922d0000 0x0 0x8000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_aes>; + iommus = <&sio_dart_0 1>, <&sio_dart_1 1>; + status = "disabled"; + }; + + jpeg0: jpeg@409000000 { + compatible = "apple,t6000-jpeg", "apple,jpeg"; + reg = <0x4 0x09000000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + clocks = <&peripheral_clocks 354>, <&peripheral_clocks 355>; + iommus = <&jpeg0_dart 0>; + status = "disabled"; + }; + + jpeg0_dart: iommu@409004000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x09004000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + #iommu-cells = <1>; + status = "disabled"; + }; + + jpeg1: jpeg@409008000 { + compatible = "apple,t6000-jpeg", "apple,jpeg"; + reg = <0x4 0x09008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + clocks = <&peripheral_clocks 354>, <&peripheral_clocks 355>; + iommus = <&jpeg1_dart 0>; + status = "disabled"; + }; + + jpeg1_dart: iommu@40900c000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x0900c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + #iommu-cells = <1>; + status = "disabled"; + }; + + scaler0: scaler@40b000000 { + compatible = "apple,t6000-scaler", "apple,scaler"; + reg = <0x4 0x0b000000 0x0 0x28000>, + <0x4 0x0b210000 0x0 0x4000>, + <0x4 0x0b204000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + ; + power-domains = <&ps_msr0>, <&ps_msr0_ase_core>; + clocks = <&peripheral_clocks 356>; + iommus = <&scaler0_dart 0>, <&scaler0_dart 1>; + resets = <&ps_msr0>; + status = "disabled"; + }; + + scaler0_dart: iommu@40b200000 { + compatible = "apple,t8110-dart"; + reg = <0x4 0x0b200000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_msr0>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave0_dma: dma-controller@40d020000 { + compatible = "apple,t6000-ave-dma", "apple,ave-dma"; + reg = <0x4 0x0d020000 0x0 0x4000>, + <0x4 0x0d044000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc_sys>; + status = "disabled"; + }; + + apr1: video-codec@489000000 { + compatible = "apple,t6000-prores", "apple,prores"; + reg = <0x4 0x89000000 0x0 0x4000>, + <0x4 0x88000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_prores>; + iommus = <&apr1_dart 0>; + reg-names = "core", "wrapper"; + status = "disabled"; + }; + + apr1_dart: iommu@489008000 { + compatible = "apple,t8110-dart"; + reg = <0x4 0x89008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_prores>; + #iommu-cells = <1>; + status = "disabled"; + }; + + scaler1: scaler@505000000 { + compatible = "apple,t6000-scaler", "apple,scaler"; + reg = <0x5 0x05000000 0x0 0x28000>, + <0x5 0x05210000 0x0 0x4000>, + <0x5 0x05204000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + ; + power-domains = <&ps_msr1>, <&ps_msr1_ase_core>; + clocks = <&peripheral_clocks 356>; + iommus = <&scaler1_dart 0>, <&scaler1_dart 1>; + resets = <&ps_msr1>; + status = "disabled"; + }; + + scaler1_dart: iommu@505200000 { + compatible = "apple,t8110-dart"; + reg = <0x5 0x05200000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_msr1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave1_dma: dma-controller@507020000 { + compatible = "apple,t6000-ave-dma", "apple,ave-dma"; + reg = <0x5 0x07020000 0x0 0x4000>, + <0x5 0x07044000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc1_sys>; + status = "disabled"; + }; + + ave1_dart1: iommu@507030000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x07030000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc1_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave1_dart0: iommu@507040000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x07040000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc1_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave1: video-codec@507100000 { + compatible = "apple,t6000-ave"; + reg = <0x5 0x07100000 0x0 0x45c000>, + <0x5 0x07050000 0x0 0x8000>, + <0x5 0x07800000 0x0 0x800000>, + <0x2 0x8e680260 0x0 0x7dc4>, + <0x5 0x06000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + ; + power-domains = <&ps_venc1_dma>, <&ps_venc1_pipe4>, <&ps_venc1_pipe5>, <&ps_venc1_me0>, <&ps_venc1_me1>; + clocks = <&peripheral_clocks 454>; + iommus = <&ave1_dart0 0>, <&ave1_dart1 0>; + reg-names = "codec", "mailbox", "coproc", "pmgr", "pio"; + power-domain-names = "dma", "pipe4", "pipe5", "me0", "me1"; + status = "disabled"; + }; + + ane1_dart0: iommu@509800000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x09800000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane1_dma: dma-controller@509804000 { + compatible = "apple,t6000-ane-dma", "apple,ane-dma"; + reg = <0x5 0x09804000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys>; + status = "disabled"; + }; + + ane1_dart1: iommu@509810000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x09810000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane1_dart2: iommu@509820000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x09820000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane1: ane@509c04000 { + compatible = "apple,t6001-ane", "apple,ane"; + reg = <0x5 0x09c04000 0x0 0x24000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys_cpu>; + clocks = <&peripheral_clocks 318>, <&peripheral_clocks 319>, <&peripheral_clocks 320>, <&peripheral_clocks 321>; + iommus = <&ane1_dart0 0>, <&ane1_dart1 0>, <&ane1_dart2 0>; + reg-names = "engine"; + interrupt-names = "ane"; + status = "disabled"; + }; + + atc0_dpin0: displayport@701e50000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0x7 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + atc0_dpin1: displayport@701e58000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0x7 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + apciec0_piodma: dma-controller@722000000 { + compatible = "apple,t6000-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 = <&apciec0_dart 15>; + status = "disabled"; + }; + + atc1_dpin0: displayport@b01e50000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xb 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + atc1_dpin1: displayport@b01e58000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xb 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + apciec1_piodma: dma-controller@b22000000 { + compatible = "apple,t6000-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 = <&apciec1_dart 15>; + status = "disabled"; + }; + + atc2_dpin0: displayport@f01e50000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xf 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + atc2_dpin1: displayport@f01e58000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xf 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + apciec2_piodma: dma-controller@f22000000 { + compatible = "apple,t6000-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 = <&apciec2_dart 15>; + status = "disabled"; + }; +}; + +/ { + peripheral_clocks: clock-controller { + compatible = "apple,t6000-pmgr-clocks", "apple,pmgr-clocks"; + #clock-cells = <1>; + apple,pmgr = <&pmgr>; + status = "disabled"; + }; + + mcc: memory-controller@200000000 { + compatible = "apple,t6000-mcc", "apple,mcc"; + reg = <0x2 0x00000000 0x0 0x1000000>, + <0x2 0x01000000 0x0 0x1000000>, + <0x2 0x02000000 0x0 0x1000000>, + <0x2 0x03000000 0x0 0x1000000>, + <0x2 0x04000000 0x0 0x1000000>, + <0x2 0x05000000 0x0 0x1000000>, + <0x2 0x06000000 0x0 0x1000000>, + <0x2 0x07000000 0x0 0x1000000>; + status = "disabled"; + }; + + soc_events: event-log@28e080000 { + compatible = "apple,t6001-event-log", "apple,soc-event-log"; + reg = <0x2 0x8e080000 0x0 0x80000>, + <0x2 0x8e580000 0x0 0x80000>, + <0x2 0x8e680000 0x0 0x74000>, + <0x2 0x8e45c000 0x0 0x4000>, + <0x2 0x8e460000 0x0 0x4000>, + <0x2 0x8e464000 0x0 0x4000>, + <0x2 0x8e468000 0x0 0x4000>, + <0x2 0x8e46c000 0x0 0x4000>, + <0x2 0x8e458000 0x0 0x4000>, + <0x2 0x8e428000 0x0 0x8000>, + <0x2 0x8e430000 0x0 0x8000>, + <0x2 0x8e418000 0x0 0x8000>, + <0x2 0x8e410000 0x0 0x8000>, + <0x2 0x8e420000 0x0 0x8000>, + <0x2 0x8e400000 0x0 0x8000>, + <0x2 0x8e408000 0x0 0x8000>, + <0x2 0x8e438000 0x0 0x8000>, + <0x2 0x8e440000 0x0 0x8000>, + <0x2 0x92200000 0x0 0x80000>, + <0x2 0x8e000000 0x0 0x80000>, + <0x2 0x8e600000 0x0 0x4c000>, + <0x2 0x92280000 0x0 0x74000>, + <0x2 0x85838000 0x0 0x8000>, + <0x5 0x09838000 0x0 0x8000>, + <0x2 0x85868000 0x0 0x4000>, + <0x5 0x09868000 0x0 0x4000>, + <0x4 0x04e20000 0x0 0x4000>, + <0x4 0x04e20000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + status = "disabled"; + }; + + soc_errors: error-handler@395440000 { + compatible = "apple,t6001-error-handler", "apple,soc-error-handler"; + reg = <0x3 0x95440000 0x0 0x40000>, + <0x2 0x8e000000 0x0 0x80000>, + <0x2 0x8e080000 0x0 0x80000>, + <0x2 0x00000000 0x0 0x1000000>, + <0x2 0x01000000 0x0 0x1000000>, + <0x2 0x02000000 0x0 0x1000000>, + <0x2 0x03000000 0x0 0x1000000>, + <0x2 0x04000000 0x0 0x1000000>, + <0x2 0x05000000 0x0 0x1000000>, + <0x2 0x06000000 0x0 0x1000000>, + <0x2 0x07000000 0x0 0x1000000>, + <0x2 0x82000000 0x0 0x4000>, + <0x3 0x04000000 0x0 0x4000>, + <0x3 0x83000000 0x0 0x4000>, + <0x4 0x02000000 0x0 0x4000>, + <0x4 0x82000000 0x0 0x4000>, + <0x5 0x02000000 0x0 0x4000>, + <0x2 0x58d00000 0x0 0x20000>, + <0x2 0x59100000 0x0 0x20000>, + <0x2 0x5ad00000 0x0 0x20000>, + <0x2 0x5b100000 0x0 0x20000>, + <0x2 0x60000000 0x0 0x20000>, + <0x2 0x60000000 0x0 0x20000>, + <0x2 0x59500000 0x0 0x20000>, + <0x2 0x5b500000 0x0 0x20000>, + <0x2 0x5b900000 0x0 0x20000>, + <0x2 0x4fa00000 0x0 0x20000>, + <0x2 0x50a00000 0x0 0x20000>, + <0x2 0x50e00000 0x0 0x20000>, + <0x2 0x4fa80000 0x0 0x20000>, + <0x2 0x50a80000 0x0 0x20000>, + <0x2 0x64300000 0x0 0x20000>, + <0x2 0x65300000 0x0 0x20000>, + <0x2 0x64700000 0x0 0x20000>, + <0x2 0x66300000 0x0 0x20000>, + <0x2 0x65700000 0x0 0x20000>, + <0x2 0x67300000 0x0 0x20000>, + <0x2 0x6a300000 0x0 0x20000>, + <0x2 0x68600000 0x0 0x20000>, + <0x2 0x6b300000 0x0 0x20000>, + <0x2 0x69600000 0x0 0x20000>, + <0x2 0x64b00000 0x0 0x20000>, + <0x2 0x66700000 0x0 0x20000>, + <0x2 0x65b00000 0x0 0x20000>, + <0x2 0x67700000 0x0 0x20000>, + <0x2 0x6a700000 0x0 0x20000>, + <0x2 0x68a00000 0x0 0x20000>, + <0x2 0x6b700000 0x0 0x20000>, + <0x2 0x69a00000 0x0 0x20000>, + <0x2 0x58900000 0x0 0x20000>, + <0x2 0x5a900000 0x0 0x20000>, + <0x2 0x5c000000 0x0 0x20000>, + <0x2 0x5d000000 0x0 0x20000>, + <0x2 0x5e900000 0x0 0x20000>, + <0x2 0x5fc00000 0x0 0x20000>, + <0x2 0x61000000 0x0 0x20000>, + <0x2 0x62000000 0x0 0x20000>, + <0x2 0x4f600000 0x0 0x20000>, + <0x2 0x50600000 0x0 0x20000>, + <0x2 0x52000000 0x0 0x20000>, + <0x2 0x53000000 0x0 0x20000>, + <0x2 0x54600000 0x0 0x20000>, + <0x2 0x55600000 0x0 0x20000>, + <0x2 0x56000000 0x0 0x20000>, + <0x2 0x57000000 0x0 0x20000>, + <0x2 0x4f032000 0x0 0x1000>, + <0x2 0x4f332000 0x0 0x1000>, + <0x2 0x50032000 0x0 0x1000>, + <0x2 0x50332000 0x0 0x1000>, + <0x2 0x54032000 0x0 0x1000>, + <0x2 0x55032000 0x0 0x1000>, + <0x2 0x58032000 0x0 0x1000>, + <0x2 0x58332000 0x0 0x1000>, + <0x2 0x58632000 0x0 0x1000>, + <0x2 0x5a032000 0x0 0x1000>, + <0x2 0x5a332000 0x0 0x1000>, + <0x2 0x5a632000 0x0 0x1000>, + <0x2 0x5e032000 0x0 0x1000>, + <0x2 0x5f632000 0x0 0x1000>, + <0x2 0x5f032000 0x0 0x1000>, + <0x2 0x5f332000 0x0 0x1000>, + <0x2 0x5e332000 0x0 0x1000>, + <0x2 0x64032000 0x0 0x1000>, + <0x2 0x66032000 0x0 0x1000>, + <0x2 0x65032000 0x0 0x1000>, + <0x2 0x67032000 0x0 0x1000>, + <0x2 0x6a032000 0x0 0x1000>, + <0x2 0x68032000 0x0 0x1000>, + <0x2 0x6b032000 0x0 0x1000>, + <0x2 0x69032000 0x0 0x1000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + status = "disabled"; + }; + + pwm1: pwm@39b030000 { + compatible = "apple,t6000-pwm", "apple,pwm"; + reg = <0x3 0x9b030000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_fpwm1>; + status = "disabled"; + }; +}; + +&ave { + reg = <0x4 0x0d100000 0x0 0x45c000>, + <0x4 0x0d050000 0x0 0x8000>, + <0x4 0x0d800000 0x0 0x800000>, + <0x2 0x8e588000 0x0 0x24>, + <0x4 0x0c000000 0x0 0x1000000>; + reg-names = "codec", "mailbox", "coproc", "pmgr", "pio"; + clocks = <&peripheral_clocks 350>; +}; diff --git a/arch/arm64/boot/dts/apple/t6001.dtsi b/arch/arm64/boot/dts/apple/t6001.dtsi index e617f7f3f41a9..f7bc82bcd2c40 100644 --- a/arch/arm64/boot/dts/apple/t6001.dtsi +++ b/arch/arm64/boot/dts/apple/t6001.dtsi @@ -148,3 +148,12 @@ power-domains = <&ps_ane_sys_cpu>, <&ps_ane_set1>, <&ps_ane_set2>, <&ps_ane_set3>, <&ps_ane_set4>, <&ps_pms_sram>; }; + +#ifndef APPLE_T6000_SUBSET +#include "t6001-peripherals.dtsi" +#include "t6001-aux-spmi.dtsi" +#include "t6001-display-extra.dtsi" +#include "t6001-firmware-interfaces.dtsi" +#include "t6001-cpu-debug.dtsi" +#include "t6001-cpu-registers.dtsi" +#endif diff --git a/arch/arm64/boot/dts/apple/t6002-aux-spmi.dtsi b/arch/arm64/boot/dts/apple/t6002-aux-spmi.dtsi new file mode 100644 index 0000000000000..0c7f7a55e69e3 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6002-aux-spmi.dtsi @@ -0,0 +1,267 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Disabled auxiliary SPMI resources; primary polled PMIC access is retained. */ + +&die0 { + primary_spmi_monitor: spmi-monitor@2920a0e00 { + compatible = "apple,t6000-spmi-monitor", "apple,spmi-monitor"; + reg = <0x2 0x920a0e00 0x0 0x100>, + <0x2 0x920a0400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + apple,controller = <&nub_spmi0>; + status = "disabled"; + }; + + clvr_spmi3: spmi@28e519100 { + compatible = "apple,t6000-spmi", "apple,t8103-spmi"; + reg = <0x2 0x8e519100 0x0 0x100>, + <0x2 0x8e518e00 0x0 0x100>, + <0x2 0x8e518400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + #address-cells = <2>; + #size-cells = <0>; + status = "disabled"; + pmic@f { + compatible = "apple,monaco-pmic", "apple,spmi-nvmem"; + reg = <0xf SPMI_USID>; + status = "disabled"; + }; + }; + + clvr_spmi4: spmi@28e521100 { + compatible = "apple,t6000-spmi", "apple,t8103-spmi"; + reg = <0x2 0x8e521100 0x0 0x100>, + <0x2 0x8e520e00 0x0 0x100>, + <0x2 0x8e520400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + #address-cells = <2>; + #size-cells = <0>; + status = "disabled"; + pmic@f { + compatible = "apple,monaco-pmic", "apple,spmi-nvmem"; + reg = <0xf SPMI_USID>; + status = "disabled"; + }; + }; +}; + +&die1 { + nub_spmi0_die1: spmi@2920a1300 { + compatible = "apple,t6000-spmi", "apple,t8103-spmi"; + reg = <0x2 0x920a1300 0x0 0x100>, + <0x2 0x920a0e00 0x0 0x100>, + <0x2 0x920a0400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + #address-cells = <2>; + #size-cells = <0>; + status = "disabled"; + pmic@f { + compatible = "apple,maverick-pmic", "apple,spmi-nvmem"; + reg = <0xf SPMI_USID>; + status = "disabled"; + }; + }; + + nub_spmi1_die1: spmi@2920a9300 { + compatible = "apple,t6000-spmi", "apple,t8103-spmi"; + reg = <0x2 0x920a9300 0x0 0x100>, + <0x2 0x920a8e00 0x0 0x100>, + <0x2 0x920a8400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + #address-cells = <2>; + #size-cells = <0>; + status = "disabled"; + pmic@e { + compatible = "apple,maverick-pmic", "apple,spmi-nvmem"; + reg = <0xe SPMI_USID>; + status = "disabled"; + }; + }; + + clvr_spmi0_die1: spmi@28e501100 { + compatible = "apple,t6000-spmi", "apple,t8103-spmi"; + reg = <0x2 0x8e501100 0x0 0x100>, + <0x2 0x8e500e00 0x0 0x100>, + <0x2 0x8e500400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + #address-cells = <2>; + #size-cells = <0>; + status = "disabled"; + pmic@f { + compatible = "apple,monaco-pmic", "apple,spmi-nvmem"; + reg = <0xf SPMI_USID>; + status = "disabled"; + }; + }; + + clvr_spmi1_die1: spmi@28e509100 { + compatible = "apple,t6000-spmi", "apple,t8103-spmi"; + reg = <0x2 0x8e509100 0x0 0x100>, + <0x2 0x8e508e00 0x0 0x100>, + <0x2 0x8e508400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + #address-cells = <2>; + #size-cells = <0>; + status = "disabled"; + pmic@f { + compatible = "apple,monaco-pmic", "apple,spmi-nvmem"; + reg = <0xf SPMI_USID>; + status = "disabled"; + }; + }; + + clvr_spmi2_die1: spmi@28e511100 { + compatible = "apple,t6000-spmi", "apple,t8103-spmi"; + reg = <0x2 0x8e511100 0x0 0x100>, + <0x2 0x8e510e00 0x0 0x100>, + <0x2 0x8e510400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + #address-cells = <2>; + #size-cells = <0>; + status = "disabled"; + pmic@f { + compatible = "apple,monaco-pmic", "apple,spmi-nvmem"; + reg = <0xf SPMI_USID>; + status = "disabled"; + }; + }; + + clvr_spmi3_die1: spmi@28e519100 { + compatible = "apple,t6000-spmi", "apple,t8103-spmi"; + reg = <0x2 0x8e519100 0x0 0x100>, + <0x2 0x8e518e00 0x0 0x100>, + <0x2 0x8e518400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + #address-cells = <2>; + #size-cells = <0>; + status = "disabled"; + pmic@f { + compatible = "apple,monaco-pmic", "apple,spmi-nvmem"; + reg = <0xf SPMI_USID>; + status = "disabled"; + }; + }; + + clvr_spmi4_die1: spmi@28e521100 { + compatible = "apple,t6000-spmi", "apple,t8103-spmi"; + reg = <0x2 0x8e521100 0x0 0x100>, + <0x2 0x8e520e00 0x0 0x100>, + <0x2 0x8e520400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + #address-cells = <2>; + #size-cells = <0>; + status = "disabled"; + pmic@f { + compatible = "apple,monaco-pmic", "apple,spmi-nvmem"; + reg = <0xf SPMI_USID>; + status = "disabled"; + }; + }; +}; + +&nub_spmi1 { + reg = <0x2 0x920a9300 0x0 0x100>, + <0x2 0x920a8e00 0x0 0x100>, + <0x2 0x920a8400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + spmi-device@d { + compatible = "apple,t6000-viper-spmi", "apple,viper-spmi"; + reg = <0xd SPMI_USID>; + status = "disabled"; + }; +}; + +&clvr_spmi0 { + reg = <0x2 0x8e501100 0x0 0x100>, + <0x2 0x8e500e00 0x0 0x100>, + <0x2 0x8e500400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; +}; + +&clvr_spmi1 { + reg = <0x2 0x8e509100 0x0 0x100>, + <0x2 0x8e508e00 0x0 0x100>, + <0x2 0x8e508400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; +}; + +&clvr_spmi2 { + reg = <0x2 0x8e511100 0x0 0x100>, + <0x2 0x8e510e00 0x0 0x100>, + <0x2 0x8e510400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; +}; + +&aop_spmi0 { + reg = <0x2 0x93829300 0x0 0x100>, + <0x2 0x93828e00 0x0 0x100>, + <0x2 0x93828400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + spmi-device@e { + compatible = "apple,t6000-wifibt-pmu", "apple,radio-pmu"; + reg = <0xe SPMI_USID>; + status = "disabled"; + }; + spmi-device@f { + compatible = "apple,t6000-uwb-pmu", "apple,radio-pmu"; + reg = <0xf SPMI_USID>; + status = "disabled"; + }; +}; + +&aop_spmi1 { + reg = <0x2 0x9382d300 0x0 0x100>, + <0x2 0x9382ce00 0x0 0x100>, + <0x2 0x9382c400 0x0 0x78>; + interrupt-parent = <&aic>; + interrupts = ; + interrupt-controller; + #interrupt-cells = <2>; + nfc@c { + compatible = "apple,t6000-stockholm-spmi-v1", "apple,stockholm-spmi-v1"; + reg = <0xc SPMI_USID>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6002-cpu-debug.dtsi b/arch/arm64/boot/dts/apple/t6002-cpu-debug.dtsi new file mode 100644 index 0000000000000..455b74bd29732 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6002-cpu-debug.dtsi @@ -0,0 +1,31 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Explicit CPU register descriptors; no firmware debug sequences. */ + +/ { + cpu_debug: debug-controller@210010000 { + compatible = "apple,t6000-cpu-debug", "apple,cpu-debug"; + reg = <0x2 0x10010000 0x0 0x300c8>, + <0x2 0x10110000 0x0 0x300c8>, + <0x2 0x11010000 0x0 0x300c8>, + <0x2 0x11110000 0x0 0x300c8>, + <0x2 0x11210000 0x0 0x300c8>, + <0x2 0x11310000 0x0 0x300c8>, + <0x2 0x12010000 0x0 0x300c8>, + <0x2 0x12110000 0x0 0x300c8>, + <0x2 0x12210000 0x0 0x300c8>, + <0x2 0x12310000 0x0 0x300c8>, + <0x22 0x10010000 0x0 0x300c8>, + <0x22 0x10110000 0x0 0x300c8>, + <0x22 0x11010000 0x0 0x300c8>, + <0x22 0x11110000 0x0 0x300c8>, + <0x22 0x11210000 0x0 0x300c8>, + <0x22 0x11310000 0x0 0x300c8>, + <0x22 0x12010000 0x0 0x300c8>, + <0x22 0x12110000 0x0 0x300c8>, + <0x22 0x12210000 0x0 0x300c8>, + <0x22 0x12310000 0x0 0x300c8>; + reg-names = "cpu0-coresight", "cpu1-coresight", "cpu2-coresight", "cpu3-coresight", "cpu4-coresight", "cpu5-coresight", "cpu6-coresight", "cpu7-coresight", "cpu8-coresight", "cpu9-coresight", "cpu10-coresight", "cpu11-coresight", "cpu12-coresight", "cpu13-coresight", "cpu14-coresight", "cpu15-coresight", "cpu16-coresight", "cpu17-coresight", "cpu18-coresight", "cpu19-coresight"; + apple,cpu-ids = /bits/ 64 <0x0 0x1 0x100 0x101 0x102 0x103 0x200 0x201 0x202 0x203 0x800 0x801 0x900 0x901 0x902 0x903 0xa00 0xa01 0xa02 0xa03>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6002-cpu-registers.dtsi b/arch/arm64/boot/dts/apple/t6002-cpu-registers.dtsi new file mode 100644 index 0000000000000..163390245735e --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6002-cpu-registers.dtsi @@ -0,0 +1,142 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Address/length metadata only; implementation programming stays in drivers. */ + +&{/cpus/cpu@0} { + apple,firmware-cpu-id = <0x0>; + apple,implementation-registers = /bits/ 64 <0x210050000 0x9008>; + apple,acc-registers = /bits/ 64 <0x210f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x210e40000 0x9010>; +}; + +&{/cpus/cpu@1} { + apple,firmware-cpu-id = <0x1>; + apple,implementation-registers = /bits/ 64 <0x210150000 0x9008>; + apple,acc-registers = /bits/ 64 <0x210f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x210e40000 0x9010>; +}; + +&{/cpus/cpu@10100} { + apple,firmware-cpu-id = <0x100>; + apple,implementation-registers = /bits/ 64 <0x211050000 0x9008>; + apple,acc-registers = /bits/ 64 <0x211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x211e40000 0x9010>; +}; + +&{/cpus/cpu@10101} { + apple,firmware-cpu-id = <0x101>; + apple,implementation-registers = /bits/ 64 <0x211150000 0x9008>; + apple,acc-registers = /bits/ 64 <0x211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x211e40000 0x9010>; +}; + +&{/cpus/cpu@10102} { + apple,firmware-cpu-id = <0x102>; + apple,implementation-registers = /bits/ 64 <0x211250000 0x9008>; + apple,acc-registers = /bits/ 64 <0x211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x211e40000 0x9010>; +}; + +&{/cpus/cpu@10103} { + apple,firmware-cpu-id = <0x103>; + apple,implementation-registers = /bits/ 64 <0x211350000 0x9008>; + apple,acc-registers = /bits/ 64 <0x211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x211e40000 0x9010>; +}; + +&{/cpus/cpu@10200} { + apple,firmware-cpu-id = <0x200>; + apple,implementation-registers = /bits/ 64 <0x212050000 0x9008>; + apple,acc-registers = /bits/ 64 <0x212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x212e40000 0x9010>; +}; + +&{/cpus/cpu@10201} { + apple,firmware-cpu-id = <0x201>; + apple,implementation-registers = /bits/ 64 <0x212150000 0x9008>; + apple,acc-registers = /bits/ 64 <0x212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x212e40000 0x9010>; +}; + +&{/cpus/cpu@10202} { + apple,firmware-cpu-id = <0x202>; + apple,implementation-registers = /bits/ 64 <0x212250000 0x9008>; + apple,acc-registers = /bits/ 64 <0x212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x212e40000 0x9010>; +}; + +&{/cpus/cpu@10203} { + apple,firmware-cpu-id = <0x203>; + apple,implementation-registers = /bits/ 64 <0x212350000 0x9008>; + apple,acc-registers = /bits/ 64 <0x212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x212e40000 0x9010>; +}; + +&{/cpus/cpu@800} { + apple,firmware-cpu-id = <0x800>; + apple,implementation-registers = /bits/ 64 <0x2210050000 0x9008>; + apple,acc-registers = /bits/ 64 <0x2210f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x2210e40000 0x9010>; +}; + +&{/cpus/cpu@801} { + apple,firmware-cpu-id = <0x801>; + apple,implementation-registers = /bits/ 64 <0x2210150000 0x9008>; + apple,acc-registers = /bits/ 64 <0x2210f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x2210e40000 0x9010>; +}; + +&{/cpus/cpu@10900} { + apple,firmware-cpu-id = <0x900>; + apple,implementation-registers = /bits/ 64 <0x2211050000 0x9008>; + apple,acc-registers = /bits/ 64 <0x2211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x2211e40000 0x9010>; +}; + +&{/cpus/cpu@10901} { + apple,firmware-cpu-id = <0x901>; + apple,implementation-registers = /bits/ 64 <0x2211150000 0x9008>; + apple,acc-registers = /bits/ 64 <0x2211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x2211e40000 0x9010>; +}; + +&{/cpus/cpu@10902} { + apple,firmware-cpu-id = <0x902>; + apple,implementation-registers = /bits/ 64 <0x2211250000 0x9008>; + apple,acc-registers = /bits/ 64 <0x2211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x2211e40000 0x9010>; +}; + +&{/cpus/cpu@10903} { + apple,firmware-cpu-id = <0x903>; + apple,implementation-registers = /bits/ 64 <0x2211350000 0x9008>; + apple,acc-registers = /bits/ 64 <0x2211f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x2211e40000 0x9010>; +}; + +&{/cpus/cpu@10a00} { + apple,firmware-cpu-id = <0xa00>; + apple,implementation-registers = /bits/ 64 <0x2212050000 0x9008>; + apple,acc-registers = /bits/ 64 <0x2212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x2212e40000 0x9010>; +}; + +&{/cpus/cpu@10a01} { + apple,firmware-cpu-id = <0xa01>; + apple,implementation-registers = /bits/ 64 <0x2212150000 0x9008>; + apple,acc-registers = /bits/ 64 <0x2212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x2212e40000 0x9010>; +}; + +&{/cpus/cpu@10a02} { + apple,firmware-cpu-id = <0xa02>; + apple,implementation-registers = /bits/ 64 <0x2212250000 0x9008>; + apple,acc-registers = /bits/ 64 <0x2212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x2212e40000 0x9010>; +}; + +&{/cpus/cpu@10a03} { + apple,firmware-cpu-id = <0xa03>; + apple,implementation-registers = /bits/ 64 <0x2212350000 0x9008>; + apple,acc-registers = /bits/ 64 <0x2212f00000 0x40088>; + apple,cpm-registers = /bits/ 64 <0x2212e40000 0x9010>; +}; diff --git a/arch/arm64/boot/dts/apple/t6002-display-extra.dtsi b/arch/arm64/boot/dts/apple/t6002-display-extra.dtsi new file mode 100644 index 0000000000000..17cc7c497550c --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6002-display-extra.dtsi @@ -0,0 +1,262 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Additional display engines; firmware and route ownership are unqualified. */ + +&die0 { + dispext2_dart: iommu@48b304000 { + compatible = "apple,t6000-display-dart", "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x8b304000 0x0 0x4000>, + <0x4 0x8b300000 0x0 0x4000>; + reg-names = "dart", "auxiliary"; + #iommu-cells = <5>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dispext2_cpu0>; + status = "disabled"; + }; + + dcpext2_dart: iommu@48b30c000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x8b30c000 0x0 0x4000>; + #iommu-cells = <5>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dispext2_cpu0>; + status = "disabled"; + }; + + dcpext2_mbox: mailbox@48bc08000 { + compatible = "apple,t6000-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x4 0x8bc08000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + ; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + power-domains = <&ps_dispext2_cpu0>; + resets = <&ps_dispext2_cpu0>; + status = "disabled"; + }; + + dcpext2: dcp@48bc00000 { + compatible = "apple,t6000-dcpext", "apple,dcpext"; + reg = <0x4 0x8bc00000 0x0 0x4000>, + <0x4 0x8a000000 0x0 0x3000000>, + <0x4 0x8b320000 0x0 0x4000>, + <0x4 0x8b344000 0x0 0x4000>, + <0x4 0x8b800000 0x0 0x800000>, + <0x2 0x8e3d0000 0x0 0x4000>, + <0x4 0x8b850000 0x0 0x4000>; + reg-names = "coproc", "disp-0", "disp-1", "disp-2", + "disp-3", "disp-4", "coproc-aux"; + mboxes = <&dcpext2_mbox>; + mbox-names = "mbox"; + iommus = <&dcpext2_dart 0 0x0 0x0 0x0 0xfc000000>; + power-domains = <&ps_dispext2_cpu0>; + resets = <&ps_dispext2_cpu0>; + apple,dcp-index = <3>; + phandle = <&dcpext2>; + status = "disabled"; + + piodma { + iommus = <&dispext2_dart 4 0x0 0x0 0x0 0xfc000000>; + status = "disabled"; + }; + }; + + dispext3_dart: iommu@48e304000 { + compatible = "apple,t6000-display-dart", "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x8e304000 0x0 0x4000>, + <0x4 0x8e300000 0x0 0x4000>; + reg-names = "dart", "auxiliary"; + #iommu-cells = <5>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dispext3_cpu0>; + status = "disabled"; + }; + + dcpext3_dart: iommu@48e30c000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x8e30c000 0x0 0x4000>; + #iommu-cells = <5>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dispext3_cpu0>; + status = "disabled"; + }; + + dcpext3_mbox: mailbox@48ec08000 { + compatible = "apple,t6000-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x4 0x8ec08000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + ; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + power-domains = <&ps_dispext3_cpu0>; + resets = <&ps_dispext3_cpu0>; + status = "disabled"; + }; + + dcpext3: dcp@48ec00000 { + compatible = "apple,t6000-dcpext", "apple,dcpext"; + reg = <0x4 0x8ec00000 0x0 0x4000>, + <0x4 0x8d000000 0x0 0x3000000>, + <0x4 0x8e320000 0x0 0x4000>, + <0x4 0x8e344000 0x0 0x4000>, + <0x4 0x8e800000 0x0 0x800000>, + <0x2 0x8e3d0000 0x0 0x4000>, + <0x4 0x8e850000 0x0 0x4000>; + reg-names = "coproc", "disp-0", "disp-1", "disp-2", + "disp-3", "disp-4", "coproc-aux"; + mboxes = <&dcpext3_mbox>; + mbox-names = "mbox"; + iommus = <&dcpext3_dart 0 0x0 0x0 0x0 0xfc000000>; + power-domains = <&ps_dispext3_cpu0>; + resets = <&ps_dispext3_cpu0>; + apple,dcp-index = <4>; + phandle = <&dcpext3>; + status = "disabled"; + + piodma { + iommus = <&dispext3_dart 4 0x0 0x0 0x0 0xfc000000>; + status = "disabled"; + }; + }; +}; + +&die1 { + dispext6_dart: iommu@48b304000 { + compatible = "apple,t6000-display-dart", "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x8b304000 0x0 0x4000>, + <0x4 0x8b300000 0x0 0x4000>; + reg-names = "dart", "auxiliary"; + #iommu-cells = <5>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dispext2_cpu0_die1>; + status = "disabled"; + }; + + dcpext6_dart: iommu@48b30c000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x8b30c000 0x0 0x4000>; + #iommu-cells = <5>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dispext2_cpu0_die1>; + status = "disabled"; + }; + + dcpext6_mbox: mailbox@48bc08000 { + compatible = "apple,t6000-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x4 0x8bc08000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + ; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + power-domains = <&ps_dispext2_cpu0_die1>; + resets = <&ps_dispext2_cpu0_die1>; + status = "disabled"; + }; + + dcpext6: dcp@48bc00000 { + compatible = "apple,t6000-dcpext", "apple,dcpext"; + reg = <0x4 0x8bc00000 0x0 0x4000>, + <0x4 0x8a000000 0x0 0x3000000>, + <0x4 0x8b320000 0x0 0x4000>, + <0x4 0x8b344000 0x0 0x4000>, + <0x4 0x8b800000 0x0 0x800000>, + <0x2 0x8e3d0000 0x0 0x4000>, + <0x4 0x8b850000 0x0 0x4000>; + reg-names = "coproc", "disp-0", "disp-1", "disp-2", + "disp-3", "disp-4", "coproc-aux"; + mboxes = <&dcpext6_mbox>; + mbox-names = "mbox"; + iommus = <&dcpext6_dart 0 0x0 0x0 0x0 0xfc000000>; + power-domains = <&ps_dispext2_cpu0_die1>; + resets = <&ps_dispext2_cpu0_die1>; + apple,dcp-index = <3>; + phandle = <&dcpext6>; + status = "disabled"; + + piodma { + iommus = <&dispext6_dart 4 0x0 0x0 0x0 0xfc000000>; + status = "disabled"; + }; + }; + + dispext7_dart: iommu@48e304000 { + compatible = "apple,t6000-display-dart", "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x8e304000 0x0 0x4000>, + <0x4 0x8e300000 0x0 0x4000>; + reg-names = "dart", "auxiliary"; + #iommu-cells = <5>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dispext3_cpu0_die1>; + status = "disabled"; + }; + + dcpext7_dart: iommu@48e30c000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x8e30c000 0x0 0x4000>; + #iommu-cells = <5>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dispext3_cpu0_die1>; + status = "disabled"; + }; + + dcpext7_mbox: mailbox@48ec08000 { + compatible = "apple,t6000-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x4 0x8ec08000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + ; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + power-domains = <&ps_dispext3_cpu0_die1>; + resets = <&ps_dispext3_cpu0_die1>; + status = "disabled"; + }; + + dcpext7: dcp@48ec00000 { + compatible = "apple,t6000-dcpext", "apple,dcpext"; + reg = <0x4 0x8ec00000 0x0 0x4000>, + <0x4 0x8d000000 0x0 0x3000000>, + <0x4 0x8e320000 0x0 0x4000>, + <0x4 0x8e344000 0x0 0x4000>, + <0x4 0x8e800000 0x0 0x800000>, + <0x2 0x8e3d0000 0x0 0x4000>, + <0x4 0x8e850000 0x0 0x4000>; + reg-names = "coproc", "disp-0", "disp-1", "disp-2", + "disp-3", "disp-4", "coproc-aux"; + mboxes = <&dcpext7_mbox>; + mbox-names = "mbox"; + iommus = <&dcpext7_dart 0 0x0 0x0 0x0 0xfc000000>; + power-domains = <&ps_dispext3_cpu0_die1>; + resets = <&ps_dispext3_cpu0_die1>; + apple,dcp-index = <4>; + phandle = <&dcpext7>; + status = "disabled"; + + piodma { + iommus = <&dispext7_dart 4 0x0 0x0 0x0 0xfc000000>; + status = "disabled"; + }; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6002-firmware-interfaces.dtsi b/arch/arm64/boot/dts/apple/t6002-firmware-interfaces.dtsi new file mode 100644 index 0000000000000..4e250d79d709d --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6002-firmware-interfaces.dtsi @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Firmware-owned interfaces with no AP MMIO aperture in the hardware data. */ + +/ { + processor_trace: processor-trace { + compatible = "apple,t6000-processor-trace", "apple,processor-trace"; + status = "disabled"; + }; + + sac_manager: sac-manager { + compatible = "apple,t6000-sac-manager", "apple,sac-manager"; + status = "disabled"; + }; + nub_swd0: debug-port { + compatible = "apple,t6000-debug-port", "apple,debug-port"; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6002-j375d-control.dtsi b/arch/arm64/boot/dts/apple/t6002-j375d-control.dtsi new file mode 100644 index 0000000000000..dc1ca66240a53 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6002-j375d-control.dtsi @@ -0,0 +1,18 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Populated board control clients. Transport ownership is not transferred. */ + +&i2c4 { + sd_card_control: sd-card-control@20 { + compatible = "apple,t6000-sd-card-control", "apple,sd-card-control"; + reg = <0x20>; + status = "disabled"; + }; +}; + +&i2c5 { + ethernet_sideband: ethernet-sideband@32 { + compatible = "apple,t6000-aqc107-i2c", "apple,aqc107-i2c"; + reg = <0x32>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6002-j375d.dts b/arch/arm64/boot/dts/apple/t6002-j375d.dts index 885744417f0ab..a16df355852ef 100644 --- a/arch/arm64/boot/dts/apple/t6002-j375d.dts +++ b/arch/arm64/boot/dts/apple/t6002-j375d.dts @@ -300,3 +300,5 @@ }; #include "hwmon-fan-dual.dtsi" + +#include "t6002-j375d-control.dtsi" diff --git a/arch/arm64/boot/dts/apple/t6002-peripherals.dtsi b/arch/arm64/boot/dts/apple/t6002-peripherals.dtsi new file mode 100644 index 0000000000000..8dc4ec73d42b3 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6002-peripherals.dtsi @@ -0,0 +1,1801 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Disabled resource descriptions for T6002. */ + +&die0 { + ane0_dma: dma-controller@285804000 { + compatible = "apple,t6000-ane-dma", "apple,ane-dma"; + reg = <0x2 0x85804000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane_sys>; + status = "disabled"; + }; + + aic_timebase: timer@28e148000 { + compatible = "apple,t6000-aic-timebase", "apple,aic-timebase"; + reg = <0x2 0x8e148000 0x0 0x1000>; + status = "disabled"; + }; + + dwi: bus-controller@28e208000 { + compatible = "apple,t6000-dwi", "apple,dwi"; + reg = <0x2 0x8e208000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_dwi>; + status = "disabled"; + }; + + dockchannel_uart: fifo@29250c000 { + compatible = "apple,t6000-dockchannel", "apple,dockchannel"; + reg = <0x2 0x9250c000 0x0 0x18>; + interrupt-parent = <&aic>; + interrupts = ; + reg-names = "irq"; + ranges = <0 0x2 0x92528000 0x10004>; + #address-cells = <1>; + #size-cells = <1>; + interrupt-controller; + #interrupt-cells = <2>; + status = "disabled"; + }; + + ausb_phy0: phy@30d000000 { + compatible = "apple,t6000-ausb-phy", "apple,ausb-phy"; + reg = <0x3 0x0d000000 0x0 0x4000>; + power-domains = <&ps_c0_usbctl>; + #phy-cells = <0>; + phys = <&ausb_usb3phy>; + status = "disabled"; + }; + + ausb_drd0: usb@30d010000 { + compatible = "apple,t6000-ausb-drd", "apple,ausb-drd"; + reg = <0x3 0x0d010000 0x0 0x11800>, + <0x3 0x0d020000 0x0 0x4000>, + <0x3 0x0d01c100 0x0 0x4000>, + <0x3 0x0d000000 0x0 0x2c000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + ; + power-domains = <&ps_c0_usb31drd>; + iommus = <&ausb0_dart0 3>, <&ausb0_dart1 3>; + phys = <&ausb_phy0>; + status = "disabled"; + }; + + ausb0_dart0: iommu@30d024000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x3 0x0d024000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ausb0_dart1: iommu@30d028000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x3 0x0d028000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ausb_phy1: phy@30d400000 { + compatible = "apple,t6000-ausb-phy", "apple,ausb-phy"; + reg = <0x3 0x0d400000 0x0 0x4000>; + power-domains = <&ps_c1_usbctl>; + #phy-cells = <0>; + phys = <&ausb_usb3phy>; + status = "disabled"; + }; + + ausb_drd1: usb@30d410000 { + compatible = "apple,t6000-ausb-drd", "apple,ausb-drd"; + reg = <0x3 0x0d410000 0x0 0x11800>, + <0x3 0x0d420000 0x0 0x4000>, + <0x3 0x0d41c100 0x0 0x4000>, + <0x3 0x0d400000 0x0 0x2c000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + ; + power-domains = <&ps_c1_usb31drd>; + iommus = <&ausb1_dart0 3>, <&ausb1_dart1 3>; + phys = <&ausb_phy1>; + status = "disabled"; + }; + + ausb1_dart0: iommu@30d424000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x3 0x0d424000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ausb1_dart1: iommu@30d428000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x3 0x0d428000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ausb_usb3phy: phy@30d900000 { + compatible = "apple,t6000-ausb-usb3-phy", "apple,ausb-usb3-phy"; + reg = <0x3 0x0d900000 0x0 0x4000>, + <0x3 0x0d980000 0x0 0x4000>, + <0x3 0x0d982000 0x0 0x4000>, + <0x3 0x0d982200 0x0 0x4000>, + <0x3 0x0d982800 0x0 0x4000>, + <0x3 0x0d982a00 0x0 0x4000>, + <0x3 0x0d980a00 0x0 0x4000>, + <0x3 0x0d980800 0x0 0x4000>, + <0x3 0x0d98d000 0x0 0x4000>, + <0x3 0x0d994000 0x0 0x4000>, + <0x3 0x0d98c000 0x0 0x4000>, + <0x3 0x0d993000 0x0 0x4000>, + <0x3 0x0d98b000 0x0 0x4000>, + <0x3 0x0d992000 0x0 0x4000>, + <0x3 0x0d989000 0x0 0x4000>, + <0x3 0x0d990000 0x0 0x4000>, + <0x3 0x0d981000 0x0 0x4000>, + <0x2 0x922bc000 0x0 0x2000>, + <0x3 0x0c000000 0x0 0x1000000>, + <0x3 0x0d98a000 0x0 0x4000>, + <0x3 0x0d991000 0x0 0x4000>; + power-domains = <&ps_gp_usb_aon>, <&ps_usb>; + #phy-cells = <0>; + status = "disabled"; + }; + + apr0: video-codec@311000000 { + compatible = "apple,t6000-prores", "apple,prores"; + reg = <0x3 0x11000000 0x0 0x4000>, + <0x3 0x10000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_scodec>; + iommus = <&apr0_dart 0>; + reg-names = "core", "wrapper"; + status = "disabled"; + }; + + apr0_dart: iommu@311008000 { + compatible = "apple,t8110-dart"; + reg = <0x3 0x11008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_scodec>; + #iommu-cells = <1>; + status = "disabled"; + }; + + aes: crypto@39b060000 { + compatible = "apple,t6000-aes", "apple,aes"; + reg = <0x3 0x9b060000 0x0 0x4000>, + <0x2 0x922d0000 0x0 0x8000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_aes>; + iommus = <&sio_dart_0 1>, <&sio_dart_1 1>; + status = "disabled"; + }; + + jpeg0: jpeg@409000000 { + compatible = "apple,t6000-jpeg", "apple,jpeg"; + reg = <0x4 0x09000000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + clocks = <&peripheral_clocks 354>, <&peripheral_clocks 355>; + iommus = <&jpeg0_dart 0>; + status = "disabled"; + }; + + jpeg0_dart: iommu@409004000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x09004000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + #iommu-cells = <1>; + status = "disabled"; + }; + + jpeg1: jpeg@409008000 { + compatible = "apple,t6000-jpeg", "apple,jpeg"; + reg = <0x4 0x09008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + clocks = <&peripheral_clocks 354>, <&peripheral_clocks 355>; + iommus = <&jpeg1_dart 0>; + status = "disabled"; + }; + + jpeg1_dart: iommu@40900c000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x0900c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg>; + #iommu-cells = <1>; + status = "disabled"; + }; + + scaler0: scaler@40b000000 { + compatible = "apple,t6000-scaler", "apple,scaler"; + reg = <0x4 0x0b000000 0x0 0x28000>, + <0x4 0x0b210000 0x0 0x4000>, + <0x4 0x0b204000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + ; + power-domains = <&ps_msr0>, <&ps_msr0_ase_core>; + clocks = <&peripheral_clocks 356>; + iommus = <&scaler0_dart 0>, <&scaler0_dart 1>; + resets = <&ps_msr0>; + status = "disabled"; + }; + + scaler0_dart: iommu@40b200000 { + compatible = "apple,t8110-dart"; + reg = <0x4 0x0b200000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_msr0>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave0_dma: dma-controller@40d020000 { + compatible = "apple,t6000-ave-dma", "apple,ave-dma"; + reg = <0x4 0x0d020000 0x0 0x4000>, + <0x4 0x0d044000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc_sys>; + status = "disabled"; + }; + + apr1: video-codec@489000000 { + compatible = "apple,t6000-prores", "apple,prores"; + reg = <0x4 0x89000000 0x0 0x4000>, + <0x4 0x88000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_prores>; + iommus = <&apr1_dart 0>; + reg-names = "core", "wrapper"; + status = "disabled"; + }; + + apr1_dart: iommu@489008000 { + compatible = "apple,t8110-dart"; + reg = <0x4 0x89008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_prores>; + #iommu-cells = <1>; + status = "disabled"; + }; + + scaler1: scaler@505000000 { + compatible = "apple,t6000-scaler", "apple,scaler"; + reg = <0x5 0x05000000 0x0 0x28000>, + <0x5 0x05210000 0x0 0x4000>, + <0x5 0x05204000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + ; + power-domains = <&ps_msr1>, <&ps_msr1_ase_core>; + clocks = <&peripheral_clocks 356>; + iommus = <&scaler1_dart 0>, <&scaler1_dart 1>; + resets = <&ps_msr1>; + status = "disabled"; + }; + + scaler1_dart: iommu@505200000 { + compatible = "apple,t8110-dart"; + reg = <0x5 0x05200000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_msr1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave1_dma: dma-controller@507020000 { + compatible = "apple,t6000-ave-dma", "apple,ave-dma"; + reg = <0x5 0x07020000 0x0 0x4000>, + <0x5 0x07044000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc1_sys>; + status = "disabled"; + }; + + ave1_dart1: iommu@507030000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x07030000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc1_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave1_dart0: iommu@507040000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x07040000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc1_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave1: video-codec@507100000 { + compatible = "apple,t6000-ave"; + reg = <0x5 0x07100000 0x0 0x45c000>, + <0x5 0x07050000 0x0 0x8000>, + <0x5 0x07800000 0x0 0x800000>, + <0x2 0x8e680260 0x0 0x7dc4>, + <0x5 0x06000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + ; + power-domains = <&ps_venc1_dma>, <&ps_venc1_pipe4>, <&ps_venc1_pipe5>, <&ps_venc1_me0>, <&ps_venc1_me1>; + clocks = <&peripheral_clocks 454>; + iommus = <&ave1_dart0 0>, <&ave1_dart1 0>; + reg-names = "codec", "mailbox", "coproc", "pmgr", "pio"; + power-domain-names = "dma", "pipe4", "pipe5", "me0", "me1"; + status = "disabled"; + }; + + ane1_dart0: iommu@509800000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x09800000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane1_dma: dma-controller@509804000 { + compatible = "apple,t6000-ane-dma", "apple,ane-dma"; + reg = <0x5 0x09804000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys>; + status = "disabled"; + }; + + ane1_dart1: iommu@509810000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x09810000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane1_dart2: iommu@509820000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x09820000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane1: ane@509c04000 { + compatible = "apple,t6001-ane", "apple,ane"; + reg = <0x5 0x09c04000 0x0 0x24000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys_cpu>; + clocks = <&peripheral_clocks 318>, <&peripheral_clocks 319>, <&peripheral_clocks 320>, <&peripheral_clocks 321>; + iommus = <&ane1_dart0 0>, <&ane1_dart1 0>, <&ane1_dart2 0>; + reg-names = "engine"; + interrupt-names = "ane"; + status = "disabled"; + }; + + atc0_dpin0: displayport@701e50000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0x7 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + atc0_dpin1: displayport@701e58000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0x7 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + apciec0_dart: iommu@721008000 { + compatible = "apple,t8110-dart"; + reg = <0x7 0x21008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + apciec0_piodma: dma-controller@722000000 { + compatible = "apple,t6000-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 = <&apciec0_dart 15>; + status = "disabled"; + }; + + apciec0: pcie@730000000 { + compatible = "apple,t6000-pciec"; + reg = <0x7 0x30000000 0x0 0x10000000>, + <0x7 0x20000000 0x0 0x4000>, + <0x7 0x21000000 0x0 0x8000>, + <0x7 0x20004000 0x0 0x4000>, + <0x7 0x20200000 0x0 0x4000>, + <0x7 0x21010000 0x0 0x4000>, + <0x7 0x2100c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_atc0_pcie>; + device_type = "pci"; + reg-names = "config", "rc", "port0", "fabric", "debug", "ltssm", "intr2axi"; + msi-controller; + msi-parent = <&apciec0>; + msi-ranges = <&aic AIC_IRQ 0 1614 IRQ_TYPE_EDGE_RISING 32>; + iommu-map = <0 &apciec0_dart 0 0x40>; + iommu-map-mask = <0x3f>; + bus-range = <0 0x7f>; + #address-cells = <3>; + #size-cells = <2>; + ranges = <0x43000000 0x0 0x8 0x0 0x8 0x0 0x2>, + <0x2000000 0x100000 0x0 0x100000 0xa 0x3ff00000 0x0>, + <0x42000000 0x40000000 0x0 0x40000000 0xa 0x40000000 0x0>; + status = "disabled"; + }; + + atc1_dpin0: displayport@b01e50000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xb 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + atc1_dpin1: displayport@b01e58000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xb 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + apciec1_dart: iommu@b21008000 { + compatible = "apple,t8110-dart"; + reg = <0xb 0x21008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + apciec1_piodma: dma-controller@b22000000 { + compatible = "apple,t6000-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 = <&apciec1_dart 15>; + status = "disabled"; + }; + + apciec1: pcie@b30000000 { + compatible = "apple,t6000-pciec"; + reg = <0xb 0x30000000 0x0 0x10000000>, + <0xb 0x20000000 0x0 0x4000>, + <0xb 0x21000000 0x0 0x8000>, + <0xb 0x20004000 0x0 0x4000>, + <0xb 0x20200000 0x0 0x4000>, + <0xb 0x21010000 0x0 0x4000>, + <0xb 0x2100c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_atc1_pcie>; + device_type = "pci"; + reg-names = "config", "rc", "port0", "fabric", "debug", "ltssm", "intr2axi"; + msi-controller; + msi-parent = <&apciec1>; + msi-ranges = <&aic AIC_IRQ 0 1646 IRQ_TYPE_EDGE_RISING 32>; + iommu-map = <0 &apciec1_dart 0 0x40>; + iommu-map-mask = <0x3f>; + bus-range = <0 0x7f>; + #address-cells = <3>; + #size-cells = <2>; + ranges = <0x43000000 0x0 0xc 0x0 0xc 0x0 0x2>, + <0x2000000 0x100000 0x0 0x100000 0xe 0x3ff00000 0x0>, + <0x42000000 0x40000000 0x0 0x40000000 0xe 0x40000000 0x0>; + status = "disabled"; + }; + + atc2_dpin0: displayport@f01e50000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xf 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + atc2_dpin1: displayport@f01e58000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xf 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + apciec2_dart: iommu@f21008000 { + compatible = "apple,t8110-dart"; + reg = <0xf 0x21008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + apciec2_piodma: dma-controller@f22000000 { + compatible = "apple,t6000-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 = <&apciec2_dart 15>; + status = "disabled"; + }; + + apciec2: pcie@f30000000 { + compatible = "apple,t6000-pciec"; + reg = <0xf 0x30000000 0x0 0x10000000>, + <0xf 0x20000000 0x0 0x4000>, + <0xf 0x21000000 0x0 0x8000>, + <0xf 0x20004000 0x0 0x4000>, + <0xf 0x20200000 0x0 0x4000>, + <0xf 0x21010000 0x0 0x4000>, + <0xf 0x2100c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_atc2_pcie>; + device_type = "pci"; + reg-names = "config", "rc", "port0", "fabric", "debug", "ltssm", "intr2axi"; + msi-controller; + msi-parent = <&apciec2>; + msi-ranges = <&aic AIC_IRQ 0 1678 IRQ_TYPE_EDGE_RISING 32>; + iommu-map = <0 &apciec2_dart 0 0x40>; + iommu-map-mask = <0x3f>; + bus-range = <0 0x7f>; + #address-cells = <3>; + #size-cells = <2>; + ranges = <0x43000000 0x0 0x10 0x0 0x10 0x0 0x2>, + <0x2000000 0x100000 0x0 0x100000 0x12 0x3ff00000 0x0>, + <0x42000000 0x40000000 0x0 0x40000000 0x12 0x40000000 0x0>; + status = "disabled"; + }; + + atc3_dpin0: displayport@1301e50000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0x13 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + atc3_dpin1: displayport@1301e58000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0x13 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + apciec3_dart: iommu@1321008000 { + compatible = "apple,t8110-dart"; + reg = <0x13 0x21008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + apciec3_piodma: dma-controller@1322000000 { + compatible = "apple,t6000-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 = <&apciec3_dart 15>; + status = "disabled"; + }; + + apciec3: pcie@1330000000 { + compatible = "apple,t6000-pciec"; + reg = <0x13 0x30000000 0x0 0x10000000>, + <0x13 0x20000000 0x0 0x4000>, + <0x13 0x21000000 0x0 0x8000>, + <0x13 0x20004000 0x0 0x4000>, + <0x13 0x20200000 0x0 0x4000>, + <0x13 0x21010000 0x0 0x4000>, + <0x13 0x2100c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_atc3_pcie>; + device_type = "pci"; + reg-names = "config", "rc", "port0", "fabric", "debug", "ltssm", "intr2axi"; + msi-controller; + msi-parent = <&apciec3>; + msi-ranges = <&aic AIC_IRQ 0 1710 IRQ_TYPE_EDGE_RISING 32>; + iommu-map = <0 &apciec3_dart 0 0x40>; + iommu-map-mask = <0x3f>; + bus-range = <0 0x7f>; + #address-cells = <3>; + #size-cells = <2>; + ranges = <0x43000000 0x0 0x14 0x0 0x14 0x0 0x2>, + <0x2000000 0x100000 0x0 0x100000 0x16 0x3ff00000 0x0>, + <0x42000000 0x40000000 0x0 0x40000000 0x16 0x40000000 0x0>; + status = "disabled"; + }; +}; + +&die1 { + ane2_dart0: iommu@285800000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x2 0x85800000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane_sys_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane2_dma: dma-controller@285804000 { + compatible = "apple,t6000-ane-dma", "apple,ane-dma"; + reg = <0x2 0x85804000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane_sys_die1>; + status = "disabled"; + }; + + ane2_dart1: iommu@285810000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x2 0x85810000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane_sys_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane2_dart2: iommu@285820000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x2 0x85820000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane_sys_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane2: ane@285c04000 { + compatible = "apple,t6001-ane", "apple,ane"; + reg = <0x2 0x85c04000 0x0 0x24000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane_sys_cpu_die1>; + clocks = <&peripheral_clocks_die1 318>, <&peripheral_clocks_die1 319>, <&peripheral_clocks_die1 320>, <&peripheral_clocks_die1 321>; + iommus = <&ane2_dart0 0>, <&ane2_dart1 0>, <&ane2_dart2 0>; + reg-names = "engine"; + interrupt-names = "ane"; + status = "disabled"; + }; + + apr2: video-codec@311000000 { + compatible = "apple,t6000-prores", "apple,prores"; + reg = <0x3 0x11000000 0x0 0x4000>, + <0x3 0x10000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_scodec_die1>; + iommus = <&apr2_dart 0>; + reg-names = "core", "wrapper"; + status = "disabled"; + }; + + apr2_dart: iommu@311008000 { + compatible = "apple,t8110-dart"; + reg = <0x3 0x11008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_scodec_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + jpeg2: jpeg@409000000 { + compatible = "apple,t6000-jpeg", "apple,jpeg"; + reg = <0x4 0x09000000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg_die1>; + clocks = <&peripheral_clocks_die1 354>, <&peripheral_clocks_die1 355>; + iommus = <&jpeg2_dart 0>; + status = "disabled"; + }; + + jpeg2_dart: iommu@409004000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x09004000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + jpeg3: jpeg@409008000 { + compatible = "apple,t6000-jpeg", "apple,jpeg"; + reg = <0x4 0x09008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg_die1>; + clocks = <&peripheral_clocks_die1 354>, <&peripheral_clocks_die1 355>; + iommus = <&jpeg3_dart 0>; + status = "disabled"; + }; + + jpeg3_dart: iommu@40900c000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x0900c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_jpg_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + scaler2: scaler@40b000000 { + compatible = "apple,t6000-scaler", "apple,scaler"; + reg = <0x4 0x0b000000 0x0 0x28000>, + <0x4 0x0b210000 0x0 0x4000>, + <0x4 0x0b204000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + ; + power-domains = <&ps_msr0_die1>, <&ps_msr0_ase_core_die1>; + clocks = <&peripheral_clocks_die1 356>; + iommus = <&scaler2_dart 0>, <&scaler2_dart 1>; + resets = <&ps_msr0_die1>; + status = "disabled"; + }; + + scaler2_dart: iommu@40b200000 { + compatible = "apple,t8110-dart"; + reg = <0x4 0x0b200000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_msr0_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave2_dma: dma-controller@40d020000 { + compatible = "apple,t6000-ave-dma", "apple,ave-dma"; + reg = <0x4 0x0d020000 0x0 0x4000>, + <0x4 0x0d044000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc_sys_die1>; + status = "disabled"; + }; + + ave2_dart1: iommu@40d030000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x0d030000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc_sys_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave2_dart0: iommu@40d040000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x4 0x0d040000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc_sys_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave2: video-codec@40d100000 { + compatible = "apple,t6000-ave"; + reg = <0x4 0x0d100000 0x0 0x45c000>, + <0x4 0x0d050000 0x0 0x8000>, + <0x4 0x0d800000 0x0 0x800000>, + <0x2 0x8e588000 0x0 0x24>, + <0x4 0x0c000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + ; + power-domains = <&ps_venc_dma_die1>, <&ps_venc_pipe4_die1>, <&ps_venc_pipe5_die1>, <&ps_venc_me0_die1>, <&ps_venc_me1_die1>; + clocks = <&peripheral_clocks_die1 350>; + iommus = <&ave2_dart0 0>, <&ave2_dart1 0>; + reg-names = "codec", "mailbox", "coproc", "pmgr", "pio"; + power-domain-names = "dma", "pipe4", "pipe5", "me0", "me1"; + status = "disabled"; + }; + + apr3: video-codec@489000000 { + compatible = "apple,t6000-prores", "apple,prores"; + reg = <0x4 0x89000000 0x0 0x4000>, + <0x4 0x88000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_prores_die1>; + iommus = <&apr3_dart 0>; + reg-names = "core", "wrapper"; + status = "disabled"; + }; + + apr3_dart: iommu@489008000 { + compatible = "apple,t8110-dart"; + reg = <0x4 0x89008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_prores_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + scaler3: scaler@505000000 { + compatible = "apple,t6000-scaler", "apple,scaler"; + reg = <0x5 0x05000000 0x0 0x28000>, + <0x5 0x05210000 0x0 0x4000>, + <0x5 0x05204000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + ; + power-domains = <&ps_msr1_die1>, <&ps_msr1_ase_core_die1>; + clocks = <&peripheral_clocks_die1 356>; + iommus = <&scaler3_dart 0>, <&scaler3_dart 1>; + resets = <&ps_msr1_die1>; + status = "disabled"; + }; + + scaler3_dart: iommu@505200000 { + compatible = "apple,t8110-dart"; + reg = <0x5 0x05200000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_msr1_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave3_dma: dma-controller@507020000 { + compatible = "apple,t6000-ave-dma", "apple,ave-dma"; + reg = <0x5 0x07020000 0x0 0x4000>, + <0x5 0x07044000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc1_sys_die1>; + status = "disabled"; + }; + + ave3_dart1: iommu@507030000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x07030000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc1_sys_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave3_dart0: iommu@507040000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x07040000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_venc1_sys_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave3: video-codec@507100000 { + compatible = "apple,t6000-ave"; + reg = <0x5 0x07100000 0x0 0x45c000>, + <0x5 0x07050000 0x0 0x8000>, + <0x5 0x07800000 0x0 0x800000>, + <0x2 0x8e680260 0x0 0x7dc4>, + <0x5 0x06000000 0x0 0x1000000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + ; + power-domains = <&ps_venc1_dma_die1>, <&ps_venc1_pipe4_die1>, <&ps_venc1_pipe5_die1>, <&ps_venc1_me0_die1>, <&ps_venc1_me1_die1>; + clocks = <&peripheral_clocks_die1 454>; + iommus = <&ave3_dart0 0>, <&ave3_dart1 0>; + reg-names = "codec", "mailbox", "coproc", "pmgr", "pio"; + power-domain-names = "dma", "pipe4", "pipe5", "me0", "me1"; + status = "disabled"; + }; + + ane3_dart0: iommu@509800000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x09800000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane3_dma: dma-controller@509804000 { + compatible = "apple,t6000-ane-dma", "apple,ane-dma"; + reg = <0x5 0x09804000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys_die1>; + status = "disabled"; + }; + + ane3_dart1: iommu@509810000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x09810000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane3_dart2: iommu@509820000 { + compatible = "apple,t6000-dart", "apple,t8110-dart"; + reg = <0x5 0x09820000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys_die1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane3: ane@509c04000 { + compatible = "apple,t6001-ane", "apple,ane"; + reg = <0x5 0x09c04000 0x0 0x24000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_ane1_sys_cpu_die1>; + clocks = <&peripheral_clocks_die1 318>, <&peripheral_clocks_die1 319>, <&peripheral_clocks_die1 320>, <&peripheral_clocks_die1 321>; + iommus = <&ane3_dart0 0>, <&ane3_dart1 0>, <&ane3_dart2 0>; + reg-names = "engine"; + interrupt-names = "ane"; + status = "disabled"; + }; + + atc4_dpin0: displayport@701e50000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0x7 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + atc4_dpin1: displayport@701e58000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0x7 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + apciec4_dart: iommu@721008000 { + compatible = "apple,t8110-dart"; + reg = <0x7 0x21008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + apciec4_piodma: dma-controller@722000000 { + compatible = "apple,t6000-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 = <&apciec4_dart 15>; + status = "disabled"; + }; + + apciec4: pcie@730000000 { + compatible = "apple,t6000-pciec"; + reg = <0x7 0x30000000 0x0 0x10000000>, + <0x7 0x20000000 0x0 0x4000>, + <0x7 0x21000000 0x0 0x8000>, + <0x7 0x20004000 0x0 0x4000>, + <0x7 0x20200000 0x0 0x4000>, + <0x7 0x21010000 0x0 0x4000>, + <0x7 0x2100c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_atc0_pcie_die1>; + device_type = "pci"; + reg-names = "config", "rc", "port0", "fabric", "debug", "ltssm", "intr2axi"; + msi-controller; + msi-parent = <&apciec4>; + msi-ranges = <&aic AIC_IRQ 1 1614 IRQ_TYPE_EDGE_RISING 32>; + iommu-map = <0 &apciec4_dart 0 0x40>; + iommu-map-mask = <0x3f>; + bus-range = <0 0x7f>; + #address-cells = <3>; + #size-cells = <2>; + ranges = <0x43000000 0x0 0x28 0x-20 0x28 0x0 0x2>, + <0x2000000 0x100000 0x0 0xfffe0 0x2a 0x3ff00000 0x0>, + <0x42000000 0x40000000 0x0 0x3fffffe0 0x2a 0x40000000 0x0>; + status = "disabled"; + }; + + atc5_dpin0: displayport@b01e50000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xb 0x01e50000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + atc5_dpin1: displayport@b01e58000 { + compatible = "apple,t6000-dpin", "apple,dpin"; + reg = <0xb 0x01e58000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + status = "disabled"; + }; + + apciec5_dart: iommu@b21008000 { + compatible = "apple,t8110-dart"; + reg = <0xb 0x21008000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + apciec5_piodma: dma-controller@b22000000 { + compatible = "apple,t6000-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 = <&apciec5_dart 15>; + status = "disabled"; + }; + + apciec5: pcie@b30000000 { + compatible = "apple,t6000-pciec"; + reg = <0xb 0x30000000 0x0 0x10000000>, + <0xb 0x20000000 0x0 0x4000>, + <0xb 0x21000000 0x0 0x8000>, + <0xb 0x20004000 0x0 0x4000>, + <0xb 0x20200000 0x0 0x4000>, + <0xb 0x21010000 0x0 0x4000>, + <0xb 0x2100c000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_atc1_pcie_die1>; + device_type = "pci"; + reg-names = "config", "rc", "port0", "fabric", "debug", "ltssm", "intr2axi"; + msi-controller; + msi-parent = <&apciec5>; + msi-ranges = <&aic AIC_IRQ 1 1646 IRQ_TYPE_EDGE_RISING 32>; + iommu-map = <0 &apciec5_dart 0 0x40>; + iommu-map-mask = <0x3f>; + bus-range = <0 0x7f>; + #address-cells = <3>; + #size-cells = <2>; + ranges = <0x43000000 0x0 0x2c 0x-20 0x2c 0x0 0x2>, + <0x2000000 0x100000 0x0 0xfffe0 0x2e 0x3ff00000 0x0>, + <0x42000000 0x40000000 0x0 0x3fffffe0 0x2e 0x40000000 0x0>; + status = "disabled"; + }; +}; + +/ { + peripheral_clocks: clock-controller { + compatible = "apple,t6000-pmgr-clocks", "apple,pmgr-clocks"; + #clock-cells = <1>; + apple,pmgr = <&pmgr>; + status = "disabled"; + }; + + peripheral_clocks_die1: clock-controller_die1 { + compatible = "apple,t6000-pmgr-clocks", "apple,pmgr-clocks"; + #clock-cells = <1>; + apple,pmgr = <&pmgr_die1>; + status = "disabled"; + }; + + mcc: memory-controller@200000000 { + compatible = "apple,t6000-mcc", "apple,mcc"; + reg = <0x2 0x00000000 0x0 0x1000000>, + <0x2 0x01000000 0x0 0x1000000>, + <0x2 0x02000000 0x0 0x1000000>, + <0x2 0x03000000 0x0 0x1000000>, + <0x2 0x04000000 0x0 0x1000000>, + <0x2 0x05000000 0x0 0x1000000>, + <0x2 0x06000000 0x0 0x1000000>, + <0x2 0x07000000 0x0 0x1000000>, + <0x22 0x00000000 0x0 0x1000000>, + <0x22 0x01000000 0x0 0x1000000>, + <0x22 0x02000000 0x0 0x1000000>, + <0x22 0x03000000 0x0 0x1000000>, + <0x22 0x04000000 0x0 0x1000000>, + <0x22 0x05000000 0x0 0x1000000>, + <0x22 0x06000000 0x0 0x1000000>, + <0x22 0x07000000 0x0 0x1000000>; + status = "disabled"; + }; + + soc_events: event-log@28e080000 { + compatible = "apple,t6002-event-log", "apple,soc-event-log"; + reg = <0x2 0x8e080000 0x0 0x80000>, + <0x2 0x8e580000 0x0 0x80000>, + <0x2 0x8e680000 0x0 0x74000>, + <0x2 0x8e45c000 0x0 0x4000>, + <0x2 0x8e460000 0x0 0x4000>, + <0x2 0x8e464000 0x0 0x4000>, + <0x2 0x8e468000 0x0 0x4000>, + <0x2 0x8e46c000 0x0 0x4000>, + <0x2 0x8e458000 0x0 0x4000>, + <0x2 0x8e428000 0x0 0x8000>, + <0x2 0x8e430000 0x0 0x8000>, + <0x2 0x8e418000 0x0 0x8000>, + <0x2 0x8e410000 0x0 0x8000>, + <0x2 0x8e420000 0x0 0x8000>, + <0x2 0x8e400000 0x0 0x8000>, + <0x2 0x8e408000 0x0 0x8000>, + <0x2 0x8e438000 0x0 0x8000>, + <0x2 0x8e440000 0x0 0x8000>, + <0x2 0x92200000 0x0 0x80000>, + <0x2 0x8e000000 0x0 0x80000>, + <0x2 0x8e600000 0x0 0x4c000>, + <0x2 0x92280000 0x0 0x74000>, + <0x2 0x85838000 0x0 0x8000>, + <0x5 0x09838000 0x0 0x8000>, + <0x2 0x85868000 0x0 0x4000>, + <0x5 0x09868000 0x0 0x4000>, + <0x4 0x04e20000 0x0 0x4000>, + <0x4 0x04e20000 0x0 0x4000>, + <0x22 0x8e080000 0x0 0x80000>, + <0x22 0x8e580000 0x0 0x80000>, + <0x22 0x8e680000 0x0 0x74000>, + <0x22 0x8e45c000 0x0 0x4000>, + <0x22 0x8e460000 0x0 0x4000>, + <0x22 0x8e464000 0x0 0x4000>, + <0x22 0x8e468000 0x0 0x4000>, + <0x22 0x8e46c000 0x0 0x4000>, + <0x22 0x8e458000 0x0 0x4000>, + <0x22 0x8e428000 0x0 0x8000>, + <0x22 0x8e430000 0x0 0x8000>, + <0x22 0x8e418000 0x0 0x8000>, + <0x22 0x8e410000 0x0 0x8000>, + <0x22 0x8e420000 0x0 0x8000>, + <0x22 0x8e400000 0x0 0x8000>, + <0x22 0x8e408000 0x0 0x8000>, + <0x22 0x8e438000 0x0 0x8000>, + <0x22 0x8e440000 0x0 0x8000>, + <0x22 0x92200000 0x0 0x80000>, + <0x22 0x8e000000 0x0 0x80000>, + <0x22 0x8e600000 0x0 0x4c000>, + <0x22 0x92280000 0x0 0x74000>, + <0x22 0x85838000 0x0 0x8000>, + <0x25 0x09838000 0x0 0x8000>, + <0x22 0x85868000 0x0 0x4000>, + <0x25 0x09868000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + status = "disabled"; + }; + + soc_errors: error-handler@395440000 { + compatible = "apple,t6002-error-handler", "apple,soc-error-handler"; + reg = <0x3 0x95440000 0x0 0x40000>, + <0x2 0x8e000000 0x0 0x80000>, + <0x2 0x8e080000 0x0 0x80000>, + <0x2 0x00000000 0x0 0x1000000>, + <0x2 0x01000000 0x0 0x1000000>, + <0x2 0x02000000 0x0 0x1000000>, + <0x2 0x03000000 0x0 0x1000000>, + <0x2 0x04000000 0x0 0x1000000>, + <0x2 0x05000000 0x0 0x1000000>, + <0x2 0x06000000 0x0 0x1000000>, + <0x2 0x07000000 0x0 0x1000000>, + <0x22 0x00000000 0x0 0x1000000>, + <0x22 0x01000000 0x0 0x1000000>, + <0x22 0x02000000 0x0 0x1000000>, + <0x22 0x03000000 0x0 0x1000000>, + <0x22 0x04000000 0x0 0x1000000>, + <0x22 0x05000000 0x0 0x1000000>, + <0x22 0x06000000 0x0 0x1000000>, + <0x22 0x07000000 0x0 0x1000000>, + <0x2 0x82000000 0x0 0x4000>, + <0x3 0x04000000 0x0 0x4000>, + <0x3 0x83000000 0x0 0x4000>, + <0x4 0x02000000 0x0 0x4000>, + <0x4 0x82000000 0x0 0x4000>, + <0x5 0x02000000 0x0 0x4000>, + <0x22 0x82000000 0x0 0x4000>, + <0x23 0x04000000 0x0 0x4000>, + <0x23 0x83000000 0x0 0x4000>, + <0x24 0x02000000 0x0 0x4000>, + <0x24 0x82000000 0x0 0x4000>, + <0x25 0x02000000 0x0 0x4000>, + <0x2 0x58d00000 0x0 0x20000>, + <0x2 0x59100000 0x0 0x20000>, + <0x2 0x5ad00000 0x0 0x20000>, + <0x2 0x5b100000 0x0 0x20000>, + <0x2 0x60000000 0x0 0x20000>, + <0x2 0x60000000 0x0 0x20000>, + <0x22 0x58d00000 0x0 0x20000>, + <0x22 0x59100000 0x0 0x20000>, + <0x22 0x5ad00000 0x0 0x20000>, + <0x22 0x5b100000 0x0 0x20000>, + <0x22 0x60000000 0x0 0x20000>, + <0x22 0x60400000 0x0 0x20000>, + <0x2 0x59500000 0x0 0x20000>, + <0x2 0x5b500000 0x0 0x20000>, + <0x2 0x5b900000 0x0 0x20000>, + <0x22 0x59500000 0x0 0x20000>, + <0x22 0x5b500000 0x0 0x20000>, + <0x22 0x5b900000 0x0 0x20000>, + <0x2 0x4fa00000 0x0 0x20000>, + <0x2 0x50a00000 0x0 0x20000>, + <0x2 0x50e00000 0x0 0x20000>, + <0x22 0x4fa00000 0x0 0x20000>, + <0x22 0x50a00000 0x0 0x20000>, + <0x22 0x50e00000 0x0 0x20000>, + <0x2 0x4fa80000 0x0 0x20000>, + <0x2 0x50a80000 0x0 0x20000>, + <0x22 0x4fa80000 0x0 0x20000>, + <0x22 0x50a80000 0x0 0x20000>, + <0x2 0x64300000 0x0 0x20000>, + <0x2 0x65300000 0x0 0x20000>, + <0x22 0x64300000 0x0 0x20000>, + <0x22 0x65300000 0x0 0x20000>, + <0x2 0x64700000 0x0 0x20000>, + <0x2 0x66300000 0x0 0x20000>, + <0x2 0x65700000 0x0 0x20000>, + <0x2 0x67300000 0x0 0x20000>, + <0x2 0x6a300000 0x0 0x20000>, + <0x2 0x68600000 0x0 0x20000>, + <0x2 0x6b300000 0x0 0x20000>, + <0x2 0x69600000 0x0 0x20000>, + <0x22 0x64700000 0x0 0x20000>, + <0x22 0x66300000 0x0 0x20000>, + <0x22 0x65700000 0x0 0x20000>, + <0x22 0x67300000 0x0 0x20000>, + <0x22 0x6a300000 0x0 0x20000>, + <0x22 0x68600000 0x0 0x20000>, + <0x22 0x6b300000 0x0 0x20000>, + <0x22 0x69600000 0x0 0x20000>, + <0x2 0x64b00000 0x0 0x20000>, + <0x2 0x66700000 0x0 0x20000>, + <0x2 0x65b00000 0x0 0x20000>, + <0x2 0x67700000 0x0 0x20000>, + <0x2 0x6a700000 0x0 0x20000>, + <0x2 0x68a00000 0x0 0x20000>, + <0x2 0x6b700000 0x0 0x20000>, + <0x2 0x69a00000 0x0 0x20000>, + <0x22 0x64b00000 0x0 0x20000>, + <0x22 0x66700000 0x0 0x20000>, + <0x22 0x65b00000 0x0 0x20000>, + <0x22 0x67700000 0x0 0x20000>, + <0x22 0x6a700000 0x0 0x20000>, + <0x22 0x68a00000 0x0 0x20000>, + <0x22 0x6b700000 0x0 0x20000>, + <0x22 0x69a00000 0x0 0x20000>, + <0x2 0x58900000 0x0 0x20000>, + <0x2 0x5a900000 0x0 0x20000>, + <0x2 0x5c000000 0x0 0x20000>, + <0x2 0x5d000000 0x0 0x20000>, + <0x2 0x5e900000 0x0 0x20000>, + <0x2 0x5fc00000 0x0 0x20000>, + <0x2 0x61000000 0x0 0x20000>, + <0x2 0x62000000 0x0 0x20000>, + <0x22 0x58900000 0x0 0x20000>, + <0x22 0x5a900000 0x0 0x20000>, + <0x22 0x5c000000 0x0 0x20000>, + <0x22 0x5d000000 0x0 0x20000>, + <0x22 0x5e900000 0x0 0x20000>, + <0x22 0x5fc00000 0x0 0x20000>, + <0x22 0x61000000 0x0 0x20000>, + <0x22 0x62000000 0x0 0x20000>, + <0x2 0x4f600000 0x0 0x20000>, + <0x2 0x50600000 0x0 0x20000>, + <0x2 0x52000000 0x0 0x20000>, + <0x2 0x53000000 0x0 0x20000>, + <0x2 0x54600000 0x0 0x20000>, + <0x2 0x55600000 0x0 0x20000>, + <0x2 0x56000000 0x0 0x20000>, + <0x2 0x57000000 0x0 0x20000>, + <0x22 0x4f600000 0x0 0x20000>, + <0x22 0x50600000 0x0 0x20000>, + <0x22 0x52000000 0x0 0x20000>, + <0x22 0x53000000 0x0 0x20000>, + <0x22 0x54600000 0x0 0x20000>, + <0x22 0x55600000 0x0 0x20000>, + <0x22 0x56000000 0x0 0x20000>, + <0x22 0x57000000 0x0 0x20000>, + <0x2 0x4f032000 0x0 0x1000>, + <0x2 0x4f332000 0x0 0x1000>, + <0x2 0x50032000 0x0 0x1000>, + <0x2 0x50332000 0x0 0x1000>, + <0x2 0x54032000 0x0 0x1000>, + <0x2 0x55032000 0x0 0x1000>, + <0x2 0x54332000 0x0 0x1000>, + <0x2 0x55332000 0x0 0x1000>, + <0x22 0x4f032000 0x0 0x1000>, + <0x22 0x4f332000 0x0 0x1000>, + <0x22 0x50032000 0x0 0x1000>, + <0x22 0x50332000 0x0 0x1000>, + <0x22 0x54032000 0x0 0x1000>, + <0x22 0x55032000 0x0 0x1000>, + <0x22 0x54332000 0x0 0x1000>, + <0x22 0x55332000 0x0 0x1000>, + <0x2 0x58032000 0x0 0x1000>, + <0x2 0x58332000 0x0 0x1000>, + <0x2 0x58632000 0x0 0x1000>, + <0x2 0x5a032000 0x0 0x1000>, + <0x2 0x5a332000 0x0 0x1000>, + <0x2 0x5a632000 0x0 0x1000>, + <0x2 0x5e032000 0x0 0x1000>, + <0x2 0x5f632000 0x0 0x1000>, + <0x2 0x5f032000 0x0 0x1000>, + <0x2 0x5f332000 0x0 0x1000>, + <0x2 0x5e332000 0x0 0x1000>, + <0x2 0x5e632000 0x0 0x1000>, + <0x2 0x5f932000 0x0 0x1000>, + <0x22 0x58032000 0x0 0x1000>, + <0x22 0x58332000 0x0 0x1000>, + <0x22 0x58632000 0x0 0x1000>, + <0x22 0x5a032000 0x0 0x1000>, + <0x22 0x5a332000 0x0 0x1000>, + <0x22 0x5a632000 0x0 0x1000>, + <0x22 0x5e032000 0x0 0x1000>, + <0x22 0x5f632000 0x0 0x1000>, + <0x22 0x5f032000 0x0 0x1000>, + <0x22 0x5f332000 0x0 0x1000>, + <0x22 0x5e332000 0x0 0x1000>, + <0x22 0x5e632000 0x0 0x1000>, + <0x22 0x5f932000 0x0 0x1000>, + <0x2 0x64032000 0x0 0x1000>, + <0x2 0x66032000 0x0 0x1000>, + <0x2 0x65032000 0x0 0x1000>, + <0x2 0x67032000 0x0 0x1000>, + <0x2 0x6a032000 0x0 0x1000>, + <0x2 0x68032000 0x0 0x1000>, + <0x2 0x6b032000 0x0 0x1000>, + <0x2 0x69032000 0x0 0x1000>, + <0x2 0x6ab32000 0x0 0x1000>, + <0x2 0x6bb32000 0x0 0x1000>, + <0x22 0x64032000 0x0 0x1000>, + <0x22 0x66032000 0x0 0x1000>, + <0x22 0x65032000 0x0 0x1000>, + <0x22 0x67032000 0x0 0x1000>, + <0x22 0x6a032000 0x0 0x1000>, + <0x22 0x68032000 0x0 0x1000>, + <0x22 0x6b032000 0x0 0x1000>, + <0x22 0x69032000 0x0 0x1000>, + <0x22 0x6ab32000 0x0 0x1000>, + <0x22 0x6bb32000 0x0 0x1000>, + <0x2 0x54400000 0x0 0x4000>, + <0x2 0x55400000 0x0 0x4000>, + <0x22 0x54400000 0x0 0x4000>, + <0x22 0x55400000 0x0 0x4000>, + <0x2 0x5e700000 0x0 0x4000>, + <0x2 0x5fa00000 0x0 0x4000>, + <0x22 0x5e700000 0x0 0x4000>, + <0x22 0x5fa00000 0x0 0x4000>, + <0x2 0x6ac00000 0x0 0x4000>, + <0x2 0x6ac80000 0x0 0x4000>, + <0x2 0x6bc00000 0x0 0x4000>, + <0x2 0x6bc80000 0x0 0x4000>, + <0x22 0x6ac00000 0x0 0x4000>, + <0x22 0x6ac80000 0x0 0x4000>, + <0x22 0x6bc00000 0x0 0x4000>, + <0x22 0x6bc80000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + status = "disabled"; + }; + + pwm1: pwm@39b030000 { + compatible = "apple,t6000-pwm", "apple,pwm"; + reg = <0x3 0x9b030000 0x0 0x4000>; + interrupt-parent = <&aic>; + interrupts = ; + power-domains = <&ps_fpwm1>; + status = "disabled"; + }; +}; + +&ave { + reg = <0x4 0x0d100000 0x0 0x45c000>, + <0x4 0x0d050000 0x0 0x8000>, + <0x4 0x0d800000 0x0 0x800000>, + <0x2 0x8e588000 0x0 0x24>, + <0x4 0x0c000000 0x0 0x1000000>; + reg-names = "codec", "mailbox", "coproc", "pmgr", "pio"; + clocks = <&peripheral_clocks 350>; +}; diff --git a/arch/arm64/boot/dts/apple/t6002.dtsi b/arch/arm64/boot/dts/apple/t6002.dtsi index d5226019d484d..aeb07e31e6848 100644 --- a/arch/arm64/boot/dts/apple/t6002.dtsi +++ b/arch/arm64/boot/dts/apple/t6002.dtsi @@ -434,3 +434,13 @@ <0x2 0x85868000 0x0 0x4000>; reg-names = "report", "ane-dvfs"; }; + +#include "t6002-peripherals.dtsi" +#include "t6002-aux-spmi.dtsi" +#include "t6002-display-extra.dtsi" + +#include "t6002-firmware-interfaces.dtsi" + +#include "t6002-cpu-debug.dtsi" + +#include "t6002-cpu-registers.dtsi"