From 7e0f7c77301777a9973ff6bc56e4394e28dcb4f1 Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 07:12:24 +1100 Subject: [PATCH 01/13] arm64: dts: apple: stage disabled T6050 peripheral inventories Describe translated MMIO, IRQ, DMA, clock and PMGR resources for the T6050 board inventories. Keep unqualified devices and providers disabled. Preserve the existing J775d boot profile and third-party base history; add no firmware, calibration or programming data. Assisted-by: LLM Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> --- .../devicetree/bindings/arm/apple.yaml | 15 +- .../bindings/arm/apple/apple,pmgr.yaml | 1 + .../bindings/clock/apple,pmgr-clocks.yaml | 12 + .../devicetree/bindings/crypto/apple,aes.yaml | 295 +- .../bindings/display/apple,dcp-expert.yaml | 153 +- .../bindings/display/apple,dcp.yaml | 753 +++- .../display/apple,display-engine.yaml | 38 + .../bindings/display/apple,dpin.yaml | 202 +- .../bindings/display/apple,dptx-aux.yaml | 30 + .../bindings/dma/apple,admac-control.yaml | 30 + .../bindings/dma/apple,admac-secure.yaml | 130 +- .../devicetree/bindings/dma/apple,admac.yaml | 235 +- .../bindings/dma/apple,pcie-piodma.yaml | 224 +- .../bindings/dma/apple,pciec-piodma.yaml | 232 +- .../devicetree/bindings/dma/apple,sio.yaml | 354 +- .../edac/apple,soc-error-handler.yaml | 1024 ++--- .../devicetree/bindings/gpu/apple,agx.yaml | 723 ++-- .../devicetree/bindings/i2c/apple,i2c.yaml | 199 +- .../devicetree/bindings/iommu/apple,dart.yaml | 376 +- .../devicetree/bindings/iommu/apple,sart.yaml | 134 +- .../mailbox/apple,secure-mailbox.yaml | 153 +- .../devicetree/bindings/media/apple,avd.yaml | 329 +- .../devicetree/bindings/media/apple,jpeg.yaml | 336 +- .../bindings/media/apple,prores.yaml | 386 +- .../bindings/media/apple,t8140-ave.yaml | 384 +- .../devicetree/bindings/mfd/apple,smc.yaml | 197 +- .../bindings/mux/apple,display-crossbar.yaml | 148 +- .../devicetree/bindings/npu/apple,ane.yaml | 818 ++-- .../bindings/nvme/apple,nvme-ans.yaml | 393 +- .../devicetree/bindings/pci/apple,pcie.yaml | 780 ++-- .../devicetree/bindings/phy/apple,atcphy.yaml | 794 ++-- .../bindings/phy/apple,dptx-phy.yaml | 116 +- .../bindings/pinctrl/apple,pinctrl.yaml | 265 +- .../bindings/power/apple,pmgr-pwrstate.yaml | 1 + .../bindings/pwm/apple,s5l-fpwm.yaml | 157 +- .../serial/apple,dockchannel-uart.yaml | 179 +- .../bindings/serial/apple,uart.yaml | 35 + .../bindings/soc/apple/apple,aon-ptd.yaml | 232 +- .../bindings/soc/apple/apple,aop2.yaml | 138 +- .../bindings/soc/apple/apple,dockchannel.yaml | 216 +- .../bindings/soc/apple/apple,gpu-coproc.yaml | 37 + .../bindings/soc/apple/apple,msg.yaml | 34 + .../bindings/soc/apple/apple,phy-coproc.yaml | 31 + .../bindings/soc/apple/apple,pmp.yaml | 295 +- .../bindings/soc/apple/apple,rsm.yaml | 217 +- .../soc/apple/apple,rtk-helper-asc4.yaml | 291 +- .../bindings/soc/apple/apple,sep.yaml | 187 +- .../bindings/soc/apple/apple,t6041-aop.yaml | 236 +- .../bindings/soc/apple/apple,t8140-mcc.yaml | 223 +- .../devicetree/bindings/spi/apple,qspi.yaml | 155 +- .../devicetree/bindings/spi/apple,spi.yaml | 168 +- .../devicetree/bindings/spmi/apple,spmi.yaml | 197 +- .../thunderbolt/apple,t8103-usb4-acio.yaml | 409 +- .../thunderbolt/apple,t8103-usb4-nhi.yaml | 371 +- .../bindings/timer/apple,aic-timebase.yaml | 123 +- .../devicetree/bindings/usb/apple,dwc3.yaml | 266 +- .../bindings/watchdog/apple,wdt.yaml | 171 +- arch/arm64/boot/dts/apple/Makefile | 10 + arch/arm64/boot/dts/apple/t6050-j714c.dts | 12 + arch/arm64/boot/dts/apple/t6050-j714s.dts | 12 + arch/arm64/boot/dts/apple/t6050-j716c.dts | 12 + arch/arm64/boot/dts/apple/t6050-j716s.dts | 12 + arch/arm64/boot/dts/apple/t6050-j775c.dts | 12 + arch/arm64/boot/dts/apple/t6050-j775d.dts | 3 + arch/arm64/boot/dts/apple/t6050-j873s.dts | 12 + arch/arm64/boot/dts/apple/t6050-k114c.dts | 12 + arch/arm64/boot/dts/apple/t6050-k114s.dts | 12 + arch/arm64/boot/dts/apple/t6050-k116c.dts | 12 + arch/arm64/boot/dts/apple/t6050-k116s.dts | 12 + .../boot/dts/apple/t6050-peripherals.dtsi | 3588 +++++++++++++++++ arch/arm64/boot/dts/apple/t6050-pmgr.dtsi | 258 ++ arch/arm64/boot/dts/apple/t6050.dtsi | 749 ++++ 72 files changed, 14674 insertions(+), 4682 deletions(-) create mode 100644 Documentation/devicetree/bindings/display/apple,display-engine.yaml create mode 100644 Documentation/devicetree/bindings/display/apple,dptx-aux.yaml create mode 100644 Documentation/devicetree/bindings/dma/apple,admac-control.yaml create mode 100644 Documentation/devicetree/bindings/serial/apple,uart.yaml create mode 100644 Documentation/devicetree/bindings/soc/apple/apple,gpu-coproc.yaml create mode 100644 Documentation/devicetree/bindings/soc/apple/apple,msg.yaml create mode 100644 Documentation/devicetree/bindings/soc/apple/apple,phy-coproc.yaml create mode 100644 arch/arm64/boot/dts/apple/t6050-j714c.dts create mode 100644 arch/arm64/boot/dts/apple/t6050-j714s.dts create mode 100644 arch/arm64/boot/dts/apple/t6050-j716c.dts create mode 100644 arch/arm64/boot/dts/apple/t6050-j716s.dts create mode 100644 arch/arm64/boot/dts/apple/t6050-j775c.dts create mode 100644 arch/arm64/boot/dts/apple/t6050-j873s.dts create mode 100644 arch/arm64/boot/dts/apple/t6050-k114c.dts create mode 100644 arch/arm64/boot/dts/apple/t6050-k114s.dts create mode 100644 arch/arm64/boot/dts/apple/t6050-k116c.dts create mode 100644 arch/arm64/boot/dts/apple/t6050-k116s.dts create mode 100644 arch/arm64/boot/dts/apple/t6050-peripherals.dtsi create mode 100644 arch/arm64/boot/dts/apple/t6050-pmgr.dtsi create mode 100644 arch/arm64/boot/dts/apple/t6050.dtsi diff --git a/Documentation/devicetree/bindings/arm/apple.yaml b/Documentation/devicetree/bindings/arm/apple.yaml index 4823b3a00e5a9..253bf3830ae31 100644 --- a/Documentation/devicetree/bindings/arm/apple.yaml +++ b/Documentation/devicetree/bindings/arm/apple.yaml @@ -478,9 +478,20 @@ properties: - const: apple,t6041 - const: apple,arm-platform - - description: Apple M5 Ultra SoC based platforms + - description: Apple T6050 SoC based platforms items: - - const: apple,j775d # Mac Studio (M5 Ultra, 2026) + - enum: + - apple,j714c + - apple,j714s + - apple,j716c + - apple,j716s + - apple,j775c + - apple,j775d + - apple,j873s + - apple,k114c + - apple,k114s + - apple,k116c + - apple,k116s - const: apple,t6050 - const: apple,arm-platform diff --git a/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml b/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml index 5d9f55c3e5899..91ae5a3ce1bca 100644 --- a/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml +++ b/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml @@ -41,6 +41,7 @@ properties: - apple,t6030-pmgr - apple,t6031-pmgr - apple,t6041-pmgr + - apple,t6050-pmgr - apple,t8122-pmgr - apple,t8132-pmgr - apple,t8140-pmgr diff --git a/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml b/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml index 31d13c93d120e..9088149c41a18 100644 --- a/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml +++ b/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml @@ -27,6 +27,7 @@ select: - apple,t6000-pmgr-clocks - apple,t6032-pmgr-clocks - apple,t6041-pmgr-clocks + - apple,t6050-pmgr-clocks - apple,t8103-pmgr-clocks - apple,t8132-pmgr-clocks - apple,t8140-pmgr-clocks @@ -42,6 +43,16 @@ properties: description: Shared hardware resource metadata. allOf: + - if: + properties: + compatible: + contains: + const: apple,t6050-pmgr-clocks + then: + properties: + reg: + minItems: 60 + maxItems: 60 - if: properties: compatible: @@ -93,6 +104,7 @@ allOf: - enum: - apple,t6000-pmgr-clocks - apple,t6041-pmgr-clocks + - apple,t6050-pmgr-clocks - apple,t8103-pmgr-clocks - apple,t8140-pmgr-clocks - apple,t8142-pmgr-clocks diff --git a/Documentation/devicetree/bindings/crypto/apple,aes.yaml b/Documentation/devicetree/bindings/crypto/apple,aes.yaml index 57f7a93b5b284..13fd3a6416fe5 100644 --- a/Documentation/devicetree/bindings/crypto/apple,aes.yaml +++ b/Documentation/devicetree/bindings/crypto/apple,aes.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/crypto/apple,aes.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple AES engine @@ -14,123 +15,118 @@ description: | engine, shared control and auxiliary control windows, in that order. select: - properties: - compatible: - contains: - enum: - - apple,t6000-aes - - apple,t6020-aes - - apple,t6021-aes - - apple,t6022-aes - - apple,t6030-aes - - apple,t6031-aes - - apple,t6032-aes - - apple,t6041-aes - - apple,t8103-aes - - apple,t8112-aes - - apple,t8122-aes - - apple,t8132-aes - - apple,t8140-aes - required: - - compatible - -properties: - compatible: true - -allOf: - - if: + anyOf: + - properties: compatible: contains: enum: + - apple,t6000-aes + - apple,t6020-aes + - apple,t6021-aes + - apple,t6022-aes + - apple,t6030-aes + - apple,t6031-aes + - apple,t6032-aes + - apple,t6041-aes + - apple,t8103-aes + - apple,t8112-aes + - apple,t8122-aes - apple,t8132-aes + - apple,t8140-aes required: - compatible - then: + - properties: compatible: items: - - enum: - - apple,t8132-aes - - const: apple,aes - - reg: - minItems: 3 - maxItems: 3 - - interrupts: - maxItems: 1 - - power-domains: - maxItems: 1 + - + const: "apple,t6050-aes" + - + const: "apple,aes" + required: + - "compatible" - iommus: - maxItems: 1 +properties: + compatible: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true - required: - - compatible - - reg - - interrupts - - power-domains - - iommus +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-aes" + - + const: "apple,aes" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-aes" + - + const: "apple,aes" + status: + const: "disabled" + reg: + minItems: 3 + maxItems: 3 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + iommus: + maxItems: 1 + power-domains: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "power-domains" + additionalProperties: false else: + properties: + compatible: true allOf: - if: properties: compatible: contains: enum: - - apple,t6032-aes + - apple,t8132-aes required: - compatible then: - properties: - compatible: - items: - - const: apple,t6032-aes - - const: apple,aes - - reg: - minItems: 2 - maxItems: 2 - - interrupts: - maxItems: 1 - - power-domains: - maxItems: 1 - - iommus: - maxItems: 1 - - required: - - compatible - - reg - - interrupts - - power-domains - - iommus - else: properties: compatible: items: - enum: - - apple,t6000-aes - - apple,t6020-aes - - apple,t6021-aes - - apple,t6022-aes - - apple,t6030-aes - - apple,t6031-aes - - apple,t6041-aes - - apple,t8103-aes - - apple,t8112-aes - - apple,t8122-aes - - apple,t8140-aes + - apple,t8132-aes - const: apple,aes reg: - minItems: 2 + minItems: 3 maxItems: 3 - description: Engine and control banks, with an auxiliary bank on later variants. interrupts: maxItems: 1 @@ -139,8 +135,7 @@ allOf: maxItems: 1 iommus: - minItems: 1 - maxItems: 2 + maxItems: 1 required: - compatible @@ -148,44 +143,118 @@ allOf: - interrupts - power-domains - iommus - + else: allOf: - if: properties: compatible: contains: enum: - - apple,t6000-aes - - apple,t6020-aes - - apple,t6021-aes - - apple,t6022-aes - - apple,t6030-aes - - apple,t6031-aes - - apple,t8103-aes - - apple,t8112-aes - - apple,t8122-aes + - apple,t6032-aes + required: + - compatible then: properties: + compatible: + items: + - const: apple,t6032-aes + - const: apple,aes + reg: + minItems: 2 maxItems: 2 + + interrupts: + maxItems: 1 + + power-domains: + maxItems: 1 + + iommus: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - power-domains + - iommus else: - properties: - reg: - minItems: 3 - - if: properties: compatible: - contains: - const: apple,t6000-aes - then: - properties: - iommus: + items: + - enum: + - apple,t6000-aes + - apple,t6020-aes + - apple,t6021-aes + - apple,t6022-aes + - apple,t6030-aes + - apple,t6031-aes + - apple,t6041-aes + - apple,t8103-aes + - apple,t8112-aes + - apple,t8122-aes + - apple,t8140-aes + - const: apple,aes + + reg: minItems: 2 - else: - properties: - iommus: + maxItems: 3 + description: Engine and control banks, with an auxiliary bank on later variants. + + interrupts: + maxItems: 1 + + power-domains: maxItems: 1 - additionalProperties: false + iommus: + minItems: 1 + maxItems: 2 + + required: + - compatible + - reg + - interrupts + - power-domains + - iommus + + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t6000-aes + - apple,t6020-aes + - apple,t6021-aes + - apple,t6022-aes + - apple,t6030-aes + - apple,t6031-aes + - apple,t8103-aes + - apple,t8112-aes + - apple,t8122-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 -unevaluatedProperties: false + additionalProperties: false + unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml b/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml index 0d85582addd62..803297da9a554 100644 --- a/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml +++ b/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/display/apple,dcp-expert.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple display expert control registers @@ -15,66 +16,128 @@ description: | blocks and must not be accessed without an ownership handoff. select: - properties: - compatible: - contains: - enum: - - apple,t6041-dcp-expert - - apple,t8132-dcp-expert - - apple,t8140-dcp-expert - required: - - compatible - -properties: - compatible: true - -allOf: - - if: + anyOf: + - properties: compatible: contains: enum: + - apple,t6041-dcp-expert - apple,t8132-dcp-expert + - apple,t8140-dcp-expert required: - compatible - then: + - properties: compatible: items: - - enum: - - apple,t8132-dcp-expert - - const: apple,dcp-expert - - reg: - minItems: 2 - maxItems: 2 - + - + const: "apple,t6050-dcp-expert" + - + const: "apple,dcp-expert" required: - - compatible - - reg + - "compatible" +properties: + compatible: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-dcp-expert" + - + const: "apple,dcp-expert" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-dcp-expert" + - + const: "apple,dcp-expert" + status: + const: "disabled" + reg: + minItems: 3 + maxItems: 13 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + additionalProperties: false else: properties: - compatible: - oneOf: - - items: - - const: apple,t6041-dcp-expert - - const: apple,dcp-expert - - items: - - const: apple,t8140-dcp-expert - - const: apple,dcp-expert + compatible: true + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t8132-dcp-expert + required: + - compatible + then: + properties: + compatible: + items: + - enum: + - apple,t8132-dcp-expert + - const: apple,dcp-expert - reg: - minItems: 3 - maxItems: 17 - description: Register apertures in hardware-description order. + reg: + minItems: 2 + maxItems: 2 - interrupts: - maxItems: 1 + required: + - compatible + - reg - required: - - compatible - - reg - - interrupts + else: + properties: + compatible: + oneOf: + - items: + - const: apple,t6041-dcp-expert + - const: apple,dcp-expert + - items: + - const: apple,t8140-dcp-expert + - const: apple,dcp-expert + + reg: + minItems: 3 + maxItems: 17 + description: Register apertures in hardware-description order. + + interrupts: + maxItems: 1 -unevaluatedProperties: false + required: + - compatible + - reg + - interrupts + unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/display/apple,dcp.yaml b/Documentation/devicetree/bindings/display/apple,dcp.yaml index b0f711cba9327..08f247dd81fcd 100644 --- a/Documentation/devicetree/bindings/display/apple,dcp.yaml +++ b/Documentation/devicetree/bindings/display/apple,dcp.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/display/apple,dcp.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple display coprocessor @@ -14,113 +15,103 @@ description: through an RTKit mailbox. Its piodma child uses a separate display DART stream from the coprocessor itself. -properties: - compatible: - oneOf: - - items: - - enum: - - apple,t8103-dcp - - apple,t8112-dcp - - apple,t6000-dcp - - apple,t6020-dcp - - apple,t6041-dcp - - apple,t8140-dcp - - apple,t8142-dcp - - const: apple,dcp - - items: - - enum: - - apple,t8103-dcpext - - apple,t8112-dcpext - - apple,t6000-dcpext - - apple,t6020-dcpext - - apple,t6041-dcpext - - const: apple,dcpext - - items: - - const: apple,t8140-dcpext - - const: apple,dcp - - description: - J713 internal display controller (T8132), whose inherited firmware - session uses IOMFB 26.6.2. The loader publishes the firmware identity, - reserved memory and validated display DART mappings. - const: apple,t8132-dcp - - description: - J713 external display coprocessors (T8132), running the internal - DCP's firmware. The boot loader can hand them over running; it then - reserves their firmware memory, publishes the firmware identity and - sets apple,t8132-dcpext-firmware-ready. - const: apple,t8132-dcpext - - description: - T6031 (M3 Max) internal display controller. The display gate enables - it after the boot loader has handed the running display over. - const: apple,t6031-dcp - - reg: - minItems: 2 - maxItems: 8 - - reg-names: - minItems: 2 - items: - - const: coproc - - const: disp-0 - - enum: [disp-1, iop-vbar] - - enum: [disp-2, iop-vbar] - - enum: [disp-3, iop-vbar] - - enum: [disp-4, iop-vbar] - - enum: [disp-5, iop-vbar, coproc-aux] - - const: iop-vbar - - interrupts: - minItems: 7 - maxItems: 16 - description: Optional host display-engine interrupt sources. +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,bw-doorbell" + - "apple,bw-scratch" + - "apple,connector-type" + - "apple,dcp" + - "apple,dcp-endpoint" + - "apple,dcp-index" + - "apple,dcpext" + - "apple,dptx-die" + - "apple,dptx-phy" + - "apple,firmware-compat" + - "apple,firmware-uuid" + - "apple,firmware-version" + - "apple,iomfb-surfaces" + - "apple,j713-inherited-mappings" + - "apple,j713-native-piodma" + - "apple,j713-native-scanout" + - "apple,max-brightness" + - "apple,notch-height" + - "apple,panel" + - "apple,panel-height-mm" + - "apple,panel-j" + - "apple,panel-mini-led" + - "apple,panel-width-mm" + - "apple,pmp-report" + - "apple,power-lut-data-lut" + - "apple,power-lut-data-x" + - "apple,power-lut-data-xindex" + - "apple,power-lut-data-y" + - "apple,power-lut-data-yindex" + - "apple,t6000-dcp" + - "apple,t6000-dcpext" + - "apple,t6020-dcp" + - "apple,t6020-dcpext" + - "apple,t6030-dcpext" + - "apple,t6031-dcp" + - "apple,t6041-dcp" + - "apple,t6041-dcpext" + - "apple,t8103-dcp" + - "apple,t8103-dcpext" + - "apple,t8112-dcp" + - "apple,t8112-dcpext" + - "apple,t8132-dcp" + - "apple,t8132-dcpext" + - "apple,t8132-dcpext-firmware-ready" + - "apple,t8132-dcpext-firmware-ready." + - "apple,t8140-dcp" + - "apple,t8140-dcpext" + - "apple,t8142-dcp" + - "apple,typec-dptx-phys" + - "apple,typec-hybrid-first" + - "apple,typec-mux-indices" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-dcp" + - + const: "apple,dcp" + required: + - "compatible" +properties: + compatible: true + reg: true + reg-names: true + interrupts: true mboxes: maxItems: 1 - mbox-names: items: - const: mbox - - iommus: - maxItems: 1 - - power-domains: - maxItems: 1 - + iommus: true + power-domains: true dma-noncoherent: true - - resets: - maxItems: 1 - - clocks: - minItems: 1 - maxItems: 2 - - clock-names: - minItems: 1 - items: - - const: clock-154 - - const: clock-194 - - memory-region: - minItems: 1 - maxItems: 64 - - memory-region-names: - minItems: 1 - maxItems: 64 - + resets: true + clocks: true + clock-names: true + memory-region: true + memory-region-names: true phys: minItems: 1 maxItems: 8 - phy-names: minItems: 1 maxItems: 8 items: pattern: '^(dp-phy|typec[0-9]+)$' - apple,bw-scratch: $ref: /schemas/types.yaml#/definitions/phandle-array items: @@ -133,7 +124,6 @@ properties: PMGR bandwidth scratch resource, display index and offset. On the T8132 external DCPs it is the pipe's 8-byte realtime bandwidth request slot, which lies inside the display register window the index names (disp-4). - apple,bw-doorbell: $ref: /schemas/types.yaml#/definitions/phandle-array items: @@ -142,7 +132,6 @@ properties: - description: Index into the provider's reg property. - description: Index in the firmware display register table. description: Optional PMGR bandwidth doorbell resource and display index. - apple,iomfb-surfaces: $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 1 @@ -152,7 +141,6 @@ properties: description: | Per-slot enable flags, in slot order. The legacy J700 bootloader supplies a single zero to select surface zero instead. - apple,power-lut-data-x: $ref: /schemas/types.yaml#/definitions/uint8-array minItems: 4 @@ -161,7 +149,6 @@ properties: First dimension of the display firmware power lookup table. The bootloader copies the disp0 ADT property verbatim, as a little-endian 32-bit word, for transfer to the display firmware. - apple,power-lut-data-y: $ref: /schemas/types.yaml#/definitions/uint8-array minItems: 4 @@ -169,7 +156,6 @@ properties: description: | Second dimension of the display firmware power lookup table, copied verbatim from disp0 in the ADT as a little-endian 32-bit word. - apple,power-lut-data-xindex: $ref: /schemas/types.yaml#/definitions/uint8-array minItems: 52 @@ -178,7 +164,6 @@ properties: First-axis indices of the display firmware power lookup table, copied verbatim from disp0 in the ADT as thirteen little-endian 32-bit words. These are firmware table inputs, not a Linux backlight range. - apple,power-lut-data-yindex: $ref: /schemas/types.yaml#/definitions/uint8-array minItems: 4 @@ -186,7 +171,6 @@ properties: description: | Second-axis index of the display firmware power lookup table, copied verbatim from disp0 in the ADT as a little-endian 32-bit word. - apple,power-lut-data-lut: $ref: /schemas/types.yaml#/definitions/uint8-array minItems: 52 @@ -195,39 +179,31 @@ properties: Display firmware power lookup table, copied verbatim from disp0 in the ADT as thirteen little-endian 32-bit words. Linux passes these values to the firmware without interpreting or changing them. - apple,firmware-uuid: $ref: /schemas/types.yaml#/definitions/string description: UUID of the inherited display firmware image. - apple,j713-native-piodma: type: boolean description: Request loader validation of the inherited J713 PIODMA stream. - apple,j713-native-scanout: type: boolean description: Request loader validation of the inherited J713 scanout stream. - apple,panel-width-mm: maxItems: 1 description: Physical width of the inherited internal panel. - apple,panel-height-mm: maxItems: 1 description: Physical height of the inherited internal panel. - apple,firmware-version: $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 3 maxItems: 5 description: Version reported by the loaded display firmware. - apple,firmware-compat: $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 3 maxItems: 5 description: Loader-provided firmware ABI version used for IOMFB selection. - apple,t8132-dcpext-firmware-ready: $ref: /schemas/types.yaml#/definitions/uint32 enum: [0, 1] @@ -235,14 +211,11 @@ properties: Set to 1 by the boot loader once it has handed a T8132 external display coprocessor over running, with its firmware memory reserved. Without it the coprocessor is left alone. - apple,connector-type: enum: [HDMI-A, DP, USB-C] - apple,dcp-index: $ref: /schemas/types.yaml#/definitions/uint32 description: Display coprocessor index on multi-DCP systems. - apple,typec-hybrid-first: type: boolean description: @@ -251,7 +224,6 @@ properties: sink, instead of being kept back for that output. Set where this pipeline is the only one that can be the primary of a display wider than one pipe. - apple,dcp-endpoint: $ref: /schemas/types.yaml#/definitions/uint32 description: @@ -259,37 +231,30 @@ properties: index), by which two external pipes name each other when a display wider than one pipe is driven by two of them. 0 is the internal display. - apple,dptx-phy: $ref: /schemas/types.yaml#/definitions/uint32 description: DisplayPort transmitter PHY selector. - apple,dptx-die: $ref: /schemas/types.yaml#/definitions/uint32 description: Die containing the DisplayPort transmitter. - apple,notch-height: $ref: /schemas/types.yaml#/definitions/uint32 description: Height in pixels reserved for the display notch. - apple,pmp-report: $ref: /schemas/types.yaml#/definitions/phandle description: PMP report entry for this coprocessor's display request. The display firmware runs only once the PMP has acknowledged it. - apple,typec-mux-indices: $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 1 maxItems: 4 description: Crossbar state for each Type-C display route. - apple,typec-dptx-phys: $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 1 maxItems: 4 description: DisplayPort PHY index for each Type-C display route. - mux-controls: $ref: /schemas/types.yaml#/definitions/phandle-array minItems: 1 @@ -298,32 +263,22 @@ properties: T6030 and T8132 external DCPs may also name the two DP IN tunnel states of each Type-C crossbar, in addition to the fixed output and Type-C routes. - mux-control-names: minItems: 1 maxItems: 10 items: pattern: '^(dp-xbar|typec[0-9]+(-dpin[01])?)$' - mux-index: $ref: /schemas/types.yaml#/definitions/uint32 description: Crossbar state for a fixed output. - hdmi-hpd-gpios: maxItems: 1 - hdmi-pwren-gpios: maxItems: 1 - dp2hdmi-pwren-gpios: maxItems: 1 - - '#address-cells': - const: 2 - - '#size-cells': - const: 2 - + "#address-cells": true + "#size-cells": true piodma: type: object properties: @@ -339,7 +294,6 @@ properties: required: - iommus additionalProperties: false - panel: type: object properties: @@ -365,7 +319,6 @@ properties: required: - compatible additionalProperties: false - typec-routes: type: object properties: @@ -392,73 +345,505 @@ properties: - '#address-cells' - '#size-cells' additionalProperties: false - ports: $ref: /schemas/graph.yaml#/properties/ports - -required: - - compatible - - reg - - reg-names - - mboxes - - iommus + status: true allOf: - if: - not: - properties: - compatible: - contains: - enum: ['apple,t6030-dcpext', 'apple,t8132-dcpext'] - required: - - compatible + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-dcp" + - + const: "apple,dcp" + status: + const: "disabled" + required: + - "compatible" + - "status" then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-dcp" + - + const: "apple,dcp" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 7 + maxItems: 8 + iommus: + minItems: 2 + maxItems: 2 + power-domains: + minItems: 1 + maxItems: 2 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "clocks" + additionalProperties: false + else: properties: - mux-controls: + compatible: + oneOf: + - items: + - enum: + - apple,t8103-dcp + - apple,t8112-dcp + - apple,t6000-dcp + - apple,t6020-dcp + - apple,t6041-dcp + - apple,t8140-dcp + - apple,t8142-dcp + - const: apple,dcp + - items: + - enum: + - apple,t8103-dcpext + - apple,t8112-dcpext + - apple,t6000-dcpext + - apple,t6020-dcpext + - apple,t6041-dcpext + - const: apple,dcpext + - items: + - const: apple,t8140-dcpext + - const: apple,dcp + - description: + J713 internal display controller (T8132), whose inherited firmware + session uses IOMFB 26.6.2. The loader publishes the firmware identity, + reserved memory and validated display DART mappings. + const: apple,t8132-dcp + - description: + J713 external display coprocessors (T8132), running the internal + DCP's firmware. The boot loader can hand them over running; it then + reserves their firmware memory, publishes the firmware identity and + sets apple,t8132-dcpext-firmware-ready. + const: apple,t8132-dcpext + - description: + T6031 (M3 Max) internal display controller. The display gate enables + it after the boot loader has handed the running display over. + const: apple,t6031-dcp + + reg: + minItems: 2 maxItems: 8 - mux-control-names: + + reg-names: + minItems: 2 + items: + - const: coproc + - const: disp-0 + - enum: [disp-1, iop-vbar] + - enum: [disp-2, iop-vbar] + - enum: [disp-3, iop-vbar] + - enum: [disp-4, iop-vbar] + - enum: [disp-5, iop-vbar, coproc-aux] + - const: iop-vbar + + interrupts: + minItems: 7 + maxItems: 16 + description: Optional host display-engine interrupt sources. + + mboxes: + maxItems: 1 + + mbox-names: + items: + - const: mbox + + iommus: + maxItems: 1 + + power-domains: + maxItems: 1 + + dma-noncoherent: true + + resets: + maxItems: 1 + + clocks: + minItems: 1 + maxItems: 2 + + clock-names: + minItems: 1 + items: + - const: clock-154 + - const: clock-194 + + memory-region: + minItems: 1 + maxItems: 64 + + memory-region-names: + minItems: 1 + maxItems: 64 + + phys: + minItems: 1 + maxItems: 8 + + phy-names: + minItems: 1 maxItems: 8 items: - pattern: '^(dp-xbar|typec[0-9]+)$' - - if: + pattern: '^(dp-phy|typec[0-9]+)$' + + apple,bw-scratch: + $ref: /schemas/types.yaml#/definitions/phandle-array + items: + - items: + - description: Phandle of the PMGR bandwidth register provider. + - description: Index into the provider's reg property. + - description: Index in the firmware display register table. + - description: Byte offset of the scratch register within the resource. + description: | + PMGR bandwidth scratch resource, display index and offset. On the T8132 + external DCPs it is the pipe's 8-byte realtime bandwidth request slot, + which lies inside the display register window the index names (disp-4). + + apple,bw-doorbell: + $ref: /schemas/types.yaml#/definitions/phandle-array + items: + - items: + - description: Phandle of the PMGR bandwidth register provider. + - description: Index into the provider's reg property. + - description: Index in the firmware display register table. + description: Optional PMGR bandwidth doorbell resource and display index. + + apple,iomfb-surfaces: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 4 + items: + enum: [0, 1] + description: | + Per-slot enable flags, in slot order. The legacy J700 bootloader + supplies a single zero to select surface zero instead. + + apple,power-lut-data-x: + $ref: /schemas/types.yaml#/definitions/uint8-array + minItems: 4 + maxItems: 4 + description: | + First dimension of the display firmware power lookup table. The + bootloader copies the disp0 ADT property verbatim, as a little-endian + 32-bit word, for transfer to the display firmware. + + apple,power-lut-data-y: + $ref: /schemas/types.yaml#/definitions/uint8-array + minItems: 4 + maxItems: 4 + description: | + Second dimension of the display firmware power lookup table, copied + verbatim from disp0 in the ADT as a little-endian 32-bit word. + + apple,power-lut-data-xindex: + $ref: /schemas/types.yaml#/definitions/uint8-array + minItems: 52 + maxItems: 52 + description: | + First-axis indices of the display firmware power lookup table, copied + verbatim from disp0 in the ADT as thirteen little-endian 32-bit words. + These are firmware table inputs, not a Linux backlight range. + + apple,power-lut-data-yindex: + $ref: /schemas/types.yaml#/definitions/uint8-array + minItems: 4 + maxItems: 4 + description: | + Second-axis index of the display firmware power lookup table, copied + verbatim from disp0 in the ADT as a little-endian 32-bit word. + + apple,power-lut-data-lut: + $ref: /schemas/types.yaml#/definitions/uint8-array + minItems: 52 + maxItems: 52 + description: | + Display firmware power lookup table, copied verbatim from disp0 in + the ADT as thirteen little-endian 32-bit words. Linux passes these + values to the firmware without interpreting or changing them. + + apple,firmware-uuid: + $ref: /schemas/types.yaml#/definitions/string + description: UUID of the inherited display firmware image. + + apple,j713-native-piodma: + type: boolean + description: Request loader validation of the inherited J713 PIODMA stream. + + apple,j713-native-scanout: + type: boolean + description: Request loader validation of the inherited J713 scanout stream. + + apple,panel-width-mm: + maxItems: 1 + description: Physical width of the inherited internal panel. + + apple,panel-height-mm: + maxItems: 1 + description: Physical height of the inherited internal panel. + + apple,firmware-version: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 3 + maxItems: 5 + description: Version reported by the loaded display firmware. + + apple,firmware-compat: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 3 + maxItems: 5 + description: Loader-provided firmware ABI version used for IOMFB selection. + + apple,t8132-dcpext-firmware-ready: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1] + description: + Set to 1 by the boot loader once it has handed a T8132 external display + coprocessor over running, with its firmware memory reserved. Without + it the coprocessor is left alone. + + apple,connector-type: + enum: [HDMI-A, DP, USB-C] + + apple,dcp-index: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Display coprocessor index on multi-DCP systems. + + apple,typec-hybrid-first: + type: boolean + description: + A hybrid pipeline (a fixed output plus Type-C routes) is planned for a + Type-C port before the other pipelines, while its fixed output has no + sink, instead of being kept back for that output. Set where this + pipeline is the only one that can be the primary of a display wider than + one pipe. + + apple,dcp-endpoint: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + The display endpoint this coprocessor is to its firmware (its display + index), by which two external pipes name each other when a display + wider than one pipe is driven by two of them. 0 is the internal + display. + + apple,dptx-phy: + $ref: /schemas/types.yaml#/definitions/uint32 + description: DisplayPort transmitter PHY selector. + + apple,dptx-die: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Die containing the DisplayPort transmitter. + + apple,notch-height: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Height in pixels reserved for the display notch. + + apple,pmp-report: + $ref: /schemas/types.yaml#/definitions/phandle + description: + PMP report entry for this coprocessor's display request. The display + firmware runs only once the PMP has acknowledged it. + + apple,typec-mux-indices: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 4 + description: Crossbar state for each Type-C display route. + + apple,typec-dptx-phys: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 4 + description: DisplayPort PHY index for each Type-C display route. + + mux-controls: + $ref: /schemas/types.yaml#/definitions/phandle-array + minItems: 1 + maxItems: 10 + description: | + T6030 and T8132 external DCPs may also name the two DP IN tunnel states + of each Type-C crossbar, in addition to the fixed output and Type-C + routes. + + mux-control-names: + minItems: 1 + maxItems: 10 + items: + pattern: '^(dp-xbar|typec[0-9]+(-dpin[01])?)$' + + mux-index: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Crossbar state for a fixed output. + + hdmi-hpd-gpios: + maxItems: 1 + + hdmi-pwren-gpios: + maxItems: 1 + + dp2hdmi-pwren-gpios: + maxItems: 1 + + '#address-cells': + const: 2 + + '#size-cells': + const: 2 + + piodma: + type: object + properties: + iommus: + maxItems: 1 + dma-noncoherent: true + memory-region: + minItems: 1 + maxItems: 64 + apple,j713-inherited-mappings: + type: boolean + description: The loader validated the inherited J713 SID16 PIODMA mapping. + required: + - iommus + additionalProperties: false + + panel: + type: object + properties: + compatible: + oneOf: + - const: apple,panel + - items: + - pattern: '^apple,panel-j[0-9]+$' + - const: apple,panel + - items: + - pattern: '^apple,panel-j[0-9]+$' + - const: apple,panel-mini-led + - const: apple,panel + width-mm: + description: Physical panel width. + height-mm: + description: Physical panel height. + adj-height-mm: + description: Visible height below the notch. + apple,max-brightness: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Maximum firmware backlight level. + required: + - compatible + additionalProperties: false + + typec-routes: + type: object + properties: + '#address-cells': + const: 1 + '#size-cells': + const: 0 + patternProperties: + '^route@[0-3]$': + type: object + properties: + reg: + maxItems: 1 + mode-switch: + type: boolean + port: + $ref: /schemas/graph.yaml#/properties/port + required: + - reg + - mode-switch + - port + additionalProperties: false + required: + - '#address-cells' + - '#size-cells' + additionalProperties: false + + ports: + $ref: /schemas/graph.yaml#/properties/ports + required: + - compatible + - reg + - reg-names + - mboxes + - iommus allOf: - - not: + - if: + not: + properties: + compatible: + contains: + enum: ['apple,t6030-dcpext', 'apple,t8132-dcpext'] + required: + - compatible + then: + properties: + mux-controls: + maxItems: 8 + mux-control-names: + maxItems: 8 + items: + pattern: '^(dp-xbar|typec[0-9]+)$' + - if: + allOf: + - not: + properties: + compatible: + contains: + enum: ['apple,t6031-dcp', 'apple,t8132-dcp', 'apple,t8132-dcpext'] + - not: + properties: + status: + const: disabled + required: + - status + then: + required: + - apple,bw-scratch + - if: + not: + properties: + compatible: + contains: + enum: ['apple,t8140-dcp', 'apple,t8140-dcpext'] + then: + properties: + apple,power-lut-data-x: false + apple,power-lut-data-y: false + apple,power-lut-data-xindex: false + apple,power-lut-data-yindex: false + apple,power-lut-data-lut: false + - if: properties: compatible: contains: - enum: ['apple,t6031-dcp', 'apple,t8132-dcp', 'apple,t8132-dcpext'] - - not: + enum: ['apple,t8140-dcp', 'apple,t8140-dcpext'] + then: properties: - status: - const: disabled - required: - - status - then: - required: - - apple,bw-scratch - - if: - not: - properties: - compatible: - contains: - enum: ['apple,t8140-dcp', 'apple,t8140-dcpext'] - then: - properties: - apple,power-lut-data-x: false - apple,power-lut-data-y: false - apple,power-lut-data-xindex: false - apple,power-lut-data-yindex: false - apple,power-lut-data-lut: false - - if: - properties: - compatible: - contains: - enum: ['apple,t8140-dcp', 'apple,t8140-dcpext'] - then: - properties: - resets: false - -unevaluatedProperties: false + resets: false + unevaluatedProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/display/apple,display-engine.yaml b/Documentation/devicetree/bindings/display/apple,display-engine.yaml new file mode 100644 index 0000000000000..1c83bae5446b6 --- /dev/null +++ b/Documentation/devicetree/bindings/display/apple,display-engine.yaml @@ -0,0 +1,38 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/display/apple,display-engine.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" +title: "Apple display engine hardware resources" +maintainers: + - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" +description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." +properties: + compatible: + items: + - + const: "apple,t6050-display-engine" + - + const: "apple,display-engine" + status: + const: "disabled" + reg: + minItems: 5 + maxItems: 5 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 11 + maxItems: 13 + iommus: + minItems: 2 + maxItems: 2 + clocks: + maxItems: 2 +required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "clocks" +additionalProperties: false diff --git a/Documentation/devicetree/bindings/display/apple,dpin.yaml b/Documentation/devicetree/bindings/display/apple,dpin.yaml index bb4ca4c234236..0b5676d3f92cd 100644 --- a/Documentation/devicetree/bindings/display/apple,dpin.yaml +++ b/Documentation/devicetree/bindings/display/apple,dpin.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/display/apple,dpin.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple DisplayPort tunnel ingress @@ -13,102 +14,109 @@ description: | DisplayPort ingress registers and interrupt for a USB4 display tunnel. select: - properties: - compatible: - contains: - enum: - - apple,t6000-dpin - - apple,t6020-dpin - - apple,t6021-dpin - - apple,t6022-dpin - - apple,t6030-dpin - - apple,t6031-dpin - - apple,t6032-dpin - - apple,t6041-dpin - - apple,t8103-dpin - - apple,t8112-dpin - - apple,t8122-dpin - - apple,t8132-dpin - required: - - compatible - -properties: - compatible: true - -allOf: - - if: + anyOf: + - properties: compatible: contains: enum: + - apple,t6000-dpin + - apple,t6020-dpin + - apple,t6021-dpin + - apple,t6022-dpin + - apple,t6030-dpin + - apple,t6031-dpin + - apple,t6032-dpin + - apple,t6041-dpin + - apple,t8103-dpin + - apple,t8112-dpin + - apple,t8122-dpin - apple,t8132-dpin required: - compatible - then: + - properties: compatible: items: - - enum: - - apple,t8132-dpin - - const: apple,dpin - - reg: - maxItems: 1 + - + const: "apple,t6050-dpin" + - + const: "apple,dpin" + required: + - "compatible" - interrupts: - maxItems: 1 +properties: + compatible: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true - required: - - compatible - - reg - - interrupts +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-dpin" + - + const: "apple,dpin" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-dpin" + - + const: "apple,dpin" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + additionalProperties: false else: + properties: + compatible: true allOf: - if: properties: compatible: contains: enum: - - apple,t6032-dpin + - apple,t8132-dpin required: - compatible then: - properties: - compatible: - items: - - const: apple,t6032-dpin - - const: apple,dpin - - reg: - maxItems: 1 - - interrupts: - maxItems: 1 - - required: - - compatible - - reg - - interrupts - else: properties: compatible: items: - enum: - - apple,t6000-dpin - - apple,t6020-dpin - - apple,t6021-dpin - - apple,t6022-dpin - - apple,t6030-dpin - - apple,t6031-dpin - - apple,t6041-dpin - - apple,t8103-dpin - - apple,t8112-dpin - - apple,t8122-dpin + - apple,t8132-dpin - const: apple,dpin reg: maxItems: 1 - description: Register apertures in hardware-description order. interrupts: maxItems: 1 @@ -117,7 +125,61 @@ allOf: - compatible - reg - interrupts - - additionalProperties: false - -unevaluatedProperties: false + else: + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t6032-dpin + required: + - compatible + then: + properties: + compatible: + items: + - const: apple,t6032-dpin + - const: apple,dpin + + reg: + maxItems: 1 + + interrupts: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + else: + properties: + compatible: + items: + - enum: + - apple,t6000-dpin + - apple,t6020-dpin + - apple,t6021-dpin + - apple,t6022-dpin + - apple,t6030-dpin + - apple,t6031-dpin + - apple,t6041-dpin + - apple,t8103-dpin + - apple,t8112-dpin + - apple,t8122-dpin + - const: apple,dpin + + reg: + maxItems: 1 + description: Register apertures in hardware-description order. + + interrupts: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + + additionalProperties: false + unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/display/apple,dptx-aux.yaml b/Documentation/devicetree/bindings/display/apple,dptx-aux.yaml new file mode 100644 index 0000000000000..247ce5c154d1a --- /dev/null +++ b/Documentation/devicetree/bindings/display/apple,dptx-aux.yaml @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/display/apple,dptx-aux.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" +title: "Apple dptx aux hardware resources" +maintainers: + - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" +description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." +properties: + compatible: + items: + - + const: "apple,t6050-dptx-aux" + - + const: "apple,dptx-aux" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + power-domains: + maxItems: 1 +required: + - "compatible" + - "reg" + - "status" + - "power-domains" +additionalProperties: false diff --git a/Documentation/devicetree/bindings/dma/apple,admac-control.yaml b/Documentation/devicetree/bindings/dma/apple,admac-control.yaml new file mode 100644 index 0000000000000..cfe023428006b --- /dev/null +++ b/Documentation/devicetree/bindings/dma/apple,admac-control.yaml @@ -0,0 +1,30 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/dma/apple,admac-control.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" +title: "Apple admac control hardware resources" +maintainers: + - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" +description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." +properties: + compatible: + items: + - + const: "apple,t6050-admac-control" + - + const: "apple,admac-control" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 +required: + - "compatible" + - "reg" + - "status" + - "interrupts" +additionalProperties: false diff --git a/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml b/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml index bb8ee4570b6bd..e367da852d1ac 100644 --- a/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml +++ b/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/dma/apple,admac-secure.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple secure audio DMA controller @@ -17,40 +18,113 @@ description: | Linux logical channel IDs alternate TX and RX; the ADT slot count is per direction. -allOf: - - $ref: dma-controller.yaml# +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,admac-secure" + - "apple,t8140-admac-secure" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-admac-secure" + - + const: "apple,admac-secure" + required: + - "compatible" properties: - compatible: - items: - - const: apple,t8140-admac-secure - - const: apple,admac-secure - - reg: - maxItems: 1 - - '#dma-cells': - const: 1 - + compatible: true + reg: true + "#dma-cells": true dma-channels: const: 18 + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-admac-secure" + - + const: "apple,admac-secure" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-admac-secure" + - + const: "apple,admac-secure" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + "#dma-cells": + const: 1 + required: + - "compatible" + - "reg" + - "status" + - "#dma-cells" + additionalProperties: false + else: + allOf: + - $ref: dma-controller.yaml# + properties: + compatible: + items: + - const: apple,t8140-admac-secure + - const: apple,admac-secure + + reg: + maxItems: 1 - interrupts: - maxItems: 1 + '#dma-cells': + const: 1 - iommus: - maxItems: 1 + dma-channels: + const: 18 - power-domains: - maxItems: 1 + interrupts: + maxItems: 1 -required: - - compatible - - reg - - '#dma-cells' - - dma-channels - - interrupts - - iommus - - power-domains + iommus: + maxItems: 1 -additionalProperties: false + power-domains: + maxItems: 1 + required: + - compatible + - reg + - '#dma-cells' + - dma-channels + - interrupts + - iommus + - power-domains + additionalProperties: false diff --git a/Documentation/devicetree/bindings/dma/apple,admac.yaml b/Documentation/devicetree/bindings/dma/apple,admac.yaml index 64d80cd5f4bcd..15d221ebdfc2f 100644 --- a/Documentation/devicetree/bindings/dma/apple,admac.yaml +++ b/Documentation/devicetree/bindings/dma/apple,admac.yaml @@ -2,10 +2,14 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/dma/apple,admac.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple Audio DMA Controller (ADMAC) +maintainers: + - Martin Povišer + description: | Apple's Audio DMA Controller (ADMAC) is used to fetch and store audio samples on SoCs from the "Apple Silicon" family. @@ -14,63 +18,46 @@ description: | are TX-only, odd-numbered are RX-only. Individual channels are coupled to fixed device endpoints. -maintainers: - - Martin Povišer - -allOf: - - $ref: dma-controller.yaml# +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,admac" + - "apple,dma-range" + - "apple,t6000-admac" + - "apple,t6020-admac" + - "apple,t6030-admac" + - "apple,t6031-admac" + - "apple,t6041-admac" + - "apple,t8103-admac" + - "apple,t8112-admac" + - "apple,t8122-admac" + - "apple,t8132-admac" + - "apple,t8140-admac" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-admac" + - + const: "apple,admac" + required: + - "compatible" properties: - compatible: - oneOf: - - items: - - const: apple,t6020-admac - - const: apple,t8103-admac - - items: - - enum: - # Do not add additional SoC to this list. - - apple,t6000-admac - - apple,t8103-admac - - apple,t8112-admac - - const: apple,admac - - items: - - enum: - - apple,t6030-admac - - apple,t6031-admac - - const: apple,t8122-admac - - const: apple,t8122-admac - - const: apple,t8140-admac - - const: apple,t8132-admac - - items: - - const: apple,t6041-admac - - const: apple,t8132-admac - - reg: - maxItems: 1 - - '#dma-cells': - const: 1 - description: - Clients specify a single cell with channel number. Logical IDs alternate - TX and RX, including T8132 controllers with separate register banks. - + compatible: true + reg: true + "#dma-cells": true dma-channels: maximum: 32 - - interrupts: - minItems: 4 - maxItems: 4 - description: - Interrupts that correspond to the 4 IRQ outputs of the controller. Usually - only one of the controller outputs will be connected as an usable interrupt - source. The remaining interrupts will be left without a valid value, e.g. - in an interrupts-extended list the disconnected positions will contain - an empty phandle reference <0>. - - iommus: - minItems: 1 - maxItems: 2 - + interrupts: true + iommus: true apple,dma-range: $ref: /schemas/types.yaml#/definitions/uint64-array minItems: 2 @@ -79,23 +66,135 @@ properties: Host DMA allocation window as a base and nonzero size. T8140 ADMAC instances share firmware-owned AOP DART roots and use windows assigned to their own streams. If absent, the DART allocation aperture applies. - nonposted-mmio: true + power-domains: true + resets: true + clocks: true + status: true - power-domains: - maxItems: 1 - - resets: - maxItems: 1 - -required: - - compatible - - reg - - '#dma-cells' - - dma-channels - - interrupts - -additionalProperties: false +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-admac" + - + const: "apple,admac" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-admac" + - + const: "apple,admac" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + iommus: + maxItems: 1 + "#dma-cells": + const: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "#dma-cells" + additionalProperties: false + else: + allOf: + - $ref: dma-controller.yaml# + properties: + compatible: + oneOf: + - items: + - const: apple,t6020-admac + - const: apple,t8103-admac + - items: + - enum: + # Do not add additional SoC to this list. + - apple,t6000-admac + - apple,t8103-admac + - apple,t8112-admac + - const: apple,admac + - items: + - enum: + - apple,t6030-admac + - apple,t6031-admac + - const: apple,t8122-admac + - const: apple,t8122-admac + - const: apple,t8140-admac + - const: apple,t8132-admac + - items: + - const: apple,t6041-admac + - const: apple,t8132-admac + + reg: + maxItems: 1 + + '#dma-cells': + const: 1 + description: + Clients specify a single cell with channel number. Logical IDs alternate + TX and RX, including T8132 controllers with separate register banks. + + dma-channels: + maximum: 32 + + interrupts: + minItems: 4 + maxItems: 4 + description: + Interrupts that correspond to the 4 IRQ outputs of the controller. Usually + only one of the controller outputs will be connected as an usable interrupt + source. The remaining interrupts will be left without a valid value, e.g. + in an interrupts-extended list the disconnected positions will contain + an empty phandle reference <0>. + + iommus: + minItems: 1 + maxItems: 2 + + apple,dma-range: + $ref: /schemas/types.yaml#/definitions/uint64-array + minItems: 2 + maxItems: 2 + description: + Host DMA allocation window as a base and nonzero size. T8140 ADMAC + instances share firmware-owned AOP DART roots and use windows assigned + to their own streams. If absent, the DART allocation aperture applies. + + nonposted-mmio: true + + power-domains: + maxItems: 1 + + resets: + maxItems: 1 + required: + - compatible + - reg + - '#dma-cells' + - dma-channels + - interrupts + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml b/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml index 1fc76061f0644..c3f41a9c36508 100644 --- a/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml +++ b/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/dma/apple,pcie-piodma.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple PCIe PIODMA engine @@ -14,112 +15,114 @@ description: | is distinct from the PCIe endpoint streams in the same DART. select: - properties: - compatible: - contains: - enum: - - apple,t6020-pcie-piodma - - apple,t6021-pcie-piodma - - apple,t6022-pcie-piodma - - apple,t6030-pcie-piodma - - apple,t6031-pcie-piodma - - apple,t6032-pcie-piodma - - apple,t6041-pcie-piodma - - apple,t8112-pcie-piodma - - apple,t8122-pcie-piodma - - apple,t8132-pcie-piodma - - apple,t8142-pcie-piodma - - apple,t8152-pcie-piodma - required: - - compatible - -properties: - compatible: true - -allOf: - - if: + anyOf: + - properties: compatible: contains: enum: + - apple,t6020-pcie-piodma + - apple,t6021-pcie-piodma + - apple,t6022-pcie-piodma + - apple,t6030-pcie-piodma + - apple,t6031-pcie-piodma + - apple,t6032-pcie-piodma + - apple,t6041-pcie-piodma + - apple,t8112-pcie-piodma + - apple,t8122-pcie-piodma - apple,t8132-pcie-piodma + - apple,t8142-pcie-piodma + - apple,t8152-pcie-piodma required: - compatible - then: + - properties: compatible: items: - - enum: - - apple,t8132-pcie-piodma - - const: apple,pcie-piodma - - reg: - minItems: 3 - maxItems: 3 - - interrupts: - maxItems: 1 + - + const: "apple,t6050-pcie-piodma" + - + const: "apple,pcie-piodma" + required: + - "compatible" - iommus: - maxItems: 1 +properties: + compatible: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true - required: - - compatible - - reg - - interrupts - - iommus +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-pcie-piodma" + - + const: "apple,pcie-piodma" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-pcie-piodma" + - + const: "apple,pcie-piodma" + status: + const: "disabled" + reg: + minItems: 3 + maxItems: 3 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + iommus: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + additionalProperties: false else: + properties: + compatible: true allOf: - if: properties: compatible: contains: enum: - - apple,t6032-pcie-piodma + - apple,t8132-pcie-piodma required: - compatible then: - properties: - compatible: - items: - - const: apple,t6032-pcie-piodma - - const: apple,pcie-piodma - - reg: - minItems: 3 - maxItems: 3 - - interrupts: - maxItems: 1 - - iommus: - maxItems: 1 - - required: - - compatible - - reg - - interrupts - else: properties: compatible: items: - enum: - - apple,t6020-pcie-piodma - - apple,t6021-pcie-piodma - - apple,t6022-pcie-piodma - - apple,t6030-pcie-piodma - - apple,t6031-pcie-piodma - - apple,t6041-pcie-piodma - - apple,t8112-pcie-piodma - - apple,t8122-pcie-piodma - - apple,t8142-pcie-piodma - - apple,t8152-pcie-piodma + - apple,t8132-pcie-piodma - const: apple,pcie-piodma reg: minItems: 3 maxItems: 3 - description: Register apertures in hardware-description order. interrupts: maxItems: 1 @@ -132,7 +135,70 @@ allOf: - reg - interrupts - iommus - - additionalProperties: false - -unevaluatedProperties: false + else: + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t6032-pcie-piodma + required: + - compatible + then: + properties: + compatible: + items: + - const: apple,t6032-pcie-piodma + - const: apple,pcie-piodma + + reg: + minItems: 3 + maxItems: 3 + + interrupts: + maxItems: 1 + + iommus: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + else: + properties: + compatible: + items: + - enum: + - apple,t6020-pcie-piodma + - apple,t6021-pcie-piodma + - apple,t6022-pcie-piodma + - apple,t6030-pcie-piodma + - apple,t6031-pcie-piodma + - apple,t6041-pcie-piodma + - apple,t8112-pcie-piodma + - apple,t8122-pcie-piodma + - apple,t8142-pcie-piodma + - apple,t8152-pcie-piodma + - const: apple,pcie-piodma + + reg: + minItems: 3 + maxItems: 3 + description: Register apertures in hardware-description order. + + interrupts: + maxItems: 1 + + iommus: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - iommus + + additionalProperties: false + unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml index ba0f87c3ffbae..2587727c143e3 100644 --- a/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml +++ b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/dma/apple,pciec-piodma.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple PCIe tunnel PIODMA engine @@ -14,116 +15,116 @@ description: | stream is distinct from the tunnel endpoint streams in the same DART. select: - properties: - compatible: - contains: - enum: - - apple,t6000-pciec-piodma - - apple,t6020-pciec-piodma - - apple,t6021-pciec-piodma - - apple,t6022-pciec-piodma - - apple,t6030-pciec-piodma - - apple,t6031-pciec-piodma - - apple,t6032-pciec-piodma - - apple,t6041-pciec-piodma - - apple,t8103-pciec-piodma - - apple,t8112-pciec-piodma - - apple,t8122-pciec-piodma - - apple,t8132-pciec-piodma - - apple,t8142-pciec-piodma - - apple,t8152-pciec-piodma - required: - - compatible - -properties: - compatible: true - -allOf: - - if: + anyOf: + - properties: compatible: contains: enum: + - apple,t6000-pciec-piodma + - apple,t6020-pciec-piodma + - apple,t6021-pciec-piodma + - apple,t6022-pciec-piodma + - apple,t6030-pciec-piodma + - apple,t6031-pciec-piodma + - apple,t6032-pciec-piodma + - apple,t6041-pciec-piodma + - apple,t8103-pciec-piodma + - apple,t8112-pciec-piodma + - apple,t8122-pciec-piodma - apple,t8132-pciec-piodma + - apple,t8142-pciec-piodma + - apple,t8152-pciec-piodma required: - compatible - then: + - properties: compatible: items: - - enum: - - apple,t8132-pciec-piodma - - const: apple,pciec-piodma - - reg: - minItems: 4 - maxItems: 4 - - interrupts: - maxItems: 1 + - + const: "apple,t6050-pciec-piodma" + - + const: "apple,pciec-piodma" + required: + - "compatible" - iommus: - maxItems: 1 +properties: + compatible: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true - required: - - compatible - - reg - - interrupts - - iommus +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-pciec-piodma" + - + const: "apple,pciec-piodma" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-pciec-piodma" + - + const: "apple,pciec-piodma" + status: + const: "disabled" + reg: + minItems: 4 + maxItems: 4 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + iommus: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + additionalProperties: false else: + properties: + compatible: true allOf: - if: properties: compatible: contains: enum: - - apple,t6032-pciec-piodma + - apple,t8132-pciec-piodma required: - compatible then: - properties: - compatible: - items: - - const: apple,t6032-pciec-piodma - - const: apple,pciec-piodma - - reg: - minItems: 4 - maxItems: 4 - - interrupts: - maxItems: 1 - - iommus: - maxItems: 1 - - required: - - compatible - - reg - - interrupts - else: properties: compatible: items: - enum: - - apple,t6000-pciec-piodma - - apple,t6020-pciec-piodma - - apple,t6021-pciec-piodma - - apple,t6022-pciec-piodma - - apple,t6030-pciec-piodma - - apple,t6031-pciec-piodma - - apple,t6041-pciec-piodma - - apple,t8103-pciec-piodma - - apple,t8112-pciec-piodma - - apple,t8122-pciec-piodma - - apple,t8142-pciec-piodma - - apple,t8152-pciec-piodma + - apple,t8132-pciec-piodma - const: apple,pciec-piodma reg: minItems: 4 maxItems: 4 - description: Register apertures in hardware-description order. interrupts: maxItems: 1 @@ -136,7 +137,72 @@ allOf: - reg - interrupts - iommus - - additionalProperties: false - -unevaluatedProperties: false + else: + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t6032-pciec-piodma + required: + - compatible + then: + properties: + compatible: + items: + - const: apple,t6032-pciec-piodma + - const: apple,pciec-piodma + + reg: + minItems: 4 + maxItems: 4 + + interrupts: + maxItems: 1 + + iommus: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + else: + properties: + compatible: + items: + - enum: + - apple,t6000-pciec-piodma + - apple,t6020-pciec-piodma + - apple,t6021-pciec-piodma + - apple,t6022-pciec-piodma + - apple,t6030-pciec-piodma + - apple,t6031-pciec-piodma + - apple,t6041-pciec-piodma + - apple,t8103-pciec-piodma + - apple,t8112-pciec-piodma + - apple,t8122-pciec-piodma + - apple,t8142-pciec-piodma + - apple,t8152-pciec-piodma + - const: apple,pciec-piodma + + reg: + minItems: 4 + maxItems: 4 + description: Register apertures in hardware-description order. + + interrupts: + maxItems: 1 + + iommus: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - iommus + + additionalProperties: false + unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/dma/apple,sio.yaml b/Documentation/devicetree/bindings/dma/apple,sio.yaml index 66e881608d388..27e081346754d 100644 --- a/Documentation/devicetree/bindings/dma/apple,sio.yaml +++ b/Documentation/devicetree/bindings/dma/apple,sio.yaml @@ -2,10 +2,14 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/dma/apple,sio.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple SIO Coprocessor +maintainers: + - Martin Povišer + description: SIO is a coprocessor on Apple M1 and later chips (and maybe also on earlier chips). Its role is to offload SPI, UART and DisplayPort audio transfers, @@ -13,124 +17,52 @@ description: firmware protocol and channel configuration. In particular, apple,t6030-sio requires protocol-10 boot tables before the coprocessor can be started. -maintainers: - - Martin Povišer - -allOf: - - $ref: dma-controller.yaml# - - if: +select: + anyOf: + - properties: compatible: contains: - const: apple,t8132-sio + enum: + - "apple,sio" + - "apple,sio-firmware-params" + - "apple,t6000-sio" + - "apple,t6020-sio" + - "apple,t6030-sio" + - "apple,t6031-sio" + - "apple,t6041-sio" + - "apple,t8103-sio" + - "apple,t8112-sio" + - "apple,t8122-sio" + - "apple,t8132-sio" + - "apple,t8140-sio" required: - - compatible - then: + - "compatible" + - properties: - reg: - minItems: 2 - maxItems: 2 - clocks: - minItems: 3 - maxItems: 3 - status: - const: disabled - required: - - clocks - - status - else: + compatible: + items: + - + const: "apple,t6050-sio" + - + const: "apple,sio" required: - - dma-channels - allOf: - - if: - properties: - compatible: - contains: - const: apple,t8140-sio - then: - properties: - reg: - minItems: 3 - maxItems: 3 - else: - if: - properties: - compatible: - contains: - enum: - - apple,t6031-sio - - apple,t8122-sio - then: - properties: - reg: - minItems: 2 - maxItems: 2 - else: - properties: - reg: - maxItems: 1 + - "compatible" properties: - compatible: - oneOf: - - items: - - enum: - - apple,t6000-sio - - apple,t6020-sio - - apple,t6030-sio - - apple,t6031-sio - - apple,t8122-sio - - apple,t8103-sio - - apple,t8112-sio - - apple,t8132-sio - - apple,t8140-sio - - const: apple,sio - - description: T6041 firmware requires a generation-specific backend. - const: apple,t6041-sio - - reg: - minItems: 1 - maxItems: 3 - description: | - Coprocessor control registers. T8140 also publishes an auxiliary ASC - window and the remaining ASC registers after the mailbox window. - The mailbox registers are described by the mailbox provider. - - clocks: - minItems: 1 - maxItems: 3 - + compatible: true + reg: true + clocks: true status: true - - '#dma-cells': - const: 1 - description: - DMA clients specify a single cell that corresponds to the RTKit endpoint - number used for arranging the transfers in question - + "#dma-cells": true dma-channels: maximum: 128 - mboxes: maxItems: 1 - - iommus: - maxItems: 1 - - power-domains: - maxItems: 1 - - resets: - maxItems: 1 - - memory-region: - minItems: 2 - maxItems: 8 - description: - A number of references to reserved memory regions among which are the DATA/TEXT - sections of coprocessor executable firmware and also auxiliary firmware data - describing the available DMA-enabled peripherals - + iommus: true + power-domains: true + resets: true + memory-region: true apple,sio-firmware-params: $ref: /schemas/types.yaml#/definitions/uint32-array description: | @@ -158,16 +90,212 @@ properties: - It leaves less work for the driver attaching on this binding. Instead the work is done upfront in the loader which can be better suited for keeping up with Apple's firmware changes. + interrupts: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-sio" + - + const: "apple,sio" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-sio" + - + const: "apple,sio" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 + iommus: + maxItems: 1 + power-domains: + maxItems: 1 + clocks: + maxItems: 2 + "#dma-cells": + const: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "power-domains" + - "clocks" + - "#dma-cells" + additionalProperties: false + else: + allOf: + - $ref: dma-controller.yaml# + - if: + properties: + compatible: + contains: + const: apple,t8132-sio + required: + - compatible + then: + properties: + reg: + minItems: 2 + maxItems: 2 + clocks: + minItems: 3 + maxItems: 3 + status: + const: disabled + required: + - clocks + - status + else: + required: + - dma-channels + allOf: + - if: + properties: + compatible: + contains: + const: apple,t8140-sio + then: + properties: + reg: + minItems: 3 + maxItems: 3 + else: + if: + properties: + compatible: + contains: + enum: + - apple,t6031-sio + - apple,t8122-sio + then: + properties: + reg: + minItems: 2 + maxItems: 2 + else: + properties: + reg: + maxItems: 1 + properties: + compatible: + oneOf: + - items: + - enum: + - apple,t6000-sio + - apple,t6020-sio + - apple,t6030-sio + - apple,t6031-sio + - apple,t8122-sio + - apple,t8103-sio + - apple,t8112-sio + - apple,t8132-sio + - apple,t8140-sio + - const: apple,sio + - description: T6041 firmware requires a generation-specific backend. + const: apple,t6041-sio -required: - - compatible - - reg - - '#dma-cells' - - mboxes - - iommus - - power-domains + reg: + minItems: 1 + maxItems: 3 + description: | + Coprocessor control registers. T8140 also publishes an auxiliary ASC + window and the remaining ASC registers after the mailbox window. + The mailbox registers are described by the mailbox provider. + + clocks: + minItems: 1 + maxItems: 3 + + status: true + + '#dma-cells': + const: 1 + description: + DMA clients specify a single cell that corresponds to the RTKit endpoint + number used for arranging the transfers in question + + dma-channels: + maximum: 128 + + mboxes: + maxItems: 1 + + iommus: + maxItems: 1 -additionalProperties: false + power-domains: + maxItems: 1 + + resets: + maxItems: 1 + + memory-region: + minItems: 2 + maxItems: 8 + description: + A number of references to reserved memory regions among which are the DATA/TEXT + sections of coprocessor executable firmware and also auxiliary firmware data + describing the available DMA-enabled peripherals + + apple,sio-firmware-params: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: | + Parameters in the form of opaque key/value pairs that are to be sent to the SIO + coprocesssor once it boots. These parameters can point into the reserved memory + regions (in device address space). + + Note that unlike Apple's firmware, we treat the parameters, and the data they + refer to, as opaque. Apple embed short data blobs into their SIO devicetree node + that describe the DMA-enabled peripherals (presumably with defined semantics). + Their driver processes those blobs and sets up data structure in mapped device + memory, then references this memory in the parameters sent to the SIO. At the + level of description we are opting for in this binding, we assume the job of + constructing those data structures has been done in advance, leaving behind an + opaque list of key/value parameter pairs to be sent by a prospective driver. + + This approach is chosen for two reasons: + + - It means we don't need to try to understand the semantics of Apple's blobs + as long as we know the transformation we need to do from Apple's devicetree + data to SIO data (which can be shoved away into a loader). It also means the + semantics of Apple's blobs (or of something to replace them) need not be part + of the binding and be kept up with Apple's firmware changes in the future. + + - It leaves less work for the driver attaching on this binding. Instead the work + is done upfront in the loader which can be better suited for keeping up with + Apple's firmware changes. + required: + - compatible + - reg + - '#dma-cells' + - mboxes + - iommus + - power-domains + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml b/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml index dfc99661e5b58..6d5220e8e8aee 100644 --- a/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml +++ b/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/edac/apple,soc-error-handler.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple SoC platform error and event log interrupt handlers @@ -15,523 +16,586 @@ description: | fatal events latched by peripheral event logs. select: - properties: - compatible: - contains: - enum: - - apple,t6000-error-handler - - apple,t6000-event-log - - apple,t6001-error-handler - - apple,t6001-event-log - - apple,t6002-error-handler - - apple,t6002-event-log - - apple,t6020-error-handler - - apple,t6020-event-log - - apple,t6021-error-handler - - apple,t6021-event-log - - apple,t6022-error-handler - - apple,t6022-event-log - - apple,t6030-error-handler - - apple,t6030-event-log - - apple,t6031-error-handler - - apple,t6031-event-log - - apple,t6041-error-handler - - apple,t6041-event-log - - apple,t8103-error-handler - - apple,t8103-event-log - - apple,t8112-error-handler - - apple,t8112-event-log - - apple,t8122-error-handler - - apple,t8122-event-log - - apple,t8132-error-handler - - apple,t8132-event-log - - apple,t8140-error-handler - - apple,t8140-event-log - - apple,t8142-error-handler - - apple,t8142-event-log - - apple,t8152-error-handler - - apple,t8152-event-log - required: - - compatible - -properties: - compatible: true - -allOf: - - if: + anyOf: + - properties: compatible: contains: enum: + - apple,t6000-error-handler + - apple,t6000-event-log + - apple,t6001-error-handler + - apple,t6001-event-log + - apple,t6002-error-handler + - apple,t6002-event-log + - apple,t6020-error-handler + - apple,t6020-event-log + - apple,t6021-error-handler + - apple,t6021-event-log + - apple,t6022-error-handler + - apple,t6022-event-log + - apple,t6030-error-handler + - apple,t6030-event-log + - apple,t6031-error-handler + - apple,t6031-event-log + - apple,t6041-error-handler + - apple,t6041-event-log + - apple,t8103-error-handler + - apple,t8103-event-log + - apple,t8112-error-handler + - apple,t8112-event-log + - apple,t8122-error-handler + - apple,t8122-event-log - apple,t8132-error-handler - apple,t8132-event-log + - apple,t8140-error-handler + - apple,t8140-event-log + - apple,t8142-error-handler + - apple,t8142-event-log + - apple,t8152-error-handler + - apple,t8152-event-log required: - compatible - then: + - properties: compatible: - oneOf: - - items: - - const: apple,t8132-error-handler - - const: apple,soc-error-handler - - items: - - const: apple,t8132-event-log - - const: apple,soc-event-log - - reg: - minItems: 23 - maxItems: 55 - description: Status apertures in hardware-description order. - - interrupts: - minItems: 12 - maxItems: 34 - + items: + - + const: "apple,t6050-event-log" + - + const: "apple,soc-event-log" required: - - compatible - - reg - - interrupts + - "compatible" - allOf: - - if: - properties: - compatible: - contains: - const: apple,t8132-error-handler - then: - properties: - reg: - minItems: 23 - maxItems: 23 - interrupts: - minItems: 34 - maxItems: 34 - else: - properties: - reg: - minItems: 55 - maxItems: 55 - interrupts: - minItems: 12 - maxItems: 12 +properties: + compatible: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-event-log" + - + const: "apple,soc-event-log" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-event-log" + - + const: "apple,soc-event-log" + status: + const: "disabled" + reg: + minItems: 141 + maxItems: 141 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 23 + maxItems: 23 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + additionalProperties: false else: properties: - compatible: - oneOf: - - items: - - enum: - - apple,t6000-error-handler - - apple,t6001-error-handler - - apple,t6002-error-handler - - apple,t6020-error-handler - - apple,t6021-error-handler - - apple,t6022-error-handler - - apple,t6030-error-handler - - apple,t6031-error-handler - - apple,t6041-error-handler - - apple,t8103-error-handler - - apple,t8112-error-handler - - apple,t8122-error-handler - - apple,t8140-error-handler - - apple,t8142-error-handler - - apple,t8152-error-handler - - const: apple,soc-error-handler - - items: - - enum: - - apple,t6000-event-log - - apple,t6001-event-log - - apple,t6002-event-log - - apple,t6020-event-log - - apple,t6021-event-log - - apple,t6022-event-log - - apple,t6030-event-log - - apple,t6031-event-log - - apple,t6041-event-log - - apple,t8103-event-log - - apple,t8112-event-log - - apple,t8122-event-log - - apple,t8140-event-log - - apple,t8142-event-log - - apple,t8152-event-log - - const: apple,soc-event-log - - power-domains: - maxItems: 1 - description: Power domain needed for the associated error-source registers. - - interrupts: - minItems: 9 - maxItems: 322 - - reg: - minItems: 10 - maxItems: 255 - description: | - Status apertures in hardware-description order. T6041 uses qualified - per-source NI status apertures in interrupt order. Native register - access on other variants requires separate qualification. - - required: - - compatible - - interrupts - + compatible: true allOf: - - if: - properties: - compatible: - contains: - const: apple,t8142-error-handler - then: - properties: - reg: - minItems: 33 - maxItems: 33 - interrupts: - minItems: 31 - maxItems: 31 - required: - - reg - - if: - properties: - compatible: - contains: - const: apple,t8142-event-log - then: - properties: - reg: - minItems: 51 - maxItems: 51 - interrupts: - minItems: 13 - maxItems: 13 - required: - - reg - - if: - properties: - compatible: - contains: - const: apple,t8152-error-handler - then: - properties: - reg: - minItems: 112 - maxItems: 120 - interrupts: - minItems: 96 - maxItems: 96 - required: - - reg - - if: - properties: - compatible: - contains: - const: apple,t8152-event-log - then: - properties: - reg: - minItems: 57 - maxItems: 57 - interrupts: - minItems: 9 - maxItems: 9 - required: - - reg - - if: - properties: - compatible: - contains: - const: apple,t6041-error-handler - then: - properties: - interrupts: - minItems: 89 - maxItems: 89 - reg: - minItems: 25 - maxItems: 25 - required: - - reg - - if: - properties: - compatible: - contains: - const: apple,t8140-error-handler - then: - properties: - interrupts: - minItems: 26 - maxItems: 26 - reg: - minItems: 17 - maxItems: 17 - - if: - properties: - compatible: - contains: - const: apple,t6041-event-log - then: - properties: - interrupts: - minItems: 21 - maxItems: 21 - - if: - properties: - compatible: - contains: - const: apple,t8140-event-log - then: - properties: - interrupts: - minItems: 9 - maxItems: 9 - reg: - minItems: 10 - maxItems: 10 - - if: - properties: - compatible: - contains: - enum: - - apple,t8122-error-handler - then: - properties: - reg: - minItems: 19 - maxItems: 19 - interrupts: - minItems: 39 - maxItems: 39 - required: - - reg - - if: - properties: - compatible: - contains: - enum: - - apple,t6030-error-handler - then: - properties: - reg: - minItems: 26 - maxItems: 26 - interrupts: - minItems: 54 - maxItems: 54 - required: - - reg - if: properties: compatible: contains: enum: - - apple,t8122-event-log - then: - properties: - reg: - minItems: 13 - maxItems: 13 - interrupts: - minItems: 13 - maxItems: 13 + - apple,t8132-error-handler + - apple,t8132-event-log required: - - reg - - if: - properties: - compatible: - contains: - enum: - - apple,t6030-event-log + - compatible then: - properties: - reg: - minItems: 26 - maxItems: 26 - interrupts: - minItems: 26 - maxItems: 26 - required: - - reg - - if: properties: compatible: - contains: - enum: - - apple,t6031-event-log - then: - properties: - reg: - minItems: 25 - maxItems: 25 - interrupts: - minItems: 26 - maxItems: 26 - required: - - reg - - if: - properties: - compatible: - contains: - enum: - - apple,t6031-error-handler - then: - oneOf: - - properties: - reg: - minItems: 123 - maxItems: 123 - interrupts: - minItems: 159 - maxItems: 159 - - properties: - reg: - minItems: 113 - maxItems: 113 - interrupts: - minItems: 141 - maxItems: 141 - required: - - reg + oneOf: + - items: + - const: apple,t8132-error-handler + - const: apple,soc-error-handler + - items: + - const: apple,t8132-event-log + - const: apple,soc-event-log - - 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 + minItems: 23 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: + description: Status apertures in hardware-description order. + interrupts: - minItems: 127 - maxItems: 127 - reg: - minItems: 90 - maxItems: 90 + minItems: 12 + maxItems: 34 + required: + - compatible - reg - - if: + - interrupts + + allOf: + - if: + properties: + compatible: + contains: + const: apple,t8132-error-handler + then: + properties: + reg: + minItems: 23 + maxItems: 23 + interrupts: + minItems: 34 + maxItems: 34 + else: + properties: + reg: + minItems: 55 + maxItems: 55 + interrupts: + minItems: 12 + maxItems: 12 + else: properties: compatible: - contains: - const: apple,t6001-event-log - then: - properties: + oneOf: + - items: + - enum: + - apple,t6000-error-handler + - apple,t6001-error-handler + - apple,t6002-error-handler + - apple,t6020-error-handler + - apple,t6021-error-handler + - apple,t6022-error-handler + - apple,t6030-error-handler + - apple,t6031-error-handler + - apple,t6041-error-handler + - apple,t8103-error-handler + - apple,t8112-error-handler + - apple,t8122-error-handler + - apple,t8140-error-handler + - apple,t8142-error-handler + - apple,t8152-error-handler + - const: apple,soc-error-handler + - items: + - enum: + - apple,t6000-event-log + - apple,t6001-event-log + - apple,t6002-event-log + - apple,t6020-event-log + - apple,t6021-event-log + - apple,t6022-event-log + - apple,t6030-event-log + - apple,t6031-event-log + - apple,t6041-event-log + - apple,t8103-event-log + - apple,t8112-event-log + - apple,t8122-event-log + - apple,t8140-event-log + - apple,t8142-event-log + - apple,t8152-event-log + - const: apple,soc-event-log + + power-domains: + maxItems: 1 + description: Power domain needed for the associated error-source registers. + interrupts: - minItems: 28 - maxItems: 28 + minItems: 9 + maxItems: 322 + reg: - minItems: 28 - maxItems: 28 - required: - - reg - - if: - properties: - compatible: - contains: - const: apple,t6002-error-handler - then: - oneOf: - - properties: - interrupts: - minItems: 138 - maxItems: 138 - reg: - minItems: 104 - maxItems: 104 - - properties: - interrupts: - minItems: 130 - maxItems: 130 - reg: - minItems: 101 - maxItems: 101 - required: - - reg - - if: - properties: - compatible: - contains: - const: apple,t6002-event-log - then: - oneOf: - - properties: - interrupts: - minItems: 28 - maxItems: 28 - reg: - minItems: 28 - maxItems: 28 - - properties: - interrupts: - minItems: 26 - maxItems: 26 - reg: - minItems: 26 - maxItems: 26 + minItems: 10 + maxItems: 255 + description: | + Status apertures in hardware-description order. T6041 uses qualified + per-source NI status apertures in interrupt order. Native register + access on other variants requires separate qualification. + required: - - reg + - compatible + - interrupts + + allOf: + - if: + properties: + compatible: + contains: + const: apple,t8142-error-handler + then: + properties: + reg: + minItems: 33 + maxItems: 33 + interrupts: + minItems: 31 + maxItems: 31 + required: + - reg + - if: + properties: + compatible: + contains: + const: apple,t8142-event-log + then: + properties: + reg: + minItems: 51 + maxItems: 51 + interrupts: + minItems: 13 + maxItems: 13 + required: + - reg + - if: + properties: + compatible: + contains: + const: apple,t8152-error-handler + then: + properties: + reg: + minItems: 112 + maxItems: 120 + interrupts: + minItems: 96 + maxItems: 96 + required: + - reg + - if: + properties: + compatible: + contains: + const: apple,t8152-event-log + then: + properties: + reg: + minItems: 57 + maxItems: 57 + interrupts: + minItems: 9 + maxItems: 9 + required: + - reg + - if: + properties: + compatible: + contains: + const: apple,t6041-error-handler + then: + properties: + interrupts: + minItems: 89 + maxItems: 89 + reg: + minItems: 25 + maxItems: 25 + required: + - reg + - if: + properties: + compatible: + contains: + const: apple,t8140-error-handler + then: + properties: + interrupts: + minItems: 26 + maxItems: 26 + reg: + minItems: 17 + maxItems: 17 + - if: + properties: + compatible: + contains: + const: apple,t6041-event-log + then: + properties: + interrupts: + minItems: 21 + maxItems: 21 + - if: + properties: + compatible: + contains: + const: apple,t8140-event-log + then: + properties: + interrupts: + minItems: 9 + maxItems: 9 + reg: + minItems: 10 + maxItems: 10 + - if: + properties: + compatible: + contains: + enum: + - apple,t8122-error-handler + then: + properties: + reg: + minItems: 19 + maxItems: 19 + interrupts: + minItems: 39 + maxItems: 39 + required: + - reg + - if: + properties: + compatible: + contains: + enum: + - apple,t6030-error-handler + then: + properties: + reg: + minItems: 26 + maxItems: 26 + interrupts: + minItems: 54 + maxItems: 54 + required: + - reg + - if: + properties: + compatible: + contains: + enum: + - apple,t8122-event-log + then: + properties: + reg: + minItems: 13 + maxItems: 13 + interrupts: + minItems: 13 + maxItems: 13 + required: + - reg + - if: + properties: + compatible: + contains: + enum: + - apple,t6030-event-log + then: + properties: + reg: + minItems: 26 + maxItems: 26 + interrupts: + minItems: 26 + maxItems: 26 + required: + - reg + - if: + properties: + compatible: + contains: + enum: + - apple,t6031-event-log + then: + properties: + reg: + minItems: 25 + maxItems: 25 + interrupts: + minItems: 26 + maxItems: 26 + required: + - reg + - if: + properties: + compatible: + contains: + enum: + - apple,t6031-error-handler + then: + oneOf: + - properties: + reg: + minItems: 123 + maxItems: 123 + interrupts: + minItems: 159 + maxItems: 159 + - properties: + reg: + minItems: 113 + maxItems: 113 + interrupts: + minItems: 141 + maxItems: 141 + required: + - reg - additionalProperties: false + - 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: + oneOf: + - properties: + interrupts: + minItems: 138 + maxItems: 138 + reg: + minItems: 104 + maxItems: 104 + - properties: + interrupts: + minItems: 130 + maxItems: 130 + reg: + minItems: 101 + maxItems: 101 + required: + - reg + - if: + properties: + compatible: + contains: + const: apple,t6002-event-log + then: + oneOf: + - properties: + interrupts: + minItems: 28 + maxItems: 28 + reg: + minItems: 28 + maxItems: 28 + - properties: + interrupts: + minItems: 26 + maxItems: 26 + reg: + minItems: 26 + maxItems: 26 + required: + - reg -unevaluatedProperties: false + additionalProperties: false + unevaluatedProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/gpu/apple,agx.yaml b/Documentation/devicetree/bindings/gpu/apple,agx.yaml index 882756aa0067d..d9afef42ef40d 100644 --- a/Documentation/devicetree/bindings/gpu/apple,agx.yaml +++ b/Documentation/devicetree/bindings/gpu/apple,agx.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/gpu/apple,agx.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple SoC GPU @@ -9,85 +10,76 @@ title: Apple SoC GPU maintainers: - Sasha Finkelstein -properties: - compatible: - oneOf: - - enum: - - apple,agx-g13g - - apple,agx-g13s - - apple,agx-g14g - - apple,agx-g14s - - apple,agx-t6040 - - apple,agx-t6041 - - apple,agx-t8132 - - apple,agx-t8140 - - items: - - const: apple,agx-t8103 - - const: apple,agx-g13g - - items: - - const: apple,agx-t8112 - - const: apple,agx-g14g - - items: - - enum: - - apple,agx-g13c - - apple,agx-g13d - - const: apple,agx-g13s - - items: - - enum: - - apple,agx-g14c - - apple,agx-g14d - - const: apple,agx-g14s - - reg: - maxItems: 2 - - reg-names: - maxItems: 2 - - power-domains: - maxItems: 1 +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,afr-leak-coef" + - "apple,afr-opp" + - "apple,agx-g13c" + - "apple,agx-g13d" + - "apple,agx-g13g" + - "apple,agx-g13s" + - "apple,agx-g14c" + - "apple,agx-g14d" + - "apple,agx-g14g" + - "apple,agx-g14s" + - "apple,agx-t6040" + - "apple,agx-t6041" + - "apple,agx-t8103" + - "apple,agx-t8112" + - "apple,agx-t8132" + - "apple,agx-t8140" + - "apple,clpc" + - "apple,core-leak-coef" + - "apple,core-mask" + - "apple,cs-leak-coef" + - "apple,cs-opp" + - "apple,firmware-abi" + - "apple,firmware-version" + - "apple,idle-off-delay-ms" + - "apple,max-power-mw" + - "apple,perf-base-pstate" + - "apple,perf-map-a" + - "apple,perf-map-b" + - "apple,perf-relative-a" + - "apple,perf-relative-b" + - "apple,pmp" + - "apple,sram-leak-coef" + - "apple,t6040-handoff-version" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-gpu" + - + const: "apple,gpu" + required: + - "compatible" +properties: + compatible: true + reg: true + reg-names: true + power-domains: true dma-noncoherent: true - mboxes: minItems: 1 maxItems: 2 - - memory-region: - minItems: 3 - items: - - description: Region containing GPU MMU TTBs - - description: Region containing GPU MMU page tables - - description: - Region containing a shared handoff structure for VM - management coordination - - description: - Power calibration blob, firmware shared-L2 page or firmware data - segment - - description: - GPU calibration blob, preserved firmware text or firmware - kernel-window page tables - - description: - Shared global variables, preserved firmware data or text segment of - the loaded GPU firmware - - memory-region-names: - minItems: 3 - items: - - const: ttbs - - const: pagetables - - const: handoff - - enum: [hw-cal-a, shared-l2, fw-data] - - enum: [hw-cal-b, fw-text, l2-pagetables] - - enum: [globals, fw-data, fw-text] - + memory-region: true + memory-region-names: true apple,clpc: $ref: /schemas/types.yaml#/definitions/phandle description: | Host performance controller receiving GPU submission and idle demand. GFX supplier power cannot represent GPU work on firmware that keeps its coprocessor domain powered while the cores are idle. - apple,idle-off-delay-ms: minimum: 2 maximum: 1000 @@ -96,13 +88,10 @@ properties: Continuous idle time before GPU power-off, in milliseconds. The G17 backend extends the firmware's native delay with its host idle-hold control; an absent property preserves the native policy. - apple,pmp: $ref: /schemas/types.yaml#/definitions/phandle description: PMP firmware provider owning the GPU power vote and telemetry - operating-points-v2: true - apple,firmware-version: $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 3 @@ -111,88 +100,73 @@ properties: Reported macOS version (major, minor, patch) whose boot firmware loaded the GPU firmware. Filled in by the boot loader. This is a selection hint; the T6040 driver requires the exact loaded image identity. - apple,cs-opp: $ref: /schemas/types.yaml#/definitions/phandle description: Operating-point table of the GPU's CS clock domain, one voltage cell per state. - apple,afr-opp: $ref: /schemas/types.yaml#/definitions/phandle description: Operating-point table of the GPU's AFR clock domain, one voltage cell per state. - apple,t6040-handoff-version: $ref: /schemas/types.yaml#/definitions/uint32 const: 2 description: Written last by the boot loader after it has filled the T6040 operating points, memory regions and per-chip calibration. Absent in the source DT. - apple,core-mask: $ref: /schemas/types.yaml#/definitions/uint32 description: Enabled cores in the two ten-core T6040 clusters, low cluster first - apple,max-power-mw: $ref: /schemas/types.yaml#/definitions/uint32 description: Per-chip maximum GPU power in milliwatts, calculated by the loader - apple,perf-base-pstate: $ref: /schemas/types.yaml#/definitions/uint32 description: Logical base state of the frequency-relative performance table. T6040 supports the first active state, also used when its ADT omits the property. - apple,perf-map-a: $ref: /schemas/types.yaml#/definitions/uint32-array description: All 16 A selector register fields, indexing raw ADT operating points. Eleven populated entries, including off, followed by five zeros. - apple,perf-map-b: $ref: /schemas/types.yaml#/definitions/uint32-array description: All 16 B selector register fields, indexing raw ADT operating points. Eleven populated entries, including off, followed by five zeros. - apple,perf-relative-a: $ref: /schemas/types.yaml#/definitions/uint32-array description: Per-chip relative power of each populated A selector, in percent, followed by zeros for the five unused selectors. - apple,perf-relative-b: $ref: /schemas/types.yaml#/definitions/uint32-array description: Relative frequency of the populated A ladder above the base state, in percent, followed by zeros for the five unused selectors. - apple,core-leak-coef: $ref: /schemas/types.yaml#/definitions/uint32-array description: GPU core leakage, one coefficient per cluster. Per-chip efuse values decoded by the boot loader, stored as IEEE-754 binary32 bit patterns in big-endian cells. - apple,sram-leak-coef: $ref: /schemas/types.yaml#/definitions/uint32-array description: GPU SRAM leakage, one coefficient per cluster. Per-chip efuse values decoded by the boot loader, stored as IEEE-754 binary32 bit patterns in big-endian cells. - apple,cs-leak-coef: $ref: /schemas/types.yaml#/definitions/uint32-array description: CS leakage. Per-chip efuse values decoded by the boot loader, stored as IEEE-754 binary32 bit patterns in big-endian cells. - apple,afr-leak-coef: $ref: /schemas/types.yaml#/definitions/uint32-array description: AFR leakage. Per-chip efuse values decoded by the boot loader, stored as IEEE-754 binary32 bit patterns in big-endian cells. - apple,firmware-abi: $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 3 @@ -200,207 +174,450 @@ properties: macOS version the current firmware is paired with, used to pick the version of firmware ABI to be used. Bootloader will overwrite this - -required: - - compatible - - reg - - mboxes - - memory-region + interrupts: true + iommus: true + clocks: true + resets: true + status: true allOf: - if: - properties: - compatible: - contains: - const: apple,agx-t8132 + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-gpu" + - + const: "apple,gpu" + status: + const: "disabled" + required: + - "compatible" + - "status" then: - properties: - reg: - items: - - description: GPU coprocessor control registers - - description: GPU block MMIO registers - mboxes: - maxItems: 1 - reg-names: - items: - - const: asc - - const: sgx - memory-region: - minItems: 6 - memory-region-names: - items: - - const: ttbs - - const: pagetables - - const: handoff - - const: shared-l2 - - const: fw-text - - const: fw-data - required: - - apple,pmp - - power-domains - - reg-names - - memory-region-names + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-gpu" + - + const: "apple,gpu" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 8 + maxItems: 8 + power-domains: + maxItems: 1 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + - "clocks" + additionalProperties: false else: - properties: - apple,pmp: false - - if: properties: compatible: - contains: - const: apple,agx-t8140 - then: - properties: + oneOf: + - enum: + - apple,agx-g13g + - apple,agx-g13s + - apple,agx-g14g + - apple,agx-g14s + - apple,agx-t6040 + - apple,agx-t6041 + - apple,agx-t8132 + - apple,agx-t8140 + - items: + - const: apple,agx-t8103 + - const: apple,agx-g13g + - items: + - const: apple,agx-t8112 + - const: apple,agx-g14g + - items: + - enum: + - apple,agx-g13c + - apple,agx-g13d + - const: apple,agx-g13s + - items: + - enum: + - apple,agx-g14c + - apple,agx-g14d + - const: apple,agx-g14s + reg: - items: - - description: GFX coprocessor control registers - - description: GPU block MMIO registers + maxItems: 2 + reg-names: - items: - - const: asc - - const: sgx + maxItems: 2 + + power-domains: + maxItems: 1 + + dma-noncoherent: true + mboxes: - items: - - description: GFX coprocessor mailbox - - description: GFX1 coprocessor mailbox + minItems: 1 + maxItems: 2 + memory-region: + minItems: 3 items: - description: Region containing GPU MMU TTBs - description: Region containing GPU MMU page tables - description: Region containing a shared handoff structure for VM management coordination + - description: + Power calibration blob, firmware shared-L2 page or firmware data + segment + - description: + GPU calibration blob, preserved firmware text or firmware + kernel-window page tables + - description: + Shared global variables, preserved firmware data or text segment of + the loaded GPU firmware + memory-region-names: + minItems: 3 items: - const: ttbs - const: pagetables - const: handoff - required: - - power-domains - - operating-points-v2 - - if: - properties: - compatible: - contains: - const: apple,agx-t6040 - then: - properties: + - enum: [hw-cal-a, shared-l2, fw-data] + - enum: [hw-cal-b, fw-text, l2-pagetables] + - enum: [globals, fw-data, fw-text] + + apple,clpc: + $ref: /schemas/types.yaml#/definitions/phandle + description: | + Host performance controller receiving GPU submission and idle demand. + GFX supplier power cannot represent GPU work on firmware that keeps + its coprocessor domain powered while the cores are idle. + + apple,idle-off-delay-ms: + minimum: 2 + maximum: 1000 + default: 2 + description: + Continuous idle time before GPU power-off, in milliseconds. The G17 + backend extends the firmware's native delay with its host idle-hold + control; an absent property preserves the native policy. + + apple,pmp: + $ref: /schemas/types.yaml#/definitions/phandle + description: PMP firmware provider owning the GPU power vote and telemetry + + operating-points-v2: true + + apple,firmware-version: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 3 + maxItems: 3 + description: + Reported macOS version (major, minor, patch) whose boot firmware loaded + the GPU firmware. Filled in by the boot loader. This is a selection + hint; the T6040 driver requires the exact loaded image identity. + + apple,cs-opp: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Operating-point table of the GPU's CS clock domain, one voltage cell per + state. + + apple,afr-opp: + $ref: /schemas/types.yaml#/definitions/phandle + description: + Operating-point table of the GPU's AFR clock domain, one voltage cell + per state. + + apple,t6040-handoff-version: + $ref: /schemas/types.yaml#/definitions/uint32 + const: 2 + description: + Written last by the boot loader after it has filled the T6040 operating + points, memory regions and per-chip calibration. Absent in the source DT. + apple,core-mask: - minimum: 1 - maximum: 1048575 + $ref: /schemas/types.yaml#/definitions/uint32 + description: Enabled cores in the two ten-core T6040 clusters, low cluster first + apple,max-power-mw: - minimum: 1 - maximum: 200000 + $ref: /schemas/types.yaml#/definitions/uint32 + description: Per-chip maximum GPU power in milliwatts, calculated by the loader + apple,perf-base-pstate: - const: 1 + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Logical base state of the frequency-relative performance table. T6040 + supports the first active state, also used when its ADT omits the property. + apple,perf-map-a: - minItems: 16 - maxItems: 16 + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + All 16 A selector register fields, indexing raw ADT operating points. + Eleven populated entries, including off, followed by five zeros. + apple,perf-map-b: - minItems: 16 - maxItems: 16 + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + All 16 B selector register fields, indexing raw ADT operating points. + Eleven populated entries, including off, followed by five zeros. + apple,perf-relative-a: - minItems: 16 - maxItems: 16 + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + Per-chip relative power of each populated A selector, in percent, + followed by zeros for the five unused selectors. + apple,perf-relative-b: - minItems: 16 - maxItems: 16 + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + Relative frequency of the populated A ladder above the base state, + in percent, followed by zeros for the five unused selectors. + apple,core-leak-coef: - minItems: 2 - maxItems: 2 + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + GPU core leakage, one coefficient per cluster. Per-chip efuse values decoded by the boot loader, + stored as IEEE-754 binary32 bit patterns in big-endian cells. + apple,sram-leak-coef: - minItems: 2 - maxItems: 2 + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + GPU SRAM leakage, one coefficient per cluster. Per-chip efuse values decoded by the boot loader, + stored as IEEE-754 binary32 bit patterns in big-endian cells. + apple,cs-leak-coef: - minItems: 1 - maxItems: 1 + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + CS leakage. Per-chip efuse values decoded by the boot loader, + stored as IEEE-754 binary32 bit patterns in big-endian cells. + apple,afr-leak-coef: - minItems: 1 - maxItems: 1 - - if: - properties: - compatible: - contains: - enum: - - apple,agx-t6040 - - apple,agx-t6041 - then: - properties: - reg: - items: - - description: GFX coprocessor control registers - - description: GPU block MMIO registers - reg-names: - items: - - const: asc - - const: sgx - mboxes: - items: - - description: GFX coprocessor mailbox - memory-region: - items: - - description: Region containing GPU MMU TTBs - - description: Region containing GPU MMU page tables - - description: - Region containing a shared handoff structure for VM - management coordination - - description: - Data segment of the loaded GPU firmware, where the firmware - places its crash log - - description: - Region in which the GPU firmware builds the page tables of - its kernel window - - description: - Text segment of the loaded GPU firmware, which identifies the - firmware build - memory-region-names: - items: - - const: ttbs - - const: pagetables - - const: handoff - - const: fw-data - - const: l2-pagetables - - const: fw-text + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + AFR leakage. Per-chip efuse values decoded by the boot loader, + stored as IEEE-754 binary32 bit patterns in big-endian cells. + + apple,firmware-abi: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 3 + description: + macOS version the current firmware is paired with, used to pick + the version of firmware ABI to be used. + Bootloader will overwrite this required: - - power-domains - - operating-points-v2 - - apple,cs-opp - - apple,afr-opp - - if: - not: - properties: - compatible: - contains: - enum: - - apple,agx-t6040 - - apple,agx-t6041 - - apple,agx-t8132 - - apple,agx-t8140 - then: - properties: - reg: - items: - - description: GPU coprocessor control registers - - description: GPU block MMIO registers - reg-names: - items: - - const: asc - - const: sgx - mboxes: - maxItems: 1 - memory-region: - minItems: 6 - memory-region-names: - items: - - const: ttbs - - const: pagetables - - const: handoff - - const: hw-cal-a - - const: hw-cal-b - - const: globals - required: - - apple,firmware-abi - -additionalProperties: false + - compatible + - reg + - mboxes + - memory-region + allOf: + - if: + properties: + compatible: + contains: + const: apple,agx-t8132 + then: + properties: + reg: + items: + - description: GPU coprocessor control registers + - description: GPU block MMIO registers + mboxes: + maxItems: 1 + reg-names: + items: + - const: asc + - const: sgx + memory-region: + minItems: 6 + memory-region-names: + items: + - const: ttbs + - const: pagetables + - const: handoff + - const: shared-l2 + - const: fw-text + - const: fw-data + required: + - apple,pmp + - power-domains + - reg-names + - memory-region-names + else: + properties: + apple,pmp: false + - if: + properties: + compatible: + contains: + const: apple,agx-t8140 + then: + properties: + reg: + items: + - description: GFX coprocessor control registers + - description: GPU block MMIO registers + reg-names: + items: + - const: asc + - const: sgx + mboxes: + items: + - description: GFX coprocessor mailbox + - description: GFX1 coprocessor mailbox + memory-region: + items: + - description: Region containing GPU MMU TTBs + - description: Region containing GPU MMU page tables + - description: + Region containing a shared handoff structure for VM + management coordination + memory-region-names: + items: + - const: ttbs + - const: pagetables + - const: handoff + required: + - power-domains + - operating-points-v2 + - if: + properties: + compatible: + contains: + const: apple,agx-t6040 + then: + properties: + apple,core-mask: + minimum: 1 + maximum: 1048575 + apple,max-power-mw: + minimum: 1 + maximum: 200000 + apple,perf-base-pstate: + const: 1 + apple,perf-map-a: + minItems: 16 + maxItems: 16 + apple,perf-map-b: + minItems: 16 + maxItems: 16 + apple,perf-relative-a: + minItems: 16 + maxItems: 16 + apple,perf-relative-b: + minItems: 16 + maxItems: 16 + apple,core-leak-coef: + minItems: 2 + maxItems: 2 + apple,sram-leak-coef: + minItems: 2 + maxItems: 2 + apple,cs-leak-coef: + minItems: 1 + maxItems: 1 + apple,afr-leak-coef: + minItems: 1 + maxItems: 1 + - if: + properties: + compatible: + contains: + enum: + - apple,agx-t6040 + - apple,agx-t6041 + then: + properties: + reg: + items: + - description: GFX coprocessor control registers + - description: GPU block MMIO registers + reg-names: + items: + - const: asc + - const: sgx + mboxes: + items: + - description: GFX coprocessor mailbox + memory-region: + items: + - description: Region containing GPU MMU TTBs + - description: Region containing GPU MMU page tables + - description: + Region containing a shared handoff structure for VM + management coordination + - description: + Data segment of the loaded GPU firmware, where the firmware + places its crash log + - description: + Region in which the GPU firmware builds the page tables of + its kernel window + - description: + Text segment of the loaded GPU firmware, which identifies the + firmware build + memory-region-names: + items: + - const: ttbs + - const: pagetables + - const: handoff + - const: fw-data + - const: l2-pagetables + - const: fw-text + required: + - power-domains + - operating-points-v2 + - apple,cs-opp + - apple,afr-opp + - if: + not: + properties: + compatible: + contains: + enum: + - apple,agx-t6040 + - apple,agx-t6041 + - apple,agx-t8132 + - apple,agx-t8140 + then: + properties: + reg: + items: + - description: GPU coprocessor control registers + - description: GPU block MMIO registers + reg-names: + items: + - const: asc + - const: sgx + mboxes: + maxItems: 1 + memory-region: + minItems: 6 + memory-region-names: + items: + - const: ttbs + - const: pagetables + - const: handoff + - const: hw-cal-a + - const: hw-cal-b + - const: globals + required: + - apple,firmware-abi + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/i2c/apple,i2c.yaml b/Documentation/devicetree/bindings/i2c/apple,i2c.yaml index 5c827af153cb5..d476a35e0e7c6 100644 --- a/Documentation/devicetree/bindings/i2c/apple,i2c.yaml +++ b/Documentation/devicetree/bindings/i2c/apple,i2c.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/i2c/apple,i2c.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple/PASemi I2C controller @@ -15,66 +16,168 @@ description: | The bus is used to communicate with e.g. USB PD chips or the speaker amp. -allOf: - - $ref: /schemas/i2c/i2c-controller.yaml# +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,i2c" + - "apple,s5l8960x-i2c" + - "apple,s8000-i2c" + - "apple,t6000-i2c" + - "apple,t6020-i2c" + - "apple,t6030-i2c" + - "apple,t6031-i2c" + - "apple,t6041-i2c" + - "apple,t7000-i2c" + - "apple,t8010-i2c" + - "apple,t8015-i2c" + - "apple,t8103-i2c" + - "apple,t8112-i2c" + - "apple,t8122-i2c" + - "apple,t8132-i2c" + - "apple,t8140-i2c" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-i2c" + - + const: "apple,t8103-i2c" + required: + - "compatible" properties: - compatible: - oneOf: - - items: - - enum: - - apple,t6020-i2c - - apple,t6030-i2c - - apple,t6031-i2c - - apple,t6041-i2c - - apple,t8122-i2c - - apple,t8132-i2c - - apple,t8140-i2c - - const: apple,t8103-i2c - - items: - - enum: - # Do not add additional SoC to this list. - - apple,s5l8960x-i2c - - apple,t7000-i2c - - apple,s8000-i2c - - apple,t8010-i2c - - apple,t8015-i2c - - apple,t8103-i2c - - apple,t8112-i2c - - apple,t6000-i2c - - const: apple,i2c - - reg: - maxItems: 1 - - clocks: - items: - - description: I2C bus reference clock - - interrupts: - maxItems: 1 - + compatible: true + reg: true + clocks: true + interrupts: true clock-frequency: description: | Desired I2C bus clock frequency in Hz. If not specified, 100 kHz will be used. This frequency is generated by dividing the reference clock. Allowed values are between ref_clk/(16*4) and ref_clk/(16*255). - nonposted-mmio: true + power-domains: true + resets: true + iommus: true + status: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-i2c" + - + const: "apple,t8103-i2c" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-i2c" + - + const: "apple,t8103-i2c" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + power-domains: + maxItems: 1 + clocks: + maxItems: 1 + "#address-cells": + const: 1 + "#size-cells": + const: 0 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + - "clocks" + - "#address-cells" + - "#size-cells" + additionalProperties: false + else: + allOf: + - $ref: /schemas/i2c/i2c-controller.yaml# + properties: + compatible: + oneOf: + - items: + - enum: + - apple,t6020-i2c + - apple,t6030-i2c + - apple,t6031-i2c + - apple,t6041-i2c + - apple,t8122-i2c + - apple,t8132-i2c + - apple,t8140-i2c + - const: apple,t8103-i2c + - items: + - enum: + # Do not add additional SoC to this list. + - apple,s5l8960x-i2c + - apple,t7000-i2c + - apple,s8000-i2c + - apple,t8010-i2c + - apple,t8015-i2c + - apple,t8103-i2c + - apple,t8112-i2c + - apple,t6000-i2c + - const: apple,i2c + + reg: + maxItems: 1 + + clocks: + items: + - description: I2C bus reference clock + + interrupts: + maxItems: 1 - power-domains: - maxItems: 1 + clock-frequency: + description: | + Desired I2C bus clock frequency in Hz. If not specified, 100 kHz will be + used. This frequency is generated by dividing the reference clock. + Allowed values are between ref_clk/(16*4) and ref_clk/(16*255). - resets: - maxItems: 1 + nonposted-mmio: true -required: - - compatible - - reg - - clocks - - interrupts + power-domains: + maxItems: 1 -unevaluatedProperties: false + resets: + maxItems: 1 + required: + - compatible + - reg + - clocks + - interrupts + unevaluatedProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/iommu/apple,dart.yaml b/Documentation/devicetree/bindings/iommu/apple,dart.yaml index 9ba41ab9806d2..9f9ce0f6a652d 100644 --- a/Documentation/devicetree/bindings/iommu/apple,dart.yaml +++ b/Documentation/devicetree/bindings/iommu/apple,dart.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/iommu/apple,dart.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple DART IOMMU @@ -20,41 +21,52 @@ description: |+ This DART IOMMU also raises interrupts in response to various fault conditions. -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 - - apple,t8110-dart - - apple,t6000-dart - - items: - - const: apple,t8140-ane-dart - - const: apple,t8140-dart - - const: apple,t8110-dart - - items: - - enum: - - apple,t6000-dart - - apple,t8112-dart - - const: apple,t8110-dart - - items: - - enum: - - apple,t6020-dart - - apple,t6030-dart - - apple,t6031-dart - - apple,t6041-dart - - apple,t6050-dart - - apple,t8122-dart - - apple,t8132-dart - - apple,t8140-dart - - apple,t8142-dart - - apple,t8152-dart - - const: apple,t8110-dart +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,bypass-sids" + - "apple,dma-offset" + - "apple,dma-range" + - "apple,firmware-root-handoff" + - "apple,managed-sids" + - "apple,remap-streams" + - "apple,t6000-dart" + - "apple,t6000-display-dart" + - "apple,t6020-dart" + - "apple,t6030-dart" + - "apple,t6031-dart" + - "apple,t6041-dart" + - "apple,t6050-dart" + - "apple,t8103-dart" + - "apple,t8103-usb4-dart" + - "apple,t8110-dart" + - "apple,t8112-dart" + - "apple,t8122-dart" + - "apple,t8132-dart" + - "apple,t8140-ane-dart" + - "apple,t8140-dart" + - "apple,t8142-dart" + - "apple,t8152-dart" + - "apple,tunable" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-dart" + - + const: "apple,t8110-dart" + required: + - "compatible" +properties: + compatible: true apple,managed-sids: $ref: /schemas/types.yaml#/definitions/uint32-array items: @@ -71,41 +83,13 @@ properties: host describe the same two ordinary streams. Error reporting must already be unmasked at admission; the OS preserves the inherited global error-mask policy rather than changing it for these streams. - - reg: - minItems: 1 - items: - - description: DART registers - - description: - Address filter (DAPF) registers, which restrict the physical - addresses the DART lets its masters reach - - reg-names: - minItems: 1 - items: - - const: dart - - enum: [dapf, auxiliary] - - interrupts: - maxItems: 1 - - clocks: - description: - Reference to the gate clock phandle if required for this IOMMU. - Optional since not all IOMMUs are attached to a clock gate. - - '#iommu-cells': - enum: [1, 5] - description: - One cell describes the stream ID emitted by a master. Five cells - describe the stream ID followed by the 64-bit base and length of its - device-visible DMA window. - + reg: true + reg-names: true + interrupts: true + clocks: true + "#iommu-cells": true nonposted-mmio: true - - power-domains: - maxItems: 1 - + power-domains: true apple,dma-range: $ref: /schemas/types.yaml#/definitions/uint64-array minItems: 2 @@ -115,14 +99,12 @@ properties: IOMMU DMA allocator restricts mappings to this range; high address bits may select a firmware-visible alias of the translation aperture. A consumer may further specify its own aperture in its binding. - apple,dma-offset: $ref: /schemas/types.yaml#/definitions/uint64 description: > Offset added to device-visible DMA addresses when indexing the DART page tables. This models host bridges which alias a low PCI bus aperture into a high DART translation window. - apple,firmware-root-handoff: $ref: /schemas/types.yaml#/definitions/uint32 const: 1 @@ -131,7 +113,6 @@ properties: table pages as normal RAM and completed the display coprocessor power handoff. Linux retains occupied root slots and excludes their entire IOVA spans from allocation. This does not assert immutable descendants. - apple,tunable: $ref: /schemas/types.yaml#/definitions/uint32-matrix items: @@ -143,7 +124,6 @@ properties: List of (register offset, mask, value) tuples copied from Apple's Device Tree by the bootloader and required to initialize dynamically powered DART instances. - apple,bypass-sids: $ref: /schemas/types.yaml#/definitions/uint32-array minItems: 1 @@ -154,7 +134,6 @@ properties: Reserved streams of a USB4 PCIe tunnel DART that its PCIe-C port issues its own writes on, such as the interrupt controller writes its MSIs turn into. They are set to bypass after every reset of the DART. - apple,remap-streams: $ref: /schemas/types.yaml#/definitions/uint32-matrix minItems: 1 @@ -169,36 +148,245 @@ properties: T8110 stream remaps. A source uses the destination stream's translation and filtering state without a separate page-table root. Source and destination must differ, and both must exist on the controller. - -required: - - compatible - - reg - - '#iommu-cells' - - interrupts + iommus: true + resets: true + status: true allOf: - if: - properties: - compatible: - contains: - const: apple,t6000-display-dart + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-dart" + - + const: "apple,t8110-dart" + status: + const: "disabled" + required: + - "compatible" + - "status" then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-dart" + - + const: "apple,t8110-dart" + status: + const: "disabled" + reg: + minItems: 1 + maxItems: 6 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + power-domains: + maxItems: 1 + "#iommu-cells": + const: 1 + apple,dma-range: + $ref: "/schemas/types.yaml#/definitions/uint64-array" + minItems: 2 + maxItems: 2 + description: "Device-visible DMA base and size." + apple,dma-offset: + $ref: "/schemas/types.yaml#/definitions/uint64" + description: "Offset of the device-visible translation window." + reg-names: + minItems: 1 + maxItems: 5 + nonposted-mmio: true + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "#iommu-cells" + additionalProperties: false + else: 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 + - apple,t8110-dart + - apple,t6000-dart + - items: + - const: apple,t8140-ane-dart + - const: apple,t8140-dart + - const: apple,t8110-dart + - items: + - enum: + - apple,t6000-dart + - apple,t8112-dart + - const: apple,t8110-dart + - items: + - enum: + - apple,t6020-dart + - apple,t6030-dart + - apple,t6031-dart + - apple,t6041-dart + - apple,t6050-dart + - apple,t8122-dart + - apple,t8132-dart + - apple,t8140-dart + - apple,t8142-dart + - apple,t8152-dart + - const: apple,t8110-dart + + apple,managed-sids: + $ref: /schemas/types.yaml#/definitions/uint32-array + items: + - const: 1 + - const: 2 + description: > + J713 radio ordinary stream ownership profile. Only these inactive + normal streams and their exact-RID entries may be adopted by the OS. + Other streams and RID entries remain inherited. The documented static + SID16 bypass role may be initialized only from a disabled stream with + no valid root; an existing bypass remains unchanged. PIODMA and other + reserved roles are not modified. This does not authorize a controller + reset or takeover of active page tables. Both the radio DART and PCI + host describe the same two ordinary streams. Error reporting must + already be unmasked at admission; the OS preserves the inherited global + error-mask policy rather than changing it for these streams. + reg: + minItems: 1 + items: + - description: DART registers + - description: + Address filter (DAPF) registers, which restrict the physical + addresses the DART lets its masters reach + + reg-names: + minItems: 1 + items: + - const: dart + - enum: [dapf, auxiliary] + + interrupts: + maxItems: 1 + + clocks: + description: + Reference to the gate clock phandle if required for this IOMMU. + Optional since not all IOMMUs are attached to a clock gate. + + '#iommu-cells': + enum: [1, 5] + description: + One cell describes the stream ID emitted by a master. Five cells + describe the stream ID followed by the 64-bit base and length of its + device-visible DMA window. + + nonposted-mmio: true + + power-domains: + maxItems: 1 + + apple,dma-range: + $ref: /schemas/types.yaml#/definitions/uint64-array minItems: 2 + maxItems: 2 + description: > + Device-visible DMA aperture encoded as a base and a nonzero size. The + IOMMU DMA allocator restricts mappings to this range; high address bits + may select a firmware-visible alias of the translation aperture. + A consumer may further specify its own aperture in its binding. + + apple,dma-offset: + $ref: /schemas/types.yaml#/definitions/uint64 + description: > + Offset added to device-visible DMA addresses when indexing the DART page + tables. This models host bridges which alias a low PCI bus aperture into + a high DART translation window. + + apple,firmware-root-handoff: + $ref: /schemas/types.yaml#/definitions/uint32 + const: 1 + description: > + The bootloader has reserved the actual three-level locked root and leaf + table pages as normal RAM and completed the display coprocessor power + handoff. Linux retains occupied root slots and excludes their entire + IOVA spans from allocation. This does not assert immutable descendants. + + apple,tunable: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + items: + items: + - description: Register offset + - description: Mask to be applied to the register value + - description: Bits to be set after applying the mask + description: > + List of (register offset, mask, value) tuples copied from Apple's Device + Tree by the bootloader and required to initialize dynamically powered + DART instances. + + apple,bypass-sids: + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 8 + items: + maximum: 255 + description: + Reserved streams of a USB4 PCIe tunnel DART that its PCIe-C port issues + its own writes on, such as the interrupt controller writes its MSIs + turn into. They are set to bypass after every reset of the DART. + + apple,remap-streams: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + minItems: 1 + maxItems: 256 + items: + items: + - description: Source stream ID, unique within this list. + maximum: 255 + - description: Destination stream ID, which must not itself be remapped. + maximum: 15 + description: + T8110 stream remaps. A source uses the destination stream's translation + and filtering state without a separate page-table root. Source and + destination must differ, and both must exist on the controller. required: - - reg-names - - if: - properties: - reg: - minItems: 2 - required: + - compatible - reg - then: - required: - - reg-names - -additionalProperties: false + - '#iommu-cells' + - interrupts + allOf: + - if: + properties: + compatible: + contains: + const: apple,t6000-display-dart + then: + properties: + reg: + minItems: 2 + required: + - reg-names + - if: + properties: + reg: + minItems: 2 + required: + - reg + then: + required: + - reg-names + additionalProperties: false examples: - |+ diff --git a/Documentation/devicetree/bindings/iommu/apple,sart.yaml b/Documentation/devicetree/bindings/iommu/apple,sart.yaml index e6482453d6dac..067d4e2f73d0b 100644 --- a/Documentation/devicetree/bindings/iommu/apple,sart.yaml +++ b/Documentation/devicetree/bindings/iommu/apple,sart.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/iommu/apple,sart.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple SART DMA address filter @@ -26,37 +27,116 @@ description: SART3, first seen in M1 Pro/Max, extends both the address space and filter entry size to 42 bit. -properties: - compatible: - oneOf: - - items: - - enum: - - apple,t6020-sart - - apple,t6030-sart - - apple,t6031-sart - - apple,t6041-sart - - apple,t8112-sart - - apple,t8122-sart - - apple,t8132-sart - - apple,t8140-sart - - apple,t8142-sart - - const: apple,t6000-sart - - enum: - - apple,t6000-sart - - apple,t8015-sart - - apple,t8103-sart +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,t6000-sart" + - "apple,t6020-sart" + - "apple,t6030-sart" + - "apple,t6031-sart" + - "apple,t6041-sart" + - "apple,t8015-sart" + - "apple,t8103-sart" + - "apple,t8112-sart" + - "apple,t8122-sart" + - "apple,t8132-sart" + - "apple,t8140-sart" + - "apple,t8142-sart" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-sart" + - + const: "apple,sart" + required: + - "compatible" - reg: - maxItems: 1 +properties: + compatible: true + reg: true + power-domains: true + interrupts: true + iommus: true + clocks: true + resets: true + status: true - power-domains: - maxItems: 1 +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-sart" + - + const: "apple,sart" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-sart" + - + const: "apple,sart" + status: + const: "disabled" + reg: + minItems: 3 + maxItems: 3 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + required: + - "compatible" + - "reg" + - "status" + additionalProperties: false + else: + properties: + compatible: + oneOf: + - items: + - enum: + - apple,t6020-sart + - apple,t6030-sart + - apple,t6031-sart + - apple,t6041-sart + - apple,t8112-sart + - apple,t8122-sart + - apple,t8132-sart + - apple,t8140-sart + - apple,t8142-sart + - const: apple,t6000-sart + - enum: + - apple,t6000-sart + - apple,t8015-sart + - apple,t8103-sart -required: - - compatible - - reg + reg: + maxItems: 1 -additionalProperties: false + power-domains: + maxItems: 1 + required: + - compatible + - reg + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml b/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml index 6b50540015458..19b1677eda176 100644 --- a/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml +++ b/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/mailbox/apple,secure-mailbox.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple secure coprocessor mailbox aperture @@ -13,50 +14,126 @@ description: | Secure coprocessor proxy mailbox aperture and its transport interrupts. This description does not authorize access to secure-world registers. +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,secure-mailbox" + - "apple,t8140-secure-mailbox" + - "apple,t8142-secure-mailbox" + - "apple,t8152-secure-mailbox" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-secure-mailbox" + - + const: "apple,secure-mailbox" + required: + - "compatible" + properties: - compatible: - oneOf: - - items: - - const: apple,t8152-secure-mailbox - - const: apple,secure-mailbox - - items: - - const: apple,t8142-secure-mailbox - - const: apple,secure-mailbox - - items: - - const: apple,t8140-secure-mailbox - - const: apple,secure-mailbox - - reg: - maxItems: 1 - description: Register apertures in hardware-description order. - - interrupts: - minItems: 2 - maxItems: 3 - - iommus: - maxItems: 1 - -required: - - compatible - - reg - - interrupts - - iommus + compatible: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true allOf: - if: - properties: - compatible: - contains: - const: apple,t8152-secure-mailbox + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-secure-mailbox" + - + const: "apple,secure-mailbox" + status: + const: "disabled" + required: + - "compatible" + - "status" then: - properties: - interrupts: - minItems: 3 - maxItems: 3 + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-secure-mailbox" + - + const: "apple,secure-mailbox" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 2 + maxItems: 2 + iommus: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + additionalProperties: false else: properties: + compatible: + oneOf: + - items: + - const: apple,t8152-secure-mailbox + - const: apple,secure-mailbox + - items: + - const: apple,t8142-secure-mailbox + - const: apple,secure-mailbox + - items: + - const: apple,t8140-secure-mailbox + - const: apple,secure-mailbox + + reg: + maxItems: 1 + description: Register apertures in hardware-description order. + interrupts: - maxItems: 2 + minItems: 2 + maxItems: 3 -additionalProperties: false + iommus: + maxItems: 1 + required: + - compatible + - reg + - interrupts + - iommus + allOf: + - if: + properties: + compatible: + contains: + const: apple,t8152-secure-mailbox + then: + properties: + interrupts: + minItems: 3 + maxItems: 3 + else: + properties: + interrupts: + maxItems: 2 + additionalProperties: false diff --git a/Documentation/devicetree/bindings/media/apple,avd.yaml b/Documentation/devicetree/bindings/media/apple,avd.yaml index afbe7e00bb690..770a3386ea417 100644 --- a/Documentation/devicetree/bindings/media/apple,avd.yaml +++ b/Documentation/devicetree/bindings/media/apple,avd.yaml @@ -2,167 +2,240 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/media/apple,avd.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple AVD (Apple Video Decoder) -description: - AVD is a video decode block present on all apple silicon devices. - maintainers: - Sofus -select: - properties: - compatible: - contains: - enum: - - apple,t6000-avd - - apple,t6020-avd - - apple,t6030-avd - - apple,t6031-avd - - apple,t6041-avd - - apple,t6041-max-avd - - apple,t8103-avd - - apple,t8112-avd - - apple,t8122-avd - - apple,t8132-avd - - apple,t8140-avd - - apple,t8142-avd - required: - - compatible - -properties: - compatible: true +description: + AVD is a video decode block present on all apple silicon devices. -allOf: - - if: +select: + anyOf: + - properties: compatible: contains: - const: apple,avd + enum: + - apple,t6000-avd + - apple,t6020-avd + - apple,t6030-avd + - apple,t6031-avd + - apple,t6041-avd + - apple,t6041-max-avd + - apple,t8103-avd + - apple,t8112-avd + - apple,t8122-avd + - apple,t8132-avd + - apple,t8140-avd + - apple,t8142-avd required: - compatible - then: + - properties: compatible: items: - - const: apple,t8132-avd - - const: apple,avd + - + const: "apple,t6050-avd" + - + const: "apple,avd" + required: + - "compatible" + +properties: + compatible: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true - reg: - maxItems: 1 - description: Complete decoder register aperture. +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-avd" + - + const: "apple,avd" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-avd" + - + const: "apple,avd" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 2 + maxItems: 2 + iommus: + minItems: 1 + maxItems: 3 + power-domains: + maxItems: 1 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + - "clocks" + additionalProperties: false + else: + properties: + compatible: true + allOf: + - if: + properties: + compatible: + contains: + const: apple,avd + required: + - compatible + then: + properties: + compatible: + items: + - const: apple,t8132-avd + - const: apple,avd - interrupts: - minItems: 2 - maxItems: 2 + reg: + maxItems: 1 + description: Complete decoder register aperture. - iommus: - minItems: 3 - maxItems: 3 - description: Decoder, PIODMA and auxiliary-data streams, in that order. + interrupts: + minItems: 2 + maxItems: 2 - power-domains: - maxItems: 1 + iommus: + minItems: 3 + maxItems: 3 + description: Decoder, PIODMA and auxiliary-data streams, in that order. - clocks: - maxItems: 1 + power-domains: + maxItems: 1 - status: - const: disabled + clocks: + maxItems: 1 - required: - - compatible - - reg - - interrupts - - iommus - - power-domains - - clocks - - status - else: - properties: - compatible: - oneOf: - - items: - - enum: - - apple,t6030-avd - - apple,t6031-avd - - const: apple,t8122-avd - - items: - - const: apple,t6041-max-avd - - const: apple,t6041-avd - - const: apple,t8132-avd - - items: - - const: apple,t6041-avd - - const: apple,t8132-avd - - enum: - - apple,t8103-avd - - apple,t6000-avd - - apple,t8112-avd - - apple,t6020-avd - - apple,t8122-avd - - apple,t8132-avd - - apple,t8140-avd - - apple,t8142-avd - - reg: - items: - - description: cm3 code - - description: cm3 sram - - description: mbox registers - - description: decode ctrl registers + status: + const: disabled - reg-names: - items: - - const: code - - const: sram - - const: mbox - - const: ctrl + required: + - compatible + - reg + - interrupts + - iommus + - power-domains + - clocks + - status + else: + properties: + compatible: + oneOf: + - items: + - enum: + - apple,t6030-avd + - apple,t6031-avd + - const: apple,t8122-avd + - items: + - const: apple,t6041-max-avd + - const: apple,t6041-avd + - const: apple,t8132-avd + - items: + - const: apple,t6041-avd + - const: apple,t8132-avd + - enum: + - apple,t8103-avd + - apple,t6000-avd + - apple,t8112-avd + - apple,t6020-avd + - apple,t8122-avd + - apple,t8132-avd + - apple,t8140-avd + - apple,t8142-avd - iommus: - minItems: 1 - maxItems: 3 + reg: + items: + - description: cm3 code + - description: cm3 sram + - description: mbox registers + - description: decode ctrl registers - power-domains: - minItems: 1 - items: - - description: decoder power state - - description: performance floor (PMC rail or PMP device level) held while decoding + reg-names: + items: + - const: code + - const: sram + - const: mbox + - const: ctrl - power-domain-names: - minItems: 1 - items: - - const: core - - const: perf + iommus: + minItems: 1 + maxItems: 3 - resets: - maxItems: 1 + power-domains: + minItems: 1 + items: + - description: decoder power state + - description: performance floor (PMC rail or PMP device level) held while decoding - dma-coherent: true + power-domain-names: + minItems: 1 + items: + - const: core + - const: perf - interrupts: - minItems: 2 - items: - - description: mailbox 0 - - description: mailbox 1 - - description: mailbox 2 - - description: mailbox 3 - - description: flag 0 - - description: flag 1 + resets: + maxItems: 1 - required: - - compatible - - reg - - interrupts - - reg-names - - iommus - - power-domains - - resets + dma-coherent: true + + interrupts: + minItems: 2 + items: + - description: mailbox 0 + - description: mailbox 1 + - description: mailbox 2 + - description: mailbox 3 + - description: flag 0 + - description: flag 1 - additionalProperties: false + required: + - compatible + - reg + - interrupts + - reg-names + - iommus + - power-domains + - resets -unevaluatedProperties: false + additionalProperties: false + unevaluatedProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/media/apple,jpeg.yaml b/Documentation/devicetree/bindings/media/apple,jpeg.yaml index bbab1e49d9f50..ae56a4bdb7470 100644 --- a/Documentation/devicetree/bindings/media/apple,jpeg.yaml +++ b/Documentation/devicetree/bindings/media/apple,jpeg.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/media/apple,jpeg.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple Silicon JPEG codec @@ -21,87 +22,122 @@ description: | buffer addresses and use their DART's full window. select: - properties: - compatible: - contains: - enum: - - apple,t6000-jpeg - - apple,t6020-jpeg - - apple,t6021-jpeg - - apple,t6022-jpeg - - apple,t6030-jpeg - - apple,t6031-jpeg - - apple,t6032-jpeg - - apple,t6041-jpeg - - apple,t8103-jpeg - - apple,t8112-jpeg - - apple,t8122-jpeg - - apple,t8132-jpeg - - apple,t8140-jpeg - required: - - compatible - -properties: - compatible: true - - apple,dma-range: - $ref: /schemas/types.yaml#/definitions/uint64-array - description: Shared hardware resource metadata. - -allOf: - - if: + anyOf: + - properties: compatible: contains: enum: + - apple,t6000-jpeg + - apple,t6020-jpeg + - apple,t6021-jpeg + - apple,t6022-jpeg + - apple,t6030-jpeg + - apple,t6031-jpeg + - apple,t6032-jpeg + - apple,t6041-jpeg + - apple,t8103-jpeg + - apple,t8112-jpeg + - apple,t8122-jpeg - apple,t8132-jpeg + - apple,t8140-jpeg required: - compatible - then: + - properties: compatible: items: - - enum: - - apple,t8132-jpeg - - const: apple,jpeg - - reg: - maxItems: 1 - - interrupts: - maxItems: 1 - - power-domains: - maxItems: 1 - - iommus: - maxItems: 1 + - + const: "apple,t6050-jpeg" + - + const: "apple,jpeg" + required: + - "compatible" - clocks: - minItems: 1 - maxItems: 2 +properties: + compatible: true + apple,dma-range: + $ref: /schemas/types.yaml#/definitions/uint64-array + description: Shared hardware resource metadata. + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true - required: - - compatible - - reg - - interrupts - - power-domains - - iommus +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-jpeg" + - + const: "apple,jpeg" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-jpeg" + - + const: "apple,jpeg" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + iommus: + maxItems: 1 + power-domains: + maxItems: 1 + clocks: + maxItems: 2 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "power-domains" + - "clocks" + additionalProperties: false else: + properties: + compatible: true + + apple,dma-range: + $ref: /schemas/types.yaml#/definitions/uint64-array + description: Shared hardware resource metadata. allOf: - if: properties: compatible: contains: enum: - - apple,t6032-jpeg + - apple,t8132-jpeg required: - compatible then: properties: compatible: items: - - const: apple,t6032-jpeg + - enum: + - apple,t8132-jpeg - const: apple,jpeg reg: @@ -117,7 +153,7 @@ allOf: maxItems: 1 clocks: - minItems: 2 + minItems: 1 maxItems: 2 required: @@ -126,94 +162,132 @@ allOf: - interrupts - power-domains - iommus - - clocks else: - properties: - compatible: - oneOf: - - enum: - - apple,t6041-jpeg - - apple,t8140-jpeg - - items: - - enum: - - apple,t6000-jpeg - - apple,t6020-jpeg - - apple,t6021-jpeg - - apple,t6022-jpeg - - apple,t6030-jpeg - - apple,t6031-jpeg - - apple,t8103-jpeg - - apple,t8112-jpeg - - apple,t8122-jpeg - - const: apple,jpeg - - reg: - maxItems: 1 - - interrupts: - maxItems: 1 - - iommus: - maxItems: 1 + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t6032-jpeg + required: + - compatible + then: + properties: + compatible: + items: + - const: apple,t6032-jpeg + - const: apple,jpeg - clocks: - minItems: 1 - maxItems: 2 + reg: + maxItems: 1 - power-domains: - minItems: 1 - items: - - description: The engine's power domain - - description: Performance request held while the engine works + interrupts: + maxItems: 1 - power-domain-names: - minItems: 1 - items: - - const: core - - const: perf + power-domains: + maxItems: 1 - apple,dma-range: - $ref: /schemas/types.yaml#/definitions/uint64-array - items: - - const: 0x10000000000 - - const: 0x100000000 - description: Device-visible DMA window, as a 64-bit base and size. - Only for engines with 32-bit buffer pointers. + iommus: + maxItems: 1 - required: - - compatible - - reg - - interrupts - - iommus - - power-domains + clocks: + minItems: 2 + maxItems: 2 - allOf: - - if: - properties: - compatible: - const: apple,t6041-jpeg - then: required: - - apple,dma-range + - compatible + - reg + - interrupts + - power-domains + - iommus + - clocks else: - properties: - apple,dma-range: false - - if: properties: compatible: - contains: - enum: - - apple,t6030-jpeg - - apple,t6031-jpeg - - apple,t8122-jpeg - then: - properties: - power-domains: + oneOf: + - enum: + - apple,t6041-jpeg + - apple,t8140-jpeg + - items: + - enum: + - apple,t6000-jpeg + - apple,t6020-jpeg + - apple,t6021-jpeg + - apple,t6022-jpeg + - apple,t6030-jpeg + - apple,t6031-jpeg + - apple,t8103-jpeg + - apple,t8112-jpeg + - apple,t8122-jpeg + - const: apple,jpeg + + reg: maxItems: 1 - additionalProperties: false + interrupts: + maxItems: 1 -unevaluatedProperties: false + iommus: + maxItems: 1 + + clocks: + minItems: 1 + maxItems: 2 + + power-domains: + minItems: 1 + items: + - description: The engine's power domain + - description: Performance request held while the engine works + + power-domain-names: + minItems: 1 + items: + - const: core + - const: perf + + apple,dma-range: + $ref: /schemas/types.yaml#/definitions/uint64-array + items: + - const: 0x10000000000 + - const: 0x100000000 + description: Device-visible DMA window, as a 64-bit base and size. + Only for engines with 32-bit buffer pointers. + + required: + - compatible + - reg + - interrupts + - iommus + - power-domains + + allOf: + - if: + properties: + compatible: + const: apple,t6041-jpeg + then: + required: + - apple,dma-range + else: + properties: + apple,dma-range: false + - if: + properties: + compatible: + contains: + enum: + - apple,t6030-jpeg + - apple,t6031-jpeg + - apple,t8122-jpeg + then: + properties: + power-domains: + maxItems: 1 + + additionalProperties: false + unevaluatedProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/media/apple,prores.yaml b/Documentation/devicetree/bindings/media/apple,prores.yaml index 52213425af62b..4fad7efc9cb02 100644 --- a/Documentation/devicetree/bindings/media/apple,prores.yaml +++ b/Documentation/devicetree/bindings/media/apple,prores.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/media/apple,prores.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple Silicon ProRes codec (APR) @@ -15,95 +16,128 @@ description: | interrupt. It has no firmware. Its power domain also resets it. select: - properties: - compatible: - contains: - enum: - - apple,t6000-prores - - apple,t6020-prores - - apple,t6021-prores - - apple,t6022-prores - - apple,t6030-prores - - apple,t6031-prores - - apple,t6032-prores - - apple,t6041-prores - - apple,t8112-prores - - apple,t8122-prores - - apple,t8132-prores - - apple,t8140-prores - required: - - compatible - -properties: - compatible: true - -allOf: - - if: + anyOf: + - properties: compatible: contains: enum: + - apple,t6000-prores + - apple,t6020-prores + - apple,t6021-prores + - apple,t6022-prores + - apple,t6030-prores + - apple,t6031-prores + - apple,t6032-prores + - apple,t6041-prores + - apple,t8112-prores + - apple,t8122-prores - apple,t8132-prores + - apple,t8140-prores required: - compatible - then: + - properties: compatible: items: - - enum: - - apple,t8132-prores - - const: apple,prores - - reg: - minItems: 3 - maxItems: 3 - - interrupts: - minItems: 2 - maxItems: 2 - - power-domains: - maxItems: 1 + - + const: "apple,t6050-prores" + - + const: "apple,prores" + required: + - "compatible" - iommus: - maxItems: 1 +properties: + compatible: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true - required: - - compatible - - reg - - interrupts - - power-domains - - iommus +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-prores" + - + const: "apple,prores" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-prores" + - + const: "apple,prores" + status: + const: "disabled" + reg: + minItems: 5 + maxItems: 5 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 2 + maxItems: 2 + iommus: + maxItems: 1 + power-domains: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "power-domains" + additionalProperties: false else: + properties: + compatible: true allOf: - if: properties: compatible: contains: enum: - - apple,t6032-prores + - apple,t8132-prores required: - compatible then: properties: compatible: items: - - const: apple,t6032-prores + - enum: + - apple,t8132-prores - const: apple,prores reg: - minItems: 2 + minItems: 3 maxItems: 3 interrupts: - maxItems: 1 + minItems: 2 + maxItems: 2 power-domains: maxItems: 1 iommus: - minItems: 1 - maxItems: 2 + maxItems: 1 required: - compatible @@ -112,137 +146,173 @@ allOf: - power-domains - iommus else: - properties: - compatible: - oneOf: - - const: apple,t8140-prores - - items: - - enum: - - apple,t6000-prores - - apple,t6020-prores - - apple,t6021-prores - - apple,t6022-prores - - apple,t6030-prores - - apple,t6031-prores - - apple,t6041-prores - - apple,t8112-prores - - apple,t8122-prores - - const: apple,prores - - reg: - minItems: 2 - maxItems: 3 - description: Engine, wrapper and generation-specific auxiliary register windows. - - reg-names: - minItems: 2 - items: - - const: core - - const: wrapper - - const: aux - - interrupts: - minItems: 1 - maxItems: 2 - - iommus: - minItems: 1 - maxItems: 2 - - power-domains: - minItems: 1 - items: - - description: The engine's power domain - - description: Performance request held while the engine works - - power-domain-names: - minItems: 1 - items: - - const: core - - const: perf - - resets: - maxItems: 1 - - required: - - compatible - - reg - - interrupts - - iommus - - power-domains - allOf: - if: properties: compatible: contains: enum: - - apple,t6030-prores - - apple,t6031-prores - - apple,t8122-prores + - apple,t6032-prores + required: + - compatible then: properties: + compatible: + items: + - const: apple,t6032-prores + - const: apple,prores + reg: minItems: 2 maxItems: 3 + + interrupts: + maxItems: 1 + power-domains: maxItems: 1 - - if: - properties: - compatible: - contains: - enum: - - apple,t6020-prores - - apple,t6021-prores - - apple,t6022-prores - - apple,t8112-prores - then: - properties: - reg: - maxItems: 2 - reg-names: + + iommus: + minItems: 1 maxItems: 2 - - if: + + required: + - compatible + - reg + - interrupts + - power-domains + - iommus + else: properties: compatible: - contains: - enum: - - apple,t6041-prores - then: - properties: + oneOf: + - const: apple,t8140-prores + - items: + - enum: + - apple,t6000-prores + - apple,t6020-prores + - apple,t6021-prores + - apple,t6022-prores + - apple,t6030-prores + - apple,t6031-prores + - apple,t6041-prores + - apple,t8112-prores + - apple,t8122-prores + - const: apple,prores + reg: - minItems: 3 + minItems: 2 maxItems: 3 + description: Engine, wrapper and generation-specific auxiliary register windows. + reg-names: - minItems: 3 - maxItems: 3 + minItems: 2 + items: + - const: core + - const: wrapper + - const: aux + interrupts: - maxItems: 1 - iommus: - maxItems: 1 - required: - - resets - - reg-names - - if: - properties: - compatible: - contains: - enum: - - apple,t8140-prores - then: - properties: - reg: - maxItems: 2 - reg-names: + minItems: 1 maxItems: 2 + iommus: + minItems: 1 + maxItems: 2 + + power-domains: + minItems: 1 + items: + - description: The engine's power domain + - description: Performance request held while the engine works + + power-domain-names: + minItems: 1 + items: + - const: core + - const: perf + + resets: maxItems: 1 + required: - - reg-names + - compatible + - reg + - interrupts + - iommus + - power-domains - additionalProperties: false + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t6030-prores + - apple,t6031-prores + - apple,t8122-prores + then: + properties: + reg: + minItems: 2 + maxItems: 3 + power-domains: + maxItems: 1 + - if: + properties: + compatible: + contains: + enum: + - apple,t6020-prores + - apple,t6021-prores + - apple,t6022-prores + - apple,t8112-prores + then: + properties: + reg: + maxItems: 2 + reg-names: + maxItems: 2 + - if: + properties: + compatible: + contains: + enum: + - apple,t6041-prores + then: + properties: + reg: + minItems: 3 + maxItems: 3 + reg-names: + minItems: 3 + maxItems: 3 + interrupts: + maxItems: 1 + iommus: + maxItems: 1 + required: + - resets + - reg-names + - if: + properties: + compatible: + contains: + enum: + - apple,t8140-prores + then: + properties: + reg: + maxItems: 2 + reg-names: + maxItems: 2 + iommus: + maxItems: 1 + required: + - reg-names -unevaluatedProperties: false + additionalProperties: false + unevaluatedProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml b/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml index f02744fd0ce6b..4030941193479 100644 --- a/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml +++ b/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/media/apple,t8140-ave.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple video encoder @@ -15,86 +16,118 @@ description: | memory handoff and IOVA mappings. select: - properties: - compatible: - contains: - enum: - - apple,t6000-ave - - apple,t6020-ave - - apple,t6021-ave - - apple,t6022-ave - - apple,t6030-ave - - apple,t6031-ave - - apple,t6032-ave - - apple,t6041-ave - - apple,t8103-ave - - apple,t8112-ave - - apple,t8122-ave - - apple,t8132-ave - - apple,t8140-ave - required: - - compatible - -properties: - compatible: true - -allOf: - - if: + anyOf: + - properties: compatible: contains: enum: + - apple,t6000-ave + - apple,t6020-ave + - apple,t6021-ave + - apple,t6022-ave + - apple,t6030-ave + - apple,t6031-ave + - apple,t6032-ave + - apple,t6041-ave + - apple,t8103-ave + - apple,t8112-ave + - apple,t8122-ave - apple,t8132-ave + - apple,t8140-ave required: - compatible - then: + - properties: compatible: items: - - enum: - - apple,t8132-ave - - const: apple,ave - - reg: - minItems: 5 - maxItems: 5 - - interrupts: - minItems: 5 - maxItems: 5 - - power-domains: - minItems: 1 - maxItems: 6 - - iommus: - minItems: 1 - maxItems: 2 + - + const: "apple,t6050-ave" + - + const: "apple,ave" + required: + - "compatible" - clocks: - maxItems: 1 +properties: + compatible: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true - required: - - compatible - - reg - - interrupts - - power-domains - - iommus +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-ave" + - + const: "apple,ave" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-ave" + - + const: "apple,ave" + status: + const: "disabled" + reg: + minItems: 5 + maxItems: 5 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 5 + maxItems: 5 + iommus: + maxItems: 1 + power-domains: + minItems: 6 + maxItems: 6 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "power-domains" + - "clocks" + additionalProperties: false else: + properties: + compatible: true allOf: - if: properties: compatible: contains: enum: - - apple,t6032-ave + - apple,t8132-ave required: - compatible then: properties: compatible: items: - - const: apple,t6032-ave + - enum: + - apple,t8132-ave - const: apple,ave reg: @@ -106,136 +139,177 @@ allOf: maxItems: 5 power-domains: - minItems: 5 + minItems: 1 maxItems: 6 iommus: - minItems: 2 + minItems: 1 maxItems: 2 - required: - - compatible - - reg - - interrupts - - power-domains - - iommus - else: - properties: - compatible: - oneOf: - - enum: - - apple,t6000-ave - - apple,t6041-ave - - apple,t8112-ave - - apple,t8140-ave - - items: - - enum: - - apple,t6020-ave - - apple,t6021-ave - - apple,t6022-ave - - apple,t6030-ave - - apple,t6031-ave - - apple,t8103-ave - - apple,t8122-ave - - const: apple,ave - - reg: - minItems: 3 - maxItems: 5 - description: Codec, mailbox, coprocessor and generation-specific auxiliary banks. - - reg-names: - minItems: 3 - items: - - const: codec - - const: mailbox - - const: coproc - - enum: [pmgr, power-control] - - enum: [fabric, pio] - clocks: maxItems: 1 - interrupts: - items: - - description: Mailbox, raised when the firmware posts to a host ring - - description: Codec interrupt handled by the firmware - - description: Codec interrupt handled by the firmware - - description: Codec interrupt handled by the firmware - - description: Codec interrupt handled by the firmware - - power-domains: - minItems: 1 - maxItems: 6 - - power-domain-names: - minItems: 5 - items: - - const: dma - - const: pipe4 - - const: pipe5 - - const: me0 - - const: me1 - - const: perf - description: | - A performance floor the encoder needs to run at full speed, held - while the encoder is powered (for example the SoC rail floor of a - PMC). - - iommus: - minItems: 2 - maxItems: 4 - - memory-region: - items: - - description: Preloaded firmware text - - description: Preloaded firmware data - required: - compatible - reg - interrupts - power-domains - iommus - + else: allOf: - if: properties: compatible: contains: enum: - - apple,t6020-ave - - apple,t6021-ave - - apple,t6022-ave - - apple,t6030-ave - - apple,t6031-ave - - apple,t8122-ave + - apple,t6032-ave + required: + - compatible then: properties: + compatible: + items: + - const: apple,t6032-ave + - const: apple,ave + reg: minItems: 5 - else: - properties: + maxItems: 5 + + interrupts: + minItems: 5 + maxItems: 5 + power-domains: minItems: 5 + maxItems: 6 + + iommus: + minItems: 2 + maxItems: 2 + required: - - reg-names - - power-domain-names - - if: + - compatible + - reg + - interrupts + - power-domains + - iommus + else: properties: compatible: - contains: - enum: - - apple,t6041-ave - - apple,t8112-ave - - apple,t8140-ave - then: - properties: + oneOf: + - enum: + - apple,t6000-ave + - apple,t6041-ave + - apple,t8112-ave + - apple,t8140-ave + - items: + - enum: + - apple,t6020-ave + - apple,t6021-ave + - apple,t6022-ave + - apple,t6030-ave + - apple,t6031-ave + - apple,t8103-ave + - apple,t8122-ave + - const: apple,ave + reg: - maxItems: 3 + minItems: 3 + maxItems: 5 + description: Codec, mailbox, coprocessor and generation-specific auxiliary banks. + reg-names: - maxItems: 3 + minItems: 3 + items: + - const: codec + - const: mailbox + - const: coproc + - enum: [pmgr, power-control] + - enum: [fabric, pio] + + clocks: + maxItems: 1 + + interrupts: + items: + - description: Mailbox, raised when the firmware posts to a host ring + - description: Codec interrupt handled by the firmware + - description: Codec interrupt handled by the firmware + - description: Codec interrupt handled by the firmware + - description: Codec interrupt handled by the firmware + + power-domains: + minItems: 1 + maxItems: 6 + + power-domain-names: + minItems: 5 + items: + - const: dma + - const: pipe4 + - const: pipe5 + - const: me0 + - const: me1 + - const: perf + description: | + A performance floor the encoder needs to run at full speed, held + while the encoder is powered (for example the SoC rail floor of a + PMC). + + iommus: + minItems: 2 + maxItems: 4 + + memory-region: + items: + - description: Preloaded firmware text + - description: Preloaded firmware data + + required: + - compatible + - reg + - interrupts + - power-domains + - iommus - additionalProperties: false + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t6020-ave + - apple,t6021-ave + - apple,t6022-ave + - apple,t6030-ave + - apple,t6031-ave + - apple,t8122-ave + then: + properties: + reg: + minItems: 5 + else: + properties: + power-domains: + minItems: 5 + required: + - reg-names + - power-domain-names + - if: + properties: + compatible: + contains: + enum: + - apple,t6041-ave + - apple,t8112-ave + - apple,t8140-ave + then: + properties: + reg: + maxItems: 3 + reg-names: + maxItems: 3 -unevaluatedProperties: false + additionalProperties: false + unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/mfd/apple,smc.yaml b/Documentation/devicetree/bindings/mfd/apple,smc.yaml index 8641aaeb432ec..c8c8ba645a991 100644 --- a/Documentation/devicetree/bindings/mfd/apple,smc.yaml +++ b/Documentation/devicetree/bindings/mfd/apple,smc.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/apple,smc.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple Mac System Management Controller @@ -13,65 +14,169 @@ description: Apple Mac System Management Controller implements various functions such as GPIO, RTC, power, reboot. -properties: - compatible: - oneOf: - - description: T8152 SMC with read-only hardware monitoring. - const: apple,t8152-smc - - items: - - enum: - - apple,t6020-smc - - apple,t6030-smc - - apple,t6031-smc - - apple,t6041-smc - - apple,t8122-smc - - apple,t8132-smc - - apple,t8140-smc - - apple,t8142-smc - - const: apple,t8103-smc - - items: - - enum: - # Do not add additional SoC to this list. - - apple,t6000-smc - - apple,t8103-smc - - apple,t8112-smc - - const: apple,smc - - reg: - items: - - description: SMC area - - description: SRAM area - - reg-names: - items: - - const: smc - - const: sram +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,smc" + - "apple,smc-gpio.yaml" + - "apple,smc-hwmon.yaml" + - "apple,smc-reboot.yaml" + - "apple,smc-rtc.yaml" + - "apple,t6000-smc" + - "apple,t6020-smc" + - "apple,t6030-smc" + - "apple,t6031-smc" + - "apple,t6041-smc" + - "apple,t8103-smc" + - "apple,t8112-smc" + - "apple,t8122-smc" + - "apple,t8132-smc" + - "apple,t8140-smc" + - "apple,t8142-smc" + - "apple,t8152-smc" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-smc" + - + const: "apple,smc" + required: + - "compatible" +properties: + compatible: true + reg: true + reg-names: true mboxes: maxItems: 1 - gpio: $ref: /schemas/gpio/apple,smc-gpio.yaml - gpio-low: $ref: /schemas/gpio/apple,smc-gpio.yaml - reboot: $ref: /schemas/power/reset/apple,smc-reboot.yaml - rtc: $ref: /schemas/rtc/apple,smc-rtc.yaml - hwmon: $ref: /schemas/hwmon/apple,smc-hwmon.yaml - -additionalProperties: false - -required: - - compatible - - reg - - reg-names - - mboxes + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-smc" + - + const: "apple,smc" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-smc" + - + const: "apple,smc" + status: + const: "disabled" + reg: + minItems: 3 + maxItems: 3 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "clocks" + additionalProperties: false + else: + properties: + compatible: + oneOf: + - description: T8152 SMC with read-only hardware monitoring. + const: apple,t8152-smc + - items: + - enum: + - apple,t6020-smc + - apple,t6030-smc + - apple,t6031-smc + - apple,t6041-smc + - apple,t8122-smc + - apple,t8132-smc + - apple,t8140-smc + - apple,t8142-smc + - const: apple,t8103-smc + - items: + - enum: + # Do not add additional SoC to this list. + - apple,t6000-smc + - apple,t8103-smc + - apple,t8112-smc + - const: apple,smc + + reg: + items: + - description: SMC area + - description: SRAM area + + reg-names: + items: + - const: smc + - const: sram + + mboxes: + maxItems: 1 + + gpio: + $ref: /schemas/gpio/apple,smc-gpio.yaml + + gpio-low: + $ref: /schemas/gpio/apple,smc-gpio.yaml + + reboot: + $ref: /schemas/power/reset/apple,smc-reboot.yaml + + rtc: + $ref: /schemas/rtc/apple,smc-rtc.yaml + + hwmon: + $ref: /schemas/hwmon/apple,smc-hwmon.yaml + additionalProperties: false + required: + - compatible + - reg + - reg-names + - mboxes examples: - | diff --git a/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml b/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml index 7d3713754e7a6..981a7e0893562 100644 --- a/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml +++ b/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/mux/apple,display-crossbar.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple display crossbar @@ -14,44 +15,119 @@ description: of an Apple Type-C PHY. Each crossbar exposes three mux controls, selected by the consumer's mux specifier. -allOf: - - $ref: mux-controller.yaml# +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,t6000-display-crossbar" + - "apple,t6020-display-crossbar" + - "apple,t6030-display-crossbar" + - "apple,t6031-display-crossbar" + - "apple,t6041-display-crossbar" + - "apple,t8103-display-crossbar" + - "apple,t8112-display-crossbar" + - "apple,t8122-display-crossbar" + - "apple,t8132-display-crossbar" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-display-crossbar" + - + const: "apple,display-crossbar" + required: + - "compatible" properties: - compatible: - oneOf: - - enum: - - apple,t8103-display-crossbar - - apple,t8112-display-crossbar - - apple,t6000-display-crossbar - - apple,t6020-display-crossbar - - apple,t6041-display-crossbar - - apple,t8132-display-crossbar - - items: - - const: apple,t8112-display-crossbar - - const: apple,t8103-display-crossbar - - items: - - enum: - - apple,t6030-display-crossbar - - apple,t6031-display-crossbar - - apple,t8122-display-crossbar - - const: apple,t6020-display-crossbar - - reg: - maxItems: 1 - - power-domains: - maxItems: 1 - - '#mux-control-cells': - const: 1 - -required: - - compatible - - reg - - '#mux-control-cells' - -unevaluatedProperties: false + compatible: true + reg: true + power-domains: true + "#mux-control-cells": true + interrupts: true + iommus: true + clocks: true + resets: true + status: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-display-crossbar" + - + const: "apple,display-crossbar" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-display-crossbar" + - + const: "apple,display-crossbar" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + required: + - "compatible" + - "reg" + - "status" + additionalProperties: false + else: + allOf: + - $ref: mux-controller.yaml# + properties: + compatible: + oneOf: + - enum: + - apple,t8103-display-crossbar + - apple,t8112-display-crossbar + - apple,t6000-display-crossbar + - apple,t6020-display-crossbar + - apple,t6041-display-crossbar + - apple,t8132-display-crossbar + - items: + - const: apple,t8112-display-crossbar + - const: apple,t8103-display-crossbar + - items: + - enum: + - apple,t6030-display-crossbar + - apple,t6031-display-crossbar + - apple,t8122-display-crossbar + - const: apple,t6020-display-crossbar + + reg: + maxItems: 1 + + power-domains: + maxItems: 1 + + '#mux-control-cells': + const: 1 + required: + - compatible + - reg + - '#mux-control-cells' + unevaluatedProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/npu/apple,ane.yaml b/Documentation/devicetree/bindings/npu/apple,ane.yaml index 6e50f9f11b233..0b3ed5cae9004 100644 --- a/Documentation/devicetree/bindings/npu/apple,ane.yaml +++ b/Documentation/devicetree/bindings/npu/apple,ane.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/npu/apple,ane.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple Neural Engine @@ -21,112 +22,71 @@ description: base domain depends on the task domain. Interrupt roles on T6041 and T8140 are not yet established. -properties: - compatible: - 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 - items: - - description: Engine registers, including the coprocessor on firmware - managed generations - - description: Power manager (PMGR) registers of the ANE - - description: Power state registers or first auxiliary window - - description: Revision registers or second auxiliary window - - description: Third auxiliary window - - description: Fourth auxiliary window - - description: Fifth auxiliary window - - clocks: - minItems: 4 - maxItems: 4 - description: Native secondary-engine clock selectors in hardware-description order. - - reg-names: - minItems: 1 - maxItems: 7 +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,ane" + - "apple,ane-type" + - "apple,dapf-ranges" + - "apple,exclave-assigned" + - "apple,firmware-iovas" + - "apple,firmware-preloaded" + - "apple,performance-controller" + - "apple,preload-data-sha256" + - "apple,t6000-ane" + - "apple,t6001-ane" + - "apple,t6020-ane" + - "apple,t6021-ane" + - "apple,t6022-ane" + - "apple,t6041-ane" + - "apple,t8103-ane" + - "apple,t8112-ane" + - "apple,t8140-ane" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-ane" + - + const: "apple,ane" + required: + - "compatible" +properties: + compatible: true + reg: true + clocks: true + reg-names: true apple,performance-controller: $ref: /schemas/types.yaml#/definitions/phandle description: PMP report provider that owns the ANE clock-level request interface. Only supported on T6000. The ANE and report SRAM must remain powered while the driver holds a request. - interconnects: maxItems: 1 - interconnect-names: const: memory description: DRAM/fabric path; bandwidth requests come from the level OPP. - operating-points-v2: true - - interrupts: - minItems: 1 - maxItems: 2 - - interrupt-names: - items: - - const: ane - - iommus: - description: - Stream 0 of each of the three DARTs. On T6041 the ANE's MPM also uses - stream 11 of each DART; the firmware drives that stream itself and it - is not described here. - minItems: 3 - maxItems: 3 - - power-domains: - description: - The power states the engine needs, five on T8103, six on T6000 with - ANE level control (including PMP report SRAM), eight on - T602x, seven on T8112 and one system domain on T8140. T6041 may add - a sixth, "perf", a performance floor (such as the SoC rail floor) - that the driver holds only while requests are in flight. - minItems: 1 - maxItems: 8 - - power-domain-names: - minItems: 1 - maxItems: 8 - - resets: - maxItems: 1 - description: Reset of the ANE coprocessor - + interrupts: true + interrupt-names: true + iommus: true + power-domains: true + power-domain-names: true + resets: true mboxes: maxItems: 1 description: Mailbox of the ANE coprocessor - - memory-region: - minItems: 1 - maxItems: 2 - description: - On T602x, the IOVA-only reservation of the firmware entry alias. - On T6041 and T8140, bootloader-provided physical TEXT and DATA preload - reservations in that order. Each reservation must have no-map, must - not be reusable, and must remain reserved until reboot. Physical - addresses vary per boot and must not be hard-coded in a board DTS. - - memory-region-names: - items: - - const: firmware-text - - const: firmware-data - + memory-region: true + memory-region-names: true apple,firmware-iovas: $ref: /schemas/types.yaml#/definitions/uint64-array items: @@ -137,7 +97,6 @@ properties: are 0xc0000 and 0x2ac000 bytes respectively. The bootloader supplies the physical reservations. The device addresses are fixed by the firmware layout and may be described statically. - apple,dapf-ranges: $ref: /schemas/types.yaml#/definitions/uint64-matrix minItems: 4 @@ -153,7 +112,6 @@ properties: Firmware accesses these registers through identity mappings of the containing 16 KiB pages in its private domain. These are MMIO ranges, not allocatable DMA memory or additional preload segments. - apple,preload-data-sha256: $ref: /schemas/types.yaml#/definitions/uint8-array minItems: 32 @@ -164,277 +122,487 @@ properties: preservation of that boot's DATA, not a cross-build firmware identity. Without it the driver checks its copy against the live DATA. TEXT has a driver pin. - apple,ane-type: $ref: /schemas/types.yaml#/definitions/uint32 enum: [0x110, 0x200] description: Firmware generation identifier supplied by the bootloader - apple,firmware-preloaded: type: boolean description: Firmware has been personalized and preloaded by iBoot. The driver must preserve its runtime patches and must not stage a disk image. - apple,exclave-assigned: type: boolean description: The ANE belongs to an exclave. Direct access requires a separate Linux ownership provider to acquire a quiesced device and isolate the exclave DART contexts. Absence does not prove a handoff on T8140. - -required: - - compatible - - reg - - reg-names - - interrupts - - iommus - - power-domains + status: true allOf: - if: - required: - - interconnects - then: - required: - - interconnect-names - - operating-points-v2 - - if: - required: - - apple,performance-controller + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-ane" + - + const: "apple,ane" + status: + const: "disabled" + required: + - "compatible" + - "status" then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-ane" + - + const: "apple,ane" + status: + const: "disabled" + reg: + minItems: 7 + maxItems: 7 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 2 + maxItems: 2 + iommus: + minItems: 2 + maxItems: 2 + power-domains: + maxItems: 1 + clocks: + maxItems: 3 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "power-domains" + - "clocks" + additionalProperties: false + else: properties: compatible: - const: apple,t6000-ane - power-domains: - minItems: 6 - maxItems: 6 + 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 - - if: - properties: - compatible: - const: apple,t8140-ane - then: - properties: - interrupts: - minItems: 2 - power-domains: - maxItems: 1 - apple,ane-type: - const: 0x200 - - if: - properties: - compatible: - const: apple,t8140-ane - then: - properties: - reg: - minItems: 3 - maxItems: 3 - reg-names: - items: - - const: engine - - const: pmgr - - const: pwgate - required: - - apple,dapf-ranges - - if: - required: - - apple,preload-data-sha256 - then: - properties: - memory-region: - minItems: 2 - required: - - memory-region - - memory-region-names - - apple,firmware-preloaded - - if: - properties: - compatible: - enum: - - apple,t6041-ane - - apple,t8140-ane - required: - - memory-region - then: - required: - - memory-region-names - - apple,firmware-iovas - - if: - required: - - memory-region-names - then: - required: - - apple,firmware-iovas - - if: - properties: - compatible: - const: apple,t6041-ane - then: - properties: - interrupts: - maxItems: 1 reg: - minItems: 7 - reg-names: - items: - - const: engine - - const: pmgr - - const: aux-0 - - const: aux-1 - - const: aux-2 - - const: aux-3 - - const: aux-4 - power-domains: - minItems: 5 - maxItems: 6 - power-domain-names: - minItems: 5 + minItems: 1 items: - - const: sys - - const: cpu - - const: mpm - - const: td - - const: base - - const: perf - apple,ane-type: - const: 0x110 - required: - - apple,ane-type - - apple,firmware-preloaded - - apple,dapf-ranges - - if: - properties: - compatible: - contains: - enum: - - apple,t8140-ane - - apple,t6041-ane - then: - properties: - interrupt-names: false - iommus: - minItems: 3 - resets: false - mboxes: false - else: - properties: - interrupts: - maxItems: 1 - reg: + - description: Engine registers, including the coprocessor on firmware + managed generations + - description: Power manager (PMGR) registers of the ANE + - description: Power state registers or first auxiliary window + - description: Revision registers or second auxiliary window + - description: Third auxiliary window + - description: Fourth auxiliary window + - description: Fifth auxiliary window + + clocks: + minItems: 4 maxItems: 4 + description: Native secondary-engine clock selectors in hardware-description order. + reg-names: minItems: 1 - items: - - const: engine - - const: pmgr - - const: set - - const: fuse - memory-region: - maxItems: 1 - memory-region-names: false - apple,firmware-iovas: false - apple,ane-type: false - apple,firmware-preloaded: false - apple,exclave-assigned: false - apple,dapf-ranges: false - required: - - interrupt-names + maxItems: 7 - - if: - properties: - compatible: - contains: - enum: - - apple,t8103-ane - - apple,t6000-ane - then: - properties: - reg: - maxItems: 1 - reg-names: + apple,performance-controller: + $ref: /schemas/types.yaml#/definitions/phandle + description: + PMP report provider that owns the ANE clock-level request interface. + Only supported on T6000. The ANE and report SRAM must remain powered + while the driver holds a request. + + interconnects: maxItems: 1 - power-domains: - maxItems: 6 - resets: false - mboxes: false - memory-region: false - - if: - properties: - compatible: - contains: - enum: - - apple,t6020-ane - - apple,t6021-ane - - apple,t6022-ane - then: - properties: - reg: - minItems: 3 - maxItems: 3 - reg-names: + interconnect-names: + const: memory + description: DRAM/fabric path; bandwidth requests come from the level OPP. + + operating-points-v2: true + + interrupts: + minItems: 1 + maxItems: 2 + + interrupt-names: + items: + - const: ane + + iommus: + description: + Stream 0 of each of the three DARTs. On T6041 the ANE's MPM also uses + stream 11 of each DART; the firmware drives that stream itself and it + is not described here. minItems: 3 maxItems: 3 - power-domains: - minItems: 8 - required: - - resets - - mboxes - - memory-region - - if: - properties: - compatible: - contains: - const: apple,t8112-ane - then: - properties: - reg: - minItems: 4 - reg-names: - minItems: 4 power-domains: - minItems: 7 - maxItems: 7 - resets: false - memory-region: false - required: - - mboxes + description: + The power states the engine needs, five on T8103, six on T6000 with + ANE level control (including PMP report SRAM), eight on + T602x, seven on T8112 and one system domain on T8140. T6041 may add + a sixth, "perf", a performance floor (such as the SoC rail floor) + that the driver holds only while requests are in flight. + minItems: 1 + maxItems: 8 - - if: - properties: - compatible: - contains: - enum: - - apple,t8140-ane - - apple,t6041-ane - - apple,t6001-ane - else: - properties: - power-domains: - minItems: 5 - - if: - properties: - compatible: - contains: - const: apple,t6001-ane - then: - properties: - reg: - maxItems: 1 - reg-names: + power-domain-names: + minItems: 1 + maxItems: 8 + + resets: maxItems: 1 - power-domains: + description: Reset of the ANE coprocessor + + mboxes: maxItems: 1 - required: - - clocks - else: - properties: - clocks: false + description: Mailbox of the ANE coprocessor + + memory-region: + minItems: 1 + maxItems: 2 + description: + On T602x, the IOVA-only reservation of the firmware entry alias. + On T6041 and T8140, bootloader-provided physical TEXT and DATA preload + reservations in that order. Each reservation must have no-map, must + not be reusable, and must remain reserved until reboot. Physical + addresses vary per boot and must not be hard-coded in a board DTS. + + memory-region-names: + items: + - const: firmware-text + - const: firmware-data + + apple,firmware-iovas: + $ref: /schemas/types.yaml#/definitions/uint64-array + items: + - const: 0x10000000000 + - const: 0x100000c0000 + description: + Device addresses of the preloaded TEXT and DATA segments. Their sizes + are 0xc0000 and 0x2ac000 bytes respectively. The bootloader supplies + the physical reservations. The device addresses are fixed by the + firmware layout and may be described statically. + + apple,dapf-ranges: + $ref: /schemas/types.yaml#/definitions/uint64-matrix + minItems: 4 + maxItems: 4 + items: + items: + - description: Physical start address, inclusive + - description: Physical end address, inclusive + description: + Four DART address protection filter (DAPF) ranges, in hardware record + order. Each pair contains inclusive 64-bit physical bounds, not a + base and length. The same records apply to all three ANE DARTs. + Firmware accesses these registers through identity mappings of the + containing 16 KiB pages in its private domain. These are MMIO ranges, + not allocatable DMA memory or additional preload segments. + + apple,preload-data-sha256: + $ref: /schemas/types.yaml#/definitions/uint8-array + minItems: 32 + maxItems: 32 + description: + Optional bootloader-produced digest of the live reserved DATA + including all personalized parameter bytes. This establishes + preservation of that boot's DATA, not a cross-build firmware identity. + Without it the driver checks its copy against the live DATA. TEXT has + a driver pin. -additionalProperties: false + apple,ane-type: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0x110, 0x200] + description: Firmware generation identifier supplied by the bootloader + + apple,firmware-preloaded: + type: boolean + description: + Firmware has been personalized and preloaded by iBoot. The driver + must preserve its runtime patches and must not stage a disk image. + + apple,exclave-assigned: + type: boolean + description: + The ANE belongs to an exclave. Direct access requires a separate + Linux ownership provider to acquire a quiesced device and isolate + the exclave DART contexts. Absence does not prove a handoff on T8140. + required: + - compatible + - reg + - reg-names + - interrupts + - iommus + - power-domains + allOf: + - if: + required: + - interconnects + then: + required: + - interconnect-names + - operating-points-v2 + - if: + required: + - apple,performance-controller + then: + properties: + compatible: + const: apple,t6000-ane + power-domains: + minItems: 6 + maxItems: 6 + + - if: + properties: + compatible: + const: apple,t8140-ane + then: + properties: + interrupts: + minItems: 2 + power-domains: + maxItems: 1 + apple,ane-type: + const: 0x200 + - if: + properties: + compatible: + const: apple,t8140-ane + then: + properties: + reg: + minItems: 3 + maxItems: 3 + reg-names: + items: + - const: engine + - const: pmgr + - const: pwgate + required: + - apple,dapf-ranges + - if: + required: + - apple,preload-data-sha256 + then: + properties: + memory-region: + minItems: 2 + required: + - memory-region + - memory-region-names + - apple,firmware-preloaded + - if: + properties: + compatible: + enum: + - apple,t6041-ane + - apple,t8140-ane + required: + - memory-region + then: + required: + - memory-region-names + - apple,firmware-iovas + - if: + required: + - memory-region-names + then: + required: + - apple,firmware-iovas + - if: + properties: + compatible: + const: apple,t6041-ane + then: + properties: + interrupts: + maxItems: 1 + reg: + minItems: 7 + reg-names: + items: + - const: engine + - const: pmgr + - const: aux-0 + - const: aux-1 + - const: aux-2 + - const: aux-3 + - const: aux-4 + power-domains: + minItems: 5 + maxItems: 6 + power-domain-names: + minItems: 5 + items: + - const: sys + - const: cpu + - const: mpm + - const: td + - const: base + - const: perf + apple,ane-type: + const: 0x110 + required: + - apple,ane-type + - apple,firmware-preloaded + - apple,dapf-ranges + - if: + properties: + compatible: + contains: + enum: + - apple,t8140-ane + - apple,t6041-ane + then: + properties: + interrupt-names: false + iommus: + minItems: 3 + resets: false + mboxes: false + else: + properties: + interrupts: + maxItems: 1 + reg: + maxItems: 4 + reg-names: + minItems: 1 + items: + - const: engine + - const: pmgr + - const: set + - const: fuse + memory-region: + maxItems: 1 + memory-region-names: false + apple,firmware-iovas: false + apple,ane-type: false + apple,firmware-preloaded: false + apple,exclave-assigned: false + apple,dapf-ranges: false + required: + - interrupt-names + + - if: + properties: + compatible: + contains: + enum: + - apple,t8103-ane + - apple,t6000-ane + then: + properties: + reg: + maxItems: 1 + reg-names: + maxItems: 1 + power-domains: + maxItems: 6 + resets: false + mboxes: false + memory-region: false + + - if: + properties: + compatible: + contains: + enum: + - apple,t6020-ane + - apple,t6021-ane + - apple,t6022-ane + then: + properties: + reg: + minItems: 3 + maxItems: 3 + reg-names: + minItems: 3 + maxItems: 3 + power-domains: + minItems: 8 + required: + - resets + - mboxes + - memory-region + + - if: + properties: + compatible: + contains: + const: apple,t8112-ane + then: + properties: + reg: + minItems: 4 + reg-names: + minItems: 4 + power-domains: + minItems: 7 + maxItems: 7 + resets: false + memory-region: false + required: + - mboxes + + - if: + properties: + compatible: + contains: + enum: + - apple,t8140-ane + - apple,t6041-ane + - apple,t6001-ane + else: + properties: + power-domains: + minItems: 5 + - if: + properties: + compatible: + contains: + const: apple,t6001-ane + then: + properties: + reg: + maxItems: 1 + reg-names: + maxItems: 1 + power-domains: + maxItems: 1 + required: + - clocks + else: + properties: + clocks: false + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml b/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml index a6dafcf594289..24d7149497b26 100644 --- a/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml +++ b/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/nvme/apple,nvme-ans.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple ANS NVM Express host controller @@ -9,97 +10,59 @@ title: Apple ANS NVM Express host controller maintainers: - Sven Peter -properties: - compatible: - oneOf: - - const: apple,t8015-nvme-ans2 - - const: apple,t6041-nvme-ans2 - - items: - - enum: - - apple,t6020-nvme-ans2 - - apple,t6030-nvme-ans2 - - apple,t6031-nvme-ans2 - - apple,t8122-nvme-ans2 - - const: apple,t8103-nvme-ans2 - - const: apple,t8132-nvme-ans2 - - items: - - const: apple,t8132-nvme-ans2 - - const: apple,t8103-nvme-ans2 - - items: - - const: apple,t8140-nvme-ans2 - - const: apple,t8132-nvme-ans2 - - items: - - const: apple,t8142-nvme-ans2 - - const: apple,t8140-nvme-ans2 - - items: - - enum: - # Do not add additional SoC to this list. - - apple,t8103-nvme-ans2 - - apple,t8112-nvme-ans2 - - apple,t6000-nvme-ans2 - - const: apple,nvme-ans2 - - reg: - minItems: 2 - items: - - description: NVMe controller registers, including the NVMMU - registers on SoCs without a separate NVMMU region - - description: ANS2 co-processor control registers - - description: NVMMU registers, a separate region since T8132 (and - on T604x) - - reg-names: - oneOf: - - minItems: 2 - items: - - const: nvme - - const: ans - - const: nvmmu - - items: - - const: nvme - - const: nvmmu - - const: ans - - resets: - maxItems: 1 - description: - Reset of the ANS2 co-processor. On T8140 asserting it raises an - SError, so it cannot be used to restart the co-processor there. - - power-domains: - # two domains for t8103, three for t6000, t6020, t6041 and t8140 - minItems: 2 - items: - - description: power domain for the NVMe controller. - - description: power domain for the first PCIe bus connecting the NVMe - controller to the storage modules. - - description: optional power domain for the second PCIe bus - connecting the NVMe controller to the storage modules (T6000, - T6020), or for the PCIe PHY of the link to the storage (T8140). - - power-domain-names: - minItems: 2 - items: - - const: ans - - const: apcie0 - - enum: - - apcie1 - - apcie_phy +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,nvme-ans2" + - "apple,rtkit-handoff" + - "apple,sart" + - "apple,sart.yaml." + - "apple,t6000-nvme-ans2" + - "apple,t6020-nvme-ans2" + - "apple,t6030-nvme-ans2" + - "apple,t6031-nvme-ans2" + - "apple,t6041-nvme-ans2" + - "apple,t8015-nvme-ans2" + - "apple,t8103-nvme-ans2" + - "apple,t8112-nvme-ans2" + - "apple,t8122-nvme-ans2" + - "apple,t8132-nvme-ans2" + - "apple,t8140-nvme-ans2" + - "apple,t8142-nvme-ans2" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-nvme-ans2" + - + const: "apple,nvme-ans" + required: + - "compatible" +properties: + compatible: true + reg: true + reg-names: true + resets: true + power-domains: true + power-domain-names: true mboxes: maxItems: 1 description: Mailbox of the ANS2 co-processor - - interrupts: - maxItems: 1 - + interrupts: true apple,sart: $ref: /schemas/types.yaml#/definitions/phandle description: | Reference to the SART address filter. The SART address filter is documented in iommu/apple,sart.yaml. - apple,rtkit-handoff: $ref: /schemas/types.yaml#/definitions/string const: nvme-disabled-v1 @@ -108,76 +71,222 @@ properties: with the NVMe controller disabled and its queues drained. The kernel adopts that RTKit session without renegotiating it. Shared firmware buffers must remain reserved and protected by the SART. + iommus: true + clocks: true + status: true allOf: - if: - properties: - compatible: - not: - contains: - enum: - - apple,t8132-nvme-ans2 - - apple,t8140-nvme-ans2 + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-nvme-ans2" + - + const: "apple,nvme-ans" + status: + const: "disabled" + required: + - "compatible" + - "status" then: - properties: - apple,rtkit-handoff: false - - - if: - properties: - compatible: - contains: - enum: - - apple,t6000-nvme-ans2 - - apple,t6020-nvme-ans2 - - apple,t6031-nvme-ans2 - - apple,t6041-nvme-ans2 - - apple,t8140-nvme-ans2 - then: - properties: - power-domains: - minItems: 3 - power-domain-names: - minItems: 3 + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-nvme-ans2" + - + const: "apple,nvme-ans" + status: + const: "disabled" + reg: + minItems: 10 + maxItems: 10 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 5 + maxItems: 5 + clocks: + maxItems: 3 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "clocks" + additionalProperties: false else: - properties: - power-domains: - maxItems: 2 - power-domain-names: - maxItems: 2 - - - if: properties: compatible: - contains: - enum: - - apple,t6041-nvme-ans2 - - apple,t8132-nvme-ans2 - - apple,t8140-nvme-ans2 - then: - properties: - reg: - minItems: 3 - reg-names: - minItems: 3 - else: - properties: + oneOf: + - const: apple,t8015-nvme-ans2 + - const: apple,t6041-nvme-ans2 + - items: + - enum: + - apple,t6020-nvme-ans2 + - apple,t6030-nvme-ans2 + - apple,t6031-nvme-ans2 + - apple,t8122-nvme-ans2 + - const: apple,t8103-nvme-ans2 + - const: apple,t8132-nvme-ans2 + - items: + - const: apple,t8132-nvme-ans2 + - const: apple,t8103-nvme-ans2 + - items: + - const: apple,t8140-nvme-ans2 + - const: apple,t8132-nvme-ans2 + - items: + - const: apple,t8142-nvme-ans2 + - const: apple,t8140-nvme-ans2 + - items: + - enum: + # Do not add additional SoC to this list. + - apple,t8103-nvme-ans2 + - apple,t8112-nvme-ans2 + - apple,t6000-nvme-ans2 + - const: apple,nvme-ans2 + reg: - maxItems: 2 + minItems: 2 + items: + - description: NVMe controller registers, including the NVMMU + registers on SoCs without a separate NVMMU region + - description: ANS2 co-processor control registers + - description: NVMMU registers, a separate region since T8132 (and + on T604x) + reg-names: - maxItems: 2 - -required: - - compatible - - reg - - reg-names - - resets - - power-domains - - power-domain-names - - mboxes - - interrupts - - apple,sart - -additionalProperties: false + oneOf: + - minItems: 2 + items: + - const: nvme + - const: ans + - const: nvmmu + - items: + - const: nvme + - const: nvmmu + - const: ans + + resets: + maxItems: 1 + description: + Reset of the ANS2 co-processor. On T8140 asserting it raises an + SError, so it cannot be used to restart the co-processor there. + + power-domains: + # two domains for t8103, three for t6000, t6020, t6041 and t8140 + minItems: 2 + items: + - description: power domain for the NVMe controller. + - description: power domain for the first PCIe bus connecting the NVMe + controller to the storage modules. + - description: optional power domain for the second PCIe bus + connecting the NVMe controller to the storage modules (T6000, + T6020), or for the PCIe PHY of the link to the storage (T8140). + + power-domain-names: + minItems: 2 + items: + - const: ans + - const: apcie0 + - enum: + - apcie1 + - apcie_phy + + mboxes: + maxItems: 1 + description: Mailbox of the ANS2 co-processor + + interrupts: + maxItems: 1 + + apple,sart: + $ref: /schemas/types.yaml#/definitions/phandle + description: | + Reference to the SART address filter. + + The SART address filter is documented in iommu/apple,sart.yaml. + + apple,rtkit-handoff: + $ref: /schemas/types.yaml#/definitions/string + const: nvme-disabled-v1 + description: | + Added at boot when the bootloader leaves the ANS firmware running, + with the NVMe controller disabled and its queues drained. The kernel + adopts that RTKit session without renegotiating it. Shared firmware + buffers must remain reserved and protected by the SART. + allOf: + - if: + properties: + compatible: + not: + contains: + enum: + - apple,t8132-nvme-ans2 + - apple,t8140-nvme-ans2 + then: + properties: + apple,rtkit-handoff: false + + - if: + properties: + compatible: + contains: + enum: + - apple,t6000-nvme-ans2 + - apple,t6020-nvme-ans2 + - apple,t6031-nvme-ans2 + - apple,t6041-nvme-ans2 + - apple,t8140-nvme-ans2 + then: + properties: + power-domains: + minItems: 3 + power-domain-names: + minItems: 3 + else: + properties: + power-domains: + maxItems: 2 + power-domain-names: + maxItems: 2 + + - if: + properties: + compatible: + contains: + enum: + - apple,t6041-nvme-ans2 + - apple,t8132-nvme-ans2 + - apple,t8140-nvme-ans2 + then: + properties: + reg: + minItems: 3 + reg-names: + minItems: 3 + else: + properties: + reg: + maxItems: 2 + reg-names: + maxItems: 2 + required: + - compatible + - reg + - reg-names + - resets + - power-domains + - power-domain-names + - mboxes + - interrupts + - apple,sart + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/pci/apple,pcie.yaml b/Documentation/devicetree/bindings/pci/apple,pcie.yaml index 6a1f35b618a57..e7b0ad9b0da89 100644 --- a/Documentation/devicetree/bindings/pci/apple,pcie.yaml +++ b/Documentation/devicetree/bindings/pci/apple,pcie.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/pci/apple,pcie.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple PCIe host controller @@ -36,50 +37,66 @@ description: | distributed over the root ports as the OS sees fit by programming the PCIe controller's port registers. -$defs: - tunable: - $ref: /schemas/types.yaml#/definitions/uint32-matrix - items: - items: - - description: Register offset - - description: Mask of bits to clear - - description: Bits to set - description: Register initialization tuples for one controller region. +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,managed-sids" + - "apple,msi-vector-base" + - "apple,pcie" + - "apple,pciec-kernel-init" + - "apple,piodma" + - "apple,t6000-pcie" + - "apple,t6000-pciec" + - "apple,t6020-pcie" + - "apple,t6020-pcie-ge" + - "apple,t6030-pcie" + - "apple,t6031-pcie" + - "apple,t6040-pciec" + - "apple,t6041-pcie" + - "apple,t8103-pcie" + - "apple,t8103-pciec" + - "apple,t8112-pcie" + - "apple,t8112-pciec" + - "apple,t8122-pcie" + - "apple,t8122-pciec" + - "apple,t8132-pcie" + - "apple,t8132-pciec" + - "apple,t8140-pcie" + - "apple,t8152-pcie" + - "apple,tunable" + - "apple,tunable-debug" + - "apple,tunable-fabric" + - "apple,tunable-oe-fabric" + - "apple,tunable-rc" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-pcie" + - + const: "apple,pcie" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-pciec" + - + const: "apple,pciec" + required: + - "compatible" properties: - compatible: - oneOf: - - items: - - enum: - - apple,t8103-pcie - - apple,t8112-pcie - - apple,t6000-pcie - - const: apple,pcie - - items: - - enum: - - apple,t6030-pcie - - apple,t6031-pcie - - apple,t6041-pcie - - apple,t8122-pcie - - const: apple,t6020-pcie - - const: apple,t6020-pcie - - items: - - const: apple,t6020-pcie-ge - - const: apple,t6020-pcie - - const: apple,t8140-pcie - - const: apple,t8152-pcie - - const: apple,t8132-pcie - - const: apple,t8103-pciec - - items: - - const: apple,t8112-pciec - - const: apple,t8103-pciec - - const: apple,t6000-pciec - - items: - - const: apple,t8132-pciec - - const: apple,t8122-pciec - - const: apple,t8103-pciec - - const: apple,t6040-pciec - + compatible: true apple,managed-sids: $ref: /schemas/types.yaml#/definitions/uint32-array items: @@ -94,54 +111,24 @@ properties: reserved roles are not modified. This does not authorize a controller reset or takeover of active page tables. Both the radio DART and PCI host describe the same two ordinary streams. - - reg: - minItems: 3 - maxItems: 10 - - reg-names: - minItems: 3 - maxItems: 10 - - ranges: - minItems: 2 - maxItems: 3 - - interrupts: - description: - Interrupt specifiers, one for each root port. - minItems: 1 - maxItems: 6 - - interrupt-names: - minItems: 1 - maxItems: 6 - + reg: true + reg-names: true + ranges: true + interrupts: true + interrupt-names: true msi-parent: true - msi-ranges: maxItems: 1 - apple,msi-vector-base: $ref: /schemas/types.yaml#/definitions/uint32 description: First vector of this PCIe-C controller's slice of the MSI window it shares with the internal PCIe controller. - iommu-map: true iommu-map-mask: true - - power-domains: - maxItems: 1 - - resets: - description: - Reset of a tunneled (PCIe-C) controller and its DART, for controllers - the kernel initializes itself. - maxItems: 1 - + power-domains: true + resets: true dma-coherent: true - apple,pciec-kernel-init: type: boolean description: | @@ -149,266 +136,483 @@ properties: already initialized it. The compatible selects the initialization sequence. T600x and T8112 use the Intr2AXI bridge and require tunables for their associated DART before the tunnel children can be populated. - apple,tunable-rc: $ref: '#/$defs/tunable' description: Root-complex register initialization tuples. - apple,tunable-fabric: $ref: '#/$defs/tunable' description: Initialization tuples for the fabric register region. - apple,tunable-debug: $ref: '#/$defs/tunable' description: Initialization tuples for the debug register region. - apple,tunable-oe-fabric: $ref: '#/$defs/tunable' description: Initialization tuples for the oe-fabric register region. - apple,piodma: $ref: /schemas/types.yaml#/definitions/phandle description: T8140 PIODMA bootstrap engine used before native downstream ECAM access. - -patternProperties: - "^pci@": - $ref: /schemas/pci/pci-bus.yaml# - type: object - description: A single PCI root port - - properties: - reg: - maxItems: 1 - - pwren-gpios: - description: Optional GPIO to power on the device - maxItems: 1 - - interrupt-controller: true - - apple,tunable: - $ref: '#/$defs/tunable' - description: Initialization tuples relative to this port's registers. - - required: - - interrupt-controller - - "#interrupt-cells" - - interrupt-map-mask - - interrupt-map - - unevaluatedProperties: false - -required: - - compatible - - reg - - reg-names - - bus-range - - interrupts - - msi-controller - - msi-parent - - msi-ranges - -unevaluatedProperties: false + iommus: true + clocks: true + status: true allOf: - if: - properties: - compatible: - contains: - enum: - - apple,t8132-pciec - - apple,t6040-pciec - then: - required: - - apple,msi-vector-base - - $ref: /schemas/pci/pci-host-bridge.yaml# - - $ref: /schemas/interrupt-controller/msi-controller.yaml# - - if: - properties: - compatible: - contains: - const: apple,t8140-pcie + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-pcie" + - + const: "apple,pcie" + status: + const: "disabled" + required: + - "compatible" + - "status" + - + properties: + compatible: + items: + - + const: "apple,t6050-pciec" + - + const: "apple,pciec" + status: + const: "disabled" + required: + - "compatible" + - "status" then: - properties: - apple,piodma: true + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-pcie" + - + const: "apple,pcie" + status: + const: "disabled" + reg: + minItems: 40 + maxItems: 40 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 6 + maxItems: 6 + power-domains: + minItems: 18 + maxItems: 18 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + additionalProperties: false + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-pciec" + - + const: "apple,pciec" + status: + const: "disabled" + reg: + minItems: 8 + maxItems: 8 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 6 + maxItems: 6 + power-domains: + minItems: 2 + maxItems: 2 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + additionalProperties: false else: - properties: - apple,piodma: false - - if: properties: compatible: - contains: - const: apple,t8103-pcie - then: - properties: - reg: - maxItems: 5 - interrupts: - maxItems: 3 - - if: - properties: - compatible: - contains: - const: apple,t6020-pcie - then: - properties: - reg-names: - minItems: 10 - - if: - properties: - compatible: - contains: - enum: - - apple,t8103-pciec - - apple,t6000-pciec - - apple,t6040-pciec - then: - properties: - reg: - minItems: 5 - maxItems: 9 - reg-names: oneOf: - items: - - const: config - - const: rc - - const: port0 - - const: fabric - - const: debug + - enum: + - apple,t8103-pcie + - apple,t8112-pcie + - apple,t6000-pcie + - const: apple,pcie - items: - - const: config - - const: rc - - const: port0 - - const: fabric - - const: debug - - const: ltssm - - enum: [intr2axi, oe-fabric] + - enum: + - apple,t6030-pcie + - apple,t6031-pcie + - apple,t6041-pcie + - apple,t8122-pcie + - const: apple,t6020-pcie + - const: apple,t6020-pcie - items: - - const: config - - const: rc - - const: port0 - - const: fabric - - const: debug - - const: ioa - - const: ltssm - - const: intr2axi - - const: oe-fabric + - const: apple,t6020-pcie-ge + - const: apple,t6020-pcie + - const: apple,t8140-pcie + - const: apple,t8152-pcie + - const: apple,t8132-pcie + - const: apple,t8103-pciec - items: - - const: config - - const: rc - - const: port0 - - const: fabric - - const: debug - - const: ioa - - const: ltssm - - const: intr2axi - interrupts: - maxItems: 6 - ranges: + - const: apple,t8112-pciec + - const: apple,t8103-pciec + - const: apple,t6000-pciec + - items: + - const: apple,t8132-pciec + - const: apple,t8122-pciec + - const: apple,t8103-pciec + - const: apple,t6040-pciec + + apple,managed-sids: + $ref: /schemas/types.yaml#/definitions/uint32-array + items: + - const: 1 + - const: 2 + description: > + J713 radio ordinary stream ownership profile. Only these inactive + normal streams and their exact-RID entries may be adopted by the OS. + Other streams and RID entries remain inherited. The documented static + SID16 bypass role may be initialized only from a disabled stream with + no valid root; an existing bypass remains unchanged. PIODMA and other + reserved roles are not modified. This does not authorize a controller + reset or takeover of active page tables. Both the radio DART and PCI + host describe the same two ordinary streams. + + reg: minItems: 3 + maxItems: 10 + + reg-names: + minItems: 3 + maxItems: 10 + + ranges: + minItems: 2 maxItems: 3 + + interrupts: + description: + Interrupt specifiers, one for each root port. + minItems: 1 + maxItems: 6 + + interrupt-names: + minItems: 1 + maxItems: 6 + + msi-parent: true + + msi-ranges: + maxItems: 1 + + apple,msi-vector-base: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + First vector of this PCIe-C controller's slice of the MSI window it + shares with the internal PCIe controller. + + iommu-map: true + iommu-map-mask: true + + power-domains: + maxItems: 1 + + resets: + description: + Reset of a tunneled (PCIe-C) controller and its DART, for controllers + the kernel initializes itself. + maxItems: 1 + + dma-coherent: true + + apple,pciec-kernel-init: + type: boolean + description: | + The kernel initializes the tunneled controller when firmware has not + already initialized it. The compatible selects the initialization + sequence. T600x and T8112 use the Intr2AXI bridge and require tunables + for their associated DART before the tunnel children can be populated. + + apple,tunable-rc: + $ref: '#/$defs/tunable' + description: Root-complex register initialization tuples. + + apple,tunable-fabric: + $ref: '#/$defs/tunable' + description: Initialization tuples for the fabric register region. + + apple,tunable-debug: + $ref: '#/$defs/tunable' + description: Initialization tuples for the debug register region. + + apple,tunable-oe-fabric: + $ref: '#/$defs/tunable' + description: Initialization tuples for the oe-fabric register region. + + apple,piodma: + $ref: /schemas/types.yaml#/definitions/phandle + description: + T8140 PIODMA bootstrap engine used before native downstream ECAM access. + patternProperties: + "^pci@": + $ref: /schemas/pci/pci-bus.yaml# + type: object + description: A single PCI root port + + properties: + reg: + maxItems: 1 + + pwren-gpios: + description: Optional GPIO to power on the device + maxItems: 1 + + interrupt-controller: true + + apple,tunable: + $ref: '#/$defs/tunable' + description: Initialization tuples relative to this port's registers. + + required: + - interrupt-controller + - "#interrupt-cells" + - interrupt-map-mask + - interrupt-map + + unevaluatedProperties: false + required: + - compatible + - reg + - reg-names + - bus-range + - interrupts + - msi-controller + - msi-parent + - msi-ranges + unevaluatedProperties: false allOf: - if: properties: compatible: contains: - const: apple,t6040-pciec + enum: + - apple,t8132-pciec + - apple,t6040-pciec then: - properties: - reg: - minItems: 8 - maxItems: 8 - interrupts: - minItems: 6 - maxItems: 6 - interrupt-names: - items: - - const: port - - const: intx-a - - const: intx-b - - const: intx-c - - const: intx-d - - const: parity required: - - interrupt-names + - apple,msi-vector-base + - $ref: /schemas/pci/pci-host-bridge.yaml# + - $ref: /schemas/interrupt-controller/msi-controller.yaml# + - if: + properties: + compatible: + contains: + const: apple,t8140-pcie + then: + properties: + apple,piodma: true else: properties: + apple,piodma: false + - if: + properties: + compatible: + contains: + const: apple,t8103-pcie + then: + properties: + reg: + maxItems: 5 interrupts: - maxItems: 1 - interrupt-names: false - else: - properties: - resets: false - apple,pciec-kernel-init: false - apple,tunable-rc: false - apple,tunable-fabric: false - apple,tunable-debug: false - apple,tunable-oe-fabric: false - ranges: - maxItems: 2 - allOf: + maxItems: 3 - if: properties: compatible: contains: - const: apple,t8140-pcie + const: apple,t6020-pcie + then: + properties: + reg-names: + minItems: 10 + - if: + properties: + compatible: + contains: + enum: + - apple,t8103-pciec + - apple,t6000-pciec + - apple,t6040-pciec then: properties: reg: - minItems: 8 - maxItems: 8 + minItems: 5 + maxItems: 9 reg-names: - items: - - const: config - - const: rc - - const: port0 - - const: port1 - - const: port2 - - const: phy0 - - const: phy1 - - const: phy2 + oneOf: + - items: + - const: config + - const: rc + - const: port0 + - const: fabric + - const: debug + - items: + - const: config + - const: rc + - const: port0 + - const: fabric + - const: debug + - const: ltssm + - enum: [intr2axi, oe-fabric] + - items: + - const: config + - const: rc + - const: port0 + - const: fabric + - const: debug + - const: ioa + - const: ltssm + - const: intr2axi + - const: oe-fabric + - items: + - const: config + - const: rc + - const: port0 + - const: fabric + - const: debug + - const: ioa + - const: ltssm + - const: intr2axi interrupts: + maxItems: 6 + ranges: + minItems: 3 maxItems: 3 + allOf: + - if: + properties: + compatible: + contains: + const: apple,t6040-pciec + then: + properties: + reg: + minItems: 8 + maxItems: 8 + interrupts: + minItems: 6 + maxItems: 6 + interrupt-names: + items: + - const: port + - const: intx-a + - const: intx-b + - const: intx-c + - const: intx-d + - const: parity + required: + - interrupt-names + else: + properties: + interrupts: + maxItems: 1 + interrupt-names: false else: - if: - properties: - compatible: - contains: - const: apple,t8152-pcie - then: - properties: - reg: - minItems: 4 - maxItems: 8 - reg-names: - minItems: 4 - maxItems: 8 - items: - enum: [config, rc, port0, phy0, port1, phy1, port2, phy2] - interrupts: - maxItems: 3 - else: - properties: - reg-names: - minItems: 3 - items: - - const: config - - const: rc - - const: port0 - - const: port1 - - const: port2 - - const: port3 - - const: phy0 - - const: phy1 - - const: phy2 - - const: phy3 - patternProperties: - "^pci@": - properties: - apple,tunable: false - required: - - reset-gpios + properties: + resets: false + apple,pciec-kernel-init: false + apple,tunable-rc: false + apple,tunable-fabric: false + apple,tunable-debug: false + apple,tunable-oe-fabric: false + ranges: + maxItems: 2 + allOf: + - if: + properties: + compatible: + contains: + const: apple,t8140-pcie + then: + properties: + reg: + minItems: 8 + maxItems: 8 + reg-names: + items: + - const: config + - const: rc + - const: port0 + - const: port1 + - const: port2 + - const: phy0 + - const: phy1 + - const: phy2 + interrupts: + maxItems: 3 + else: + if: + properties: + compatible: + contains: + const: apple,t8152-pcie + then: + properties: + reg: + minItems: 4 + maxItems: 8 + reg-names: + minItems: 4 + maxItems: 8 + items: + enum: [config, rc, port0, phy0, port1, phy1, port2, phy2] + interrupts: + maxItems: 3 + else: + properties: + reg-names: + minItems: 3 + items: + - const: config + - const: rc + - const: port0 + - const: port1 + - const: port2 + - const: port3 + - const: phy0 + - const: phy1 + - const: phy2 + - const: phy3 + patternProperties: + "^pci@": + properties: + apple,tunable: false + required: + - reset-gpios + +$defs: + tunable: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + items: + items: + - description: Register offset + - description: Mask of bits to clear + - description: Bits to set + description: Register initialization tuples for one controller region. examples: - | diff --git a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml index 5364f6dd8871b..9939de6416dd8 100644 --- a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml +++ b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/phy/apple,atcphy.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple Type-C PHY (ATCPHY) @@ -36,243 +37,83 @@ description: > display crossbar is not part of the PHY resource. SuperSpeed calibration is supplied in banked lists so that no list spans that crossbar. -allOf: - - $ref: /schemas/usb/usb-switch.yaml# - - if: +select: + anyOf: + - properties: compatible: contains: enum: - - apple,t8122-atcphy - - apple,t6030-atcphy - - apple,t6031-atcphy - then: - properties: - reg: - minItems: 1 - items: - - description: Common controls for USB and DisplayPort - - description: DisplayPort alternate mode PHY - - description: AXI to Apple Fabric interface - - description: USB2 PHY - - description: USB3 PIPE interface - reg-names: - minItems: 1 - items: - - const: core - - const: lpdptx - - const: axi2af - - const: usb2phy - - const: pipehandler - oneOf: - - properties: - reg: - maxItems: 1 - reg-names: - maxItems: 1 - - properties: - reg: - minItems: 5 - reg-names: - minItems: 5 + - "apple,dp-training-table" + - "apple,t6000-atcphy" + - "apple,t6020-atcphy" + - "apple,t6030-atcphy" + - "apple,t6031-atcphy" + - "apple,t8103-atcphy" + - "apple,t8112-atcphy" + - "apple,t8122-atcphy" + - "apple,t8132-atcphy" + - "apple,t8140-atcphy" + - "apple,t8142-atcphy" + - "apple,tunable" + - "apple,tunable-axi2af" + - "apple,tunable-cio-axi2af" + - "apple,tunable-cio-common" + - "apple,tunable-cio-config" + - "apple,tunable-cio-fabric" + - "apple,tunable-cio-lane0" + - "apple,tunable-cio-lane0-eq" + - "apple,tunable-cio-lane1" + - "apple,tunable-cio-lane1-eq" + - "apple,tunable-cio-lioa" + - "apple,tunable-cio-post" + - "apple,tunable-common-a" + - "apple,tunable-common-b" + - "apple,tunable-dp-common-post" + - "apple,tunable-dp-common-pre" + - "apple,tunable-dp-lpdptx" + - "apple,tunable-lane0-cio" + - "apple,tunable-lane0-dp" + - "apple,tunable-lane0-usb" + - "apple,tunable-lane1-cio" + - "apple,tunable-lane1-dp" + - "apple,tunable-lane1-usb" + - "apple,tunable-usb2phy-reg-dflt" + - "apple,tunable-usb3-axi2af" + - "apple,tunable-usb3-common" + - "apple,tunable-usb3-config" + - "apple,tunable-usb3-dp" + - "apple,tunable-usb3-efuse" + - "apple,tunable-usb3-fabric" + - "apple,tunable-usb3-lioa" required: - - power-domains - else: - if: - properties: - compatible: - contains: - const: apple,t8132-atcphy - then: - oneOf: - - properties: - reg: - minItems: 2 - maxItems: 2 - reg-names: - items: - - const: usb2phy - - const: pipehandler - - properties: - reg: - items: - - description: USB2 PHY specific controls - - description: USB3 PIPE interface controls - - description: SuperSpeed PHY core, excluding the display crossbar - - description: AXI to Apple Fabric interface controls - - description: Local IO address translation controls - - description: ATC fabric controls - - description: ATC common configuration controls - reg-names: - items: - - const: usb2phy - - const: pipehandler - - const: core - - const: axi2af - - const: lioa - - const: fabric - - const: common-config - required: - - power-domains - else: - properties: - reg: - minItems: 5 - items: - - description: Common controls for all PHYs (USB2/3/4, DisplayPort, TBT) - - description: DisplayPort Alternate Mode PHY specific controls - - description: Type-C PHY AXI to Apple Fabric interconnect controls - - description: USB2 PHY specific controls - - description: USB3 PIPE interface controls - - description: Secondary eUSB2 PHY register bank (T8140) - reg-names: - minItems: 5 - items: - - const: core - - const: lpdptx - - const: axi2af - - const: usb2phy - - const: pipehandler - - const: usb2phy-reg - required: - - power-domains - - if: + - "compatible" + - properties: compatible: - contains: - const: apple,t8140-atcphy - then: - properties: - reg: - minItems: 6 - reg-names: - minItems: 6 - else: - properties: - apple,tunable-usb2phy-reg-dflt: false - apple,tunable-dp-common-pre: false - apple,tunable-dp-lpdptx: false - apple,tunable-dp-common-post: false - patternProperties: - "^apple,dp-training-table(-rbr|-hbr|-hbr2|-hbr3)?$": false - - if: - properties: - compatible: - not: - contains: - enum: - - apple,t8132-atcphy - - apple,t8140-atcphy - then: - properties: - reg: - maxItems: 5 - reg-names: - maxItems: 5 - - if: - properties: - compatible: - not: - contains: - const: apple,t8132-atcphy - then: - properties: - apple,tunable-usb3-axi2af: false - apple,tunable-usb3-lioa: false - apple,tunable-usb3-fabric: false - apple,tunable-usb3-config: false - apple,tunable-usb3-common: false - apple,tunable-usb3-efuse: false - apple,tunable-usb3-dp: false - apple,tunable-cio-axi2af: false - apple,tunable-cio-lioa: false - apple,tunable-cio-fabric: false - apple,tunable-cio-config: false - apple,tunable-cio-common: false - apple,tunable-cio-lane0: false - apple,tunable-cio-lane0-eq: false - apple,tunable-cio-lane1: false - apple,tunable-cio-lane1-eq: false - apple,tunable-cio-post: false - - if: - properties: - compatible: - not: - contains: - enum: - - apple,t8122-atcphy - - apple,t6030-atcphy - - apple,t6031-atcphy - then: + items: + - + const: "apple,t6050-atcphy" + - + const: "apple,atcphy" required: - - orientation-switch - - mode-switch - - ports - -$defs: - apple,tunable: - $ref: /schemas/types.yaml#/definitions/uint32-matrix - items: - items: - - description: Register offset - - description: Mask to be applied to the register value - - description: Bits to be set after applying the mask - description: > - List of (register offset, mask, value) tuples copied from Apple's Device - Tree by our bootloader m1n1 and used to configure the PHY. These values - even vary for a single product/device and likely contain calibration - values determined by Apple at manufacturing time. - Unless otherwise noted these tunables are always applied to the core - register region. + - "compatible" properties: - compatible: - oneOf: - - items: - - enum: - - apple,t6000-atcphy - - apple,t6020-atcphy - - apple,t8112-atcphy - - const: apple,t8103-atcphy - - const: apple,t8103-atcphy - - const: apple,t8122-atcphy - - items: - - enum: - - apple,t6030-atcphy - - apple,t6031-atcphy - - const: apple,t8122-atcphy - - const: apple,t8132-atcphy - - const: apple,t8140-atcphy - - const: apple,t8142-atcphy - - reg: - minItems: 1 - maxItems: 7 - - reg-names: - minItems: 1 - maxItems: 7 - - "#phy-cells": - const: 1 - - "#reset-cells": - const: 0 - + compatible: true + reg: true + reg-names: true + "#phy-cells": true + "#reset-cells": true mode-switch: true orientation-switch: true - - power-domains: - maxItems: 1 - + power-domains: true phys: maxItems: 1 description: Phandle to the eUSB2 to USB 2.0 repeater. - phy-names: items: - const: eusb2-repeater - ports: $ref: /schemas/graph.yaml#/properties/ports properties: @@ -291,27 +132,21 @@ properties: port@3: $ref: /schemas/graph.yaml#/properties/port description: Incoming endpoint from the USB4/Thunderbolt controller. - apple,tunable-usb3-axi2af: $ref: "#/$defs/apple,tunable" description: T8132 AXI setup followed by write-disable and lock operations. - apple,tunable-usb3-lioa: $ref: "#/$defs/apple,tunable" description: T8132 LIOA setup, applied after the AXI list. - apple,tunable-usb3-fabric: $ref: "#/$defs/apple,tunable" description: T8132 fabric setup, applied after the LIOA list. - apple,tunable-usb3-config: $ref: "#/$defs/apple,tunable" description: T8132 common-configuration setup, applied after fabric setup. - apple,tunable-usb3-common: $ref: "#/$defs/apple,tunable" description: T8132 core PLL and common setup, before the selected USB lane. - apple,tunable-usb3-dp: $ref: "#/$defs/apple,tunable" description: > @@ -320,85 +155,66 @@ properties: applies to ADTs without AUX_SHM and is optional for USB3-only mode. This list does not initialize the display crossbar or DisplayPort transmitter and does not authorize taking over an active PHY epoch. - apple,tunable-usb3-efuse: $ref: "#/$defs/apple,tunable" description: > T8132 ADT-provided efuse-derived core values, applied after lane routing and before the PHY reset is released. No raw fuse register is read. - apple,tunable-cio-axi2af: $ref: "#/$defs/apple,tunable" description: T8132 CIO AXI setup, write-disable and lock, applied first in CIO mode. - apple,tunable-cio-lioa: $ref: "#/$defs/apple,tunable" description: T8132 CIO LIOA setup, applied after the CIO AXI list. - apple,tunable-cio-fabric: $ref: "#/$defs/apple,tunable" description: T8132 CIO fabric setup, applied after the CIO LIOA list. - apple,tunable-cio-config: $ref: "#/$defs/apple,tunable" description: T8132 CIO common-configuration setup, applied after the CIO fabric list. - apple,tunable-cio-common: $ref: "#/$defs/apple,tunable" description: T8132 CIO PLL, shim and top setup in the core bank, before the lanes. - apple,tunable-cio-lane0: $ref: "#/$defs/apple,tunable" description: T8132 lane 0 CIO defaults in the core bank. - apple,tunable-cio-lane0-eq: $ref: "#/$defs/apple,tunable" description: T8132 lane 0 CIO equalization in the core bank, after its defaults. - apple,tunable-cio-lane1: $ref: "#/$defs/apple,tunable" description: T8132 lane 1 CIO defaults in the core bank. - apple,tunable-cio-lane1-eq: $ref: "#/$defs/apple,tunable" description: T8132 lane 1 CIO equalization in the core bank, after its defaults. - apple,tunable-cio-post: $ref: "#/$defs/apple,tunable" description: T8132 CIO common setup applied after the crossbar, before the PHY reset is released. - apple,tunable-common-a: $ref: "#/$defs/apple,tunable" description: > Common tunables required for all modes, applied before tunable-axi2af. - apple,tunable-axi2af: $ref: "#/$defs/apple,tunable" description: > AXI to Apple Fabric tunables, required for all modes. Unlike all other tunables these are applied to the axi2af region. - apple,tunable-common-b: $ref: "#/$defs/apple,tunable" description: > Common tunables required for all modes, applied after tunable-axi2af. - apple,tunable-lane0-usb: $ref: "#/$defs/apple,tunable" description: USB3 tunables for lane 0. - apple,tunable-lane1-usb: $ref: "#/$defs/apple,tunable" description: USB3 tunables for lane 1. - apple,tunable-lane0-cio: $ref: "#/$defs/apple,tunable" description: USB4/Thunderbolt ("Converged IO") tunables for lane 0. - apple,tunable-lane1-cio: $ref: "#/$defs/apple,tunable" description: USB4/Thunderbolt ("Converged IO") tunables for lane 1. - apple,tunable-lane0-dp: $ref: "#/$defs/apple,tunable" description: > @@ -406,7 +222,6 @@ properties: Note that lane here refers to a USB RX and TX pair re-used for DisplayPort and not to an individual DisplayPort differential lane. - apple,tunable-lane1-dp: $ref: "#/$defs/apple,tunable" description: > @@ -414,53 +229,500 @@ properties: Note that lane here refers to a USB RX and TX pair re-used for DisplayPort and not to an individual DisplayPort differential lane. - apple,tunable-dp-common-pre: $ref: "#/$defs/apple,tunable" maxItems: 5461 description: > T8140 DisplayPort core setup applied before the LPDPTX list. The bootloader supplies device-specific values for the core register region. - apple,tunable-dp-lpdptx: $ref: "#/$defs/apple,tunable" maxItems: 5461 description: > T8140 DisplayPort setup for the lpdptx register region, applied between the common-pre and common-post lists. - apple,tunable-dp-common-post: $ref: "#/$defs/apple,tunable" maxItems: 5461 description: > T8140 DisplayPort core setup applied after the LPDPTX list. All three DisplayPort lists are needed before selecting a DisplayPort PHY mode. - apple,tunable-usb2phy-reg-dflt: $ref: "#/$defs/apple,tunable" description: > Per-device defaults for the secondary eUSB2 PHY register bank of the T8140, copied from Apple's Device Tree by the bootloader. Unlike the other tunables these are applied to the usb2phy-reg region. + interrupts: true + iommus: true + clocks: true + resets: true + status: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-atcphy" + - + const: "apple,atcphy" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-atcphy" + - + const: "apple,atcphy" + status: + const: "disabled" + reg: + minItems: 44 + maxItems: 44 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + power-domains: + minItems: 7 + maxItems: 7 + required: + - "compatible" + - "reg" + - "status" + - "power-domains" + additionalProperties: false + else: + allOf: + - $ref: /schemas/usb/usb-switch.yaml# + - if: + properties: + compatible: + contains: + enum: + - apple,t8122-atcphy + - apple,t6030-atcphy + - apple,t6031-atcphy + then: + properties: + reg: + minItems: 1 + items: + - description: Common controls for USB and DisplayPort + - description: DisplayPort alternate mode PHY + - description: AXI to Apple Fabric interface + - description: USB2 PHY + - description: USB3 PIPE interface + reg-names: + minItems: 1 + items: + - const: core + - const: lpdptx + - const: axi2af + - const: usb2phy + - const: pipehandler + oneOf: + - properties: + reg: + maxItems: 1 + reg-names: + maxItems: 1 + - properties: + reg: + minItems: 5 + reg-names: + minItems: 5 + required: + - power-domains + else: + if: + properties: + compatible: + contains: + const: apple,t8132-atcphy + then: + oneOf: + - properties: + reg: + minItems: 2 + maxItems: 2 + reg-names: + items: + - const: usb2phy + - const: pipehandler + - properties: + reg: + items: + - description: USB2 PHY specific controls + - description: USB3 PIPE interface controls + - description: SuperSpeed PHY core, excluding the display crossbar + - description: AXI to Apple Fabric interface controls + - description: Local IO address translation controls + - description: ATC fabric controls + - description: ATC common configuration controls + reg-names: + items: + - const: usb2phy + - const: pipehandler + - const: core + - const: axi2af + - const: lioa + - const: fabric + - const: common-config + required: + - power-domains + else: + properties: + reg: + minItems: 5 + items: + - description: Common controls for all PHYs (USB2/3/4, DisplayPort, TBT) + - description: DisplayPort Alternate Mode PHY specific controls + - description: Type-C PHY AXI to Apple Fabric interconnect controls + - description: USB2 PHY specific controls + - description: USB3 PIPE interface controls + - description: Secondary eUSB2 PHY register bank (T8140) + reg-names: + minItems: 5 + items: + - const: core + - const: lpdptx + - const: axi2af + - const: usb2phy + - const: pipehandler + - const: usb2phy-reg + required: + - power-domains + - if: + properties: + compatible: + contains: + const: apple,t8140-atcphy + then: + properties: + reg: + minItems: 6 + reg-names: + minItems: 6 + else: + properties: + apple,tunable-usb2phy-reg-dflt: false + apple,tunable-dp-common-pre: false + apple,tunable-dp-lpdptx: false + apple,tunable-dp-common-post: false + patternProperties: + "^apple,dp-training-table(-rbr|-hbr|-hbr2|-hbr3)?$": false + - if: + properties: + compatible: + not: + contains: + enum: + - apple,t8132-atcphy + - apple,t8140-atcphy + then: + properties: + reg: + maxItems: 5 + reg-names: + maxItems: 5 + - if: + properties: + compatible: + not: + contains: + const: apple,t8132-atcphy + then: + properties: + apple,tunable-usb3-axi2af: false + apple,tunable-usb3-lioa: false + apple,tunable-usb3-fabric: false + apple,tunable-usb3-config: false + apple,tunable-usb3-common: false + apple,tunable-usb3-efuse: false + apple,tunable-usb3-dp: false + apple,tunable-cio-axi2af: false + apple,tunable-cio-lioa: false + apple,tunable-cio-fabric: false + apple,tunable-cio-config: false + apple,tunable-cio-common: false + apple,tunable-cio-lane0: false + apple,tunable-cio-lane0-eq: false + apple,tunable-cio-lane1: false + apple,tunable-cio-lane1-eq: false + apple,tunable-cio-post: false + - if: + properties: + compatible: + not: + contains: + enum: + - apple,t8122-atcphy + - apple,t6030-atcphy + - apple,t6031-atcphy + then: + required: + - orientation-switch + - mode-switch + - ports + properties: + compatible: + oneOf: + - items: + - enum: + - apple,t6000-atcphy + - apple,t6020-atcphy + - apple,t8112-atcphy + - const: apple,t8103-atcphy + - const: apple,t8103-atcphy + - const: apple,t8122-atcphy + - items: + - enum: + - apple,t6030-atcphy + - apple,t6031-atcphy + - const: apple,t8122-atcphy + - const: apple,t8132-atcphy + - const: apple,t8140-atcphy + - const: apple,t8142-atcphy + + reg: + minItems: 1 + maxItems: 7 + + reg-names: + minItems: 1 + maxItems: 7 + + "#phy-cells": + const: 1 + + "#reset-cells": + const: 0 + + mode-switch: true + orientation-switch: true -patternProperties: - "^apple,dp-training-table(-rbr|-hbr|-hbr2|-hbr3)?$": - $ref: /schemas/types.yaml#/definitions/uint32-array - minItems: 16 - maxItems: 16 + power-domains: + maxItems: 1 + + phys: + maxItems: 1 + description: Phandle to the eUSB2 to USB 2.0 repeater. + + phy-names: + items: + - const: eusb2-repeater + + ports: + $ref: /schemas/graph.yaml#/properties/ports + properties: + port@0: + $ref: /schemas/graph.yaml#/properties/port + description: Outgoing connection to the SS port of the Type-C connector. + + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: Incoming endpoint from the USB3 controller. + + port@2: + $ref: /schemas/graph.yaml#/properties/port + description: Incoming endpoint from the DisplayPort controller. + + port@3: + $ref: /schemas/graph.yaml#/properties/port + description: Incoming endpoint from the USB4/Thunderbolt controller. + + apple,tunable-usb3-axi2af: + $ref: "#/$defs/apple,tunable" + description: T8132 AXI setup followed by write-disable and lock operations. + + apple,tunable-usb3-lioa: + $ref: "#/$defs/apple,tunable" + description: T8132 LIOA setup, applied after the AXI list. + + apple,tunable-usb3-fabric: + $ref: "#/$defs/apple,tunable" + description: T8132 fabric setup, applied after the LIOA list. + + apple,tunable-usb3-config: + $ref: "#/$defs/apple,tunable" + description: T8132 common-configuration setup, applied after fabric setup. + + apple,tunable-usb3-common: + $ref: "#/$defs/apple,tunable" + description: T8132 core PLL and common setup, before the selected USB lane. + + apple,tunable-usb3-dp: + $ref: "#/$defs/apple,tunable" + description: > + T8132 AUX_TOP calibration within the core bank, applied after the + common list has supplied AUSCMN_DIG and AUSPLL_CORE. This handoff + applies to ADTs without AUX_SHM and is optional for USB3-only mode. + This list does not initialize the display crossbar or DisplayPort + transmitter and does not authorize taking over an active PHY epoch. + + apple,tunable-usb3-efuse: + $ref: "#/$defs/apple,tunable" + description: > + T8132 ADT-provided efuse-derived core values, applied after lane routing + and before the PHY reset is released. No raw fuse register is read. + + apple,tunable-cio-axi2af: + $ref: "#/$defs/apple,tunable" + description: T8132 CIO AXI setup, write-disable and lock, applied first in CIO mode. + + apple,tunable-cio-lioa: + $ref: "#/$defs/apple,tunable" + description: T8132 CIO LIOA setup, applied after the CIO AXI list. + + apple,tunable-cio-fabric: + $ref: "#/$defs/apple,tunable" + description: T8132 CIO fabric setup, applied after the CIO LIOA list. + + apple,tunable-cio-config: + $ref: "#/$defs/apple,tunable" + description: T8132 CIO common-configuration setup, applied after the CIO fabric list. + + apple,tunable-cio-common: + $ref: "#/$defs/apple,tunable" + description: T8132 CIO PLL, shim and top setup in the core bank, before the lanes. + + apple,tunable-cio-lane0: + $ref: "#/$defs/apple,tunable" + description: T8132 lane 0 CIO defaults in the core bank. + + apple,tunable-cio-lane0-eq: + $ref: "#/$defs/apple,tunable" + description: T8132 lane 0 CIO equalization in the core bank, after its defaults. + + apple,tunable-cio-lane1: + $ref: "#/$defs/apple,tunable" + description: T8132 lane 1 CIO defaults in the core bank. + + apple,tunable-cio-lane1-eq: + $ref: "#/$defs/apple,tunable" + description: T8132 lane 1 CIO equalization in the core bank, after its defaults. + + apple,tunable-cio-post: + $ref: "#/$defs/apple,tunable" + description: T8132 CIO common setup applied after the crossbar, before the PHY reset is released. + + apple,tunable-common-a: + $ref: "#/$defs/apple,tunable" + description: > + Common tunables required for all modes, applied before tunable-axi2af. + + apple,tunable-axi2af: + $ref: "#/$defs/apple,tunable" + description: > + AXI to Apple Fabric tunables, required for all modes. Unlike all other + tunables these are applied to the axi2af region. + + apple,tunable-common-b: + $ref: "#/$defs/apple,tunable" + description: > + Common tunables required for all modes, applied after tunable-axi2af. + + apple,tunable-lane0-usb: + $ref: "#/$defs/apple,tunable" + description: USB3 tunables for lane 0. + + apple,tunable-lane1-usb: + $ref: "#/$defs/apple,tunable" + description: USB3 tunables for lane 1. + + apple,tunable-lane0-cio: + $ref: "#/$defs/apple,tunable" + description: USB4/Thunderbolt ("Converged IO") tunables for lane 0. + + apple,tunable-lane1-cio: + $ref: "#/$defs/apple,tunable" + description: USB4/Thunderbolt ("Converged IO") tunables for lane 1. + + apple,tunable-lane0-dp: + $ref: "#/$defs/apple,tunable" + description: > + DisplayPort tunables for lane 0. + + Note that lane here refers to a USB RX and TX pair re-used for DisplayPort + and not to an individual DisplayPort differential lane. + + apple,tunable-lane1-dp: + $ref: "#/$defs/apple,tunable" + description: > + DisplayPort tunables for lane 1. + + Note that lane here refers to a USB RX and TX pair re-used for DisplayPort + and not to an individual DisplayPort differential lane. + + apple,tunable-dp-common-pre: + $ref: "#/$defs/apple,tunable" + maxItems: 5461 + description: > + T8140 DisplayPort core setup applied before the LPDPTX list. The + bootloader supplies device-specific values for the core register region. + + apple,tunable-dp-lpdptx: + $ref: "#/$defs/apple,tunable" + maxItems: 5461 + description: > + T8140 DisplayPort setup for the lpdptx register region, applied between + the common-pre and common-post lists. + + apple,tunable-dp-common-post: + $ref: "#/$defs/apple,tunable" + maxItems: 5461 + description: > + T8140 DisplayPort core setup applied after the LPDPTX list. All three + DisplayPort lists are needed before selecting a DisplayPort PHY mode. + + apple,tunable-usb2phy-reg-dflt: + $ref: "#/$defs/apple,tunable" + description: > + Per-device defaults for the secondary eUSB2 PHY register bank of the + T8140, copied from Apple's Device Tree by the bootloader. Unlike the + other tunables these are applied to the usb2phy-reg region. + patternProperties: + "^apple,dp-training-table(-rbr|-hbr|-hbr2|-hbr3)?$": + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 16 + maxItems: 16 + description: > + Firmware-provided T8140 drive presets indexed by voltage swing times + four plus pre-emphasis. The unsuffixed table is the required fallback; + a link-rate suffix selects an optional rate-specific override. + required: + - compatible + - reg + - reg-names + - "#phy-cells" + - "#reset-cells" + additionalProperties: false + +$defs: + apple,tunable: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + items: + items: + - description: Register offset + - description: Mask to be applied to the register value + - description: Bits to be set after applying the mask description: > - Firmware-provided T8140 drive presets indexed by voltage swing times - four plus pre-emphasis. The unsuffixed table is the required fallback; - a link-rate suffix selects an optional rate-specific override. - -required: - - compatible - - reg - - reg-names - - "#phy-cells" - - "#reset-cells" - -additionalProperties: false + List of (register offset, mask, value) tuples copied from Apple's Device + Tree by our bootloader m1n1 and used to configure the PHY. These values + even vary for a single product/device and likely contain calibration + values determined by Apple at manufacturing time. + Unless otherwise noted these tunables are always applied to the core + register region. examples: - | diff --git a/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml b/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml index bfbdcae204038..10b1620399192 100644 --- a/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml +++ b/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/phy/apple,dptx-phy.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple DisplayPort transmitter PHY @@ -17,35 +18,98 @@ description: | data are supplied by the boot firmware rather than this binding. select: - properties: - compatible: - contains: - enum: - - apple,t8122-dptx-phy - required: - - compatible + anyOf: + - + properties: + compatible: + contains: + enum: + - apple,t8122-dptx-phy + required: + - compatible + - + properties: + compatible: + items: + - + const: "apple,t6050-dptx-phy" + - + const: "apple,dptx-phy" + required: + - "compatible" properties: - compatible: - items: - - enum: - - apple,t8122-dptx-phy - - const: apple,dptx-phy - - reg: - minItems: 2 - maxItems: 2 + compatible: true + reg: true + power-domains: true + "#phy-cells": true + interrupts: true + iommus: true + clocks: true + resets: true + status: true - power-domains: - maxItems: 1 +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-dptx-phy" + - + const: "apple,dptx-phy" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-dptx-phy" + - + const: "apple,dptx-phy" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + power-domains: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "power-domains" + additionalProperties: false + else: + properties: + compatible: + items: + - enum: + - apple,t8122-dptx-phy + - const: apple,dptx-phy - '#phy-cells': - const: 0 + reg: + minItems: 2 + maxItems: 2 -required: - - compatible - - reg - - power-domains - - '#phy-cells' + power-domains: + maxItems: 1 -additionalProperties: false + '#phy-cells': + const: 0 + required: + - compatible + - reg + - power-domains + - '#phy-cells' + additionalProperties: false diff --git a/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml index 1c74f8ccc37a2..f6b3594cba830 100644 --- a/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml +++ b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/pinctrl/apple,pinctrl.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple GPIO controller @@ -14,103 +15,205 @@ description: | controller present on Apple ARM SoC platforms, including various iPhone and iPad devices and the "Apple Silicon" Macs. -properties: - compatible: - oneOf: - - items: - - enum: - - apple,t6020-pinctrl - - apple,t6030-pinctrl - - apple,t6031-pinctrl - - apple,t6041-pinctrl - - apple,t8122-pinctrl - - apple,t8132-pinctrl - - apple,t8140-pinctrl - - apple,t8152-pinctrl - - const: apple,t8103-pinctrl - - items: - # Do not add additional SoC to this list. - - enum: - - apple,s5l8960x-pinctrl - - apple,t7000-pinctrl - - apple,s8000-pinctrl - - apple,t8010-pinctrl - - apple,t8015-pinctrl - - apple,t8103-pinctrl - - apple,t8112-pinctrl - - apple,t6000-pinctrl - - const: apple,pinctrl - - reg: - maxItems: 1 - - clocks: - maxItems: 1 +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,irq-group-base" + - "apple,npins" + - "apple,pinctrl" + - "apple,s5l8960x-pinctrl" + - "apple,s8000-pinctrl" + - "apple,t6000-pinctrl" + - "apple,t6020-pinctrl" + - "apple,t6030-pinctrl" + - "apple,t6031-pinctrl" + - "apple,t6041-pinctrl" + - "apple,t7000-pinctrl" + - "apple,t8010-pinctrl" + - "apple,t8015-pinctrl" + - "apple,t8103-pinctrl" + - "apple,t8112-pinctrl" + - "apple,t8122-pinctrl" + - "apple,t8132-pinctrl" + - "apple,t8140-pinctrl" + - "apple,t8152-pinctrl" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-pinctrl" + - + const: "apple,t8103-pinctrl" + required: + - "compatible" +properties: + compatible: true + reg: true + clocks: true gpio-controller: true - - '#gpio-cells': - const: 2 - + "#gpio-cells": true gpio-ranges: maxItems: 1 - apple,irq-group-base: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 6 default: 0 description: First hardware interrupt group owned by the host. - apple,npins: $ref: /schemas/types.yaml#/definitions/uint32 description: The number of pins in this GPIO controller. - gpio-reserved-ranges: true - - interrupts: - description: One interrupt for each of the (up to 7) interrupt - groups supported by the controller sorted by interrupt group - number in ascending order. - minItems: 1 - maxItems: 7 - + interrupts: true interrupt-controller: true - - '#interrupt-cells': - const: 2 - - power-domains: - maxItems: 1 - -patternProperties: - '-pins$': - type: object - $ref: pinmux-node.yaml# - - properties: - pinmux: - description: - Values are constructed from pin number and alternate function - configuration number using the APPLE_PINMUX() helper macro - defined in include/dt-bindings/pinctrl/apple.h. - - required: - - pinmux - - additionalProperties: false + "#interrupt-cells": true + power-domains: true + iommus: true + resets: true + status: true allOf: - - $ref: pinctrl.yaml# - -required: - - compatible - - reg - - gpio-controller - - '#gpio-cells' - - gpio-ranges - - apple,npins - -additionalProperties: false + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-pinctrl" + - + const: "apple,t8103-pinctrl" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-pinctrl" + - + const: "apple,t8103-pinctrl" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 7 + maxItems: 7 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + additionalProperties: false + else: + properties: + compatible: + oneOf: + - items: + - enum: + - apple,t6020-pinctrl + - apple,t6030-pinctrl + - apple,t6031-pinctrl + - apple,t6041-pinctrl + - apple,t8122-pinctrl + - apple,t8132-pinctrl + - apple,t8140-pinctrl + - apple,t8152-pinctrl + - const: apple,t8103-pinctrl + - items: + # Do not add additional SoC to this list. + - enum: + - apple,s5l8960x-pinctrl + - apple,t7000-pinctrl + - apple,s8000-pinctrl + - apple,t8010-pinctrl + - apple,t8015-pinctrl + - apple,t8103-pinctrl + - apple,t8112-pinctrl + - apple,t6000-pinctrl + - const: apple,pinctrl + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + gpio-controller: true + + '#gpio-cells': + const: 2 + + gpio-ranges: + maxItems: 1 + + apple,irq-group-base: + $ref: /schemas/types.yaml#/definitions/uint32 + maximum: 6 + default: 0 + description: First hardware interrupt group owned by the host. + + apple,npins: + $ref: /schemas/types.yaml#/definitions/uint32 + description: The number of pins in this GPIO controller. + + gpio-reserved-ranges: true + + interrupts: + description: One interrupt for each of the (up to 7) interrupt + groups supported by the controller sorted by interrupt group + number in ascending order. + minItems: 1 + maxItems: 7 + + interrupt-controller: true + + '#interrupt-cells': + const: 2 + + power-domains: + maxItems: 1 + patternProperties: + '-pins$': + type: object + $ref: pinmux-node.yaml# + + properties: + pinmux: + description: + Values are constructed from pin number and alternate function + configuration number using the APPLE_PINMUX() helper macro + defined in include/dt-bindings/pinctrl/apple.h. + + required: + - pinmux + + additionalProperties: false + allOf: + - $ref: pinctrl.yaml# + required: + - compatible + - reg + - gpio-controller + - '#gpio-cells' + - gpio-ranges + - apple,npins + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml b/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml index 1c3bd5a5b5d2c..d9cf0b9129926 100644 --- a/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml +++ b/Documentation/devicetree/bindings/power/apple,pmgr-pwrstate.yaml @@ -65,6 +65,7 @@ properties: - apple,t6030-pmgr-pwrstate - apple,t6031-pmgr-pwrstate - apple,t6041-pmgr-pwrstate + - apple,t6050-pmgr-pwrstate - apple,t8122-pmgr-pwrstate - apple,t8132-pmgr-pwrstate - apple,t8140-pmgr-pwrstate diff --git a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml index ca0e014b73b94..4b7018c7aa114 100644 --- a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml +++ b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/pwm/apple,s5l-fpwm.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple FPWM controller @@ -12,41 +13,129 @@ maintainers: description: PWM controller used for keyboard backlight on ARM Macs +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,s5l-fpwm" + - "apple,t6000-fpwm" + - "apple,t6020-fpwm" + - "apple,t6030-fpwm" + - "apple,t6031-fpwm" + - "apple,t6041-fpwm" + - "apple,t8103-fpwm" + - "apple,t8112-fpwm" + - "apple,t8122-fpwm" + - "apple,t8132-fpwm" + - "apple,t8140-fpwm" + - "apple,t8142-fpwm" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-fpwm" + - + const: "apple,s5l-fpwm" + required: + - "compatible" + properties: - compatible: - items: - - enum: - - apple,t8103-fpwm - - apple,t8112-fpwm - - apple,t8122-fpwm - - apple,t8142-fpwm - - apple,t8132-fpwm - - apple,t8140-fpwm - - apple,t6000-fpwm - - apple,t6020-fpwm - - apple,t6030-fpwm - - apple,t6031-fpwm - - apple,t6041-fpwm - - const: apple,s5l-fpwm - - reg: - maxItems: 1 - - clocks: - maxItems: 1 - - power-domains: - maxItems: 1 - - "#pwm-cells": - const: 2 - -required: - - compatible - - reg - - clocks - -additionalProperties: false + compatible: true + reg: true + clocks: true + power-domains: true + "#pwm-cells": true + interrupts: true + iommus: true + resets: true + status: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-fpwm" + - + const: "apple,s5l-fpwm" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-fpwm" + - + const: "apple,s5l-fpwm" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + power-domains: + maxItems: 1 + "#pwm-cells": + const: 2 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + - "#pwm-cells" + additionalProperties: false + else: + properties: + compatible: + items: + - enum: + - apple,t8103-fpwm + - apple,t8112-fpwm + - apple,t8122-fpwm + - apple,t8142-fpwm + - apple,t8132-fpwm + - apple,t8140-fpwm + - apple,t6000-fpwm + - apple,t6020-fpwm + - apple,t6030-fpwm + - apple,t6031-fpwm + - apple,t6041-fpwm + - const: apple,s5l-fpwm + + reg: + maxItems: 1 + + clocks: + maxItems: 1 + + power-domains: + maxItems: 1 + + "#pwm-cells": + const: 2 + required: + - compatible + - reg + - clocks + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml b/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml index dcf49761f719a..5316c4c2eb2c8 100644 --- a/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml +++ b/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/serial/apple,dockchannel-uart.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple DockChannel UART @@ -14,36 +15,38 @@ description: | channel uses separate data and FIFO-configuration windows and shares an interrupt-controller window with the other DockChannel functions. -allOf: - - $ref: serial.yaml# +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,channel" + - "apple,dockchannel-uart" + - "apple,sw-drain" + - "apple,t6020-dockchannel-uart" + - "apple,t6021-dockchannel-uart" + - "apple,t6022-dockchannel-uart" + - "apple,t8112-dockchannel-uart" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-dockchannel-uart" + - + const: "apple,dockchannel-uart" + required: + - "compatible" properties: - compatible: - oneOf: - - const: apple,dockchannel-uart - - items: - - enum: - - apple,t8112-dockchannel-uart - - apple,t6020-dockchannel-uart - - apple,t6021-dockchannel-uart - - apple,t6022-dockchannel-uart - - const: apple,dockchannel-uart - - reg: - items: - - description: Channel data registers - - description: Channel FIFO configuration registers - - description: DockChannel interrupt registers - - reg-names: - items: - - const: data - - const: config - - const: irq - - interrupts: - maxItems: 1 - + compatible: true + reg: true + reg-names: true + interrupts: true apple,channel: $ref: /schemas/types.yaml#/definitions/uint32 minimum: 0 @@ -53,7 +56,6 @@ properties: Index of this channel within its DockChannel block. Channel n owns bits 2n (TX) and 2n + 1 (RX) of the shared interrupt mask and flag registers. - apple,sw-drain: type: boolean description: @@ -61,21 +63,112 @@ properties: FIFO is drained in software instead. This mirrors the enable-sw-drain property of the channel's Apple device tree node. The interrupt, if described, is not used. + iommus: true + power-domains: true + clocks: true + resets: true + status: true -required: - - compatible - - reg - - reg-names - -if: - not: - required: - - apple,sw-drain -then: - required: - - interrupts - -unevaluatedProperties: false +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-dockchannel-uart" + - + const: "apple,dockchannel-uart" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-dockchannel-uart" + - + const: "apple,dockchannel-uart" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + additionalProperties: false + else: + allOf: + - $ref: serial.yaml# + properties: + compatible: + oneOf: + - const: apple,dockchannel-uart + - items: + - enum: + - apple,t8112-dockchannel-uart + - apple,t6020-dockchannel-uart + - apple,t6021-dockchannel-uart + - apple,t6022-dockchannel-uart + - const: apple,dockchannel-uart + + reg: + items: + - description: Channel data registers + - description: Channel FIFO configuration registers + - description: DockChannel interrupt registers + + reg-names: + items: + - const: data + - const: config + - const: irq + + interrupts: + maxItems: 1 + + apple,channel: + $ref: /schemas/types.yaml#/definitions/uint32 + minimum: 0 + maximum: 15 + default: 0 + description: + Index of this channel within its DockChannel block. Channel n owns + bits 2n (TX) and 2n + 1 (RX) of the shared interrupt mask and flag + registers. + + apple,sw-drain: + type: boolean + description: + The channel does not raise an interrupt when data arrives, and its RX + FIFO is drained in software instead. This mirrors the enable-sw-drain + property of the channel's Apple device tree node. The interrupt, if + described, is not used. + required: + - compatible + - reg + - reg-names + if: + not: + required: + - apple,sw-drain + then: + required: + - interrupts + unevaluatedProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/serial/apple,uart.yaml b/Documentation/devicetree/bindings/serial/apple,uart.yaml new file mode 100644 index 0000000000000..bb5148182bfcb --- /dev/null +++ b/Documentation/devicetree/bindings/serial/apple,uart.yaml @@ -0,0 +1,35 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/serial/apple,uart.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" +title: "Apple uart hardware resources" +maintainers: + - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" +description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." +properties: + compatible: + items: + - + const: "apple,t6050-uart" + - + const: "apple,uart" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + power-domains: + maxItems: 1 + clocks: + maxItems: 2 +required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + - "clocks" +additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml b/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml index db9095e79917c..93f7807a0a65b 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/apple/apple,aon-ptd.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple always-on power telemetry interrupt router @@ -14,69 +15,94 @@ description: | firmware owns the telemetry data and interrupt routing at boot. select: - properties: - compatible: - contains: - enum: - - apple,t6031-aon-ptd - - apple,t6032-aon-ptd - - apple,t6041-aon-ptd - - apple,t8132-aon-ptd - - apple,t8140-aon-ptd - - apple,t8142-aon-ptd - - apple,t8152-aon-ptd - required: - - compatible - -properties: - compatible: true - -allOf: - - if: + anyOf: + - properties: compatible: contains: enum: + - apple,t6031-aon-ptd + - apple,t6032-aon-ptd + - apple,t6041-aon-ptd - apple,t8132-aon-ptd + - apple,t8140-aon-ptd + - apple,t8142-aon-ptd + - apple,t8152-aon-ptd required: - compatible - then: + - properties: compatible: items: - - enum: - - apple,t8132-aon-ptd - - const: apple,aon-ptd - - reg: - minItems: 4 - maxItems: 4 - - interrupts: - minItems: 32 - maxItems: 32 + - + const: "apple,t6050-aon-ptd" + - + const: "apple,aon-ptd" + required: + - "compatible" - '#address-cells': - const: 0 - '#interrupt-cells': - const: 1 - interrupt-controller: true +properties: + compatible: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true - required: - - compatible - - reg - - interrupts - - interrupt-controller - - '#interrupt-cells' - - '#address-cells' +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-aon-ptd" + - + const: "apple,aon-ptd" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-aon-ptd" + - + const: "apple,aon-ptd" + status: + const: "disabled" + reg: + minItems: 4 + maxItems: 4 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 32 + maxItems: 32 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + additionalProperties: false else: + properties: + compatible: true allOf: - if: properties: compatible: contains: enum: - - apple,t6032-aon-ptd + - apple,t8132-aon-ptd required: - compatible then: @@ -84,7 +110,7 @@ allOf: compatible: items: - enum: - - apple,t6032-aon-ptd + - apple,t8132-aon-ptd - const: apple,aon-ptd reg: @@ -109,42 +135,80 @@ allOf: - '#interrupt-cells' - '#address-cells' else: - properties: - compatible: - items: - - enum: - - apple,t6031-aon-ptd - - apple,t6041-aon-ptd - - apple,t8140-aon-ptd - - apple,t8142-aon-ptd - - apple,t8152-aon-ptd - - const: apple,aon-ptd - - reg: - minItems: 4 - maxItems: 4 - description: Register apertures in hardware-description order. - - interrupts: - minItems: 32 - maxItems: 32 - - interrupt-controller: true - - '#interrupt-cells': - description: Firmware telemetry source identifier, plus flags on T8140. - enum: [1, 2] - - '#address-cells': - const: 0 - - required: - - compatible - - reg - - interrupts - - interrupt-controller - - '#interrupt-cells' - - additionalProperties: false - -unevaluatedProperties: false + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t6032-aon-ptd + required: + - compatible + then: + properties: + compatible: + items: + - enum: + - apple,t6032-aon-ptd + - const: apple,aon-ptd + + reg: + minItems: 4 + maxItems: 4 + + interrupts: + minItems: 32 + maxItems: 32 + + '#address-cells': + const: 0 + '#interrupt-cells': + const: 1 + interrupt-controller: true + + required: + - compatible + - reg + - interrupts + - interrupt-controller + - '#interrupt-cells' + - '#address-cells' + else: + properties: + compatible: + items: + - enum: + - apple,t6031-aon-ptd + - apple,t6041-aon-ptd + - apple,t8140-aon-ptd + - apple,t8142-aon-ptd + - apple,t8152-aon-ptd + - const: apple,aon-ptd + + reg: + minItems: 4 + maxItems: 4 + description: Register apertures in hardware-description order. + + interrupts: + minItems: 32 + maxItems: 32 + + interrupt-controller: true + + '#interrupt-cells': + description: Firmware telemetry source identifier, plus flags on T8140. + enum: [1, 2] + + '#address-cells': + const: 0 + + required: + - compatible + - reg + - interrupts + - interrupt-controller + - '#interrupt-cells' + + additionalProperties: false + unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml b/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml index 54e5b2d87d875..427f44d94640c 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/apple/apple,aop2.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple secondary always-on processor @@ -13,33 +14,112 @@ description: | Secondary always-on processor register banks and transport interrupts. The processor uses a distinct stream in the primary AOP DART. +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,aop2" + - "apple,t8140-aop2" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-aop2" + - + const: "apple,aop2" + required: + - "compatible" + properties: - compatible: - oneOf: - - items: - - const: apple,t8140-aop2 - - const: apple,aop2 - - reg: - minItems: 3 - maxItems: 3 - description: Register apertures in hardware-description order. - - interrupts: - minItems: 4 - maxItems: 4 - - power-domains: - maxItems: 1 - - iommus: - maxItems: 1 - -required: - - compatible - - reg - - interrupts - - power-domains - - iommus - -additionalProperties: false + compatible: true + reg: true + interrupts: true + power-domains: true + iommus: true + clocks: true + resets: true + status: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-aop2" + - + const: "apple,aop2" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-aop2" + - + const: "apple,aop2" + status: + const: "disabled" + reg: + minItems: 3 + maxItems: 3 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 + iommus: + maxItems: 1 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "clocks" + additionalProperties: false + else: + properties: + compatible: + oneOf: + - items: + - const: apple,t8140-aop2 + - const: apple,aop2 + + reg: + minItems: 3 + maxItems: 3 + description: Register apertures in hardware-description order. + + interrupts: + minItems: 4 + maxItems: 4 + + power-domains: + maxItems: 1 + + iommus: + maxItems: 1 + required: + - compatible + - reg + - interrupts + - power-domains + - iommus + additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml b/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml index 9ee4a45c910d9..f1f475ac2e1eb 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/apple/apple,dockchannel.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple DockChannel FIFO bus @@ -18,73 +19,162 @@ description: windows for its children and is their interrupt controller. Each child describes one function carried over a channel pair. -properties: - compatible: - 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 - - reg-names: - const: irq - - interrupts: - maxItems: 1 +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,dockchannel" + - "apple,dockchannel-hid.yaml" + - "apple,t6000-dockchannel" + - "apple,t6020-dockchannel" + - "apple,t6030-dockchannel" + - "apple,t6031-dockchannel" + - "apple,t6041-dockchannel" + - "apple,t8103-dockchannel" + - "apple,t8112-dockchannel" + - "apple,t8122-dockchannel" + - "apple,t8132-dockchannel" + - "apple,t8140-dockchannel" + - "apple,t8142-dockchannel" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-dockchannel" + - + const: "apple,dockchannel" + required: + - "compatible" +properties: + compatible: true + reg: true + reg-names: true + interrupts: true ranges: true - nonposted-mmio: true - - '#address-cells': - const: 1 - - '#size-cells': - const: 1 - + "#address-cells": true + "#size-cells": true interrupt-controller: true - - '#interrupt-cells': - const: 2 - description: - The first cell is the FIFO interrupt number within the block and the - second cell the trigger type. - -patternProperties: - '^input@[0-9a-f]+$': - type: object - $ref: /schemas/input/apple,dockchannel-hid.yaml# - description: A DockChannel HID transport. - -required: - - compatible - - reg - - reg-names - - interrupts - - ranges - - '#address-cells' - - '#size-cells' - - interrupt-controller - - '#interrupt-cells' - -additionalProperties: false + "#interrupt-cells": true + iommus: true + power-domains: true + clocks: true + resets: true + status: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-dockchannel" + - + const: "apple,dockchannel" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-dockchannel" + - + const: "apple,dockchannel" + status: + const: "disabled" + reg: + minItems: 6 + maxItems: 6 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + additionalProperties: false + else: + properties: + compatible: + 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 + + reg-names: + const: irq + + interrupts: + maxItems: 1 + + ranges: true + + nonposted-mmio: true + + '#address-cells': + const: 1 + + '#size-cells': + const: 1 + + interrupt-controller: true + + '#interrupt-cells': + const: 2 + description: + The first cell is the FIFO interrupt number within the block and the + second cell the trigger type. + patternProperties: + '^input@[0-9a-f]+$': + type: object + $ref: /schemas/input/apple,dockchannel-hid.yaml# + description: A DockChannel HID transport. + required: + - compatible + - reg + - reg-names + - interrupts + - ranges + - '#address-cells' + - '#size-cells' + - interrupt-controller + - '#interrupt-cells' + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/soc/apple/apple,gpu-coproc.yaml b/Documentation/devicetree/bindings/soc/apple/apple,gpu-coproc.yaml new file mode 100644 index 0000000000000..bd515330465e1 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/apple/apple,gpu-coproc.yaml @@ -0,0 +1,37 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/soc/apple/apple,gpu-coproc.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" +title: "Apple gpu coproc hardware resources" +maintainers: + - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" +description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." +properties: + compatible: + items: + - + const: "apple,t6050-gpu-coproc" + - + const: "apple,gpu-coproc" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 + power-domains: + maxItems: 1 + clocks: + maxItems: 1 +required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + - "clocks" +additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,msg.yaml b/Documentation/devicetree/bindings/soc/apple/apple,msg.yaml new file mode 100644 index 0000000000000..7421a30a2bbde --- /dev/null +++ b/Documentation/devicetree/bindings/soc/apple/apple,msg.yaml @@ -0,0 +1,34 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/soc/apple/apple,msg.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" +title: "Apple msg hardware resources" +maintainers: + - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" +description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." +properties: + compatible: + items: + - + const: "apple,t6050-msg" + - + const: "apple,msg" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 41 + maxItems: 41 + power-domains: + maxItems: 1 +required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" +additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,phy-coproc.yaml b/Documentation/devicetree/bindings/soc/apple/apple,phy-coproc.yaml new file mode 100644 index 0000000000000..1229422174764 --- /dev/null +++ b/Documentation/devicetree/bindings/soc/apple/apple,phy-coproc.yaml @@ -0,0 +1,31 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: "http://devicetree.org/schemas/soc/apple/apple,phy-coproc.yaml#" +$schema: "http://devicetree.org/meta-schemas/core.yaml#" +title: "Apple phy coproc hardware resources" +maintainers: + - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" +description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." +properties: + compatible: + items: + - + const: "apple,t6050-phy-coproc" + - + const: "apple,phy-coproc" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 +required: + - "compatible" + - "reg" + - "status" + - "interrupts" +additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml b/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml index 6b7874ffa1f46..2b953ccb9ca8f 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/apple/apple,pmp.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple power management co-processor @@ -15,133 +16,271 @@ description: | bootloader must initialize the PMP DART address protection filter before Linux starts the firmware. Firmware-owned PMC power state must be retained. -properties: - compatible: - oneOf: - - items: - - const: apple,t6020-pmp-v2 - - const: apple,t6000-pmp-v2 - - const: apple,t6000-pmp-v2 - - items: - - enum: - - apple,t6030-pmp-v2 - - apple,t6031-pmp-v2 - - apple,t6041-pmp-v2 - - apple,t8122-pmp-v2 - - apple,t8132-pmp-v2 - - apple,t8140-pmp-v2 - - const: apple,t6000-pmp-v2 - - items: - - const: apple,t8103-pmp - - const: apple,pmp - - reg: - 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: - - const: pmp - - const: asc +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,board-id" + - "apple,dram-capacity" + - "apple,dram-channel-disable" + - "apple,dram-vendor-id" + - "apple,pio-ranges" + - "apple,pmc" + - "apple,pmc-msg-disabled" + - "apple,pmc-pmgr" + - "apple,pmp" + - "apple,pmp-report" + - "apple,soc-chip-variant" + - "apple,t6000-pmp-v2" + - "apple,t6020-pmp-v2" + - "apple,t6030-pmp-v2" + - "apple,t6031-pmp-v2" + - "apple,t6041-pmp-v2" + - "apple,t8103-pmp" + - "apple,t8122-pmp-v2" + - "apple,t8132-pmp-v2" + - "apple,t8140-pmp-v2" + - "apple,tunable-" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-pmp" + - + const: "apple,pmp" + required: + - "compatible" +properties: + compatible: true + reg: true + reg-names: true mboxes: maxItems: 1 - mbox-names: const: mbox - - iommus: - maxItems: 1 - - power-domains: - minItems: 1 - maxItems: 2 - + iommus: true + power-domains: true apple,pmp-report: $ref: /schemas/types.yaml#/definitions/phandle description: Report provider whose running state qualifies device-power requests. - apple,board-id: $ref: /schemas/types.yaml#/definitions/uint32 description: Board identifier copied by the bootloader. - apple,dram-vendor-id: $ref: /schemas/types.yaml#/definitions/uint32 description: DRAM vendor identifier copied by the bootloader. - apple,dram-capacity: $ref: /schemas/types.yaml#/definitions/uint32 description: Firmware DRAM capacity value copied by the bootloader. - apple,dram-channel-disable: $ref: /schemas/types.yaml#/definitions/uint32 description: Disabled DRAM channel mask (boot argument DCHD), copied by the bootloader. - apple,pmc: $ref: /schemas/types.yaml#/definitions/uint32 description: Boot argument PMC_, the PMGR's pmc value in the Apple device tree. - apple,pmc-pmgr: $ref: /schemas/types.yaml#/definitions/uint32 description: PMGR PMC configuration word from the Apple device tree. Bits 0 and 3 are passed as the boot arguments PMCV and PMCB. - apple,pmc-msg-disabled: $ref: /schemas/types.yaml#/definitions/uint32 description: Boot argument PMCX, from the Apple device tree. - apple,soc-chip-variant: $ref: /schemas/types.yaml#/definitions/uint32 description: SoC chip variant (boot argument CVAR), copied by the bootloader. - apple,pio-ranges: $ref: /schemas/types.yaml#/definitions/uint64-array minItems: 2 description: Host physical address and size pairs mapped into firmware PIO space. - -patternProperties: - '^apple,tunable-': - $ref: /schemas/types.yaml#/definitions/uint8-array - description: Opaque firmware calibration copied from the Apple device tree. - -required: - - compatible - - reg - - iommus - - mboxes - - mbox-names + interrupts: true + clocks: true + resets: true + status: true allOf: - if: - properties: - compatible: - contains: - const: apple,t8103-pmp + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-pmp" + - + const: "apple,pmp" + status: + const: "disabled" + required: + - "compatible" + - "status" then: - properties: - reg: - minItems: 37 - power-domains: - minItems: 2 - required: - - power-domains + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-pmp" + - + const: "apple,pmp" + status: + const: "disabled" + reg: + minItems: 4 + maxItems: 4 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 + iommus: + maxItems: 1 + power-domains: + minItems: 2 + maxItems: 2 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "power-domains" + - "clocks" + additionalProperties: false else: properties: + compatible: + oneOf: + - items: + - const: apple,t6020-pmp-v2 + - const: apple,t6000-pmp-v2 + - const: apple,t6000-pmp-v2 + - items: + - enum: + - apple,t6030-pmp-v2 + - apple,t6031-pmp-v2 + - apple,t6041-pmp-v2 + - apple,t8122-pmp-v2 + - apple,t8132-pmp-v2 + - apple,t8140-pmp-v2 + - const: apple,t6000-pmp-v2 + - items: + - const: apple,t8103-pmp + - const: apple,pmp + reg: - maxItems: 2 - power-domains: + 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: + - const: pmp + - const: asc + + mboxes: + maxItems: 1 + + mbox-names: + const: mbox + + iommus: maxItems: 1 + + power-domains: + minItems: 1 + maxItems: 2 + + apple,pmp-report: + $ref: /schemas/types.yaml#/definitions/phandle + description: Report provider whose running state qualifies device-power requests. + + apple,board-id: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Board identifier copied by the bootloader. + + apple,dram-vendor-id: + $ref: /schemas/types.yaml#/definitions/uint32 + description: DRAM vendor identifier copied by the bootloader. + + apple,dram-capacity: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Firmware DRAM capacity value copied by the bootloader. + + apple,dram-channel-disable: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Disabled DRAM channel mask (boot argument DCHD), copied by the bootloader. + + apple,pmc: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot argument PMC_, the PMGR's pmc value in the Apple device tree. + + apple,pmc-pmgr: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + PMGR PMC configuration word from the Apple device tree. Bits 0 and 3 + are passed as the boot arguments PMCV and PMCB. + + apple,pmc-msg-disabled: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot argument PMCX, from the Apple device tree. + + apple,soc-chip-variant: + $ref: /schemas/types.yaml#/definitions/uint32 + description: SoC chip variant (boot argument CVAR), copied by the bootloader. + + apple,pio-ranges: + $ref: /schemas/types.yaml#/definitions/uint64-array + minItems: 2 + description: Host physical address and size pairs mapped into firmware PIO space. + patternProperties: + '^apple,tunable-': + $ref: /schemas/types.yaml#/definitions/uint8-array + description: Opaque firmware calibration copied from the Apple device tree. required: - - reg-names + - compatible + - reg + - iommus - mboxes - mbox-names - -additionalProperties: false + 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 examples: - | diff --git a/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml b/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml index a357858915714..035a1210171c2 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/apple/apple,rsm.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple remote service manager @@ -13,91 +14,159 @@ description: | Remote service manager register banks, interrupt and DART stream. select: - properties: - compatible: - contains: - enum: - - apple,t6030-rsm - - apple,t6031-rsm - - apple,t6032-rsm - - apple,t8122-rsm - - apple,t8140-rsm - - apple,t8142-rsm - - apple,t8152-rsm - required: - - compatible - -properties: - compatible: true - -allOf: - - if: + anyOf: + - properties: compatible: contains: enum: + - apple,t6030-rsm + - apple,t6031-rsm - apple,t6032-rsm + - apple,t8122-rsm + - apple,t8140-rsm + - apple,t8142-rsm + - apple,t8152-rsm required: - compatible - then: + - properties: compatible: items: - - const: apple,t6032-rsm - - const: apple,rsm - - reg: - minItems: 2 - maxItems: 2 - - interrupts: - maxItems: 1 - - power-domains: - maxItems: 1 + - + const: "apple,t6050-rsm" + - + const: "apple,rsm" + required: + - "compatible" - iommus: - maxItems: 1 +properties: + compatible: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true - required: - - compatible - - reg - - interrupts - - power-domains - - iommus +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-rsm" + - + const: "apple,rsm" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-rsm" + - + const: "apple,rsm" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + iommus: + maxItems: 1 + power-domains: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "power-domains" + additionalProperties: false else: properties: - compatible: - items: - - enum: - - apple,t6030-rsm - - apple,t6031-rsm - - apple,t8122-rsm - - apple,t8140-rsm - - apple,t8142-rsm - - apple,t8152-rsm - - const: apple,rsm - - reg: - minItems: 2 - maxItems: 2 - description: Register apertures in hardware-description order. - - interrupts: - maxItems: 1 - - iommus: - maxItems: 1 - - power-domains: - maxItems: 1 - - required: - - compatible - - reg - - interrupts - - iommus - - additionalProperties: false - -unevaluatedProperties: false + compatible: true + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t6032-rsm + required: + - compatible + then: + properties: + compatible: + items: + - const: apple,t6032-rsm + - const: apple,rsm + + reg: + minItems: 2 + maxItems: 2 + + interrupts: + maxItems: 1 + + power-domains: + maxItems: 1 + + iommus: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - power-domains + - iommus + else: + properties: + compatible: + items: + - enum: + - apple,t6030-rsm + - apple,t6031-rsm + - apple,t8122-rsm + - apple,t8140-rsm + - apple,t8142-rsm + - apple,t8152-rsm + - const: apple,rsm + + reg: + minItems: 2 + maxItems: 2 + description: Register apertures in hardware-description order. + + interrupts: + maxItems: 1 + + iommus: + maxItems: 1 + + power-domains: + maxItems: 1 + + required: + - compatible + - reg + - interrupts + - iommus + + additionalProperties: false + unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml b/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml index 7b0d286ee03d7..ab304ce9ef21b 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/apple/apple,rtk-helper-asc4.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple ASC4 RTKit helper coprocessor @@ -18,51 +19,55 @@ description: DockChannel HID transport refers to this node through its apple,helper-cpu property. -properties: - compatible: - items: - - enum: - - apple,t6020-mtp - - apple,t6030-mtp - - apple,t6031-mtp - - apple,t6041-mtp - - apple,t8112-mtp - - apple,t8122-mtp - - apple,t8132-mtp - - apple,t8140-mtp - - apple,t8142-mtp - - enum: - - apple,t6020-rtk-helper-asc4 - - apple,t6030-rtk-helper-asc4 - - apple,t6041-rtk-helper-asc4 - - apple,t8112-rtk-helper-asc4 - - apple,t8122-rtk-helper-asc4 - - apple,t8132-rtk-helper-asc4 - - apple,t8140-rtk-helper-asc4 - - apple,t8142-rtk-helper-asc4 - - const: apple,mtp - - const: apple,rtk-helper-asc4 - - reg: - minItems: 1 - items: - - description: ASC control registers - - description: - Coprocessor SRAM, from which the firmware may ask the host to map - buffers instead of allocating them from system memory - - reg-names: - minItems: 1 - items: - - const: asc - - const: sram +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,mtp" + - "apple,rtk-helper-asc4" + - "apple,rtkit-buffers" + - "apple,rtkit-buffers," + - "apple,rtkit-handoff" + - "apple,t6020-mtp" + - "apple,t6020-rtk-helper-asc4" + - "apple,t6030-mtp" + - "apple,t6030-rtk-helper-asc4" + - "apple,t6031-mtp" + - "apple,t6041-mtp" + - "apple,t6041-rtk-helper-asc4" + - "apple,t8112-mtp" + - "apple,t8112-rtk-helper-asc4" + - "apple,t8122-mtp" + - "apple,t8122-rtk-helper-asc4" + - "apple,t8132-mtp" + - "apple,t8132-rtk-helper-asc4" + - "apple,t8140-mtp" + - "apple,t8140-rtk-helper-asc4" + - "apple,t8142-mtp" + - "apple,t8142-rtk-helper-asc4" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-mtp" + - + const: "apple,mtp" + required: + - "compatible" +properties: + compatible: true + reg: true + reg-names: true mboxes: maxItems: 1 - - iommus: - maxItems: 1 - + iommus: true apple,rtkit-handoff: enum: - mtp-live-v1 @@ -73,7 +78,6 @@ properties: DockChannel HID header unread, and retains the helper's identity DART bypass. The host continues servicing system endpoints without restarting the coprocessor or taking it to QUIESCED. - apple,rtkit-buffers: oneOf: - type: boolean @@ -94,14 +98,7 @@ properties: buffer must lie inside a no-map reserved-memory region referenced by memory-region. The inventory is installed before mailbox RX is enabled; repeating an existing request cannot replace a live allocation. - - memory-region: - minItems: 1 - maxItems: 4 - description: - Reserved no-map DRAM buffers held by the running coprocessor. This - excludes buffers inside its SRAM register resource. - + memory-region: true linux-enablement-mac,rtkit-inherited: deprecated: true description: | @@ -115,33 +112,183 @@ properties: - type: boolean - $ref: /schemas/types.yaml#/definitions/uint32 enum: [0, 1] - - '#helper-cells': - const: 0 - description: - Present in existing device trees. Nothing references the helper with - argument cells; the DockChannel HID transport uses a plain phandle. - -required: - - compatible - - reg - - reg-names - - mboxes - - iommus + "#helper-cells": true + interrupts: true + power-domains: true + clocks: true + resets: true + status: true allOf: - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-mtp" + - + const: "apple,mtp" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-mtp" + - + const: "apple,mtp" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 + iommus: + maxItems: 1 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "clocks" + additionalProperties: false + else: properties: compatible: - contains: - const: apple,t8132-mtp - required: - - apple,rtkit-handoff - then: - required: - - apple,rtkit-buffers + items: + - enum: + - apple,t6020-mtp + - apple,t6030-mtp + - apple,t6031-mtp + - apple,t6041-mtp + - apple,t8112-mtp + - apple,t8122-mtp + - apple,t8132-mtp + - apple,t8140-mtp + - apple,t8142-mtp + - enum: + - apple,t6020-rtk-helper-asc4 + - apple,t6030-rtk-helper-asc4 + - apple,t6041-rtk-helper-asc4 + - apple,t8112-rtk-helper-asc4 + - apple,t8122-rtk-helper-asc4 + - apple,t8132-rtk-helper-asc4 + - apple,t8140-rtk-helper-asc4 + - apple,t8142-rtk-helper-asc4 + - const: apple,mtp + - const: apple,rtk-helper-asc4 + + reg: + minItems: 1 + items: + - description: ASC control registers + - description: + Coprocessor SRAM, from which the firmware may ask the host to map + buffers instead of allocating them from system memory -additionalProperties: false + reg-names: + minItems: 1 + items: + - const: asc + - const: sram + + mboxes: + maxItems: 1 + + iommus: + maxItems: 1 + + apple,rtkit-handoff: + enum: + - mtp-live-v1 + description: | + The producer reserves firmware-visible buffers and retains their DART + mappings, and transfers a running RTKit session without renegotiation. + On T8132 it also supplies apple,rtkit-buffers, leaves the initial + DockChannel HID header unread, and retains the helper's identity DART + bypass. The host continues servicing system endpoints without restarting + the coprocessor or taking it to QUIESCED. + + apple,rtkit-buffers: + oneOf: + - type: boolean + - $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 5 + maxItems: 20 + description: | + An empty property records that no shared buffers were negotiated. + Otherwise this is the inventory of every shared buffer negotiated, + in groups of five cells: system endpoint number, device address high + cell, device address low cell, exact protocol size in bytes, and the + original request's is-mapped flag (0 or 1). Endpoint numbers are 1 for + crashlog, 2 for syslog, 4 for IOReport, and 8 for OSLog, each at most once. + The last cell records whether firmware supplied the original address; + it does not classify the backing memory as SRAM or DRAM. Device + addresses are physical addresses under the retained identity bypass. + SRAM buffers must lie inside the sram register resource. Every DRAM + buffer must lie inside a no-map reserved-memory region referenced by + memory-region. The inventory is installed before mailbox RX is enabled; + repeating an existing request cannot replace a live allocation. + + memory-region: + minItems: 1 + maxItems: 4 + description: + Reserved no-map DRAM buffers held by the running coprocessor. This + excludes buffers inside its SRAM register resource. + + linux-enablement-mac,rtkit-inherited: + deprecated: true + description: | + Legacy J713 preservation contract. An empty property or one 32-bit + cell containing 1 retains the running helper. A cell containing 0 + selects ordinary startup. This carries no buffer inventory or verified + reservation record; the consumer can service system notifications but + cannot reconstruct or replace the existing shared buffers. New + producers use mtp-live-v1 and may retain this marker for older kernels. + oneOf: + - type: boolean + - $ref: /schemas/types.yaml#/definitions/uint32 + enum: [0, 1] + + '#helper-cells': + const: 0 + description: + Present in existing device trees. Nothing references the helper with + argument cells; the DockChannel HID transport uses a plain phandle. + required: + - compatible + - reg + - reg-names + - mboxes + - iommus + allOf: + - if: + properties: + compatible: + contains: + const: apple,t8132-mtp + required: + - apple,rtkit-handoff + then: + required: + - apple,rtkit-buffers + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml b/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml index 06a404265ab56..62e491362d7b6 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/apple/apple,sep.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple Secure Enclave Processor @@ -16,65 +17,163 @@ description: to it through an ASC mailbox and through shared memory that the SEP reaches via its own DART. -properties: - compatible: - oneOf: - - const: apple,sep - - items: - - enum: - - apple,t6030-sep - - apple,t6031-sep - - const: apple,sep - - reg: - minItems: 1 - items: - - description: Coprocessor control registers - - description: Coprocessor boot interface +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,sep" + - "apple,t6030-sep" + - "apple,t6031-sep" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-sep" + - + const: "apple,sep" + required: + - "compatible" +properties: + compatible: true + reg: true mboxes: maxItems: 1 - mbox-names: const: mbox - - iommus: - maxItems: 1 - - power-domains: - minItems: 1 - items: - - description: The SEP's own power state. - - description: - A power state the SEP depends on while it runs. On T8140 this is - the GPIO power state; the SEP stops servicing its mailbox for good - once that is switched off. - - memory-region: - maxItems: 1 - description: - The SEP firmware carveout, added by the bootloader. - + iommus: true + power-domains: true + memory-region: true iboot-manifest: $ref: /schemas/types.yaml#/definitions/uint8-array description: The signed iBoot manifest of the running boot, added by the bootloader. The SEP needs it to open the machine's secure storage. - local-policy-manifest: $ref: /schemas/types.yaml#/definitions/uint8-array description: The signed local boot policy of the running boot, added by the bootloader, for the same purpose. - -required: - - compatible - - reg - - mboxes - - mbox-names - - iommus - -additionalProperties: false + interrupts: true + clocks: true + resets: true + status: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-sep" + - + const: "apple,sep" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-sep" + - + const: "apple,sep" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 + iommus: + maxItems: 1 + power-domains: + maxItems: 1 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "power-domains" + - "clocks" + additionalProperties: false + else: + properties: + compatible: + oneOf: + - const: apple,sep + - items: + - enum: + - apple,t6030-sep + - apple,t6031-sep + - const: apple,sep + + reg: + minItems: 1 + items: + - description: Coprocessor control registers + - description: Coprocessor boot interface + + mboxes: + maxItems: 1 + + mbox-names: + const: mbox + + iommus: + maxItems: 1 + + power-domains: + minItems: 1 + items: + - description: The SEP's own power state. + - description: + A power state the SEP depends on while it runs. On T8140 this is + the GPIO power state; the SEP stops servicing its mailbox for good + once that is switched off. + + memory-region: + maxItems: 1 + description: + The SEP firmware carveout, added by the bootloader. + + iboot-manifest: + $ref: /schemas/types.yaml#/definitions/uint8-array + description: + The signed iBoot manifest of the running boot, added by the bootloader. + The SEP needs it to open the machine's secure storage. + + local-policy-manifest: + $ref: /schemas/types.yaml#/definitions/uint8-array + description: + The signed local boot policy of the running boot, added by the + bootloader, for the same purpose. + required: + - compatible + - reg + - mboxes + - mbox-names + - iommus + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml b/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml index 786bd7b1993c0..faf46c9ef7d7e 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/apple/apple,t6041-aop.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple T604x and T8132 Always-On Processor @@ -20,53 +21,49 @@ description: and reserves its windows, which the firmware reaches through its DART at their physical addresses. -properties: - compatible: - enum: - - apple,t6041-aop - - apple,t8132-aop - - reg: - minItems: 2 - items: - - description: AOP SRAM, holding the boot-argument table - - description: ASC wrapper and processor control registers - - description: Second ASC register window - - description: AOP configuration registers - - reg-names: - minItems: 2 - items: - - const: firmware - - const: asc - - const: asc-aux - - const: config +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,aop-als" + - "apple,aop-las" + - "apple,aop-motion.yaml" + - "apple,t6041-aop" + - "apple,t6041-aop-als" + - "apple,t6041-aop-audio.yaml" + - "apple,t6041-aop-las" + - "apple,t8132-aop" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-aop" + - + const: "apple,aop" + required: + - "compatible" +properties: + compatible: true + reg: true + reg-names: true mboxes: maxItems: 1 - mbox-names: const: mbox - nonposted-mmio: true - - iommus: - maxItems: 1 - - memory-region: - minItems: 1 - maxItems: 18 - description: - The firmware segments in DRAM (its external code and its log) and, on - T8132, the DAPF windows, filled in by the bootloader from the ADT. The - iommu-addresses property of each region gives the address the firmware - uses for it. - + iommus: true + memory-region: true audio: type: object $ref: /schemas/sound/apple,t6041-aop-audio.yaml# description: The audio service. - als: type: object description: The ambient light sensor service. @@ -80,7 +77,6 @@ properties: required: - compatible - las: type: object description: The lid angle sensor service. @@ -94,37 +90,173 @@ properties: required: - compatible - accel: type: object $ref: /schemas/iio/imu/apple,aop-motion.yaml# description: The accelerometer service. unevaluatedProperties: false - gyro: type: object $ref: /schemas/iio/imu/apple,aop-motion.yaml# description: The gyroscope service. unevaluatedProperties: false - -required: - - compatible - - reg - - mboxes - - mbox-names - - iommus + interrupts: true + power-domains: true + clocks: true + resets: true + status: true allOf: - if: - properties: - compatible: - const: apple,t6041-aop + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-aop" + - + const: "apple,aop" + status: + const: "disabled" + required: + - "compatible" + - "status" then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-aop" + - + const: "apple,aop" + status: + const: "disabled" + reg: + minItems: 5 + maxItems: 5 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 + iommus: + maxItems: 1 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "clocks" + additionalProperties: false + else: properties: + compatible: + enum: + - apple,t6041-aop + - apple,t8132-aop + + reg: + minItems: 2 + items: + - description: AOP SRAM, holding the boot-argument table + - description: ASC wrapper and processor control registers + - description: Second ASC register window + - description: AOP configuration registers + + reg-names: + minItems: 2 + items: + - const: firmware + - const: asc + - const: asc-aux + - const: config + + mboxes: + maxItems: 1 + + mbox-names: + const: mbox + + nonposted-mmio: true + + iommus: + maxItems: 1 + memory-region: - maxItems: 4 + minItems: 1 + maxItems: 18 + description: + The firmware segments in DRAM (its external code and its log) and, on + T8132, the DAPF windows, filled in by the bootloader from the ADT. The + iommu-addresses property of each region gives the address the firmware + uses for it. + + audio: + type: object + $ref: /schemas/sound/apple,t6041-aop-audio.yaml# + description: The audio service. + + als: + type: object + description: The ambient light sensor service. + additionalProperties: false + + properties: + compatible: + items: + - const: apple,t6041-aop-als + - const: apple,aop-als + + required: + - compatible + + las: + type: object + description: The lid angle sensor service. + additionalProperties: false + + properties: + compatible: + items: + - const: apple,t6041-aop-las + - const: apple,aop-las + + required: + - compatible + + accel: + type: object + $ref: /schemas/iio/imu/apple,aop-motion.yaml# + description: The accelerometer service. + unevaluatedProperties: false -additionalProperties: false + gyro: + type: object + $ref: /schemas/iio/imu/apple,aop-motion.yaml# + description: The gyroscope service. + unevaluatedProperties: false + required: + - compatible + - reg + - mboxes + - mbox-names + - iommus + allOf: + - if: + properties: + compatible: + const: apple,t6041-aop + then: + properties: + memory-region: + maxItems: 4 + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml index c8f1c9d6af72e..9e6315cd83e91 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/apple/apple,t8140-mcc.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple memory cache controller @@ -16,104 +17,168 @@ description: its enabled cache is retained until a dirty-data drain is qualified. select: - properties: - compatible: - contains: - enum: - - apple,t6000-mcc - - apple,t6020-mcc - - apple,t6021-mcc - - apple,t6022-mcc - - apple,t6030-mcc - - apple,t6031-mcc - - apple,t6032-mcc - - apple,t6041-mcc - - apple,t8103-mcc - - apple,t8112-mcc - - apple,t8122-mcc - - apple,t8132-mcc - - apple,t8140-mcc - required: - - compatible - -properties: - compatible: true - - apple,boot-dma-devices: - $ref: /schemas/types.yaml#/definitions/phandle-array - description: Shared hardware resource metadata. - items: - maxItems: 1 - -allOf: - - if: + anyOf: + - properties: compatible: contains: enum: + - apple,t6000-mcc + - apple,t6020-mcc + - apple,t6021-mcc + - apple,t6022-mcc + - apple,t6030-mcc + - apple,t6031-mcc - apple,t6032-mcc + - apple,t6041-mcc + - apple,t8103-mcc + - apple,t8112-mcc + - apple,t8122-mcc + - apple,t8132-mcc + - apple,t8140-mcc required: - compatible - then: + - properties: compatible: items: - - const: apple,t6032-mcc - - const: apple,mcc + - + const: "apple,t6050-mcc" + - + const: "apple,mcc" + required: + - "compatible" - reg: - minItems: 20 - maxItems: 20 +properties: + compatible: true + apple,boot-dma-devices: + $ref: /schemas/types.yaml#/definitions/phandle-array + description: Shared hardware resource metadata. + items: + maxItems: 1 + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true - required: - - compatible - - reg +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-mcc" + - + const: "apple,mcc" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-mcc" + - + const: "apple,mcc" + status: + const: "disabled" + reg: + minItems: 4 + maxItems: 4 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + required: + - "compatible" + - "reg" + - "status" + additionalProperties: false else: properties: - compatible: - oneOf: - - enum: - - apple,t8132-mcc - - apple,t8140-mcc - - items: - - enum: - - apple,t6000-mcc - - apple,t6020-mcc - - apple,t6021-mcc - - apple,t6022-mcc - - apple,t6030-mcc - - apple,t6031-mcc - - apple,t8103-mcc - - apple,t8112-mcc - - apple,t8122-mcc - - const: apple,mcc - - items: - - enum: - - apple,t6041-mcc - - const: apple,t8140-mcc - - reg: - description: Per-plane blocks or multicast memory-controller apertures. - minItems: 1 - maxItems: 32 - - nonposted-mmio: true + compatible: true apple,boot-dma-devices: $ref: /schemas/types.yaml#/definitions/phandle-array + description: Shared hardware resource metadata. items: maxItems: 1 - description: - Devices that take over DMA the bootloader left running. Cache allocation - is enabled only once each of them is bound to its driver. - - required: - - compatible - - reg - - additionalProperties: false - -unevaluatedProperties: false + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t6032-mcc + required: + - compatible + then: + properties: + compatible: + items: + - const: apple,t6032-mcc + - const: apple,mcc + + reg: + minItems: 20 + maxItems: 20 + + required: + - compatible + - reg + else: + properties: + compatible: + oneOf: + - enum: + - apple,t8132-mcc + - apple,t8140-mcc + - items: + - enum: + - apple,t6000-mcc + - apple,t6020-mcc + - apple,t6021-mcc + - apple,t6022-mcc + - apple,t6030-mcc + - apple,t6031-mcc + - apple,t8103-mcc + - apple,t8112-mcc + - apple,t8122-mcc + - const: apple,mcc + - items: + - enum: + - apple,t6041-mcc + - const: apple,t8140-mcc + + reg: + description: Per-plane blocks or multicast memory-controller apertures. + minItems: 1 + maxItems: 32 + + nonposted-mmio: true + + apple,boot-dma-devices: + $ref: /schemas/types.yaml#/definitions/phandle-array + items: + maxItems: 1 + description: + Devices that take over DMA the bootloader left running. Cache allocation + is enabled only once each of them is bound to its driver. + + required: + - compatible + - reg + + additionalProperties: false + unevaluatedProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/spi/apple,qspi.yaml b/Documentation/devicetree/bindings/spi/apple,qspi.yaml index 2cf6f7286efd3..f0f3ed088f905 100644 --- a/Documentation/devicetree/bindings/spi/apple,qspi.yaml +++ b/Documentation/devicetree/bindings/spi/apple,qspi.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/spi/apple,qspi.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple ARM SoC QSPIMC controller @@ -14,48 +15,132 @@ description: | It is distinct from the ordinary Apple SPIMC controller despite serving a similar set of SPI NOR devices. -allOf: - - $ref: spi-controller.yaml# +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,qspi" + - "apple,t6030-qspi" + - "apple,t6031-qspi" + - "apple,t6041-qspi" + - "apple,t6050-qspi" + - "apple,t8122-qspi" + - "apple,t8132-qspi" + - "apple,t8140-qspi" + - "apple,t8152-qspi" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-qspi" + - + const: "apple,qspi" + required: + - "compatible" properties: - compatible: - oneOf: - - enum: - - apple,t8122-qspi - - apple,t8132-qspi - - apple,t6041-qspi - - apple,t8140-qspi - - items: - - enum: - - apple,t6030-qspi - - apple,t6031-qspi - - apple,t8122-qspi - - const: apple,qspi - - items: - - enum: - - apple,t6050-qspi - - apple,t8152-qspi - - const: apple,t8140-qspi + compatible: true + reg: true + clocks: true + interrupts: true + power-domains: true + iommus: true + resets: true + status: true - reg: - maxItems: 1 - - clocks: - maxItems: 1 +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-qspi" + - + const: "apple,qspi" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-qspi" + - + const: "apple,qspi" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + power-domains: + maxItems: 1 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + - "clocks" + additionalProperties: false + else: + allOf: + - $ref: spi-controller.yaml# + properties: + compatible: + oneOf: + - enum: + - apple,t8122-qspi + - apple,t8132-qspi + - apple,t6041-qspi + - apple,t8140-qspi + - items: + - enum: + - apple,t6030-qspi + - apple,t6031-qspi + - apple,t8122-qspi + - const: apple,qspi + - items: + - enum: + - apple,t6050-qspi + - apple,t8152-qspi + - const: apple,t8140-qspi - interrupts: - maxItems: 1 + reg: + maxItems: 1 - power-domains: - maxItems: 1 + clocks: + maxItems: 1 -required: - - compatible - - reg - - clocks - - interrupts + interrupts: + maxItems: 1 -unevaluatedProperties: false + power-domains: + maxItems: 1 + required: + - compatible + - reg + - clocks + - interrupts + unevaluatedProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/spi/apple,spi.yaml b/Documentation/devicetree/bindings/spi/apple,spi.yaml index 46f9330f5ea55..54f22dd263165 100644 --- a/Documentation/devicetree/bindings/spi/apple,spi.yaml +++ b/Documentation/devicetree/bindings/spi/apple,spi.yaml @@ -2,57 +2,149 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/spi/apple,spi.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple ARM SoC SPI controller -allOf: - - $ref: spi-controller.yaml# - maintainers: - Hector Martin -properties: - compatible: - oneOf: - - items: - - enum: - - apple,t6000-spi - - apple,t6020-spi - - apple,t6030-spi - - apple,t6031-spi - - apple,t6041-spi - - apple,t8112-spi - - apple,t8122-spi - - apple,t8132-spi - - apple,t8140-spi - - const: apple,t8103-spi - - items: - - enum: - - apple,t8103-spi - - apple,t8112-spi - - apple,t6000-spi - - const: apple,spi +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,spi" + - "apple,t6000-spi" + - "apple,t6020-spi" + - "apple,t6030-spi" + - "apple,t6031-spi" + - "apple,t6041-spi" + - "apple,t8103-spi" + - "apple,t8112-spi" + - "apple,t8122-spi" + - "apple,t8132-spi" + - "apple,t8140-spi" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-spi" + - + const: "apple,t8103-spi" + required: + - "compatible" - reg: - maxItems: 1 +properties: + compatible: true + reg: true + clocks: true + interrupts: true + power-domains: true + iommus: true + resets: true + status: true - clocks: - maxItems: 1 +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-spi" + - + const: "apple,t8103-spi" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-spi" + - + const: "apple,t8103-spi" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + power-domains: + maxItems: 1 + clocks: + maxItems: 1 + "#address-cells": + const: 1 + "#size-cells": + const: 0 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + - "clocks" + - "#address-cells" + - "#size-cells" + additionalProperties: false + else: + allOf: + - $ref: spi-controller.yaml# + properties: + compatible: + oneOf: + - items: + - enum: + - apple,t6000-spi + - apple,t6020-spi + - apple,t6030-spi + - apple,t6031-spi + - apple,t6041-spi + - apple,t8112-spi + - apple,t8122-spi + - apple,t8132-spi + - apple,t8140-spi + - const: apple,t8103-spi + - items: + - enum: + - apple,t8103-spi + - apple,t8112-spi + - apple,t6000-spi + - const: apple,spi - interrupts: - maxItems: 1 + reg: + maxItems: 1 - power-domains: - maxItems: 1 + clocks: + maxItems: 1 -required: - - compatible - - reg - - clocks - - interrupts + interrupts: + maxItems: 1 -unevaluatedProperties: false + power-domains: + maxItems: 1 + required: + - compatible + - reg + - clocks + - interrupts + unevaluatedProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/spmi/apple,spmi.yaml b/Documentation/devicetree/bindings/spmi/apple,spmi.yaml index ac2e7407ef780..69b30fa19a590 100644 --- a/Documentation/devicetree/bindings/spmi/apple,spmi.yaml +++ b/Documentation/devicetree/bindings/spmi/apple,spmi.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/spmi/apple,spmi.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple SPMI controller @@ -11,63 +12,153 @@ maintainers: description: A SPMI controller present on most Apple SoCs -allOf: - - $ref: spmi.yaml# +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,spmi" + - "apple,t6000-spmi" + - "apple,t6020-spmi" + - "apple,t6030-spmi" + - "apple,t6031-spmi" + - "apple,t6041-spmi" + - "apple,t8012-spmi" + - "apple,t8015-spmi" + - "apple,t8103-spmi" + - "apple,t8112-spmi" + - "apple,t8122-spmi" + - "apple,t8132-spmi" + - "apple,t8140-spmi" + - "apple,t8142-spmi" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-spmi" + - + const: "apple,spmi" + required: + - "compatible" properties: - compatible: - oneOf: - - const: apple,t8142-spmi - - items: - - enum: - - apple,t6000-spmi - - apple,t8103-spmi - - apple,t8112-spmi - - const: apple,spmi - - items: - - enum: - - apple,t6000-spmi - - apple,t6020-spmi - - apple,t6030-spmi - - apple,t6031-spmi - - apple,t6041-spmi - - apple,t8012-spmi - - apple,t8015-spmi - - apple,t8112-spmi - - apple,t8122-spmi - - apple,t8132-spmi - - apple,t8140-spmi - - const: apple,t8103-spmi - - reg: - minItems: 1 - items: - - description: SPMI command interface - - description: SPMI interrupt interface - - description: SPMI auxiliary interface - - interrupts: - maxItems: 1 - description: Optional, operates in polled mode if not present - + compatible: true + reg: true + interrupts: true interrupt-controller: true + "#interrupt-cells": true + power-domains: true + iommus: true + clocks: true + resets: true + status: true - "#interrupt-cells": - const: 2 - - power-domains: - maxItems: 1 - -required: - - compatible - - reg - -dependentRequired: - interrupt-controller: - - "#interrupt-cells" - - interrupts - -unevaluatedProperties: false +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-spmi" + - + const: "apple,spmi" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-spmi" + - + const: "apple,spmi" + status: + const: "disabled" + reg: + minItems: 3 + maxItems: 3 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + "#address-cells": + const: 1 + "#size-cells": + const: 0 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "#address-cells" + - "#size-cells" + additionalProperties: false + else: + allOf: + - $ref: spmi.yaml# + properties: + compatible: + oneOf: + - const: apple,t8142-spmi + - items: + - enum: + - apple,t6000-spmi + - apple,t8103-spmi + - apple,t8112-spmi + - const: apple,spmi + - items: + - enum: + - apple,t6000-spmi + - apple,t6020-spmi + - apple,t6030-spmi + - apple,t6031-spmi + - apple,t6041-spmi + - apple,t8012-spmi + - apple,t8015-spmi + - apple,t8112-spmi + - apple,t8122-spmi + - apple,t8132-spmi + - apple,t8140-spmi + - const: apple,t8103-spmi + + reg: + minItems: 1 + items: + - description: SPMI command interface + - description: SPMI interrupt interface + - description: SPMI auxiliary interface + + interrupts: + maxItems: 1 + description: Optional, operates in polled mode if not present + + interrupt-controller: true + + "#interrupt-cells": + const: 2 + + power-domains: + maxItems: 1 + required: + - compatible + - reg + dependentRequired: + interrupt-controller: + - "#interrupt-cells" + - interrupts + unevaluatedProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml index b201200223bdb..94d2ee93c3a68 100644 --- a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml +++ b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/thunderbolt/apple,t8103-usb4-acio.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple Silicon USB4/Thunderbolt Host Router (ACIO) @@ -25,84 +26,67 @@ description: | established the Type-C PD controller has to pass the cable information through the thunderbolt-switch connection. -properties: - compatible: - oneOf: - - const: apple,t8103-usb4-acio - - const: apple,t8142-usb4-acio - - const: apple,t6040-usb4-acio - - items: - - enum: - - apple,t6000-usb4-acio - - apple,t6020-usb4-acio - - apple,t6030-usb4-acio - - apple,t6031-usb4-acio - - apple,t8112-usb4-acio - - apple,t8122-usb4-acio - - apple,t8132-usb4-acio - - const: apple,t8103-usb4-acio - - reg: - minItems: 2 - items: - - description: Root complex and co-processor control registers - - description: SRAM used for communication with the co-processor - - description: | - PCIe adapter configuration space of the USB4 router. Present where - the root complex exposes the adapter separately, so that the tunnel - can be configured before a PCIe-C link is brought up. - - description: MxWrap co-processor control registers - - reg-names: - minItems: 2 - items: - - const: rc - - const: sram - - const: pcie-adapter - - const: cpu - - interrupts: - maxItems: 1 - description: Type 7 SRAM parity interrupt - - interrupt-names: - items: - - const: sram-parity +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,dart.yaml" + - "apple,pcie-tunnel" + - "apple,t6000-usb4-acio" + - "apple,t6020-usb4-acio" + - "apple,t6030-usb4-acio" + - "apple,t6031-usb4-acio" + - "apple,t6040-usb4-acio" + - "apple,t8103-usb4-acio" + - "apple,t8103-usb4-nhi.yaml" + - "apple,t8112-usb4-acio" + - "apple,t8122-usb4-acio" + - "apple,t8132-usb4-acio" + - "apple,t8142-usb4-acio" + - "apple,tunable-pcie-adapter" + - "apple,tunable-rc" + - "apple,tunable-rc," + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-usb4-acio" + - + const: "apple,usb4-acio" + required: + - "compatible" +properties: + compatible: true + reg: true + reg-names: true + interrupts: true + interrupt-names: true mboxes: maxItems: 1 description: Mailbox used for RTKit communication with the co-processor - - resets: - maxItems: 1 - description: Reset used to start the ACIO block before booting the - co-processor - - power-domains: - minItems: 3 - maxItems: 4 - description: | - The first three domains power the ACIO co-processor complex. When - apple,pcie-tunnel is present, the fourth domain powers its PCIe-C - controller and is enabled only after the USB4 PCIe tunnel is active. - + resets: true + power-domains: true thunderbolt-switch: type: boolean description: Marks this root complex as the USB4/Thunderbolt switch that the Type-C PD controller hands cable information to, so the Type-C mux can find it. - lstx-gpios: maxItems: 1 description: GPIO on the pin that carries the router's LSTX sideband signal. - apple,pcie-tunnel: $ref: /schemas/types.yaml#/definitions/phandle description: PCIe-C tunnel container populated after the USB4 router has enabled its PCIe adapter. - apple,tunable-rc: $ref: /schemas/types.yaml#/definitions/uint32-matrix items: @@ -114,7 +98,6 @@ properties: List of (register offset, mask, value) tuples copied from Apple's Device Tree, converted by the bootloader and used to configure the root complex after the co-processor has booted. - apple,tunable-pcie-adapter: $ref: /schemas/types.yaml#/definitions/uint32-matrix items: @@ -126,19 +109,10 @@ properties: As apple,tunable-rc, but applied to the PCIe adapter configuration space named by the pcie-adapter reg entry. Only meaningful where that entry is present. - - '#address-cells': - const: 1 - - '#size-cells': - const: 1 - - ranges: - maxItems: 1 - description: Single 16 MiB MMIO window containing all child registers - + "#address-cells": true + "#size-cells": true + ranges: true nonposted-mmio: true - ports: $ref: /schemas/graph.yaml#/properties/ports description: @@ -169,66 +143,253 @@ properties: required: - port@1 - -patternProperties: - "^iommu@(a80000|1a80000)$": - $ref: /schemas/iommu/apple,dart.yaml# - description: DART IOMMU exposed by ACIO and used for DMA from the NHI - - "^nhi@(f00000|1f00000)$": - $ref: /schemas/thunderbolt/apple,t8103-usb4-nhi.yaml# - description: Native Host Interface exposed by ACIO - -required: - - compatible - - reg - - reg-names - - mboxes - - power-domains - - resets - - thunderbolt-switch - - '#address-cells' - - '#size-cells' - - ranges - - nonposted-mmio - - ports + iommus: true + clocks: true + status: true allOf: - - $ref: /schemas/usb/usb-switch.yaml# - if: - properties: - compatible: - contains: - const: apple,t8132-usb4-acio + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-usb4-acio" + - + const: "apple,usb4-acio" + status: + const: "disabled" + required: + - "compatible" + - "status" then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-usb4-acio" + - + const: "apple,usb4-acio" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + additionalProperties: false + else: properties: + compatible: + oneOf: + - const: apple,t8103-usb4-acio + - const: apple,t8142-usb4-acio + - const: apple,t6040-usb4-acio + - items: + - enum: + - apple,t6000-usb4-acio + - apple,t6020-usb4-acio + - apple,t6030-usb4-acio + - apple,t6031-usb4-acio + - apple,t8112-usb4-acio + - apple,t8122-usb4-acio + - apple,t8132-usb4-acio + - const: apple,t8103-usb4-acio + reg: - minItems: 4 + minItems: 2 + items: + - description: Root complex and co-processor control registers + - description: SRAM used for communication with the co-processor + - description: | + PCIe adapter configuration space of the USB4 router. Present where + the root complex exposes the adapter separately, so that the tunnel + can be configured before a PCIe-C link is brought up. + - description: MxWrap co-processor control registers + reg-names: - minItems: 4 - pinctrl-names: + minItems: 2 items: - - const: lstx - else: - properties: - lstx-gpios: false - - if: - properties: - compatible: - contains: - const: apple,t6040-usb4-acio - then: - required: - - iommu@1a80000 - - nhi@1f00000 - - interrupts - - interrupt-names - else: - required: - - iommu@a80000 - - nhi@f00000 + - const: rc + - const: sram + - const: pcie-adapter + - const: cpu -additionalProperties: false + interrupts: + maxItems: 1 + description: Type 7 SRAM parity interrupt + + interrupt-names: + items: + - const: sram-parity + + mboxes: + maxItems: 1 + description: Mailbox used for RTKit communication with the co-processor + + resets: + maxItems: 1 + description: Reset used to start the ACIO block before booting the + co-processor + + power-domains: + minItems: 3 + maxItems: 4 + description: | + The first three domains power the ACIO co-processor complex. When + apple,pcie-tunnel is present, the fourth domain powers its PCIe-C + controller and is enabled only after the USB4 PCIe tunnel is active. + + thunderbolt-switch: + type: boolean + description: + Marks this root complex as the USB4/Thunderbolt switch that the Type-C + PD controller hands cable information to, so the Type-C mux can find it. + + lstx-gpios: + maxItems: 1 + description: + GPIO on the pin that carries the router's LSTX sideband signal. + + apple,pcie-tunnel: + $ref: /schemas/types.yaml#/definitions/phandle + description: + PCIe-C tunnel container populated after the USB4 router has enabled its + PCIe adapter. + + apple,tunable-rc: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + items: + items: + - description: Register offset + - description: Mask of bits to clear + - description: Bits to set + description: | + List of (register offset, mask, value) tuples copied from Apple's Device + Tree, converted by the bootloader and used to configure the root complex + after the co-processor has booted. + + apple,tunable-pcie-adapter: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + items: + items: + - description: Register offset + - description: Mask of bits to clear + - description: Bits to set + description: | + As apple,tunable-rc, but applied to the PCIe adapter configuration space + named by the pcie-adapter reg entry. Only meaningful where that entry is + present. + + '#address-cells': + const: 1 + + '#size-cells': + const: 1 + + ranges: + maxItems: 1 + description: Single 16 MiB MMIO window containing all child registers + + nonposted-mmio: true + + ports: + $ref: /schemas/graph.yaml#/properties/ports + description: + OF graph ports for the USB4 router. The port numbers correspond to the + USB4 router adapter numbers. + properties: + port@1: + $ref: /schemas/graph.yaml#/properties/port + description: USB4 port connected to the USB Type-C connector + + # port@2 is the second, unused USB4 port of the host router + + port@3: + $ref: /schemas/graph.yaml#/properties/port + description: PCIe adapter + + port@4: + $ref: /schemas/graph.yaml#/properties/port + description: USB3 adapter + + port@5: + $ref: /schemas/graph.yaml#/properties/port + description: First DP IN adapter + + port@6: + $ref: /schemas/graph.yaml#/properties/port + description: Second DP IN adapter + + required: + - port@1 + patternProperties: + "^iommu@(a80000|1a80000)$": + $ref: /schemas/iommu/apple,dart.yaml# + description: DART IOMMU exposed by ACIO and used for DMA from the NHI + + "^nhi@(f00000|1f00000)$": + $ref: /schemas/thunderbolt/apple,t8103-usb4-nhi.yaml# + description: Native Host Interface exposed by ACIO + required: + - compatible + - reg + - reg-names + - mboxes + - power-domains + - resets + - thunderbolt-switch + - '#address-cells' + - '#size-cells' + - ranges + - nonposted-mmio + - ports + allOf: + - $ref: /schemas/usb/usb-switch.yaml# + - if: + properties: + compatible: + contains: + const: apple,t8132-usb4-acio + then: + properties: + reg: + minItems: 4 + reg-names: + minItems: 4 + pinctrl-names: + items: + - const: lstx + else: + properties: + lstx-gpios: false + - if: + properties: + compatible: + contains: + const: apple,t6040-usb4-acio + then: + required: + - iommu@1a80000 + - nhi@1f00000 + - interrupts + - interrupt-names + else: + required: + - iommu@a80000 + - nhi@f00000 + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml index ef291724b5a67..b27cae7db3b60 100644 --- a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml +++ b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/thunderbolt/apple,t8103-usb4-nhi.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple Silicon USB4/Thunderbolt Native Host Interface (NHI) @@ -17,88 +18,49 @@ description: | The ACIO co-processor exposes its registers to the main SoC bus while it is running. The NHI is therefore represented as a child of the ACIO node. -properties: - compatible: - oneOf: - - const: apple,t8103-usb4-nhi - - const: apple,t8142-usb4-nhi - - const: apple,t6040-usb4-nhi - - items: - - enum: - - apple,t6000-usb4-nhi - - apple,t6020-usb4-nhi - - apple,t6030-usb4-nhi - - apple,t6031-usb4-nhi - - apple,t8112-usb4-nhi - - apple,t8122-usb4-nhi - - apple,t8132-usb4-nhi - - const: apple,t8103-usb4-nhi - - reg: - minItems: 1 - items: - - description: NHI registers with the transmit and receive rings - - description: - Protocol Defined Field (PDF) bitmasks selecting which frames are - accepted by each receive ring - - reg-names: - minItems: 1 - items: - - const: nhi - - const: pdf - - interrupts: - description: - One interrupt for each of the 12 transmit rings followed by one for each - of the 12 receive rings. - maxItems: 24 - - interrupt-names: - items: - - const: txring0 - - const: txring1 - - const: txring2 - - const: txring3 - - const: txring4 - - const: txring5 - - const: txring6 - - const: txring7 - - const: txring8 - - const: txring9 - - const: txring10 - - const: txring11 - - const: rxring0 - - const: rxring1 - - const: rxring2 - - const: rxring3 - - const: rxring4 - - const: rxring5 - - const: rxring6 - - const: rxring7 - - const: rxring8 - - const: rxring9 - - const: rxring10 - - const: rxring11 - - iommus: - minItems: 1 - maxItems: 24 - description: | - T6000 and T6020 use two IOMMUs: The first is used for transmit ring 0 - and receive ring 0 which carry control traffic. The second is shared by - all other rings which are only used for XDomain connections to other - hosts. - - T8142 uses one DART stream per ring: TX streams 0-11 and RX streams 16-27. - T6030, T6031 and T8122 also use 24 entries. These are most likely one DART - stream for each of the 12 transmit and 12 receive rings. +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,t6000-usb4-nhi" + - "apple,t6020-usb4-nhi" + - "apple,t6030-usb4-nhi" + - "apple,t6031-usb4-nhi" + - "apple,t6040-usb4-nhi" + - "apple,t8103-usb4-nhi" + - "apple,t8112-usb4-nhi" + - "apple,t8122-usb4-nhi" + - "apple,t8132-usb4-nhi" + - "apple,t8142-usb4-nhi" + - "apple,thunderbolt-drom" + - "apple,tunable-nhi" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-usb4-nhi" + - + const: "apple,usb4-nhi" + required: + - "compatible" +properties: + compatible: true + reg: true + reg-names: true + interrupts: true + interrupt-names: true + iommus: true apple,thunderbolt-drom: $ref: /schemas/types.yaml#/definitions/uint8-array description: DROM of the host router built by the bootloader from Apple's Device Tree. - apple,tunable-nhi: $ref: /schemas/types.yaml#/definitions/uint32-matrix items: @@ -110,68 +72,213 @@ properties: List of (register offset, mask, value) tuples copied from Apple's Device Tree, converted by the bootloader and used to configure the NHI after the co-processor has booted. - -required: - - compatible - - reg - - reg-names - - interrupts - - interrupt-names - - iommus - - apple,thunderbolt-drom + power-domains: true + clocks: true + resets: true + status: true allOf: - if: - properties: - compatible: - contains: - enum: - - apple,t8142-usb4-nhi - - apple,t6040-usb4-nhi + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-usb4-nhi" + - + const: "apple,usb4-nhi" + status: + const: "disabled" + required: + - "compatible" + - "status" then: - properties: - reg: - maxItems: 1 - reg-names: - maxItems: 1 + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-usb4-nhi" + - + const: "apple,usb4-nhi" + status: + const: "disabled" + reg: + minItems: 6 + maxItems: 6 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 25 + maxItems: 25 + iommus: + minItems: 1 + maxItems: 24 + power-domains: + minItems: 4 + maxItems: 4 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + additionalProperties: false else: properties: + compatible: + oneOf: + - const: apple,t8103-usb4-nhi + - const: apple,t8142-usb4-nhi + - const: apple,t6040-usb4-nhi + - items: + - enum: + - apple,t6000-usb4-nhi + - apple,t6020-usb4-nhi + - apple,t6030-usb4-nhi + - apple,t6031-usb4-nhi + - apple,t8112-usb4-nhi + - apple,t8122-usb4-nhi + - apple,t8132-usb4-nhi + - const: apple,t8103-usb4-nhi + reg: - minItems: 2 + minItems: 1 + items: + - description: NHI registers with the transmit and receive rings + - description: + Protocol Defined Field (PDF) bitmasks selecting which frames are + accepted by each receive ring + reg-names: - minItems: 2 - - if: - properties: - compatible: - contains: - enum: - - apple,t6030-usb4-nhi - - apple,t6031-usb4-nhi - - apple,t8122-usb4-nhi - - apple,t8132-usb4-nhi - - apple,t8142-usb4-nhi - - apple,t6040-usb4-nhi - then: - properties: + minItems: 1 + items: + - const: nhi + - const: pdf + + interrupts: + description: + One interrupt for each of the 12 transmit rings followed by one for each + of the 12 receive rings. + maxItems: 24 + + interrupt-names: + items: + - const: txring0 + - const: txring1 + - const: txring2 + - const: txring3 + - const: txring4 + - const: txring5 + - const: txring6 + - const: txring7 + - const: txring8 + - const: txring9 + - const: txring10 + - const: txring11 + - const: rxring0 + - const: rxring1 + - const: rxring2 + - const: rxring3 + - const: rxring4 + - const: rxring5 + - const: rxring6 + - const: rxring7 + - const: rxring8 + - const: rxring9 + - const: rxring10 + - const: rxring11 + iommus: - minItems: 24 + minItems: 1 maxItems: 24 - else: - if: - properties: - compatible: - contains: - enum: - - apple,t6000-usb4-nhi - - apple,t6020-usb4-nhi - then: - properties: - iommus: - minItems: 2 - maxItems: 2 - else: - properties: - iommus: - maxItems: 1 - -additionalProperties: false + description: | + T6000 and T6020 use two IOMMUs: The first is used for transmit ring 0 + and receive ring 0 which carry control traffic. The second is shared by + all other rings which are only used for XDomain connections to other + hosts. + + T8142 uses one DART stream per ring: TX streams 0-11 and RX streams 16-27. + T6030, T6031 and T8122 also use 24 entries. These are most likely one DART + stream for each of the 12 transmit and 12 receive rings. + + apple,thunderbolt-drom: + $ref: /schemas/types.yaml#/definitions/uint8-array + description: + DROM of the host router built by the bootloader from Apple's Device Tree. + + apple,tunable-nhi: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + items: + items: + - description: Register offset + - description: Mask of bits to clear + - description: Bits to set + description: | + List of (register offset, mask, value) tuples copied from Apple's Device + Tree, converted by the bootloader and used to configure the NHI after + the co-processor has booted. + required: + - compatible + - reg + - reg-names + - interrupts + - interrupt-names + - iommus + - apple,thunderbolt-drom + allOf: + - if: + properties: + compatible: + contains: + enum: + - apple,t8142-usb4-nhi + - apple,t6040-usb4-nhi + then: + properties: + reg: + maxItems: 1 + reg-names: + maxItems: 1 + else: + properties: + reg: + minItems: 2 + reg-names: + minItems: 2 + - if: + properties: + compatible: + contains: + enum: + - apple,t6030-usb4-nhi + - apple,t6031-usb4-nhi + - apple,t8122-usb4-nhi + - apple,t8132-usb4-nhi + - apple,t8142-usb4-nhi + - apple,t6040-usb4-nhi + then: + properties: + iommus: + minItems: 24 + maxItems: 24 + else: + if: + properties: + compatible: + contains: + enum: + - apple,t6000-usb4-nhi + - apple,t6020-usb4-nhi + then: + properties: + iommus: + minItems: 2 + maxItems: 2 + else: + properties: + iommus: + maxItems: 1 + additionalProperties: false diff --git a/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml b/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml index 34bf3ec296b0f..0cc6086e26a76 100644 --- a/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml +++ b/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/timer/apple,aic-timebase.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple AIC timebase @@ -12,27 +13,103 @@ maintainers: description: | The timebase register aperture associated with the interrupt controller. +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,aic-timebase" + - "apple,t6000-aic-timebase" + - "apple,t6020-aic-timebase" + - "apple,t6021-aic-timebase" + - "apple,t6022-aic-timebase" + - "apple,t6041-aic-timebase" + - "apple,t8103-aic-timebase" + - "apple,t8112-aic-timebase" + - "apple,t8142-aic-timebase" + - "apple,t8152-aic-timebase" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-aic-timebase" + - + const: "apple,aic-timebase" + required: + - "compatible" + properties: - compatible: - items: - - enum: - - apple,t6000-aic-timebase - - apple,t6020-aic-timebase - - apple,t6021-aic-timebase - - apple,t6022-aic-timebase - - apple,t6041-aic-timebase - - apple,t8103-aic-timebase - - apple,t8112-aic-timebase - - apple,t8142-aic-timebase - - apple,t8152-aic-timebase - - const: apple,aic-timebase - - reg: - maxItems: 1 - description: Register apertures in hardware-description order. - -required: - - compatible - - reg - -additionalProperties: false + compatible: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + status: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-aic-timebase" + - + const: "apple,aic-timebase" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-aic-timebase" + - + const: "apple,aic-timebase" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + required: + - "compatible" + - "reg" + - "status" + additionalProperties: false + else: + properties: + compatible: + items: + - enum: + - apple,t6000-aic-timebase + - apple,t6020-aic-timebase + - apple,t6021-aic-timebase + - apple,t6022-aic-timebase + - apple,t6041-aic-timebase + - apple,t8103-aic-timebase + - apple,t8112-aic-timebase + - apple,t8142-aic-timebase + - apple,t8152-aic-timebase + - const: apple,aic-timebase + + reg: + maxItems: 1 + description: Register apertures in hardware-description order. + required: + - compatible + - reg + additionalProperties: false diff --git a/Documentation/devicetree/bindings/usb/apple,dwc3.yaml b/Documentation/devicetree/bindings/usb/apple,dwc3.yaml index d68a4b68d77ca..b254814f11a6c 100644 --- a/Documentation/devicetree/bindings/usb/apple,dwc3.yaml +++ b/Documentation/devicetree/bindings/usb/apple,dwc3.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/usb/apple,dwc3.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple Silicon DWC3 USB controller @@ -13,106 +14,215 @@ description: Apple Silicon SoCs use a Synopsys DesignWare DWC3 based controller for each of their Type-C ports. -allOf: - - $ref: snps,dwc3-common.yaml# - - if: +select: + anyOf: + - properties: compatible: - not: - contains: - const: apple,t8132-dwc3 - then: + contains: + enum: + - "apple,t6000-dwc3" + - "apple,t6020-dwc3" + - "apple,t6030-dwc3" + - "apple,t6031-dwc3" + - "apple,t6040-dwc3" + - "apple,t8103-dwc3" + - "apple,t8112-dwc3" + - "apple,t8122-dwc3" + - "apple,t8132-dwc3" + - "apple,t8140-dwc3" + - "apple,t8142-dwc3" + - "apple,tunable" + - "apple,tunable-cfg-host" + - "apple,tunable-dbg" + - "apple,tunable-gbl-default" + - "apple,tunable-gbl-host" + - "apple,tunable-link" required: - - power-domains - -$defs: - apple,tunable: - $ref: /schemas/types.yaml#/definitions/uint32-matrix - minItems: 1 - maxItems: 512 - items: - items: - - description: Register offset - - description: Mask to be applied to the register value - - description: Bits to be set after applying the mask - description: > - Controller table from the device's Apple device tree, applied after - every core reset (T6040). + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-dwc3" + - + const: "apple,dwc3" + required: + - "compatible" properties: - compatible: - oneOf: - - items: - - enum: - - apple,t6000-dwc3 - - apple,t6020-dwc3 - - apple,t6030-dwc3 - - apple,t6031-dwc3 - - apple,t6040-dwc3 - - apple,t8112-dwc3 - - apple,t8122-dwc3 - - apple,t8140-dwc3 - - apple,t8142-dwc3 - - const: apple,t8103-dwc3 - - const: apple,t8103-dwc3 - - const: apple,t8132-dwc3 - - reg: - minItems: 2 - items: - - description: Core DWC3 region - - description: Apple-specific DWC3 region - - description: Controller configuration block (T6040) - - reg-names: - minItems: 2 - items: - - const: dwc3-core - - const: dwc3-apple - - const: drd-cfg - - interrupts: - maxItems: 1 - - iommus: - maxItems: 2 - - resets: - maxItems: 1 - - power-domains: - maxItems: 1 - + compatible: true + reg: true + reg-names: true + interrupts: true + iommus: true + resets: true + power-domains: true apple,tunable-gbl-default: $ref: "#/$defs/apple,tunable" description: Tunables applied to the DWC3 global registers. - apple,tunable-gbl-host: $ref: "#/$defs/apple,tunable" description: Host mode tunables applied to the DWC3 global registers. - apple,tunable-dbg: $ref: "#/$defs/apple,tunable" description: Tunables applied to the debug registers of the Apple region. - apple,tunable-cfg-host: $ref: "#/$defs/apple,tunable" description: Host mode tunables applied to the drd-cfg region. - apple,tunable-link: $ref: "#/$defs/apple,tunable" description: Tunables applied to the link registers of the Apple region. + clocks: true + status: true -required: - - compatible - - reg - - reg-names - - interrupts - - iommus - - resets - - usb-role-switch +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-dwc3" + - + const: "apple,dwc3" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-dwc3" + - + const: "apple,dwc3" + status: + const: "disabled" + reg: + minItems: 10 + maxItems: 10 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 5 + iommus: + maxItems: 1 + power-domains: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "power-domains" + additionalProperties: false + else: + allOf: + - $ref: snps,dwc3-common.yaml# + - if: + properties: + compatible: + not: + contains: + const: apple,t8132-dwc3 + then: + required: + - power-domains + properties: + compatible: + oneOf: + - items: + - enum: + - apple,t6000-dwc3 + - apple,t6020-dwc3 + - apple,t6030-dwc3 + - apple,t6031-dwc3 + - apple,t6040-dwc3 + - apple,t8112-dwc3 + - apple,t8122-dwc3 + - apple,t8140-dwc3 + - apple,t8142-dwc3 + - const: apple,t8103-dwc3 + - const: apple,t8103-dwc3 + - const: apple,t8132-dwc3 + + reg: + minItems: 2 + items: + - description: Core DWC3 region + - description: Apple-specific DWC3 region + - description: Controller configuration block (T6040) + + reg-names: + minItems: 2 + items: + - const: dwc3-core + - const: dwc3-apple + - const: drd-cfg + + interrupts: + maxItems: 1 + + iommus: + maxItems: 2 + + resets: + maxItems: 1 + + power-domains: + maxItems: 1 + + apple,tunable-gbl-default: + $ref: "#/$defs/apple,tunable" + description: Tunables applied to the DWC3 global registers. + + apple,tunable-gbl-host: + $ref: "#/$defs/apple,tunable" + description: Host mode tunables applied to the DWC3 global registers. + + apple,tunable-dbg: + $ref: "#/$defs/apple,tunable" + description: Tunables applied to the debug registers of the Apple region. + + apple,tunable-cfg-host: + $ref: "#/$defs/apple,tunable" + description: Host mode tunables applied to the drd-cfg region. + + apple,tunable-link: + $ref: "#/$defs/apple,tunable" + description: Tunables applied to the link registers of the Apple region. + required: + - compatible + - reg + - reg-names + - interrupts + - iommus + - resets + - usb-role-switch + unevaluatedProperties: false -unevaluatedProperties: false +$defs: + apple,tunable: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + minItems: 1 + maxItems: 512 + items: + items: + - description: Register offset + - description: Mask to be applied to the register value + - description: Bits to be set after applying the mask + description: > + Controller table from the device's Apple device tree, applied after + every core reset (T6040). examples: - | diff --git a/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml b/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml index d09fb81bd506b..383a4886ff287 100644 --- a/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml +++ b/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/watchdog/apple,wdt.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple SoC Watchdog @@ -9,52 +10,142 @@ title: Apple SoC Watchdog maintainers: - Sven Peter -allOf: - - $ref: watchdog.yaml# +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,s5l8960x-wdt" + - "apple,s8000-wdt" + - "apple,t6000-wdt" + - "apple,t6020-wdt" + - "apple,t6030-wdt" + - "apple,t6031-wdt" + - "apple,t6041-wdt" + - "apple,t6050-wdt" + - "apple,t7000-wdt" + - "apple,t8010-wdt" + - "apple,t8015-wdt" + - "apple,t8103-wdt" + - "apple,t8112-wdt" + - "apple,t8122-wdt" + - "apple,t8132-wdt" + - "apple,t8140-wdt" + - "apple,wdt" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-wdt" + - + const: "apple,wdt" + required: + - "compatible" properties: - compatible: - oneOf: - - items: - - enum: - - apple,t6020-wdt - - apple,t6030-wdt - - apple,t6031-wdt - - apple,t6041-wdt - - apple,t6050-wdt - - apple,t8122-wdt - - apple,t8132-wdt - - apple,t8140-wdt - - const: apple,t8103-wdt - - items: - - enum: - # Do not add additional SoC to this list. - - apple,s5l8960x-wdt - - apple,t7000-wdt - - apple,s8000-wdt - - apple,t8010-wdt - - apple,t8015-wdt - - apple,t8103-wdt - - apple,t8112-wdt - - apple,t6000-wdt - - const: apple,wdt + compatible: true + reg: true + clocks: true + interrupts: true + iommus: true + power-domains: true + resets: true + status: true - reg: - maxItems: 1 - - clocks: - maxItems: 1 +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-wdt" + - + const: "apple,wdt" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-wdt" + - + const: "apple,wdt" + status: + const: "disabled" + reg: + minItems: 5 + maxItems: 5 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 2 + maxItems: 2 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "clocks" + additionalProperties: false + else: + allOf: + - $ref: watchdog.yaml# + properties: + compatible: + oneOf: + - items: + - enum: + - apple,t6020-wdt + - apple,t6030-wdt + - apple,t6031-wdt + - apple,t6041-wdt + - apple,t6050-wdt + - apple,t8122-wdt + - apple,t8132-wdt + - apple,t8140-wdt + - const: apple,t8103-wdt + - items: + - enum: + # Do not add additional SoC to this list. + - apple,s5l8960x-wdt + - apple,t7000-wdt + - apple,s8000-wdt + - apple,t8010-wdt + - apple,t8015-wdt + - apple,t8103-wdt + - apple,t8112-wdt + - apple,t6000-wdt + - const: apple,wdt - interrupts: - maxItems: 1 + reg: + maxItems: 1 -required: - - compatible - - reg - - clocks - - interrupts + clocks: + maxItems: 1 -unevaluatedProperties: false + interrupts: + maxItems: 1 + required: + - compatible + - reg + - clocks + - interrupts + unevaluatedProperties: false examples: - | diff --git a/arch/arm64/boot/dts/apple/Makefile b/arch/arm64/boot/dts/apple/Makefile index 67b877059b755..fbf6460407afa 100644 --- a/arch/arm64/boot/dts/apple/Makefile +++ b/arch/arm64/boot/dts/apple/Makefile @@ -128,3 +128,13 @@ dtb-$(CONFIG_ARCH_APPLE) += t8152-j804.dtb dtb-$(CONFIG_ARCH_APPLE) += t8152-j833ct.dtb # Explicit cold-ANE lead test; never select as the production board DTB. +dtb-$(CONFIG_ARCH_APPLE) += t6050-j714c.dtb +dtb-$(CONFIG_ARCH_APPLE) += t6050-j714s.dtb +dtb-$(CONFIG_ARCH_APPLE) += t6050-j716c.dtb +dtb-$(CONFIG_ARCH_APPLE) += t6050-j716s.dtb +dtb-$(CONFIG_ARCH_APPLE) += t6050-j775c.dtb +dtb-$(CONFIG_ARCH_APPLE) += t6050-j873s.dtb +dtb-$(CONFIG_ARCH_APPLE) += t6050-k114c.dtb +dtb-$(CONFIG_ARCH_APPLE) += t6050-k114s.dtb +dtb-$(CONFIG_ARCH_APPLE) += t6050-k116c.dtb +dtb-$(CONFIG_ARCH_APPLE) += t6050-k116s.dtb diff --git a/arch/arm64/boot/dts/apple/t6050-j714c.dts b/arch/arm64/boot/dts/apple/t6050-j714c.dts new file mode 100644 index 0000000000000..452222ac1ea87 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-j714c.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/dts-v1/; + +#define T6050_J714C +#include "t6050.dtsi" +#include "t6050-peripherals.dtsi" + +/ { + model = "Apple J714C"; + compatible = "apple,j714c", "apple,t6050", "apple,arm-platform"; + chassis-type = "laptop"; +}; diff --git a/arch/arm64/boot/dts/apple/t6050-j714s.dts b/arch/arm64/boot/dts/apple/t6050-j714s.dts new file mode 100644 index 0000000000000..a2e32a932c07e --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-j714s.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/dts-v1/; + +#define T6050_J714S +#include "t6050.dtsi" +#include "t6050-peripherals.dtsi" + +/ { + model = "Apple J714S"; + compatible = "apple,j714s", "apple,t6050", "apple,arm-platform"; + chassis-type = "laptop"; +}; diff --git a/arch/arm64/boot/dts/apple/t6050-j716c.dts b/arch/arm64/boot/dts/apple/t6050-j716c.dts new file mode 100644 index 0000000000000..b5688c6c38777 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-j716c.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/dts-v1/; + +#define T6050_J716C +#include "t6050.dtsi" +#include "t6050-peripherals.dtsi" + +/ { + model = "Apple J716C"; + compatible = "apple,j716c", "apple,t6050", "apple,arm-platform"; + chassis-type = "laptop"; +}; diff --git a/arch/arm64/boot/dts/apple/t6050-j716s.dts b/arch/arm64/boot/dts/apple/t6050-j716s.dts new file mode 100644 index 0000000000000..b5376a5bf5b81 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-j716s.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/dts-v1/; + +#define T6050_J716S +#include "t6050.dtsi" +#include "t6050-peripherals.dtsi" + +/ { + model = "Apple J716S"; + compatible = "apple,j716s", "apple,t6050", "apple,arm-platform"; + chassis-type = "laptop"; +}; diff --git a/arch/arm64/boot/dts/apple/t6050-j775c.dts b/arch/arm64/boot/dts/apple/t6050-j775c.dts new file mode 100644 index 0000000000000..af49d89e962f5 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-j775c.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/dts-v1/; + +#define T6050_J775C +#include "t6050.dtsi" +#include "t6050-peripherals.dtsi" + +/ { + model = "Apple J775C"; + compatible = "apple,j775c", "apple,t6050", "apple,arm-platform"; + chassis-type = "desktop"; +}; diff --git a/arch/arm64/boot/dts/apple/t6050-j775d.dts b/arch/arm64/boot/dts/apple/t6050-j775d.dts index 5c0b238dc096f..7d02abdaa3a87 100644 --- a/arch/arm64/boot/dts/apple/t6050-j775d.dts +++ b/arch/arm64/boot/dts/apple/t6050-j775d.dts @@ -699,3 +699,6 @@ hdmi-pwren-gpios = <&smc_pcio 0 GPIO_ACTIVE_HIGH>; dp2hdmi-pwren-gpios = <&smc_pcio 1 GPIO_ACTIVE_HIGH>; }; + +#define T6050_J775D +#include "t6050-peripherals.dtsi" diff --git a/arch/arm64/boot/dts/apple/t6050-j873s.dts b/arch/arm64/boot/dts/apple/t6050-j873s.dts new file mode 100644 index 0000000000000..62b1d5ec69155 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-j873s.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/dts-v1/; + +#define T6050_J873S +#include "t6050.dtsi" +#include "t6050-peripherals.dtsi" + +/ { + model = "Apple J873S"; + compatible = "apple,j873s", "apple,t6050", "apple,arm-platform"; + chassis-type = "desktop"; +}; diff --git a/arch/arm64/boot/dts/apple/t6050-k114c.dts b/arch/arm64/boot/dts/apple/t6050-k114c.dts new file mode 100644 index 0000000000000..0d7ee4fb4f8b2 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-k114c.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/dts-v1/; + +#define T6050_K114C +#include "t6050.dtsi" +#include "t6050-peripherals.dtsi" + +/ { + model = "Apple K114C"; + compatible = "apple,k114c", "apple,t6050", "apple,arm-platform"; + chassis-type = "laptop"; +}; diff --git a/arch/arm64/boot/dts/apple/t6050-k114s.dts b/arch/arm64/boot/dts/apple/t6050-k114s.dts new file mode 100644 index 0000000000000..316008999a685 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-k114s.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/dts-v1/; + +#define T6050_K114S +#include "t6050.dtsi" +#include "t6050-peripherals.dtsi" + +/ { + model = "Apple K114S"; + compatible = "apple,k114s", "apple,t6050", "apple,arm-platform"; + chassis-type = "laptop"; +}; diff --git a/arch/arm64/boot/dts/apple/t6050-k116c.dts b/arch/arm64/boot/dts/apple/t6050-k116c.dts new file mode 100644 index 0000000000000..45945652fa35c --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-k116c.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/dts-v1/; + +#define T6050_K116C +#include "t6050.dtsi" +#include "t6050-peripherals.dtsi" + +/ { + model = "Apple K116C"; + compatible = "apple,k116c", "apple,t6050", "apple,arm-platform"; + chassis-type = "laptop"; +}; diff --git a/arch/arm64/boot/dts/apple/t6050-k116s.dts b/arch/arm64/boot/dts/apple/t6050-k116s.dts new file mode 100644 index 0000000000000..0b5ebba8b861d --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-k116s.dts @@ -0,0 +1,12 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/dts-v1/; + +#define T6050_K116S +#include "t6050.dtsi" +#include "t6050-peripherals.dtsi" + +/ { + model = "Apple K116S"; + compatible = "apple,k116s", "apple,t6050", "apple,arm-platform"; + chassis-type = "laptop"; +}; diff --git a/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi new file mode 100644 index 0000000000000..27ca11fcf868a --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi @@ -0,0 +1,3588 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Shared hardware resources. No firmware, tuning or enable policy. */ +/ { + soc { + compatible = "simple-bus"; + #address-cells = <2>; + #size-cells = <2>; + ranges; + nonposted-mmio; + }; +}; + +&pmgr0 { + ps_pms: power-controller@100 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x100 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "pms"; + status = "disabled"; + }; + ps_pmp: power-controller@128 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x128 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "pmp"; + power-domains = <&ps_pms>; + status = "disabled"; + }; + ps_pms_sram: power-controller@130 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x130 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "pms-sram"; + power-domains = <&ps_pms>; + status = "disabled"; + }; + ps_fab0_piogw: power-controller@1d8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1d8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fab0-piogw"; + status = "disabled"; + }; + ps_fab3_soc: power-controller@1e0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1e0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fab3-soc"; + power-domains = <&ps_fab0_piogw>; + status = "disabled"; + }; + ps_fab5_soc: power-controller@1f0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1f0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fab5-soc"; + power-domains = <&ps_fab0_piogw>; + status = "disabled"; + }; + ps_sbr: power-controller@1f8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1f8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "sbr"; + power-domains = <&ps_fab3_soc>; + status = "disabled"; + }; + ps_atc0_common: power-controller@208 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x208 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc0-common"; + power-domains = <&ps_fab3_soc>; + status = "disabled"; + }; + ps_msg: power-controller@258 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x258 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "msg"; + power-domains = <&ps_sbr>; + status = "disabled"; + }; + ps_atc0_cio: power-controller@280 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x280 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc0-cio"; + power-domains = <&ps_atc0_common>; + status = "disabled"; + }; + ps_atc0_pcie: power-controller@288 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x288 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc0-pcie"; + power-domains = <&ps_atc0_common>; + status = "disabled"; + }; + ps_atc1_cio: power-controller@290 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x290 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc1-cio"; + power-domains = <&ps_atc1_common>; + status = "disabled"; + }; + ps_atc1_pcie: power-controller@298 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x298 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc1-pcie"; + power-domains = <&ps_atc1_common>; + status = "disabled"; + }; + ps_atc2_cio: power-controller@2e8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2e8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc2-cio"; + power-domains = <&ps_atc2_common>; + status = "disabled"; + }; + ps_atc2_pcie: power-controller@2f0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2f0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc2-pcie"; + power-domains = <&ps_atc2_common>; + status = "disabled"; + }; + ps_atc3_pcie: power-controller@300 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x300 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc3-pcie"; + power-domains = <&ps_atc3_common>; + status = "disabled"; + }; + ps_atc0_cio_pcie: power-controller@338 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x338 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc0-cio-pcie"; + power-domains = <&ps_atc0_cio>; + status = "disabled"; + }; + ps_atc0_cio_usb: power-controller@340 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x340 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc0-cio-usb"; + power-domains = <&ps_atc0_cio>; + status = "disabled"; + }; + ps_atc0_cio_auss: power-controller@348 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x348 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc0-cio-auss"; + power-domains = <&ps_atc0_cio>, <&ps_auss>; + status = "disabled"; + }; + ps_atc1_cio_pcie: power-controller@350 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x350 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc1-cio-pcie"; + power-domains = <&ps_atc1_cio>; + status = "disabled"; + }; + ps_atc1_cio_usb: power-controller@358 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x358 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc1-cio-usb"; + power-domains = <&ps_atc1_cio>; + status = "disabled"; + }; + ps_atc1_cio_auss: power-controller@360 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x360 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc1-cio-auss"; + power-domains = <&ps_atc1_cio>, <&ps_auss>; + status = "disabled"; + }; + ps_atc2_cio_pcie: power-controller@3f8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x3f8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc2-cio-pcie"; + power-domains = <&ps_atc2_cio>; + status = "disabled"; + }; + ps_atc2_cio_usb: power-controller@400 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x400 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc2-cio-usb"; + power-domains = <&ps_atc2_cio>; + status = "disabled"; + }; + ps_atc2_cio_auss: power-controller@408 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x408 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc2-cio-auss"; + power-domains = <&ps_atc2_cio>, <&ps_auss>; + status = "disabled"; + }; +}; + +&pmgr1 { + ps_global_aux_hpd_0: power-controller@108 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x108 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "global-aux-hpd-0"; + status = "disabled"; + }; + ps_global_aux_hpd_1: power-controller@110 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x110 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "global-aux-hpd-1"; + status = "disabled"; + }; + ps_apcie_gp: power-controller@118 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x118 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "apcie-gp"; + status = "disabled"; + }; + ps_apcie_ge: power-controller@120 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x120 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "apcie-ge"; + status = "disabled"; + }; + ps_apcie_st0: power-controller@128 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x128 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "apcie-st0"; + status = "disabled"; + }; + ps_apcie_st1: power-controller@130 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x130 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "apcie-st1"; + status = "disabled"; + }; + ps_fab6_soc: power-controller@138 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x138 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fab6-soc"; + power-domains = <&ps_fab0_piogw>; + status = "disabled"; + }; + ps_ans: power-controller@140 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x140 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "ans"; + power-domains = <&ps_fab6_soc>; + status = "disabled"; + }; + ps_apcie_sys_gp: power-controller@148 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x148 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "apcie-sys-gp"; + power-domains = <&ps_apcie_gp>, <&ps_fab6_soc>; + status = "disabled"; + }; + ps_apcie_sys_st0: power-controller@150 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x150 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "apcie-sys-st0"; + power-domains = <&ps_apcie_st0>, <&ps_ans>; + status = "disabled"; + }; + ps_apcie_sys_st1: power-controller@158 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x158 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "apcie-sys-st1"; + power-domains = <&ps_apcie_st1>, <&ps_ans>; + status = "disabled"; + }; + ps_fab7_soc: power-controller@178 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x178 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fab7-soc"; + power-domains = <&ps_fab0_piogw>; + status = "disabled"; + }; + ps_disp_sys: power-controller@180 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x180 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "disp-sys"; + power-domains = <&ps_fab7_soc>; + status = "disabled"; + }; + ps_apcie_sys_ge: power-controller@188 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x188 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "apcie-sys-ge"; + power-domains = <&ps_apcie_ge>, <&ps_fab6_soc>; + status = "disabled"; + }; + ps_scodec: power-controller@190 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x190 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "scodec"; + power-domains = <&ps_fab7_soc>; + status = "disabled"; + }; + ps_disp_fe: power-controller@198 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x198 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "disp-fe"; + power-domains = <&ps_disp_sys>; + status = "disabled"; + }; + ps_disp_cpu: power-controller@1a8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1a8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "disp-cpu"; + power-domains = <&ps_disp_fe>; + status = "disabled"; + }; + ps_apcie_phy_sw: power-controller@1b0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1b0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "apcie-phy-sw"; + power-domains = <&ps_apcie_sys_gp>, <&ps_apcie_sys_ge>; + status = "disabled"; + }; + ps_aphy_st0_aus5_a: power-controller@240 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x240 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "aphy-st0-aus5-a"; + power-domains = <&ps_apcie_phy_sw>; + status = "disabled"; + }; + ps_aphy_st1_aus5_a: power-controller@248 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x248 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "aphy-st1-aus5-a"; + power-domains = <&ps_apcie_phy_sw>; + status = "disabled"; + }; + ps_aphy_ge_aus5_a: power-controller@250 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x250 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "aphy-ge-aus5-a"; + power-domains = <&ps_apcie_phy_sw>; + status = "disabled"; + }; + ps_aphy_gp_aus5_a: power-controller@258 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x258 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "aphy-gp-aus5-a"; + power-domains = <&ps_apcie_phy_sw>; + status = "disabled"; + }; + ps_aphy_st0_aus5: power-controller@268 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x268 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "aphy-st0-aus5"; + power-domains = <&ps_aphy_st0_aus5_a>; + status = "disabled"; + }; + ps_aphy_st1_aus5: power-controller@270 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x270 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "aphy-st1-aus5"; + power-domains = <&ps_aphy_st1_aus5_a>; + status = "disabled"; + }; + ps_aphy_ge_aus5: power-controller@278 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x278 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "aphy-ge-aus5"; + power-domains = <&ps_aphy_ge_aus5_a>; + status = "disabled"; + }; + ps_aphy_gp_aus5: power-controller@280 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x280 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "aphy-gp-aus5"; + power-domains = <&ps_aphy_gp_aus5_a>; + status = "disabled"; + }; + ps_fab8_soc: power-controller@288 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x288 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fab8-soc"; + power-domains = <&ps_fab0_piogw>; + status = "disabled"; + }; + ps_sio: power-controller@290 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x290 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "sio"; + power-domains = <&ps_fab8_soc>; + status = "disabled"; + }; + ps_sep: power-controller@298 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x298 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "sep"; + power-domains = <&ps_fab8_soc>; + status = "disabled"; + }; + ps_sio_cpu: power-controller@2a0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2a0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "sio-cpu"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_fpwm0: power-controller@2a8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2a8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fpwm0"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_fpwm1: power-controller@2b0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2b0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fpwm1"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_fpwm2: power-controller@2b8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2b8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fpwm2"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_i2c0: power-controller@2c0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2c0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "i2c0"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_i2c3: power-controller@2d8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2d8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "i2c3"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_i2c4: power-controller@2e0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2e0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "i2c4"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_i2c5: power-controller@2e8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2e8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "i2c5"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_i2c6: power-controller@2f0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2f0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "i2c6"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_i2c7: power-controller@2f8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2f8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "i2c7"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_i2c8: power-controller@300 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x300 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "i2c8"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_uart_p: power-controller@310 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x310 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "uart-p"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_aes: power-controller@318 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x318 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "aes"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_spi2: power-controller@330 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x330 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "spi2"; + power-domains = <&ps_spi_p>; + status = "disabled"; + }; + ps_spi3: power-controller@338 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x338 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "spi3"; + power-domains = <&ps_spi_p>; + status = "disabled"; + }; + ps_spi4: power-controller@340 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x340 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "spi4"; + power-domains = <&ps_spi_p>; + status = "disabled"; + }; + ps_uart0: power-controller@360 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x360 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "uart0"; + power-domains = <&ps_uart_p>; + status = "disabled"; + }; + ps_fab9_soc: power-controller@398 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x398 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fab9-soc"; + power-domains = <&ps_fab0_piogw>; + status = "disabled"; + }; + ps_isp_sys: power-controller@3a0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x3a0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "isp-sys"; + power-domains = <&ps_fab9_soc>; + status = "disabled"; + }; + ps_ane_cpu: power-controller@3c8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x3c8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "ane-cpu"; + status = "disabled"; + }; + ps_dptx_phy: power-controller@3f8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x3f8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "dptx-phy"; + status = "disabled"; + }; +}; + +&pmgr2 { + ps_debug_gated: power-controller@58 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x58 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "debug-gated"; + status = "disabled"; + }; + ps_atc0_common_dp_0: power-controller@98 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x98 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc0-common-dp-0"; + status = "disabled"; + }; + ps_atc0_common_dp_1: power-controller@a0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0xa0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc0-common-dp-1"; + status = "disabled"; + }; + ps_atc0_common_dp_2: power-controller@a8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0xa8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc0-common-dp-2"; + status = "disabled"; + }; + ps_atc0_common_dp_3: power-controller@b0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0xb0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc0-common-dp-3"; + status = "disabled"; + }; + ps_atc1_common_dp_0: power-controller@b8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0xb8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc1-common-dp-0"; + status = "disabled"; + }; + ps_atc1_common_dp_1: power-controller@c0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0xc0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc1-common-dp-1"; + status = "disabled"; + }; + ps_atc1_common_dp_2: power-controller@c8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0xc8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc1-common-dp-2"; + status = "disabled"; + }; + ps_atc1_common_dp_3: power-controller@d0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0xd0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc1-common-dp-3"; + status = "disabled"; + }; + ps_atc2_common_dp_0: power-controller@d8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0xd8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc2-common-dp-0"; + status = "disabled"; + }; + ps_atc2_common_dp_1: power-controller@e0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0xe0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc2-common-dp-1"; + status = "disabled"; + }; + ps_atc2_common_dp_2: power-controller@e8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0xe8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc2-common-dp-2"; + status = "disabled"; + }; + ps_atc2_common_dp_3: power-controller@f0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0xf0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc2-common-dp-3"; + status = "disabled"; + }; + ps_atc3_common_dp_0: power-controller@f8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0xf8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc3-common-dp-0"; + status = "disabled"; + }; + ps_atc3_common_dp_1: power-controller@100 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x100 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc3-common-dp-1"; + status = "disabled"; + }; + ps_atc3_common_dp_2: power-controller@108 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x108 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc3-common-dp-2"; + status = "disabled"; + }; + ps_atc3_common_dp_3: power-controller@110 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x110 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc3-common-dp-3"; + status = "disabled"; + }; + ps_atc0_usb_aon: power-controller@148 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x148 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc0-usb-aon"; + status = "disabled"; + }; + ps_atc0_usb: power-controller@150 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x150 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc0-usb"; + power-domains = <&ps_atc0_common>, <&ps_atc0_usb_aon>; + status = "disabled"; + }; + ps_atc0_phymxwrap: power-controller@158 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x158 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc0-phymxwrap"; + power-domains = <&ps_atc0_common>, <&ps_atc0_usb_aon>; + status = "disabled"; + }; +}; + +&{/soc} { + pmgr_gpx: power-management@2300e80000 { + compatible = "apple,t6050-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd"; + reg = <0x23 0xe80000 0x0 0x4000>; + #address-cells = <1>; + #size-cells = <1>; + status = "disabled"; + }; +}; + +&pmgr_gpx { + ps_gpx: power-controller@0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "gpx"; + status = "disabled"; + }; + ps_afr: power-controller@100 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x100 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "afr"; + status = "disabled"; + }; + ps_gfx: power-controller@110 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x110 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "gfx"; + power-domains = <&ps_afr>, <&ps_gpx>; + status = "disabled"; + }; +}; + +&pmgr4 { + ps_fab1_piogw: power-controller@1a0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1a0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fab1-piogw"; + status = "disabled"; + }; + ps_fab0_soc: power-controller@1a8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1a8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fab0-soc"; + power-domains = <&ps_fab1_piogw>; + status = "disabled"; + }; + ps_fab2_soc: power-controller@1b8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1b8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fab2-soc"; + power-domains = <&ps_fab1_piogw>; + status = "disabled"; + }; + ps_venc0_sys: power-controller@1c0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1c0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "venc0-sys"; + power-domains = <&ps_fab0_soc>; + status = "disabled"; + }; + ps_msr0: power-controller@1c8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1c8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "msr0"; + power-domains = <&ps_fab0_soc>; + status = "disabled"; + }; + ps_jpg: power-controller@1d0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1d0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "jpg"; + power-domains = <&ps_fab0_soc>; + status = "disabled"; + }; + ps_prores: power-controller@1e0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1e0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "prores"; + power-domains = <&ps_fab1_soc>; + status = "disabled"; + }; + ps_venc1_sys: power-controller@1f0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1f0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "venc1-sys"; + power-domains = <&ps_fab2_soc>; + status = "disabled"; + }; + ps_msr1: power-controller@1f8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1f8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "msr1"; + power-domains = <&ps_fab2_soc>; + status = "disabled"; + }; + ps_msr0_ase_core: power-controller@200 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x200 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "msr0-ase-core"; + power-domains = <&ps_msr0>; + status = "disabled"; + }; + ps_msr1_ase_core: power-controller@208 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x208 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "msr1-ase-core"; + power-domains = <&ps_msr1>; + status = "disabled"; + }; + ps_venc0_dma: power-controller@8000 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x8000 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "venc0-dma"; + power-domains = <&ps_venc0_sys>; + status = "disabled"; + }; + ps_venc0_pipe4: power-controller@8008 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x8008 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "venc0-pipe4"; + power-domains = <&ps_venc0_dma>; + status = "disabled"; + }; + ps_venc0_pipe5: power-controller@8010 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x8010 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "venc0-pipe5"; + power-domains = <&ps_venc0_dma>; + status = "disabled"; + }; + ps_venc0_me0: power-controller@8018 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x8018 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "venc0-me0"; + power-domains = <&ps_venc0_dma>; + status = "disabled"; + }; + ps_venc0_me1: power-controller@8020 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x8020 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "venc0-me1"; + power-domains = <&ps_venc0_me0>; + status = "disabled"; + }; + ps_venc1_dma: power-controller@8028 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x8028 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "venc1-dma"; + power-domains = <&ps_venc1_sys>; + status = "disabled"; + }; + ps_venc1_pipe4: power-controller@8030 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x8030 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "venc1-pipe4"; + power-domains = <&ps_venc1_dma>; + status = "disabled"; + }; + ps_venc1_pipe5: power-controller@8038 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x8038 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "venc1-pipe5"; + power-domains = <&ps_venc1_dma>; + status = "disabled"; + }; + ps_venc1_me0: power-controller@8040 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x8040 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "venc1-me0"; + power-domains = <&ps_venc1_dma>; + status = "disabled"; + }; + ps_venc1_me1: power-controller@8048 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x8048 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "venc1-me1"; + power-domains = <&ps_venc1_me0>; + status = "disabled"; + }; +}; + +&{/soc} { + peripheral_clocks: clock-controller@280600000 { + compatible = "apple,t6050-pmgr-clocks", "apple,pmgr-clocks"; + reg = <0x2 0x80600000 0x0 0x1fc000>, + <0x2 0x80900000 0x0 0x58000>, + <0x2 0x80000000 0x0 0x80000>, + <0x2 0x80210000 0x0 0x8000>, + <0x2 0x80200000 0x0 0x4000>, + <0x2 0x806f0000 0x0 0x4000>, + <0x2 0x84000000 0x0 0x8000>, + <0x2 0x84240000 0x0 0x40000>, + <0x2 0x86000000 0x0 0x1000000>, + <0x2 0x88300000 0x0 0x84000>, + <0x2 0x88200000 0x0 0x80000>, + <0x2 0x88f00000 0x0 0x18000>, + <0x2 0x88000000 0x0 0x24000>, + <0x2 0x88e00000 0x0 0xa8000>, + <0x2 0x88360000 0x0 0x4000>, + <0x5 0x9878000 0x0 0x4000>, + <0x2 0x10e20000 0x0 0x12e8>, + <0x2 0x10e40000 0x0 0xc020>, + <0x2 0x10e50000 0x0 0x9048>, + <0x2 0x10e70000 0x0 0xffe8>, + <0x2 0x10050000 0x0 0x9018>, + <0x2 0x10150000 0x0 0x9018>, + <0x2 0x10250000 0x0 0x9018>, + <0x2 0x10350000 0x0 0x9018>, + <0x2 0x10450000 0x0 0x9018>, + <0x2 0x10550000 0x0 0x9018>, + <0x2 0x11e20000 0x0 0x12e8>, + <0x2 0x11e40000 0x0 0xc020>, + <0x2 0x11e50000 0x0 0x9048>, + <0x2 0x11e70000 0x0 0xffe8>, + <0x2 0x11050000 0x0 0x9018>, + <0x2 0x11150000 0x0 0x9018>, + <0x2 0x11250000 0x0 0x9018>, + <0x2 0x11350000 0x0 0x9018>, + <0x2 0x11450000 0x0 0x9018>, + <0x2 0x11550000 0x0 0x9018>, + <0x2 0x12e20000 0x0 0x12e8>, + <0x2 0x12e40000 0x0 0xc020>, + <0x2 0x12e50000 0x0 0x9048>, + <0x2 0x12e70000 0x0 0xffe8>, + <0x2 0x12050000 0x0 0x9018>, + <0x2 0x12150000 0x0 0x9018>, + <0x2 0x12250000 0x0 0x9018>, + <0x2 0x12350000 0x0 0x9018>, + <0x2 0x12450000 0x0 0x9018>, + <0x2 0x12550000 0x0 0x9018>, + <0x23 0x80600000 0x0 0x1e8000>, + <0x23 0x80000000 0x0 0x80000>, + <0x23 0x84000000 0x0 0x8000>, + <0x23 0x88300000 0x0 0x84000>, + <0x23 0x88200000 0x0 0x80000>, + <0x23 0xe80000 0x0 0x30000>, + <0x23 0xec0000 0x0 0x8000>, + <0x23 0xed0000 0x0 0x8000>, + <0x23 0xee0000 0x0 0x8000>, + <0x23 0xef0000 0x0 0x8000>, + <0x23 0xf00000 0x0 0x8000>, + <0x23 0xe30000 0x0 0x8000>, + <0x23 0xe70000 0x0 0x8000>, + <0x23 0x88000000 0x0 0x8000>; + #clock-cells = <1>; + apple,pmgr = <&pmgr0>; + status = "disabled"; + }; +}; + +&{/soc} { +#if defined(T6050_J714C) || defined(T6050_J716C) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K116C) + nub_spmi1: spmi@28a054000 { + compatible = "apple,t6050-spmi", "apple,spmi"; + reg = <0x2 0x8a054000 0x0 0x4000>, + <0x2 0x8a044000 0x0 0x4000>, + <0x2 0x8a040000 0x0 0x4000>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J716C) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K116C) + nub_spmi4: spmi@28a114000 { + compatible = "apple,t6050-spmi", "apple,spmi"; + reg = <0x2 0x8a114000 0x0 0x4000>, + <0x2 0x8a104000 0x0 0x4000>, + <0x2 0x8a100000 0x0 0x4000>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_J873S) + i2c5: i2c@505024000 { + compatible = "apple,t6050-i2c", "apple,t8103-i2c"; + reg = <0x5 0x5024000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_i2c5>; + clocks = <&peripheral_clocks 4>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775D) + i2c7: i2c@50502c000 { + compatible = "apple,t6050-i2c", "apple,t8103-i2c"; + reg = <0x5 0x502c000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_i2c7>; + clocks = <&peripheral_clocks 4>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; +#endif + + i2c0: i2c@505010000 { + compatible = "apple,t6050-i2c", "apple,t8103-i2c"; + reg = <0x5 0x5010000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_i2c0>; + clocks = <&peripheral_clocks 4>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + i2c3: i2c@50501c000 { + compatible = "apple,t6050-i2c", "apple,t8103-i2c"; + reg = <0x5 0x501c000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_i2c3>; + clocks = <&peripheral_clocks 4>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + i2c4: i2c@505020000 { + compatible = "apple,t6050-i2c", "apple,t8103-i2c"; + reg = <0x5 0x5020000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_i2c4>; + clocks = <&peripheral_clocks 4>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; +#endif + + i2c6: i2c@505028000 { + compatible = "apple,t6050-i2c", "apple,t8103-i2c"; + reg = <0x5 0x5028000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_i2c6>; + clocks = <&peripheral_clocks 4>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c8: i2c@505030000 { + compatible = "apple,t6050-i2c", "apple,t8103-i2c"; + reg = <0x5 0x5030000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_i2c8>; + clocks = <&peripheral_clocks 4>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + spi2: spi@505108000 { + compatible = "apple,t6050-spi", "apple,t8103-spi"; + reg = <0x5 0x5108000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_spi2>; + clocks = <&peripheral_clocks 451>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + spi4: spi@505110000 { + compatible = "apple,t6050-spi", "apple,t8103-spi"; + reg = <0x5 0x5110000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_spi4>; + clocks = <&peripheral_clocks 453>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + nub_spmi_a1: spmi@28a1a8000 { + compatible = "apple,t6050-spmi", "apple,spmi"; + reg = <0x2 0x8a1a8000 0x0 0x4000>, + <0x2 0x8a1a4000 0x0 0x4000>, + <0x2 0x8a1a0000 0x0 0x4000>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + isp0_dart: iommu@5828c0000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x5 0x828c0000 0x0 0xc000>, + <0x5 0x828e0000 0x0 0xc000>, + <0x5 0x82900000 0x0 0xc000>, + <0x5 0x828f4000 0x0 0x4000>, + <0x5 0x82914000 0x0 0x4000>, + <0x5 0x828d0000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_isp_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + pwm0: pwm@505040000 { + compatible = "apple,t6050-fpwm", "apple,s5l-fpwm"; + reg = <0x5 0x5040000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_fpwm0>; + #pwm-cells = <2>; + status = "disabled"; + }; +#endif + + apcie0_piodma: dma-controller@410030000 { + compatible = "apple,t6050-pcie-piodma", "apple,pcie-piodma"; + reg = <0x4 0x10030000 0x0 0x4000>, + <0x4 0x10034000 0x0 0x4000>, + <0x4 0x10038000 0x0 0x4000>; + interrupts = ; + iommus = <&dart_apcie0 17>; + status = "disabled"; + }; + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + apcie1_dart: iommu@411000000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x4 0x11000000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + apcie1_piodma: dma-controller@411030000 { + compatible = "apple,t6050-pcie-piodma", "apple,pcie-piodma"; + reg = <0x4 0x11030000 0x0 0x4000>, + <0x4 0x11034000 0x0 0x4000>, + <0x4 0x11038000 0x0 0x4000>; + interrupts = ; + iommus = <&apcie1_dart 17>; + status = "disabled"; + }; +#endif + + acio_phy_cpu0: phy-coproc@2a3148000 { + compatible = "apple,t6050-phy-coproc", "apple,phy-coproc"; + reg = <0x2 0xa3148000 0x0 0x4000>, + <0x2 0xa3140000 0x0 0x4000>; + interrupts = , + , + , + ; + status = "disabled"; + }; + + acio_phy_cpu1: phy-coproc@2ab148000 { + compatible = "apple,t6050-phy-coproc", "apple,phy-coproc"; + reg = <0x2 0xab148000 0x0 0x4000>, + <0x2 0xab140000 0x0 0x4000>; + interrupts = , + , + , + ; + status = "disabled"; + }; + + acio_phy_cpu2: phy-coproc@383148000 { + compatible = "apple,t6050-phy-coproc", "apple,phy-coproc"; + reg = <0x3 0x83148000 0x0 0x4000>, + <0x3 0x83140000 0x0 0x4000>; + interrupts = , + , + , + ; + status = "disabled"; + }; + + acio_phy_cpu3: phy-coproc@38b148000 { + compatible = "apple,t6050-phy-coproc", "apple,phy-coproc"; + reg = <0x3 0x8b148000 0x0 0x4000>, + <0x3 0x8b140000 0x0 0x4000>; + interrupts = , + , + , + ; + status = "disabled"; + }; + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + dockchannel_mtp: fifo@294b00000 { + compatible = "apple,t6050-dockchannel", "apple,dockchannel"; + reg = <0x2 0x94b00000 0x0 0x1000>, + <0x2 0x94b14000 0x0 0x1000>, + <0x2 0x94b30000 0x0 0x1000>, + <0x2 0x94b34000 0x0 0x1000>, + <0x2 0x94b28000 0x0 0x1000>, + <0x2 0x94b2c000 0x0 0x1000>; + interrupts = ; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + mtp: mtp@294600000 { + compatible = "apple,t6050-mtp", "apple,mtp"; + reg = <0x2 0x94600000 0x0 0x88000>, + <0x2 0x94050000 0x0 0x4000>; + interrupts = , + , + , + ; + iommus = <&mtp_dart 0>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + mtp_dart: iommu@294800000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0x94800000 0x0 0xc000>, + <0x2 0x94810000 0x0 0x4000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; +#endif + + apciec0: pcie@1c50000000 { + compatible = "apple,t6050-pciec", "apple,pciec"; + reg = <0x1c 0x50000000 0x0 0x10000000>, + <0x2 0xa4034000 0x0 0x4000>, + <0x2 0xa4020000 0x0 0x8000>, + <0x2 0xa4038000 0x0 0x4000>, + <0x2 0xa4060000 0x0 0x4000>, + <0x2 0xa0020000 0x0 0x4000>, + <0x2 0xa402c000 0x0 0x4000>, + <0x2 0xa4028000 0x0 0x4000>; + interrupts = , + , + , + , + , + ; + power-domains = <&ps_atc0_usb_aon>, <&ps_atc0_pcie>; + status = "disabled"; + }; + + apciec0_dart: iommu@2a4000000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0xa4000000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + apciec0_piodma: dma-controller@2a4068000 { + compatible = "apple,t6050-pciec-piodma", "apple,pciec-piodma"; + reg = <0x2 0xa4068000 0x0 0x4000>, + <0x2 0xa406c000 0x0 0x4000>, + <0x2 0xa4070000 0x0 0x4000>, + <0x2 0xa403c000 0x0 0x4000>; + interrupts = ; + iommus = <&apciec0_dart 254>; + status = "disabled"; + }; + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + acio0: usb4@2a1f00000 { + compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; + reg = <0x2 0xa1f00000 0x0 0x100000>, + <0x2 0xa1ac0000 0x0 0x4000>, + <0x2 0xa1ac4000 0x0 0x4000>, + <0x2 0xa1ac8000 0x0 0x4000>, + <0x2 0xa1e44000 0x0 0x4000>, + <0x2 0xa1c80000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + iommus = <&acio0_dart 0>, <&acio0_dart 1>, <&acio0_dart 2>, <&acio0_dart 3>, <&acio0_dart 4>, <&acio0_dart 5>, <&acio0_dart 6>, <&acio0_dart 7>, <&acio0_dart 8>, <&acio0_dart 9>, <&acio0_dart 10>, <&acio0_dart 11>, <&acio0_dart 16>, <&acio0_dart 17>, <&acio0_dart 18>, <&acio0_dart 19>, <&acio0_dart 20>, <&acio0_dart 21>, <&acio0_dart 22>, <&acio0_dart 23>, <&acio0_dart 24>, <&acio0_dart 25>, <&acio0_dart 26>, <&acio0_dart 27>; + power-domains = <&ps_atc0_cio_auss>, <&ps_atc0_cio>, <&ps_atc0_cio_pcie>, <&ps_atc0_cio_usb>; + status = "disabled"; + }; +#endif + + acio0_dart: iommu@2a1a80000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0xa1a80000 0x0 0xc000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + acio_cpu0: usb4-coproc@2a1108000 { + compatible = "apple,t6050-usb4-acio", "apple,usb4-acio"; + reg = <0x2 0xa1108000 0x0 0x4000>, + <0x2 0xa1100000 0x0 0x4000>; + interrupts = , + , + , + ; + status = "disabled"; + }; + + apciec1: pcie@1c60000000 { + compatible = "apple,t6050-pciec", "apple,pciec"; + reg = <0x1c 0x60000000 0x0 0x10000000>, + <0x2 0xac034000 0x0 0x4000>, + <0x2 0xac020000 0x0 0x8000>, + <0x2 0xac038000 0x0 0x4000>, + <0x2 0xac060000 0x0 0x4000>, + <0x2 0xa8020000 0x0 0x4000>, + <0x2 0xac02c000 0x0 0x4000>, + <0x2 0xac028000 0x0 0x4000>; + interrupts = , + , + , + , + , + ; + power-domains = <&ps_atc1_usb_aon>, <&ps_atc1_pcie>; + status = "disabled"; + }; + + apciec1_dart: iommu@2ac000000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0xac000000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + apciec1_piodma: dma-controller@2ac068000 { + compatible = "apple,t6050-pciec-piodma", "apple,pciec-piodma"; + reg = <0x2 0xac068000 0x0 0x4000>, + <0x2 0xac06c000 0x0 0x4000>, + <0x2 0xac070000 0x0 0x4000>, + <0x2 0xac03c000 0x0 0x4000>; + interrupts = ; + iommus = <&apciec1_dart 254>; + status = "disabled"; + }; + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + acio1: usb4@2a9f00000 { + compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; + reg = <0x2 0xa9f00000 0x0 0x100000>, + <0x2 0xa9ac0000 0x0 0x4000>, + <0x2 0xa9ac4000 0x0 0x4000>, + <0x2 0xa9ac8000 0x0 0x4000>, + <0x2 0xa9e44000 0x0 0x4000>, + <0x2 0xa9c80000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + iommus = <&acio1_dart 0>, <&acio1_dart 1>, <&acio1_dart 2>, <&acio1_dart 3>, <&acio1_dart 4>, <&acio1_dart 5>, <&acio1_dart 6>, <&acio1_dart 7>, <&acio1_dart 8>, <&acio1_dart 9>, <&acio1_dart 10>, <&acio1_dart 11>, <&acio1_dart 16>, <&acio1_dart 17>, <&acio1_dart 18>, <&acio1_dart 19>, <&acio1_dart 20>, <&acio1_dart 21>, <&acio1_dart 22>, <&acio1_dart 23>, <&acio1_dart 24>, <&acio1_dart 25>, <&acio1_dart 26>, <&acio1_dart 27>; + power-domains = <&ps_atc1_cio_auss>, <&ps_atc1_cio>, <&ps_atc1_cio_pcie>, <&ps_atc1_cio_usb>; + status = "disabled"; + }; +#endif + + acio1_dart: iommu@2a9a80000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0xa9a80000 0x0 0xc000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + acio_cpu1: usb4-coproc@2a9108000 { + compatible = "apple,t6050-usb4-acio", "apple,usb4-acio"; + reg = <0x2 0xa9108000 0x0 0x4000>, + <0x2 0xa9100000 0x0 0x4000>; + interrupts = , + , + , + ; + status = "disabled"; + }; + + apciec2: pcie@1c70000000 { + compatible = "apple,t6050-pciec", "apple,pciec"; + reg = <0x1c 0x70000000 0x0 0x10000000>, + <0x3 0x84034000 0x0 0x4000>, + <0x3 0x84020000 0x0 0x8000>, + <0x3 0x84038000 0x0 0x4000>, + <0x3 0x84060000 0x0 0x4000>, + <0x3 0x80020000 0x0 0x4000>, + <0x3 0x8402c000 0x0 0x4000>, + <0x3 0x84028000 0x0 0x4000>; + interrupts = , + , + , + , + , + ; + power-domains = <&ps_atc2_usb_aon>, <&ps_atc2_pcie>; + status = "disabled"; + }; + + apciec2_dart: iommu@384000000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x84000000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + apciec2_piodma: dma-controller@384068000 { + compatible = "apple,t6050-pciec-piodma", "apple,pciec-piodma"; + reg = <0x3 0x84068000 0x0 0x4000>, + <0x3 0x8406c000 0x0 0x4000>, + <0x3 0x84070000 0x0 0x4000>, + <0x3 0x8403c000 0x0 0x4000>; + interrupts = ; + iommus = <&apciec2_dart 254>; + status = "disabled"; + }; + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + acio2: usb4@381f00000 { + compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; + reg = <0x3 0x81f00000 0x0 0x100000>, + <0x3 0x81ac0000 0x0 0x4000>, + <0x3 0x81ac4000 0x0 0x4000>, + <0x3 0x81ac8000 0x0 0x4000>, + <0x3 0x81e44000 0x0 0x4000>, + <0x3 0x81c80000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + iommus = <&acio2_dart 0>, <&acio2_dart 1>, <&acio2_dart 2>, <&acio2_dart 3>, <&acio2_dart 4>, <&acio2_dart 5>, <&acio2_dart 6>, <&acio2_dart 7>, <&acio2_dart 8>, <&acio2_dart 9>, <&acio2_dart 10>, <&acio2_dart 11>, <&acio2_dart 16>, <&acio2_dart 17>, <&acio2_dart 18>, <&acio2_dart 19>, <&acio2_dart 20>, <&acio2_dart 21>, <&acio2_dart 22>, <&acio2_dart 23>, <&acio2_dart 24>, <&acio2_dart 25>, <&acio2_dart 26>, <&acio2_dart 27>; + power-domains = <&ps_atc2_cio_auss>, <&ps_atc2_cio>, <&ps_atc2_cio_pcie>, <&ps_atc2_cio_usb>; + status = "disabled"; + }; +#endif + + acio2_dart: iommu@381a80000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x81a80000 0x0 0xc000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + acio_cpu2: usb4-coproc@381108000 { + compatible = "apple,t6050-usb4-acio", "apple,usb4-acio"; + reg = <0x3 0x81108000 0x0 0x4000>, + <0x3 0x81100000 0x0 0x4000>; + interrupts = , + , + , + ; + status = "disabled"; + }; + + atc0_dpxbar: mux@2a324c000 { + compatible = "apple,t6050-display-crossbar", "apple,display-crossbar"; + reg = <0x2 0xa324c000 0x0 0x4000>; + status = "disabled"; + }; + + atc0_dpin0: dpin@2a1e50000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x2 0xa1e50000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + atc0_dpin1: dpin@2a1e58000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x2 0xa1e58000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + atc0_dpin2: dpin@2a1e68000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x2 0xa1e68000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + atc0_dpin3: dpin@2a1e70000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x2 0xa1e70000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + atc1_dpxbar: mux@2ab24c000 { + compatible = "apple,t6050-display-crossbar", "apple,display-crossbar"; + reg = <0x2 0xab24c000 0x0 0x4000>; + status = "disabled"; + }; + + atc1_dpin0: dpin@2a9e50000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x2 0xa9e50000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + atc1_dpin1: dpin@2a9e58000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x2 0xa9e58000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + atc1_dpin2: dpin@2a9e68000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x2 0xa9e68000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + atc1_dpin3: dpin@2a9e70000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x2 0xa9e70000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + atc2_dpxbar: mux@38324c000 { + compatible = "apple,t6050-display-crossbar", "apple,display-crossbar"; + reg = <0x3 0x8324c000 0x0 0x4000>; + status = "disabled"; + }; + + atc2_dpin0: dpin@381e50000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x3 0x81e50000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + atc2_dpin1: dpin@381e58000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x3 0x81e58000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + atc2_dpin2: dpin@381e68000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x3 0x81e68000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + atc2_dpin3: dpin@381e70000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x3 0x81e70000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + atc3_dpxbar: mux@38b24c000 { + compatible = "apple,t6050-display-crossbar", "apple,display-crossbar"; + reg = <0x3 0x8b24c000 0x0 0x4000>; + status = "disabled"; + }; +#endif + + aic_timebase: aic-timebase@280580000 { + compatible = "apple,t6050-aic-timebase", "apple,aic-timebase"; + reg = <0x2 0x80580000 0x0 0x1000>; + status = "disabled"; + }; + + aes: crypto@50500c000 { + compatible = "apple,t6050-aes", "apple,aes"; + reg = <0x5 0x500c000 0x0 0x4000>, + <0x2 0x88340000 0x0 0x8000>, + <0x2 0x88090000 0x0 0x4000>; + interrupts = ; + iommus = <&sio_dart 1>; + power-domains = <&ps_aes>; + status = "disabled"; + }; + + auss_cpu0: phy-coproc@395d08000 { + compatible = "apple,t6050-phy-coproc", "apple,phy-coproc"; + reg = <0x3 0x95d08000 0x0 0x4000>, + <0x3 0x95d00000 0x0 0x4000>; + interrupts = , + , + , + ; + status = "disabled"; + }; + + nub_gpio0: pinctrl@2881e4000 { + compatible = "apple,t6050-pinctrl", "apple,t8103-pinctrl"; + reg = <0x2 0x881e4000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + ; + status = "disabled"; + }; + + aop_exclave_mailbox: mailbox@4d067c000 { + compatible = "apple,t6050-secure-mailbox", "apple,secure-mailbox"; + reg = <0x4 0xd067c000 0x0 0x4000>; + interrupts = , + ; + iommus = <&aop_dart 1>; + status = "disabled"; + }; + + aop2: aop@291600000 { + compatible = "apple,t6050-aop2", "apple,aop2"; + reg = <0x2 0x91600000 0x0 0x88000>, + <0x2 0x91650000 0x0 0x4000>, + <0x2 0x9162c000 0x0 0x3c008>; + interrupts = , + , + , + ; + iommus = <&aop_dart 16>; + status = "disabled"; + }; + + event_log_handler: event-log@280040000 { + compatible = "apple,t6050-event-log", "apple,soc-event-log"; + reg = <0x2 0x80040000 0x0 0x4000>, + <0x2 0x8004e000 0x0 0x4000>, + <0x23 0x8004c800 0x0 0x4000>, + <0x23 0x80040000 0x0 0x4000>, + <0x2 0x80200000 0x0 0x4000>, + <0x2 0x80000000 0x0 0x14000>, + <0x2 0x8003c000 0x0 0x4000>, + <0x2 0x80020000 0x0 0x10000>, + <0x2 0x806e0000 0x0 0x4000>, + <0x2 0x806d0000 0x0 0x4000>, + <0x2 0x80668000 0x0 0x4000>, + <0x2 0x80680000 0x0 0x1c000>, + <0x2 0x807d0000 0x0 0x4000>, + <0x2 0x806f0000 0x0 0x4000>, + <0x2 0x80928000 0x0 0x4000>, + <0x2 0x80938000 0x0 0x8000>, + <0x2 0x86700000 0x0 0x114000>, + <0x2 0x84380000 0x0 0x20000>, + <0x2 0x85040000 0x0 0x1c000>, + <0x2 0x84360000 0x0 0x4000>, + <0x2 0x84370000 0x0 0x4000>, + <0x23 0x85040000 0x0 0x1c000>, + <0x23 0x84360000 0x0 0x4000>, + <0x23 0x84370000 0x0 0x4000>, + <0x5 0x9878000 0x0 0x4000>, + <0x5 0x9868000 0x0 0x8000>, + <0x23 0x80300000 0x0 0x8000>, + <0x23 0x80308000 0x0 0x8000>, + <0x2 0x80300000 0x0 0x8000>, + <0x23 0x80034000 0x0 0x4000>, + <0x23 0x8003c000 0x0 0x4000>, + <0x23 0x80020000 0x0 0x10000>, + <0x23 0x80038000 0x0 0x4000>, + <0x23 0x80640000 0x0 0x10000>, + <0x23 0x806d0000 0x0 0x4000>, + <0x23 0x80668000 0x0 0x4000>, + <0x23 0x80680000 0x0 0x1c000>, + <0x23 0x806f0000 0x0 0x4000>, + <0x2 0x84000000 0x0 0x4000>, + <0x2 0x84004600 0x0 0x4000>, + <0x2 0x84004000 0x0 0x4000>, + <0x2 0x84004780 0x0 0x4000>, + <0x2 0x84007400 0x0 0x4000>, + <0x2 0x84004e00 0x0 0x4000>, + <0x2 0x84004800 0x0 0x4000>, + <0x2 0x84004f80 0x0 0x4000>, + <0x2 0x84007600 0x0 0x4000>, + <0x2 0x84005600 0x0 0x4000>, + <0x2 0x84005000 0x0 0x4000>, + <0x2 0x84005780 0x0 0x4000>, + <0x2 0x84007800 0x0 0x4000>, + <0x2 0x84005e00 0x0 0x4000>, + <0x2 0x84005800 0x0 0x4000>, + <0x2 0x84005f80 0x0 0x4000>, + <0x2 0x84007a00 0x0 0x4000>, + <0x2 0x84003e00 0x0 0x4000>, + <0x2 0x84003800 0x0 0x4000>, + <0x2 0x84003f80 0x0 0x4000>, + <0x2 0x84007200 0x0 0x4000>, + <0x2 0x84006e00 0x0 0x4000>, + <0x2 0x84006800 0x0 0x4000>, + <0x2 0x84006f80 0x0 0x4000>, + <0x2 0x84007e00 0x0 0x4000>, + <0x2 0x84006600 0x0 0x4000>, + <0x2 0x84006000 0x0 0x4000>, + <0x2 0x84006780 0x0 0x4000>, + <0x2 0x84007c00 0x0 0x4000>, + <0x2 0x84002e00 0x0 0x4000>, + <0x2 0x84002800 0x0 0x4000>, + <0x2 0x84002f80 0x0 0x4000>, + <0x2 0x84007000 0x0 0x4000>, + <0x2 0x84003600 0x0 0x4000>, + <0x2 0x84003000 0x0 0x4000>, + <0x2 0x84003780 0x0 0x4000>, + <0x2 0x84000400 0x0 0x4000>, + <0x2 0x84000400 0x0 0x4000>, + <0x2 0x84000400 0x0 0x4000>, + <0x2 0x84000400 0x0 0x4000>, + <0x2 0x84000400 0x0 0x4000>, + <0x2 0x84000400 0x0 0x4000>, + <0x2 0x84000400 0x0 0x4000>, + <0x2 0x84000400 0x0 0x4000>, + <0x23 0x84000000 0x0 0x4000>, + <0x23 0x84004e00 0x0 0x4000>, + <0x23 0x84004800 0x0 0x4000>, + <0x23 0x84004f80 0x0 0x4000>, + <0x23 0x84007000 0x0 0x4000>, + <0x23 0x84002e00 0x0 0x4000>, + <0x23 0x84002800 0x0 0x4000>, + <0x23 0x84002f80 0x0 0x4000>, + <0x23 0x84006800 0x0 0x4000>, + <0x23 0x84003600 0x0 0x4000>, + <0x23 0x84003000 0x0 0x4000>, + <0x23 0x84003780 0x0 0x4000>, + <0x23 0x84006a00 0x0 0x4000>, + <0x23 0x84005600 0x0 0x4000>, + <0x23 0x84005000 0x0 0x4000>, + <0x23 0x84005780 0x0 0x4000>, + <0x23 0x84007200 0x0 0x4000>, + <0x23 0x84006600 0x0 0x4000>, + <0x23 0x84006000 0x0 0x4000>, + <0x23 0x84006780 0x0 0x4000>, + <0x23 0x84007400 0x0 0x4000>, + <0x23 0x84005e00 0x0 0x4000>, + <0x23 0x84005800 0x0 0x4000>, + <0x23 0x84005f80 0x0 0x4000>, + <0x23 0x84003e00 0x0 0x4000>, + <0x23 0x84003800 0x0 0x4000>, + <0x23 0x84003f80 0x0 0x4000>, + <0x23 0x84006c00 0x0 0x4000>, + <0x23 0x84004600 0x0 0x4000>, + <0x23 0x84004000 0x0 0x4000>, + <0x23 0x84004780 0x0 0x4000>, + <0x23 0x84006e00 0x0 0x4000>, + <0x23 0x84000400 0x0 0x4000>, + <0x23 0x84000400 0x0 0x4000>, + <0x23 0x84000400 0x0 0x4000>, + <0x23 0x84000400 0x0 0x4000>, + <0x23 0x84000400 0x0 0x4000>, + <0x23 0x84000400 0x0 0x4000>, + <0x23 0x84000400 0x0 0x4000>, + <0x23 0x84000400 0x0 0x4000>, + <0x2 0x88f00000 0x0 0x18000>, + <0x2 0x88200000 0x0 0x4000>, + <0x2 0x88204000 0x0 0x4000>, + <0x2 0x8827c000 0x0 0x4000>, + <0x2 0x8832c000 0x0 0x4000>, + <0x2 0x88330000 0x0 0x10000>, + <0x2 0x88360000 0x0 0x4000>, + <0x2 0x88340000 0x0 0x8000>, + <0x2 0x8836c000 0x0 0x4000>, + <0x2 0x88000000 0x0 0x24000>, + <0x23 0x88200000 0x0 0x4000>, + <0x23 0x88204000 0x0 0x4000>, + <0x23 0x8827c000 0x0 0x4000>, + <0x23 0x8832c000 0x0 0x4000>, + <0x23 0x88330000 0x0 0x10000>, + <0x23 0x88360000 0x0 0x4000>, + <0x23 0x88340000 0x0 0x8000>, + <0x23 0x8836c000 0x0 0x4000>, + <0x23 0x88000000 0x0 0x8000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + status = "disabled"; + }; + + sio: dma-controller@505e00000 { + compatible = "apple,t6050-sio", "apple,sio"; + reg = <0x5 0x5e00000 0x0 0x88000>, + <0x5 0x5850000 0x0 0x4000>; + interrupts = , + , + , + ; + iommus = <&sio_dart 0>; + power-domains = <&ps_sio_cpu>; + clocks = <&peripheral_clocks 359>, <&peripheral_clocks 358>; + #dma-cells = <1>; + status = "disabled"; + }; + + sio_dart: iommu@505060000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x5 0x5060000 0x0 0x20000>; + interrupts = ; + power-domains = <&ps_sio>; + #iommu-cells = <1>; + status = "disabled"; + }; + + pmp0: pmp@284e00000 { + compatible = "apple,t6050-pmp", "apple,pmp"; + reg = <0x2 0x84e00000 0x0 0x88000>, + <0x2 0x84850000 0x0 0x4000>, + <0x2 0x84500000 0x0 0x100000>, + <0x2 0x84250000 0x0 0x4000>; + interrupts = , + , + , + ; + iommus = <&pmp0_dart 0>; + power-domains = <&ps_pmp>, <&ps_pms_sram>; + status = "disabled"; + }; + + pmp0_dart: iommu@2841a0000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0x841a0000 0x0 0xc000>, + <0x2 0x841b0000 0x0 0x4000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + sep: sep@502600000 { + compatible = "apple,t6050-sep", "apple,sep"; + reg = <0x5 0x2600000 0x0 0x88000>, + <0x5 0x2050000 0x0 0x4000>; + interrupts = , + , + , + ; + iommus = <&sep_dart 0>; + power-domains = <&ps_sep>; + clocks = <&peripheral_clocks 447>; + status = "disabled"; + }; + + sep_dart: iommu@500b80000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x5 0xb80000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + aon_ptd: aon-ptd@28cdc0000 { + compatible = "apple,t6050-aon-ptd", "apple,aon-ptd"; + reg = <0x2 0x8cdc0000 0x0 0x4000>, + <0x2 0x8cdd0000 0x0 0x4000>, + <0x2 0x8cdd8000 0x0 0x4000>, + <0x2 0x8cde0000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + status = "disabled"; + }; + + rsm: rsm@288825000 { + compatible = "apple,t6050-rsm", "apple,rsm"; + reg = <0x2 0x88825000 0x0 0x4000>, + <0x2 0x888c0000 0x0 0x4>; + interrupts = ; + iommus = <&rsm_dart 0>; + power-domains = <&ps_debug_gated>; + status = "disabled"; + }; + + rsm_dart: iommu@2889a0000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0x889a0000 0x0 0xc000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + uart0: serial@505200000 { + compatible = "apple,t6050-uart", "apple,uart"; + reg = <0x5 0x5200000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_uart0>; + clocks = <&peripheral_clocks 457>, <&peripheral_clocks 4>; + status = "disabled"; + }; + + atc_phy0: phy@2a2a90000 { + compatible = "apple,t6050-atcphy", "apple,atcphy"; + reg = <0x2 0xa2a90000 0x0 0x4000>, + <0x2 0xa2800000 0x0 0x4000>, + <0x2 0xa3000000 0x0 0x4000>, + <0x2 0xa3000400 0x0 0x4000>, + <0x2 0xa3000800 0x0 0x4000>, + <0x2 0xa3000a00 0x0 0x4000>, + <0x2 0xa3001000 0x0 0x4000>, + <0x2 0xa3003000 0x0 0x4000>, + <0x2 0xa3003200 0x0 0x4000>, + <0x2 0xa3003800 0x0 0x4000>, + <0x2 0xa3003a00 0x0 0x4000>, + <0x2 0xa3004000 0x0 0x4000>, + <0x2 0xa3005000 0x0 0x4000>, + <0x2 0xa3006000 0x0 0x4000>, + <0x2 0xa3007000 0x0 0x4000>, + <0x2 0xa3008000 0x0 0x4000>, + <0x2 0xa3009000 0x0 0x4000>, + <0x2 0xa300a000 0x0 0x4000>, + <0x2 0xa300b000 0x0 0x4000>, + <0x2 0xa300c000 0x0 0x4000>, + <0x2 0xa300d000 0x0 0x4000>, + <0x2 0xa300e000 0x0 0x4000>, + <0x2 0xa300f000 0x0 0x4000>, + <0x2 0xa3010000 0x0 0x4000>, + <0x2 0xa3018000 0x0 0x4000>, + <0x2 0xa3019000 0x0 0x4000>, + <0x2 0xa301a000 0x0 0x4000>, + <0x2 0xa301b000 0x0 0x4000>, + <0x2 0xa301c000 0x0 0x4000>, + <0x2 0xa301d000 0x0 0x4000>, + <0x2 0xa301e000 0x0 0x4000>, + <0x2 0xa301f000 0x0 0x4000>, + <0x2 0xa3020000 0x0 0x4000>, + <0x2 0xa3028000 0x0 0x4000>, + <0x2 0xa3028400 0x0 0x4000>, + <0x2 0xa3029000 0x0 0x4000>, + <0x2 0xa3040000 0x0 0x20000>, + <0x2 0xa30c0000 0x0 0x10000>, + <0x2 0xa3140000 0x0 0x1c000>, + <0x2 0xa3200000 0x0 0x4000>, + <0x2 0xa3244000 0x0 0x4000>, + <0x2 0xa0000000 0x0 0x8000>, + <0x2 0xa0020000 0x0 0x4000>, + <0x2 0xa3250000 0x0 0x4000>; + power-domains = <&ps_atc0_usb_aon>, <&ps_atc0_common>, <&ps_atc0_phymxwrap>, <&ps_atc0_common_dp_0>, <&ps_atc0_common_dp_1>, <&ps_atc0_common_dp_2>, <&ps_atc0_common_dp_3>; + status = "disabled"; + }; + + usb0_dart: iommu@2a2f00000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0xa2f00000 0x0 0xc000>, + <0x2 0xa2f80000 0x0 0xc000>; + interrupts = ; + power-domains = <&ps_atc0_usb>; + #iommu-cells = <1>; + status = "disabled"; + }; + + usb_drd0: usb@2a2280000 { + compatible = "apple,t6050-dwc3", "apple,dwc3"; + reg = <0x2 0xa2280000 0x0 0x11800>, + <0x2 0xa2200000 0x0 0x4000>, + <0x2 0xa228c000 0x0 0x5800>, + <0x2 0xa2a84000 0x0 0x4000>, + <0x2 0xa2800000 0x0 0x4000>, + <0x2 0xa2a80000 0x0 0x4000>, + <0x2 0xa2080000 0x0 0x4000>, + <0x2 0xa228d000 0x0 0x4000>, + <0x2 0xa2980000 0x0 0x4000>, + <0x2 0x86758000 0x0 0x8>; + interrupts = , + , + , + ; + iommus = <&usb0_dart 1>; + power-domains = <&ps_atc0_usb>; + status = "disabled"; + }; + + auss0_dart: iommu@395d60000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x95d60000 0x0 0xc000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + usb_auss0: usb@3953f0000 { + compatible = "apple,t6050-dwc3", "apple,dwc3"; + reg = <0x3 0x953f0000 0x0 0x4600>, + <0x3 0x95800000 0x0 0x4000>, + <0x3 0x95803c00 0x0 0x4000>, + <0x3 0x95804000 0x0 0x4000>, + <0x3 0x94000000 0x0 0x8000>, + <0x3 0x95d80000 0x0 0x4000>, + <0x3 0x95d84000 0x0 0x4000>, + <0x3 0x95e40000 0x0 0x4000>, + <0x3 0x95e3c000 0x0 0x4000>, + <0x3 0x95d98000 0x0 0x4000>; + interrupts = , + , + , + ; + iommus = <&auss0_dart 0>; + power-domains = <&ps_auss>; + status = "disabled"; + }; + + nub_spmi0_control: spmi@28a014000 { + compatible = "apple,t6050-spmi", "apple,spmi"; + reg = <0x2 0x8a014000 0x0 0x4000>, + <0x2 0x8a004000 0x0 0x4000>, + <0x2 0x8a000000 0x0 0x4000>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + nub_spmi2: spmi@28a094000 { + compatible = "apple,t6050-spmi", "apple,spmi"; + reg = <0x2 0x8a094000 0x0 0x4000>, + <0x2 0x8a084000 0x0 0x4000>, + <0x2 0x8a080000 0x0 0x4000>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + nub_spmi3: spmi@28a0d4000 { + compatible = "apple,t6050-spmi", "apple,spmi"; + reg = <0x2 0x8a0d4000 0x0 0x4000>, + <0x2 0x8a0c4000 0x0 0x4000>, + <0x2 0x8a0c0000 0x0 0x4000>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + nub_spmi_a0_control: spmi@28a188000 { + compatible = "apple,t6050-spmi", "apple,spmi"; + reg = <0x2 0x8a188000 0x0 0x4000>, + <0x2 0x8a184000 0x0 0x4000>, + <0x2 0x8a180000 0x0 0x4000>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + aop_spmi0: spmi@290914000 { + compatible = "apple,t6050-spmi", "apple,spmi"; + reg = <0x2 0x90914000 0x0 0x4000>, + <0x2 0x90904000 0x0 0x4000>, + <0x2 0x90900000 0x0 0x4000>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + dptx0_aux: aux@29c260000 { + compatible = "apple,t6050-dptx-aux", "apple,dptx-aux"; + reg = <0x2 0x9c260000 0x0 0x4000>, + <0x2 0x9c260000 0x0 0x4000>; + power-domains = <&ps_global_aux_hpd_0>; + status = "disabled"; + }; + + dptx1_aux: aux@29c264000 { + compatible = "apple,t6050-dptx-aux", "apple,dptx-aux"; + reg = <0x2 0x9c264000 0x0 0x4000>, + <0x2 0x9c264000 0x0 0x4000>; + power-domains = <&ps_global_aux_hpd_1>; + status = "disabled"; + }; + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J873S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + disp0: display-engine@488000000 { + compatible = "apple,t6050-display-engine", "apple,display-engine"; + reg = <0x4 0x88000000 0x0 0x4000000>, + <0x4 0x8a240000 0x0 0x10000>, + <0x4 0x8a3ac000 0x0 0x4000>, + <0x4 0x8a800000 0x0 0x800000>, + <0x2 0x86700000 0x0 0x114000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + ; + iommus = <&disp0_dart 0>, <&disp0_dart 16>; + clocks = <&peripheral_clocks 361>, <&peripheral_clocks 458>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J873S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + disp0_dart: iommu@48a300000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x4 0x8a300000 0x0 0xc000>, + <0x4 0x8a314000 0x0 0x4000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J873S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + dcp0_expert: dcp-expert@48a3ac058 { + compatible = "apple,t6050-dcp-expert", "apple,dcp-expert"; + reg = <0x4 0x8a3ac058 0x0 0x4>, + <0x4 0x8a374000 0x0 0x40>, + <0x4 0x8a370000 0x0 0x40>, + <0x4 0x8a388000 0x0 0x40>, + <0x4 0x8a38c000 0x0 0x40>, + <0x4 0x8a394000 0x0 0x40>, + <0x4 0x8a398000 0x0 0x40>, + <0x4 0x8a39c000 0x0 0x40>, + <0x4 0x8a3a0000 0x0 0x40>, + <0x4 0x88208000 0x0 0x40>, + <0x4 0x8820c000 0x0 0x40>, + <0x4 0x88210000 0x0 0x40>, + <0x4 0x88214000 0x0 0x40>; + interrupts = ; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J873S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + dcp: dcp@48ae00000 { + compatible = "apple,t6050-dcp", "apple,dcp"; + reg = <0x4 0x8ae00000 0x0 0x88000>, + <0x4 0x8a850000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + ; + iommus = <&dcp_dart 23>, <&dcp_dart 24>; + power-domains = <&ps_disp_fe>, <&ps_disp_cpu>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J873S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + dcp_dart: iommu@48a340000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x4 0x8a340000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J873S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + disp0_isoc_dart: iommu@48a180000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x4 0x8a180000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J873S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + admac_disp0: dma-controller@48a140000 { + compatible = "apple,t6050-admac", "apple,admac"; + reg = <0x4 0x8a140000 0x0 0x24000>, + <0x2 0x88328000 0x0 0x8>; + interrupts = ; + iommus = <&disp0_isoc_dart 30>; + #dma-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J873S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + admac_disp0_ced_ssw: dma-control@48a2f4000 { + compatible = "apple,t6050-admac-control", "apple,admac-control"; + reg = <0x4 0x8a2f4000 0x0 0x4000>, + <0x4 0x8a1a0000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; +#endif + + dcpext0_expert: dcp-expert@2b23ac058 { + compatible = "apple,t6050-dcp-expert", "apple,dcp-expert"; + reg = <0x2 0xb23ac058 0x0 0x4>, + <0x2 0xb2374000 0x0 0x40>, + <0x2 0xb2370000 0x0 0x40>; + interrupts = ; + status = "disabled"; + }; + + dispext0_isoc_dart: iommu@2b2180000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0xb2180000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + admac_dispext0: dma-controller@2b2140000 { + compatible = "apple,t6050-admac", "apple,admac"; + reg = <0x2 0xb2140000 0x0 0x24000>, + <0x2 0x88328000 0x0 0x8>; + interrupts = ; + iommus = <&dispext0_isoc_dart 30>; + #dma-cells = <1>; + status = "disabled"; + }; + + admac_dispext0_ced_ssw: dma-control@2b22f4000 { + compatible = "apple,t6050-admac-control", "apple,admac-control"; + reg = <0x2 0xb22f4000 0x0 0x4000>, + <0x2 0xb21a0000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + dispext1: display-engine@390000000 { + compatible = "apple,t6050-display-engine", "apple,display-engine"; + reg = <0x3 0x90000000 0x0 0x4000000>, + <0x3 0x92240000 0x0 0x10000>, + <0x3 0x923ac000 0x0 0x4000>, + <0x3 0x92800000 0x0 0x800000>, + <0x2 0x86700000 0x0 0x114000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + ; + iommus = <&dispext1_dart 0>, <&dispext1_dart 16>; + status = "disabled"; + }; + + dcpext1_expert: dcp-expert@3923ac058 { + compatible = "apple,t6050-dcp-expert", "apple,dcp-expert"; + reg = <0x3 0x923ac058 0x0 0x4>, + <0x3 0x92374000 0x0 0x40>, + <0x3 0x92370000 0x0 0x40>; + interrupts = ; + status = "disabled"; + }; + + dcpext1: dcp@392e00000 { + compatible = "apple,t6050-dcp", "apple,dcp"; + reg = <0x3 0x92e00000 0x0 0x88000>, + <0x3 0x92850000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + ; + iommus = <&dcpext1_dart 23>, <&dcpext1_dart 24>; + status = "disabled"; + }; + + dcpext1_dart: iommu@392340000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x92340000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + dispext1_dart: iommu@392300000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x92300000 0x0 0xc000>, + <0x3 0x92314000 0x0 0x4000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + dispext1_isoc_dart: iommu@392180000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x92180000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + admac_dispext1: dma-controller@392140000 { + compatible = "apple,t6050-admac", "apple,admac"; + reg = <0x3 0x92140000 0x0 0x24000>, + <0x2 0x88328000 0x0 0x8>; + interrupts = ; + iommus = <&dispext1_isoc_dart 30>; + #dma-cells = <1>; + status = "disabled"; + }; + + admac_dispext1_ced_ssw: dma-control@3922f4000 { + compatible = "apple,t6050-admac-control", "apple,admac-control"; + reg = <0x3 0x922f4000 0x0 0x4000>, + <0x3 0x921a0000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + dispext2: display-engine@300000000 { + compatible = "apple,t6050-display-engine", "apple,display-engine"; + reg = <0x3 0x0 0x0 0x4000000>, + <0x3 0x2240000 0x0 0x10000>, + <0x3 0x23ac000 0x0 0x4000>, + <0x3 0x2800000 0x0 0x800000>, + <0x2 0x86700000 0x0 0x114000>; + interrupts = , + , + , + , + , + , + , + , + , + , + ; + iommus = <&dispext2_dart 0>, <&dispext2_dart 16>; + status = "disabled"; + }; + + dcpext2_expert: dcp-expert@3023ac058 { + compatible = "apple,t6050-dcp-expert", "apple,dcp-expert"; + reg = <0x3 0x23ac058 0x0 0x4>, + <0x3 0x2374000 0x0 0x40>, + <0x3 0x2370000 0x0 0x40>; + interrupts = ; + status = "disabled"; + }; + + dcpext2: dcp@302e00000 { + compatible = "apple,t6050-dcp", "apple,dcp"; + reg = <0x3 0x2e00000 0x0 0x88000>, + <0x3 0x2850000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + ; + iommus = <&dcpext2_dart 23>, <&dcpext2_dart 24>; + status = "disabled"; + }; + + dcpext2_dart: iommu@302340000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x2340000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + dispext2_dart: iommu@302300000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x2300000 0x0 0xc000>, + <0x3 0x2314000 0x0 0x4000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + dispext2_isoc_dart: iommu@302180000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x2180000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + admac_dispext2: dma-controller@302140000 { + compatible = "apple,t6050-admac", "apple,admac"; + reg = <0x3 0x2140000 0x0 0x24000>, + <0x2 0x88328000 0x0 0x8>; + interrupts = ; + iommus = <&dispext2_isoc_dart 30>; + #dma-cells = <1>; + status = "disabled"; + }; + + admac_dispext2_ced_ssw: dma-control@3022f4000 { + compatible = "apple,t6050-admac-control", "apple,admac-control"; + reg = <0x3 0x22f4000 0x0 0x4000>, + <0x3 0x21a0000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + dispext3: display-engine@304000000 { + compatible = "apple,t6050-display-engine", "apple,display-engine"; + reg = <0x3 0x4000000 0x0 0x4000000>, + <0x3 0x6240000 0x0 0x10000>, + <0x3 0x63ac000 0x0 0x4000>, + <0x3 0x6800000 0x0 0x800000>, + <0x2 0x86700000 0x0 0x114000>; + interrupts = , + , + , + , + , + , + , + , + , + , + ; + iommus = <&dispext3_dart 0>, <&dispext3_dart 16>; + status = "disabled"; + }; + + dcpext3_expert: dcp-expert@3063ac058 { + compatible = "apple,t6050-dcp-expert", "apple,dcp-expert"; + reg = <0x3 0x63ac058 0x0 0x4>, + <0x3 0x6374000 0x0 0x40>, + <0x3 0x6370000 0x0 0x40>; + interrupts = ; + status = "disabled"; + }; + + dcpext3: dcp@306e00000 { + compatible = "apple,t6050-dcp", "apple,dcp"; + reg = <0x3 0x6e00000 0x0 0x88000>, + <0x3 0x6850000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + ; + iommus = <&dcpext3_dart 23>, <&dcpext3_dart 24>; + status = "disabled"; + }; + + dcpext3_dart: iommu@306340000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x6340000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + dispext3_dart: iommu@306300000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x6300000 0x0 0xc000>, + <0x3 0x6314000 0x0 0x4000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + dispext3_isoc_dart: iommu@306180000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x6180000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + admac_dispext3: dma-controller@306140000 { + compatible = "apple,t6050-admac", "apple,admac"; + reg = <0x3 0x6140000 0x0 0x24000>, + <0x2 0x88328000 0x0 0x8>; + interrupts = ; + iommus = <&dispext3_isoc_dart 30>; + #dma-cells = <1>; + status = "disabled"; + }; + + admac_dispext3_ced_ssw: dma-control@3062f4000 { + compatible = "apple,t6050-admac-control", "apple,admac-control"; + reg = <0x3 0x62f4000 0x0 0x4000>, + <0x3 0x61a0000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + + scaler0: scaler@2285000000 { + compatible = "apple,t6050-scaler", "apple,scaler-v23"; + reg = <0x22 0x85000000 0x0 0x14000>, + <0x22 0x85210000 0x0 0x4000>, + <0x22 0x85204000 0x0 0x4000>, + <0x22 0x84000000 0x0 0x8000>, + <0x22 0x852c0000 0x0 0x40000>, + <0x22 0x85340000 0x0 0x14c000>, + <0x22 0x852a0000 0x0 0x4000>, + <0x22 0x85208000 0x0 0x4000>, + <0x22 0x85210000 0x0 0x4000>, + <0x22 0x85220000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + iommus = <&scaler0_dart 0>, <&scaler0_dart 1>; + power-domains = <&ps_msr0>, <&ps_msr0_ase_core>; + clocks = <&peripheral_clocks 496>; + resets = <&ps_msr0>; + status = "disabled"; + }; + + scaler0_dart: iommu@2285260000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x22 0x85260000 0x0 0x20000>, + <0x2 0x74000000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_msr0>; + #iommu-cells = <1>; + status = "disabled"; + }; + + scaler1: scaler@23a1000000 { + compatible = "apple,t6050-scaler", "apple,scaler-v23"; + reg = <0x23 0xa1000000 0x0 0x14000>, + <0x23 0xa1210000 0x0 0x4000>, + <0x23 0xa1204000 0x0 0x4000>, + <0x23 0xa0000000 0x0 0x8000>, + <0x23 0xa12c0000 0x0 0x40000>, + <0x23 0xa1340000 0x0 0x14c000>, + <0x23 0xa12a0000 0x0 0x4000>, + <0x23 0xa1208000 0x0 0x4000>, + <0x23 0xa1210000 0x0 0x4000>, + <0x23 0xa1220000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + iommus = <&scaler1_dart 0>, <&scaler1_dart 1>; + power-domains = <&ps_msr1>, <&ps_msr1_ase_core>; + clocks = <&peripheral_clocks 497>; + resets = <&ps_msr1>; + status = "disabled"; + }; + + scaler1_dart: iommu@23a1260000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x23 0xa1260000 0x0 0x20000>, + <0x2 0x74000000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_msr1>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave0: video-encoder@2283100000 { + compatible = "apple,t6050-ave", "apple,ave"; + reg = <0x22 0x83100000 0x0 0x45c000>, + <0x22 0x83800000 0x0 0x800000>, + <0x22 0x83050000 0x0 0x4000>, + <0x23 0x806001c0 0x0 0x7e64>, + <0x22 0x82000000 0x0 0x8000>; + interrupts = , + , + , + , + ; + iommus = <&ave0_dart 0>; + power-domains = <&ps_venc0_sys>, <&ps_venc0_pipe4>, <&ps_venc0_pipe5>, <&ps_venc0_me0>, <&ps_venc0_me1>, <&ps_venc0_dma>; + clocks = <&peripheral_clocks 503>; + status = "disabled"; + }; + + ave0_dart: iommu@22830a0000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x22 0x830a0000 0x0 0xc000>, + <0x22 0x83080000 0x0 0xc000>, + <0x22 0x83094000 0x0 0x4000>, + <0x22 0x830b0000 0x0 0x4000>, + <0x2 0x74000000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_venc0_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave1: video-encoder@23a3100000 { + compatible = "apple,t6050-ave", "apple,ave"; + reg = <0x23 0xa3100000 0x0 0x45c000>, + <0x23 0xa3800000 0x0 0x800000>, + <0x23 0xa3050000 0x0 0x4000>, + <0x23 0x806001f0 0x0 0x7e5c>, + <0x23 0xa2000000 0x0 0x8000>; + interrupts = , + , + , + , + ; + iommus = <&ave1_dart 0>; + power-domains = <&ps_venc1_sys>, <&ps_venc1_pipe4>, <&ps_venc1_pipe5>, <&ps_venc1_me0>, <&ps_venc1_me1>, <&ps_venc1_dma>; + clocks = <&peripheral_clocks 504>; + status = "disabled"; + }; + + ave1_dart: iommu@23a30a0000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x23 0xa30a0000 0x0 0xc000>, + <0x23 0xa3080000 0x0 0xc000>, + <0x23 0xa3094000 0x0 0x4000>, + <0x23 0xa30b0000 0x0 0x4000>, + <0x2 0x74000000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_venc1_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + apr0: prores@48d000000 { + compatible = "apple,t6050-prores", "apple,prores"; + reg = <0x4 0x8d000000 0x0 0x4000>, + <0x4 0x8c000000 0x0 0x1000000>, + <0x4 0x8d0c0000 0x0 0x4000>, + <0x4 0x8d070000 0x0 0x4000>, + <0x4 0x8d071000 0x0 0x4000>; + interrupts = , + ; + iommus = <&apr0_dart 1>; + power-domains = <&ps_scodec>; + status = "disabled"; + }; + + apr0_dart: iommu@48d020000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x4 0x8d020000 0x0 0xc000>; + interrupts = ; + power-domains = <&ps_scodec>; + #iommu-cells = <1>; + status = "disabled"; + }; + + apr1_dart: iommu@230b020000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x23 0xb020000 0x0 0xc000>, + <0x2 0x74000000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_prores>; + #iommu-cells = <1>; + status = "disabled"; + }; + + jpeg0: jpeg@2281000000 { + compatible = "apple,t6050-jpeg", "apple,jpeg"; + reg = <0x22 0x81000000 0x0 0x20000>; + interrupts = ; + iommus = <&jpeg0_dart 0>; + power-domains = <&ps_jpg>; + clocks = <&peripheral_clocks 486>, <&peripheral_clocks 487>; + status = "disabled"; + }; + + jpeg1: jpeg@2281060000 { + compatible = "apple,t6050-jpeg", "apple,jpeg"; + reg = <0x22 0x81060000 0x0 0x44000>; + interrupts = ; + iommus = <&jpeg0_dart 1>; + power-domains = <&ps_jpg>; + clocks = <&peripheral_clocks 486>, <&peripheral_clocks 487>; + status = "disabled"; + }; + + jpeg0_dart: iommu@2281020000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x22 0x81020000 0x0 0xc000>, + <0x2 0x74000000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_jpg>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane0: neural-processor@508000000 { + compatible = "apple,t6050-ane", "apple,ane"; + reg = <0x5 0x8000000 0x0 0x2000000>, + <0x2 0x80900000 0x0 0x18000>, + <0x2 0x80920000 0x0 0x4000>, + <0x2 0x84240000 0x0 0x40000>, + <0x2 0x12000000 0x0 0xff4000>, + <0x5 0x84000000 0x0 0x2000000>, + <0x2 0x88374000 0x0 0x4000>; + interrupts = , + ; + iommus = <&ane0_dart 0>, <&ane0_dart 11>; + power-domains = <&ps_ane_cpu>; + clocks = <&peripheral_clocks 335>, <&peripheral_clocks 334>, <&peripheral_clocks 381>; + status = "disabled"; + }; + + ane0_dart: iommu@509800000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x5 0x9800000 0x0 0xc000>, + <0x5 0x9820000 0x0 0xc000>, + <0x5 0x9840000 0x0 0xc000>, + <0x5 0x9810000 0x0 0x4000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + avd0: video-decoder@2308000000 { + compatible = "apple,t6050-avd", "apple,avd"; + reg = <0x23 0x8000000 0x0 0x1404000>, + <0x23 0x88090000 0x0 0x4000>; + interrupts = , + ; + iommus = <&avd_dart 0>, <&avd_dart 1>, <&avd_dart 2>; + power-domains = <&ps_avd_sys>; + clocks = <&peripheral_clocks 488>; + status = "disabled"; + }; +#endif + + sgx: gpu@2300000000 { + compatible = "apple,t6050-gpu", "apple,gpu"; + reg = <0x23 0x0 0x0 0x3fdc000>, + <0x23 0xd00000 0x0 0x177000>; + interrupts = , + , + , + , + , + , + , + ; + power-domains = <&ps_gfx>; + status = "disabled"; + }; + + gfx_asc: gpu-coproc@2302600000 { + compatible = "apple,t6050-gpu-coproc", "apple,gpu-coproc"; + reg = <0x23 0x2600000 0x0 0x88000>, + <0x23 0x2050000 0x0 0x8>; + interrupts = , + , + , + ; + power-domains = <&ps_gfx>; + status = "disabled"; + }; + + gfx1_asc: gpu-coproc@2302e00000 { + compatible = "apple,t6050-gpu-coproc", "apple,gpu-coproc"; + reg = <0x23 0x2e00000 0x0 0x88000>, + <0x23 0x2850000 0x0 0x60000>; + interrupts = , + , + , + ; + power-domains = <&ps_gfx>; + status = "disabled"; + }; + + admac_leap_ns: dma-controller@293300000 { + compatible = "apple,t6050-admac", "apple,admac"; + reg = <0x2 0x93300000 0x0 0x34000>, + <0x2 0x88328000 0x0 0x8>; + interrupts = ; + iommus = <&aop_dart 10>; + #dma-cells = <1>; + status = "disabled"; + }; + + admac_aop_ced_ssw: dma-control@293c80000 { + compatible = "apple,t6050-admac-control", "apple,admac-control"; + reg = <0x2 0x93c80000 0x0 0x4000>, + <0x2 0x93c84000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + admac_leap_s: dma-controller@293200000 { + compatible = "apple,t6050-admac", "apple,admac"; + reg = <0x2 0x93200000 0x0 0x34000>, + <0x2 0x88328000 0x0 0x8>; + interrupts = ; + #dma-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + admac_hp_mic_ec_proxy: dma-controller@4d3200000 { + compatible = "apple,t6050-admac-secure", "apple,admac-secure"; + reg = <0x4 0xd3200000 0x0 0x34000>; + #dma-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + admac_sllb_ec_proxy: dma-controller@4d3200000 { + compatible = "apple,t6050-admac-secure", "apple,admac-secure"; + reg = <0x4 0xd3200000 0x0 0x34000>; + #dma-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_J873S) + pwm1: pwm@505040000 { + compatible = "apple,t6050-fpwm", "apple,s5l-fpwm"; + reg = <0x5 0x5040000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_fpwm1>; + #pwm-cells = <2>; + status = "disabled"; + }; +#endif + + msg: message-controller@29b000000 { + compatible = "apple,t6050-msg", "apple,msg"; + reg = <0x2 0x9b000000 0x0 0xb4000>, + <0x2 0x99000000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + power-domains = <&ps_msg>; + status = "disabled"; + }; + +#if defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_J873S) + apcie2_piodma: dma-controller@412030000 { + compatible = "apple,t6050-pcie-piodma", "apple,pcie-piodma"; + reg = <0x4 0x12030000 0x0 0x4000>, + <0x4 0x12034000 0x0 0x4000>, + <0x4 0x12038000 0x0 0x4000>; + interrupts = ; + iommus = <&dart_apcie2 17>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) + apcie3_piodma: dma-controller@413030000 { + compatible = "apple,t6050-pcie-piodma", "apple,pcie-piodma"; + reg = <0x4 0x13030000 0x0 0x4000>, + <0x4 0x13034000 0x0 0x4000>, + <0x4 0x13038000 0x0 0x4000>; + interrupts = ; + iommus = <&dart_apcie3 17>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J873S) + spi3: spi@50510c000 { + compatible = "apple,t6050-spi", "apple,t8103-spi"; + reg = <0x5 0x510c000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_spi3>; + clocks = <&peripheral_clocks 452>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) + apciec3: pcie@1c80000000 { + compatible = "apple,t6050-pciec", "apple,pciec"; + reg = <0x1c 0x80000000 0x0 0x10000000>, + <0x3 0x8c034000 0x0 0x4000>, + <0x3 0x8c020000 0x0 0x8000>, + <0x3 0x8c038000 0x0 0x4000>, + <0x3 0x8c060000 0x0 0x4000>, + <0x3 0x88020000 0x0 0x4000>, + <0x3 0x8c02c000 0x0 0x4000>, + <0x3 0x8c028000 0x0 0x4000>; + interrupts = , + , + , + , + , + ; + power-domains = <&ps_atc3_usb_aon>, <&ps_atc3_pcie>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) + apciec3_dart: iommu@38c000000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x8c000000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) + apciec3_piodma: dma-controller@38c068000 { + compatible = "apple,t6050-pciec-piodma", "apple,pciec-piodma"; + reg = <0x3 0x8c068000 0x0 0x4000>, + <0x3 0x8c06c000 0x0 0x4000>, + <0x3 0x8c070000 0x0 0x4000>, + <0x3 0x8c03c000 0x0 0x4000>; + interrupts = ; + iommus = <&apciec3_dart 254>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) + acio3: usb4@389f00000 { + compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; + reg = <0x3 0x89f00000 0x0 0x100000>, + <0x3 0x89ac0000 0x0 0x4000>, + <0x3 0x89ac4000 0x0 0x4000>, + <0x3 0x89ac8000 0x0 0x4000>, + <0x3 0x89e44000 0x0 0x4000>, + <0x3 0x89c80000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + iommus = <&acio3_dart 0>, <&acio3_dart 1>, <&acio3_dart 2>, <&acio3_dart 3>, <&acio3_dart 4>, <&acio3_dart 5>, <&acio3_dart 6>, <&acio3_dart 7>, <&acio3_dart 8>, <&acio3_dart 9>, <&acio3_dart 10>, <&acio3_dart 11>, <&acio3_dart 16>, <&acio3_dart 17>, <&acio3_dart 18>, <&acio3_dart 19>, <&acio3_dart 20>, <&acio3_dart 21>, <&acio3_dart 22>, <&acio3_dart 23>, <&acio3_dart 24>, <&acio3_dart 25>, <&acio3_dart 26>, <&acio3_dart 27>; + power-domains = <&ps_atc3_cio_auss>, <&ps_atc3_cio>, <&ps_atc3_cio_pcie>, <&ps_atc3_cio_usb>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) + acio3_dart: iommu@389a80000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x89a80000 0x0 0xc000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) + acio_cpu3: usb4-coproc@389108000 { + compatible = "apple,t6050-usb4-acio", "apple,usb4-acio"; + reg = <0x3 0x89108000 0x0 0x4000>, + <0x3 0x89100000 0x0 0x4000>; + interrupts = , + , + , + ; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) + atc3_dpin0: dpin@389e50000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x3 0x89e50000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) + atc3_dpin1: dpin@389e58000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x3 0x89e58000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) + atc3_dpin2: dpin@389e68000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x3 0x89e68000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) + atc3_dpin3: dpin@389e70000 { + compatible = "apple,t6050-dpin", "apple,dpin"; + reg = <0x3 0x89e70000 0x0 0x4000>; + interrupts = ; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J873S) + lpdptx_phy0: phy@29c240000 { + compatible = "apple,t6050-dptx-phy", "apple,dptx-phy"; + reg = <0x2 0x9c240000 0x0 0x10000>, + <0x2 0x9c200000 0x0 0x4000>; + power-domains = <&ps_dptx_phy>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775D) + nub_spmi_a2_control: spmi@28a1c8000 { + compatible = "apple,t6050-spmi", "apple,spmi"; + reg = <0x2 0x8a1c8000 0x0 0x4000>, + <0x2 0x8a1c4000 0x0 0x4000>, + <0x2 0x8a1c0000 0x0 0x4000>; + interrupts = ; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J873S) + acio0: usb4@2a1f00000 { + compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; + reg = <0x2 0xa1f00000 0x0 0x100000>, + <0x2 0xa1ac0000 0x0 0x4000>, + <0x2 0xa1ac4000 0x0 0x4000>, + <0x2 0xa1ac8000 0x0 0x4000>, + <0x2 0xa1e44000 0x0 0x4000>, + <0x2 0xa1c80000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + power-domains = <&ps_atc0_cio_auss>, <&ps_atc0_cio>, <&ps_atc0_cio_pcie>, <&ps_atc0_cio_usb>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J873S) + acio1: usb4@2a9f00000 { + compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; + reg = <0x2 0xa9f00000 0x0 0x100000>, + <0x2 0xa9ac0000 0x0 0x4000>, + <0x2 0xa9ac4000 0x0 0x4000>, + <0x2 0xa9ac8000 0x0 0x4000>, + <0x2 0xa9e44000 0x0 0x4000>, + <0x2 0xa9c80000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + power-domains = <&ps_atc1_cio_auss>, <&ps_atc1_cio>, <&ps_atc1_cio_pcie>, <&ps_atc1_cio_usb>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J873S) + acio2: usb4@381f00000 { + compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; + reg = <0x3 0x81f00000 0x0 0x100000>, + <0x3 0x81ac0000 0x0 0x4000>, + <0x3 0x81ac4000 0x0 0x4000>, + <0x3 0x81ac8000 0x0 0x4000>, + <0x3 0x81e44000 0x0 0x4000>, + <0x3 0x81c80000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + power-domains = <&ps_atc2_cio_auss>, <&ps_atc2_cio>, <&ps_atc2_cio_pcie>, <&ps_atc2_cio_usb>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J873S) + avd0: video-decoder@2308000000 { + compatible = "apple,t6050-avd", "apple,avd"; + reg = <0x23 0x8000000 0x0 0x1404000>, + <0x23 0x88090000 0x0 0x4000>; + interrupts = , + ; + power-domains = <&ps_avd_sys>; + clocks = <&peripheral_clocks 488>; + status = "disabled"; + }; +#endif + +#if defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + pwm2: pwm@505048000 { + compatible = "apple,t6050-fpwm", "apple,s5l-fpwm"; + reg = <0x5 0x5048000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_fpwm2>; + #pwm-cells = <2>; + status = "disabled"; + }; +#endif + +#if defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + pwm1: pwm@505044000 { + compatible = "apple,t6050-fpwm", "apple,s5l-fpwm"; + reg = <0x5 0x5044000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_fpwm1>; + #pwm-cells = <2>; + status = "disabled"; + }; +#endif + +}; diff --git a/arch/arm64/boot/dts/apple/t6050-pmgr.dtsi b/arch/arm64/boot/dts/apple/t6050-pmgr.dtsi new file mode 100644 index 0000000000000..8f9fafca9d35f --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050-pmgr.dtsi @@ -0,0 +1,258 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* Native PMGR hardware graph; all providers remain disabled. */ + +&{/soc} { + pmgr0: power-management@280600000 { + compatible = "apple,t6050-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd"; + reg = <0x2 0x80600000 0x0 0x4000>; + #address-cells = <1>; + #size-cells = <1>; + status = "disabled"; + }; +}; + +&{/soc} { + pmgr1: power-management@280900000 { + compatible = "apple,t6050-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd"; + reg = <0x2 0x80900000 0x0 0x4000>; + #address-cells = <1>; + #size-cells = <1>; + status = "disabled"; + }; +}; + +&{/soc} { + pmgr2: power-management@288300000 { + compatible = "apple,t6050-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd"; + reg = <0x2 0x88300000 0x0 0xc000>; + #address-cells = <1>; + #size-cells = <1>; + status = "disabled"; + }; +}; + +&{/soc} { + pmgr4: power-management@2380600000 { + compatible = "apple,t6050-pmgr", "apple,t8103-pmgr", "syscon", "simple-mfd"; + reg = <0x23 0x80600000 0x0 0x4000>; + #address-cells = <1>; + #size-cells = <1>; + status = "disabled"; + }; +}; + +&pmgr0 { + ps_atc1_common: power-controller@210 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x210 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc1-common"; + power-domains = <&ps_fab3_soc>; + status = "disabled"; + }; + ps_atc2_common: power-controller@238 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x238 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc2-common"; + power-domains = <&ps_fab5_soc>; + status = "disabled"; + }; + ps_atc3_common: power-controller@240 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x240 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc3-common"; + power-domains = <&ps_fab5_soc>; + status = "disabled"; + }; + ps_auss: power-controller@248 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x248 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "auss"; + power-domains = <&ps_fab5_soc>; + status = "disabled"; + }; + ps_atc3_cio: power-controller@2f8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2f8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc3-cio"; + power-domains = <&ps_atc3_common>; + status = "disabled"; + }; + ps_atc3_cio_pcie: power-controller@410 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x410 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc3-cio-pcie"; + power-domains = <&ps_atc3_cio>; + status = "disabled"; + }; + ps_atc3_cio_usb: power-controller@418 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x418 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc3-cio-usb"; + power-domains = <&ps_atc3_cio>; + status = "disabled"; + }; + ps_atc3_cio_auss: power-controller@420 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x420 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc3-cio-auss"; + power-domains = <&ps_atc3_cio>, <&ps_auss>; + status = "disabled"; + }; +}; + +&pmgr1 { + ps_i2c1: power-controller@2c8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2c8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "i2c1"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_i2c2: power-controller@2d0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x2d0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "i2c2"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_spi_p: power-controller@308 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x308 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "spi-p"; + power-domains = <&ps_sio>; + status = "disabled"; + }; + ps_qspi: power-controller@350 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x350 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "qspi"; + power-domains = <&ps_spi_p>; + status = "disabled"; + }; +}; + +&pmgr2 { + ps_atc1_usb_aon: power-controller@160 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x160 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc1-usb-aon"; + status = "disabled"; + }; + ps_atc1_usb: power-controller@168 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x168 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc1-usb"; + power-domains = <&ps_atc1_common>, <&ps_atc1_usb_aon>; + status = "disabled"; + }; + ps_atc1_phymxwrap: power-controller@170 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x170 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc1-phymxwrap"; + power-domains = <&ps_atc1_common>, <&ps_atc1_usb_aon>; + status = "disabled"; + }; + ps_atc2_usb_aon: power-controller@178 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x178 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc2-usb-aon"; + status = "disabled"; + }; + ps_atc2_usb: power-controller@180 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x180 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc2-usb"; + power-domains = <&ps_atc2_common>, <&ps_atc2_usb_aon>; + status = "disabled"; + }; + ps_atc2_phymxwrap: power-controller@188 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x188 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc2-phymxwrap"; + power-domains = <&ps_atc2_common>, <&ps_atc2_usb_aon>; + status = "disabled"; + }; + ps_atc3_usb_aon: power-controller@190 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x190 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc3-usb-aon"; + status = "disabled"; + }; + ps_atc3_usb: power-controller@198 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x198 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc3-usb"; + power-domains = <&ps_atc3_common>, <&ps_atc3_usb_aon>; + status = "disabled"; + }; + ps_atc3_phymxwrap: power-controller@1a0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1a0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "atc3-phymxwrap"; + power-domains = <&ps_atc3_common>, <&ps_atc3_usb_aon>; + status = "disabled"; + }; +}; + +&pmgr4 { + ps_fab1_soc: power-controller@1b0 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1b0 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "fab1-soc"; + power-domains = <&ps_fab1_piogw>; + status = "disabled"; + }; + ps_avd_sys: power-controller@1d8 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x1d8 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "avd-sys"; + power-domains = <&ps_fab1_soc>; + status = "disabled"; + }; +}; diff --git a/arch/arm64/boot/dts/apple/t6050.dtsi b/arch/arm64/boot/dts/apple/t6050.dtsi new file mode 100644 index 0000000000000..c0b09898a0803 --- /dev/null +++ b/arch/arm64/boot/dts/apple/t6050.dtsi @@ -0,0 +1,749 @@ +// SPDX-License-Identifier: GPL-2.0+ OR MIT +/* T6050 hardware inventory. Firmware handoff and enables are separate work. */ +#include +#include + +/ { + #address-cells = <2>; + #size-cells = <2>; + interrupt-parent = <&aic>; + + memory@10000000000 { + device_type = "memory"; + reg = <0x100 0 0 0>; /* Filled by the loader. */ + }; + + reserved-memory { + #address-cells = <2>; + #size-cells = <2>; + ranges; + }; + + cpus { + #address-cells = <2>; + #size-cells = <0>; + cpu0: cpu@0 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x0>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu1: cpu@1 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x1>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu2: cpu@2 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x2>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu3: cpu@3 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x3>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu4: cpu@4 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x4>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu5: cpu@5 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x5>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu6: cpu@100 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x100>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu7: cpu@101 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x101>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu8: cpu@102 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x102>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu9: cpu@103 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x103>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu10: cpu@104 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x104>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu11: cpu@105 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x105>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu12: cpu@200 { + compatible = "apple,everest"; + device_type = "cpu"; + reg = <0 0x200>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu13: cpu@201 { + compatible = "apple,everest"; + device_type = "cpu"; + reg = <0 0x201>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu14: cpu@202 { + compatible = "apple,everest"; + device_type = "cpu"; + reg = <0 0x202>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu15: cpu@203 { + compatible = "apple,everest"; + device_type = "cpu"; + reg = <0 0x203>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu16: cpu@204 { + compatible = "apple,everest"; + device_type = "cpu"; + reg = <0 0x204>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + cpu17: cpu@205 { + compatible = "apple,everest"; + device_type = "cpu"; + reg = <0 0x205>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; + }; + + soc { + compatible = "simple-bus"; + #address-cells = <2>; + #size-cells = <2>; + ranges; + nonposted-mmio; + + aic: interrupt-controller@280400000 { + compatible = "apple,t6050-aic3", "apple,t8122-aic3"; + reg = <2 0x80400000 0 0x1cc000>; + interrupt-controller; + #interrupt-cells = <4>; + #address-cells = <0>; + status = "disabled"; + }; + }; +}; + +#include "t6050-pmgr.dtsi" + +&{/soc} { + i2c1: i2c@505014000 { + compatible = "apple,t6050-i2c", "apple,t8103-i2c"; + reg = <0x5 0x5014000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_i2c1>; + clocks = <&peripheral_clocks 4>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + i2c2: i2c@505018000 { + compatible = "apple,t6050-i2c", "apple,t8103-i2c"; + reg = <0x5 0x5018000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_i2c2>; + clocks = <&peripheral_clocks 4>; + #address-cells = <1>; + #size-cells = <0>; + status = "disabled"; + }; + + pcie0: pcie@1cb0000000 { + compatible = "apple,t6050-pcie", "apple,pcie"; + reg = <0x1c 0xb0000000 0x0 0x10000000>, + <0x4 0x14000000 0x0 0x4000>, + <0x4 0x17000000 0x0 0x800000>, + <0x4 0x17020000 0x0 0x4000>, + <0x4 0x17800000 0x0 0x1b4000>, + <0x4 0x16000000 0x0 0x1000000>, + <0x4 0x15044000 0x0 0x4000>, + <0x4 0x87000000 0x0 0xe00000>, + <0x4 0x87020000 0x0 0x4000>, + <0x4 0x86000000 0x0 0x1000000>, + <0x4 0x17980400 0x0 0x4000>, + <0x4 0x17980800 0x0 0x4000>, + <0x4 0x15980400 0x0 0x4000>, + <0x4 0x15980800 0x0 0x4000>, + <0x4 0x87020000 0x0 0x10000>, + <0x4 0x87800000 0x0 0x7b0748>, + <0x4 0x10028000 0x0 0x8000>, + <0x4 0x1003c000 0x0 0x4000>, + <0x4 0x17010000 0x0 0x4000>, + <0x4 0x10024000 0x0 0x4000>, + <0x4 0x10048000 0x0 0x4000>, + <0x4 0x10044000 0x0 0x4000>, + <0x4 0x11028000 0x0 0x8000>, + <0x4 0x1103c000 0x0 0x4000>, + <0x4 0x17014000 0x0 0x4000>, + <0x4 0x11024000 0x0 0x4000>, + <0x4 0x11048000 0x0 0x4000>, + <0x4 0x11044000 0x0 0x4000>, + <0x4 0x12028000 0x0 0x8000>, + <0x4 0x1203c000 0x0 0x4000>, + <0x4 0x17018000 0x0 0x4000>, + <0x4 0x12024000 0x0 0x4000>, + <0x4 0x12048000 0x0 0x4000>, + <0x4 0x12044000 0x0 0x4000>, + <0x4 0x13028000 0x0 0x8000>, + <0x4 0x1303c000 0x0 0x4000>, + <0x4 0x1701c000 0x0 0x4000>, + <0x4 0x13024000 0x0 0x4000>, + <0x4 0x13048000 0x0 0x4000>, + <0x4 0x13044000 0x0 0x4000>; + interrupts = , + , + , + , + , + ; + power-domains = <&ps_ans>, <&ps_apcie_gp>, <&ps_apcie_sys_gp>, <&ps_apcie_ge>, <&ps_apcie_sys_ge>, <&ps_apcie_st0>, <&ps_apcie_sys_st0>, <&ps_apcie_st1>, <&ps_apcie_sys_st1>, <&ps_apcie_phy_sw>, <&ps_aphy_gp_aus5_a>, <&ps_aphy_gp_aus5>, <&ps_aphy_ge_aus5_a>, <&ps_aphy_ge_aus5>, <&ps_aphy_st0_aus5_a>, <&ps_aphy_st0_aus5>, <&ps_aphy_st1_aus5_a>, <&ps_aphy_st1_aus5>; + status = "disabled"; + }; + + dart_apcie0: iommu@410000000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x4 0x10000000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + mcc: memory-controller@280620000 { + compatible = "apple,t6050-mcc", "apple,mcc"; + reg = <0x2 0x80620000 0x0 0x4000>, + <0x2 0x84310000 0x0 0x4000>, + <0x2 0x84240000 0x0 0x4000>, + <0x2 0x84250000 0x0 0x4000>; + status = "disabled"; + }; + + wdt: watchdog@28836c000 { + compatible = "apple,t6050-wdt", "apple,wdt"; + reg = <0x2 0x8836c000 0x0 0x4000>, + <0x2 0x88335260 0x0 0x4>, + <0x2 0x88330008 0x0 0x4>, + <0x2 0x8833002c 0x0 0x4>, + <0x2 0x88330020 0x0 0x4>; + interrupts = , + ; + clocks = <&peripheral_clocks 4>; + status = "disabled"; + }; + + pinctrl_ap: pinctrl@29c000000 { + compatible = "apple,t6050-pinctrl", "apple,t8103-pinctrl"; + reg = <0x2 0x9c000000 0x0 0x44000>; + interrupts = , + , + , + , + , + , + ; + status = "disabled"; + }; + + pinctrl_aop: pinctrl@290824000 { + compatible = "apple,t6050-pinctrl", "apple,t8103-pinctrl"; + reg = <0x2 0x90824000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + ; + status = "disabled"; + }; + + aop: aop@290600000 { + compatible = "apple,t6050-aop", "apple,aop"; + reg = <0x2 0x90600000 0x0 0x88000>, + <0x2 0x90650000 0x0 0x4000>, + <0x2 0x90c00000 0x0 0x2f0000>, + <0x2 0x88328000 0x0 0x24>, + <0x2 0x9062c000 0x0 0x3c008>; + interrupts = , + , + , + ; + iommus = <&aop_dart 0>; + status = "disabled"; + }; + + aop_dart: iommu@290fc0000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0x90fc0000 0x0 0xc000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + nvme: nvme@419600000 { + compatible = "apple,t6050-nvme-ans2", "apple,nvme-ans"; + reg = <0x4 0x19600000 0x0 0x88000>, + <0x4 0x19050000 0x0 0x4000>, + <0x2 0x0 0x0 0x0>, + <0x4 0x1dcc0000 0x0 0x60010>, + <0x4 0x1b000000 0x0 0x18000>, + <0x4 0x1db90000 0x0 0xc000>, + <0x4 0x1dd47c00 0x0 0x4000>, + <0x2 0x0 0x0 0x0>, + <0x2 0x0 0x0 0x0>, + <0x4 0x5dcc0000 0x0 0x10000>; + interrupts = , + , + , + , + ; + clocks = <&peripheral_clocks 337>, <&peripheral_clocks 336>, <&peripheral_clocks 338>; + status = "disabled"; + }; + + ans_sart: iommu@41dc50000 { + compatible = "apple,t6050-sart", "apple,sart"; + reg = <0x4 0x1dc50000 0x0 0xc000>, + <0x4 0x1dd44000 0x0 0x4000>, + <0x4 0x1dcc0000 0x0 0x4000>; + status = "disabled"; + }; + + smc: smc@28c600000 { + compatible = "apple,t6050-smc", "apple,smc"; + reg = <0x2 0x8c600000 0x0 0x88000>, + <0x2 0x8c050000 0x0 0x4000>, + <0x2 0x8c810000 0x0 0x100>; + interrupts = , + , + , + ; + status = "disabled"; + }; + + dockchannel: serial@288e28000 { + compatible = "apple,t6050-dockchannel-uart", "apple,dockchannel-uart"; + reg = <0x2 0x88e28000 0x0 0x10004>, + <0x2 0x88e0c000 0x0 0x18>; + interrupts = ; + status = "disabled"; + }; + + qspi: spi@505118000 { + compatible = "apple,t6050-qspi", "apple,qspi"; + reg = <0x5 0x5118000 0x0 0x4000>, + <0x5 0x5118800 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_qspi>; + clocks = <&peripheral_clocks 440>; + status = "disabled"; + }; + + atc1_phy: phy@2aaa90000 { + compatible = "apple,t6050-atcphy", "apple,atcphy"; + reg = <0x2 0xaaa90000 0x0 0x4000>, + <0x2 0xaa800000 0x0 0x4000>, + <0x2 0xab000000 0x0 0x4000>, + <0x2 0xab000400 0x0 0x4000>, + <0x2 0xab000800 0x0 0x4000>, + <0x2 0xab000a00 0x0 0x4000>, + <0x2 0xab001000 0x0 0x4000>, + <0x2 0xab003000 0x0 0x4000>, + <0x2 0xab003200 0x0 0x4000>, + <0x2 0xab003800 0x0 0x4000>, + <0x2 0xab003a00 0x0 0x4000>, + <0x2 0xab004000 0x0 0x4000>, + <0x2 0xab005000 0x0 0x4000>, + <0x2 0xab006000 0x0 0x4000>, + <0x2 0xab007000 0x0 0x4000>, + <0x2 0xab008000 0x0 0x4000>, + <0x2 0xab009000 0x0 0x4000>, + <0x2 0xab00a000 0x0 0x4000>, + <0x2 0xab00b000 0x0 0x4000>, + <0x2 0xab00c000 0x0 0x4000>, + <0x2 0xab00d000 0x0 0x4000>, + <0x2 0xab00e000 0x0 0x4000>, + <0x2 0xab00f000 0x0 0x4000>, + <0x2 0xab010000 0x0 0x4000>, + <0x2 0xab018000 0x0 0x4000>, + <0x2 0xab019000 0x0 0x4000>, + <0x2 0xab01a000 0x0 0x4000>, + <0x2 0xab01b000 0x0 0x4000>, + <0x2 0xab01c000 0x0 0x4000>, + <0x2 0xab01d000 0x0 0x4000>, + <0x2 0xab01e000 0x0 0x4000>, + <0x2 0xab01f000 0x0 0x4000>, + <0x2 0xab020000 0x0 0x4000>, + <0x2 0xab028000 0x0 0x4000>, + <0x2 0xab028400 0x0 0x4000>, + <0x2 0xab029000 0x0 0x4000>, + <0x2 0xab040000 0x0 0x20000>, + <0x2 0xab0c0000 0x0 0x10000>, + <0x2 0xab140000 0x0 0x1c000>, + <0x2 0xab200000 0x0 0x4000>, + <0x2 0xab244000 0x0 0x4000>, + <0x2 0xa8000000 0x0 0x8000>, + <0x2 0xa8020000 0x0 0x4000>, + <0x2 0xab250000 0x0 0x4000>; + power-domains = <&ps_atc1_usb_aon>, <&ps_atc1_common>, <&ps_atc1_phymxwrap>, <&ps_atc1_common_dp_0>, <&ps_atc1_common_dp_1>, <&ps_atc1_common_dp_2>, <&ps_atc1_common_dp_3>; + status = "disabled"; + }; + + usb_drd1_dart_0: iommu@2aaf00000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0xaaf00000 0x0 0xc000>, + <0x2 0xaaf80000 0x0 0xc000>; + interrupts = ; + power-domains = <&ps_atc1_usb>; + #iommu-cells = <1>; + status = "disabled"; + }; + + usb_drd1: usb@2aa280000 { + compatible = "apple,t6050-dwc3", "apple,dwc3"; + reg = <0x2 0xaa280000 0x0 0x11800>, + <0x2 0xaa200000 0x0 0x4000>, + <0x2 0xaa28c000 0x0 0x5800>, + <0x2 0xaaa84000 0x0 0x4000>, + <0x2 0xaa800000 0x0 0x4000>, + <0x2 0xaaa80000 0x0 0x4000>, + <0x2 0xaa080000 0x0 0x4000>, + <0x2 0xaa28d000 0x0 0x4000>, + <0x2 0xaa980000 0x0 0x4000>, + <0x2 0x8675c000 0x0 0x8>; + interrupts = , + , + , + , + ; + iommus = <&usb_drd1_dart_0 1>; + power-domains = <&ps_atc1_usb>; + status = "disabled"; + }; + + atc2_phy: phy@382a90000 { + compatible = "apple,t6050-atcphy", "apple,atcphy"; + reg = <0x3 0x82a90000 0x0 0x4000>, + <0x3 0x82800000 0x0 0x4000>, + <0x3 0x83000000 0x0 0x4000>, + <0x3 0x83000400 0x0 0x4000>, + <0x3 0x83000800 0x0 0x4000>, + <0x3 0x83000a00 0x0 0x4000>, + <0x3 0x83001000 0x0 0x4000>, + <0x3 0x83003000 0x0 0x4000>, + <0x3 0x83003200 0x0 0x4000>, + <0x3 0x83003800 0x0 0x4000>, + <0x3 0x83003a00 0x0 0x4000>, + <0x3 0x83004000 0x0 0x4000>, + <0x3 0x83005000 0x0 0x4000>, + <0x3 0x83006000 0x0 0x4000>, + <0x3 0x83007000 0x0 0x4000>, + <0x3 0x83008000 0x0 0x4000>, + <0x3 0x83009000 0x0 0x4000>, + <0x3 0x8300a000 0x0 0x4000>, + <0x3 0x8300b000 0x0 0x4000>, + <0x3 0x8300c000 0x0 0x4000>, + <0x3 0x8300d000 0x0 0x4000>, + <0x3 0x8300e000 0x0 0x4000>, + <0x3 0x8300f000 0x0 0x4000>, + <0x3 0x83010000 0x0 0x4000>, + <0x3 0x83018000 0x0 0x4000>, + <0x3 0x83019000 0x0 0x4000>, + <0x3 0x8301a000 0x0 0x4000>, + <0x3 0x8301b000 0x0 0x4000>, + <0x3 0x8301c000 0x0 0x4000>, + <0x3 0x8301d000 0x0 0x4000>, + <0x3 0x8301e000 0x0 0x4000>, + <0x3 0x8301f000 0x0 0x4000>, + <0x3 0x83020000 0x0 0x4000>, + <0x3 0x83028000 0x0 0x4000>, + <0x3 0x83028400 0x0 0x4000>, + <0x3 0x83029000 0x0 0x4000>, + <0x3 0x83040000 0x0 0x20000>, + <0x3 0x830c0000 0x0 0x10000>, + <0x3 0x83140000 0x0 0x1c000>, + <0x3 0x83200000 0x0 0x4000>, + <0x3 0x83244000 0x0 0x4000>, + <0x3 0x80000000 0x0 0x8000>, + <0x3 0x80020000 0x0 0x4000>, + <0x3 0x83250000 0x0 0x4000>; + power-domains = <&ps_atc2_usb_aon>, <&ps_atc2_common>, <&ps_atc2_phymxwrap>, <&ps_atc2_common_dp_0>, <&ps_atc2_common_dp_1>, <&ps_atc2_common_dp_2>, <&ps_atc2_common_dp_3>; + status = "disabled"; + }; + + usb_drd2_dart_0: iommu@382f00000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x82f00000 0x0 0xc000>, + <0x3 0x82f80000 0x0 0xc000>; + interrupts = ; + power-domains = <&ps_atc2_usb>; + #iommu-cells = <1>; + status = "disabled"; + }; + + usb_drd2: usb@382280000 { + compatible = "apple,t6050-dwc3", "apple,dwc3"; + reg = <0x3 0x82280000 0x0 0x11800>, + <0x3 0x82200000 0x0 0x4000>, + <0x3 0x8228c000 0x0 0x5800>, + <0x3 0x82a84000 0x0 0x4000>, + <0x3 0x82800000 0x0 0x4000>, + <0x3 0x82a80000 0x0 0x4000>, + <0x3 0x82080000 0x0 0x4000>, + <0x3 0x8228d000 0x0 0x4000>, + <0x3 0x82980000 0x0 0x4000>, + <0x2 0x86760000 0x0 0x8>; + interrupts = , + , + , + , + ; + iommus = <&usb_drd2_dart_0 1>; + power-domains = <&ps_atc2_usb>; + status = "disabled"; + }; + + atc3_phy: phy@38aa90000 { + compatible = "apple,t6050-atcphy", "apple,atcphy"; + reg = <0x3 0x8aa90000 0x0 0x4000>, + <0x3 0x8a800000 0x0 0x4000>, + <0x3 0x8b000000 0x0 0x4000>, + <0x3 0x8b000400 0x0 0x4000>, + <0x3 0x8b000800 0x0 0x4000>, + <0x3 0x8b000a00 0x0 0x4000>, + <0x3 0x8b001000 0x0 0x4000>, + <0x3 0x8b003000 0x0 0x4000>, + <0x3 0x8b003200 0x0 0x4000>, + <0x3 0x8b003800 0x0 0x4000>, + <0x3 0x8b003a00 0x0 0x4000>, + <0x3 0x8b004000 0x0 0x4000>, + <0x3 0x8b005000 0x0 0x4000>, + <0x3 0x8b006000 0x0 0x4000>, + <0x3 0x8b007000 0x0 0x4000>, + <0x3 0x8b008000 0x0 0x4000>, + <0x3 0x8b009000 0x0 0x4000>, + <0x3 0x8b00a000 0x0 0x4000>, + <0x3 0x8b00b000 0x0 0x4000>, + <0x3 0x8b00c000 0x0 0x4000>, + <0x3 0x8b00d000 0x0 0x4000>, + <0x3 0x8b00e000 0x0 0x4000>, + <0x3 0x8b00f000 0x0 0x4000>, + <0x3 0x8b010000 0x0 0x4000>, + <0x3 0x8b018000 0x0 0x4000>, + <0x3 0x8b019000 0x0 0x4000>, + <0x3 0x8b01a000 0x0 0x4000>, + <0x3 0x8b01b000 0x0 0x4000>, + <0x3 0x8b01c000 0x0 0x4000>, + <0x3 0x8b01d000 0x0 0x4000>, + <0x3 0x8b01e000 0x0 0x4000>, + <0x3 0x8b01f000 0x0 0x4000>, + <0x3 0x8b020000 0x0 0x4000>, + <0x3 0x8b028000 0x0 0x4000>, + <0x3 0x8b028400 0x0 0x4000>, + <0x3 0x8b029000 0x0 0x4000>, + <0x3 0x8b040000 0x0 0x20000>, + <0x3 0x8b0c0000 0x0 0x10000>, + <0x3 0x8b140000 0x0 0x1c000>, + <0x3 0x8b200000 0x0 0x4000>, + <0x3 0x8b244000 0x0 0x4000>, + <0x3 0x88000000 0x0 0x8000>, + <0x3 0x88020000 0x0 0x4000>, + <0x3 0x8b250000 0x0 0x4000>; + power-domains = <&ps_atc3_usb_aon>, <&ps_atc3_common>, <&ps_atc3_phymxwrap>, <&ps_atc3_common_dp_0>, <&ps_atc3_common_dp_1>, <&ps_atc3_common_dp_2>, <&ps_atc3_common_dp_3>; + status = "disabled"; + }; + + dcpext0: display-engine@2b0000000 { + compatible = "apple,t6050-display-engine", "apple,display-engine"; + reg = <0x2 0xb0000000 0x0 0x4000000>, + <0x2 0xb2240000 0x0 0x10000>, + <0x2 0xb23ac000 0x0 0x4000>, + <0x2 0xb2800000 0x0 0x800000>, + <0x2 0x86700000 0x0 0x114000>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + ; + iommus = <&dart_dispext0 0>, <&dart_dispext0 16>; + status = "disabled"; + }; + + dcpext0: dcp@2b2e00000 { + compatible = "apple,t6050-dcp", "apple,dcp"; + reg = <0x2 0xb2e00000 0x0 0x88000>, + <0x2 0xb2850000 0x0 0x4000>; + interrupts = , + , + , + , + , + , + ; + iommus = <&dart_dcpext0 23>, <&dart_dcpext0 24>; + status = "disabled"; + }; + + dart_dcpext0: iommu@2b2340000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0xb2340000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + dart_dispext0: iommu@2b2300000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0xb2300000 0x0 0xc000>, + <0x2 0xb2314000 0x0 0x4000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + avd_dart: iommu@2309020000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x23 0x9020000 0x0 0x20000>, + <0x2 0x74000000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_avd_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + admac_base_ns: dma-controller@293800000 { + compatible = "apple,t6050-admac", "apple,admac"; + reg = <0x2 0x93800000 0x0 0x34000>, + <0x2 0x88328000 0x0 0x8>; + interrupts = ; + iommus = <&aop_dart 8>; + #dma-cells = <1>; + status = "disabled"; + }; + +#if defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_J873S) + dart_apcie2: iommu@412000000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x4 0x12000000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) + dart_apcie3: iommu@413000000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x4 0x13000000 0x0 0x20000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_J873S) + usb_drd3_dart_0: iommu@38af00000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x3 0x8af00000 0x0 0xc000>, + <0x3 0x8af80000 0x0 0xc000>; + interrupts = ; + power-domains = <&ps_atc3_usb>; + #iommu-cells = <1>; + status = "disabled"; + }; +#endif + +#if defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_J873S) + usb_drd3: usb@38a280000 { + compatible = "apple,t6050-dwc3", "apple,dwc3"; + reg = <0x3 0x8a280000 0x0 0x11800>, + <0x3 0x8a200000 0x0 0x4000>, + <0x3 0x8a28c000 0x0 0x5800>, + <0x3 0x8aa84000 0x0 0x4000>, + <0x3 0x8a800000 0x0 0x4000>, + <0x3 0x8aa80000 0x0 0x4000>, + <0x3 0x8a080000 0x0 0x4000>, + <0x3 0x8a28d000 0x0 0x4000>, + <0x3 0x8a980000 0x0 0x4000>, + <0x2 0x86764000 0x0 0x8>; + interrupts = , + , + , + , + ; + iommus = <&usb_drd3_dart_0 1>; + power-domains = <&ps_atc3_usb>; + status = "disabled"; + }; +#endif + +}; From 131a512fd04277d994e5dd29d7bbc4fd83d5a5ca Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 07:15:02 +1100 Subject: [PATCH 02/13] arm64: dts: apple: resolve T6050 native references and EDAC groups Decode the live hardware-reference representation, retain the separate display engine identity and collect native EDAC status apertures. Keep each new schema variant closed while exposing its property types at the root. Assisted-by: LLM Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> --- .../devicetree/bindings/crypto/apple,aes.yaml | 2 + .../bindings/display/apple,dcp-expert.yaml | 2 + .../bindings/display/apple,dcp.yaml | 2 + .../display/apple,display-engine.yaml | 145 ++++-- .../bindings/display/apple,dpin.yaml | 2 + .../bindings/display/apple,dptx-aux.yaml | 121 ++++- .../bindings/dma/apple,admac-control.yaml | 121 ++++- .../bindings/dma/apple,admac-secure.yaml | 2 + .../devicetree/bindings/dma/apple,admac.yaml | 2 + .../bindings/dma/apple,pcie-piodma.yaml | 2 + .../bindings/dma/apple,pciec-piodma.yaml | 2 + .../devicetree/bindings/dma/apple,sio.yaml | 2 + .../edac/apple,soc-error-handler.yaml | 49 ++ .../devicetree/bindings/gpu/apple,agx.yaml | 2 + .../devicetree/bindings/i2c/apple,i2c.yaml | 2 + .../devicetree/bindings/iommu/apple,dart.yaml | 2 + .../devicetree/bindings/iommu/apple,sart.yaml | 2 + .../mailbox/apple,secure-mailbox.yaml | 2 + .../devicetree/bindings/media/apple,avd.yaml | 2 + .../devicetree/bindings/media/apple,jpeg.yaml | 2 + .../bindings/media/apple,prores.yaml | 4 +- .../bindings/media/apple,t8140-ave.yaml | 2 + .../bindings/media/apple,t8140-isp.yaml | 290 ++++++++--- .../devicetree/bindings/mfd/apple,smc.yaml | 2 + .../bindings/mux/apple,display-crossbar.yaml | 2 + .../devicetree/bindings/npu/apple,ane.yaml | 2 + .../bindings/nvme/apple,nvme-ans.yaml | 2 + .../devicetree/bindings/pci/apple,pcie.yaml | 2 + .../devicetree/bindings/phy/apple,atcphy.yaml | 2 + .../bindings/phy/apple,dptx-phy.yaml | 2 + .../bindings/pinctrl/apple,pinctrl.yaml | 2 + .../bindings/pwm/apple,s5l-fpwm.yaml | 2 + .../serial/apple,dockchannel-uart.yaml | 2 + .../bindings/serial/apple,uart.yaml | 136 ++++- .../bindings/soc/apple/apple,aon-ptd.yaml | 2 + .../bindings/soc/apple/apple,aop2.yaml | 2 + .../bindings/soc/apple/apple,dockchannel.yaml | 2 + .../bindings/soc/apple/apple,gpu-coproc.yaml | 142 +++++- .../bindings/soc/apple/apple,msg.yaml | 133 ++++- .../bindings/soc/apple/apple,phy-coproc.yaml | 124 ++++- .../bindings/soc/apple/apple,pmp.yaml | 2 + .../bindings/soc/apple/apple,rsm.yaml | 2 + .../soc/apple/apple,rtk-helper-asc4.yaml | 2 + .../bindings/soc/apple/apple,sep.yaml | 2 + .../bindings/soc/apple/apple,t6041-aop.yaml | 2 + .../bindings/soc/apple/apple,t8140-mcc.yaml | 2 + .../devicetree/bindings/spi/apple,qspi.yaml | 2 + .../devicetree/bindings/spi/apple,spi.yaml | 2 + .../devicetree/bindings/spmi/apple,spmi.yaml | 2 + .../thunderbolt/apple,t8103-usb4-acio.yaml | 2 + .../thunderbolt/apple,t8103-usb4-nhi.yaml | 5 +- .../bindings/timer/apple,aic-timebase.yaml | 2 + .../devicetree/bindings/usb/apple,dwc3.yaml | 2 + .../bindings/watchdog/apple,wdt.yaml | 2 + .../boot/dts/apple/t6050-peripherals.dtsi | 476 +++++++++++++----- arch/arm64/boot/dts/apple/t6050.dtsi | 2 +- 56 files changed, 1468 insertions(+), 366 deletions(-) diff --git a/Documentation/devicetree/bindings/crypto/apple,aes.yaml b/Documentation/devicetree/bindings/crypto/apple,aes.yaml index 13fd3a6416fe5..d111ad1cb9c6e 100644 --- a/Documentation/devicetree/bindings/crypto/apple,aes.yaml +++ b/Documentation/devicetree/bindings/crypto/apple,aes.yaml @@ -57,6 +57,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml b/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml index 803297da9a554..04366902676e6 100644 --- a/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml +++ b/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml @@ -48,6 +48,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/display/apple,dcp.yaml b/Documentation/devicetree/bindings/display/apple,dcp.yaml index 08f247dd81fcd..0bd0bc73d81b1 100644 --- a/Documentation/devicetree/bindings/display/apple,dcp.yaml +++ b/Documentation/devicetree/bindings/display/apple,dcp.yaml @@ -349,6 +349,8 @@ properties: $ref: /schemas/graph.yaml#/properties/ports status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/display/apple,display-engine.yaml b/Documentation/devicetree/bindings/display/apple,display-engine.yaml index 1c83bae5446b6..0bdf7a45401aa 100644 --- a/Documentation/devicetree/bindings/display/apple,display-engine.yaml +++ b/Documentation/devicetree/bindings/display/apple,display-engine.yaml @@ -2,37 +2,126 @@ %YAML 1.2 --- $id: "http://devicetree.org/schemas/display/apple,display-engine.yaml#" + $schema: "http://devicetree.org/meta-schemas/core.yaml#" + title: "Apple display engine hardware resources" + maintainers: - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,display-engine" + - "apple,t6050-display-engine" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-display-engine" + - + const: "apple,display-engine" + required: + - "compatible" + properties: - compatible: - items: - - - const: "apple,t6050-display-engine" - - - const: "apple,display-engine" - status: - const: "disabled" - reg: - minItems: 5 - maxItems: 5 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - minItems: 11 - maxItems: 13 - iommus: - minItems: 2 - maxItems: 2 - clocks: - maxItems: 2 -required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "clocks" -additionalProperties: false + compatible: true + status: true + reg: true + interrupts: true + iommus: true + clocks: true + power-domains: true + resets: true + +additionalProperties: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-display-engine" + - + const: "apple,display-engine" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-display-engine" + - + const: "apple,display-engine" + status: + const: "disabled" + reg: + minItems: 5 + maxItems: 5 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 11 + maxItems: 13 + iommus: + minItems: 2 + maxItems: 2 + clocks: + maxItems: 2 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "clocks" + additionalProperties: false + else: + properties: + compatible: + items: + - + const: "apple,t6050-display-engine" + - + const: "apple,display-engine" + status: + const: "disabled" + reg: + minItems: 5 + maxItems: 5 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 11 + maxItems: 13 + iommus: + minItems: 2 + maxItems: 2 + clocks: + maxItems: 2 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "clocks" + additionalProperties: false diff --git a/Documentation/devicetree/bindings/display/apple,dpin.yaml b/Documentation/devicetree/bindings/display/apple,dpin.yaml index 0b5676d3f92cd..5a32a8546c3cf 100644 --- a/Documentation/devicetree/bindings/display/apple,dpin.yaml +++ b/Documentation/devicetree/bindings/display/apple,dpin.yaml @@ -55,6 +55,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/display/apple,dptx-aux.yaml b/Documentation/devicetree/bindings/display/apple,dptx-aux.yaml index 247ce5c154d1a..2f4e2a98171f2 100644 --- a/Documentation/devicetree/bindings/display/apple,dptx-aux.yaml +++ b/Documentation/devicetree/bindings/display/apple,dptx-aux.yaml @@ -2,29 +2,110 @@ %YAML 1.2 --- $id: "http://devicetree.org/schemas/display/apple,dptx-aux.yaml#" + $schema: "http://devicetree.org/meta-schemas/core.yaml#" + title: "Apple dptx aux hardware resources" + maintainers: - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,dptx-aux" + - "apple,t6050-dptx-aux" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-dptx-aux" + - + const: "apple,dptx-aux" + required: + - "compatible" + properties: - compatible: - items: - - - const: "apple,t6050-dptx-aux" - - - const: "apple,dptx-aux" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - power-domains: - maxItems: 1 -required: - - "compatible" - - "reg" - - "status" - - "power-domains" -additionalProperties: false + compatible: true + status: true + reg: true + power-domains: true + interrupts: true + iommus: true + clocks: true + resets: true + +additionalProperties: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-dptx-aux" + - + const: "apple,dptx-aux" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-dptx-aux" + - + const: "apple,dptx-aux" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + power-domains: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "power-domains" + additionalProperties: false + else: + properties: + compatible: + items: + - + const: "apple,t6050-dptx-aux" + - + const: "apple,dptx-aux" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + power-domains: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "power-domains" + additionalProperties: false diff --git a/Documentation/devicetree/bindings/dma/apple,admac-control.yaml b/Documentation/devicetree/bindings/dma/apple,admac-control.yaml index cfe023428006b..720aeddd925ab 100644 --- a/Documentation/devicetree/bindings/dma/apple,admac-control.yaml +++ b/Documentation/devicetree/bindings/dma/apple,admac-control.yaml @@ -2,29 +2,110 @@ %YAML 1.2 --- $id: "http://devicetree.org/schemas/dma/apple,admac-control.yaml#" + $schema: "http://devicetree.org/meta-schemas/core.yaml#" + title: "Apple admac control hardware resources" + maintainers: - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,admac-control" + - "apple,t6050-admac-control" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-admac-control" + - + const: "apple,admac-control" + required: + - "compatible" + properties: - compatible: - items: - - - const: "apple,t6050-admac-control" - - - const: "apple,admac-control" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - maxItems: 1 -required: - - "compatible" - - "reg" - - "status" - - "interrupts" -additionalProperties: false + compatible: true + status: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + +additionalProperties: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-admac-control" + - + const: "apple,admac-control" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-admac-control" + - + const: "apple,admac-control" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + additionalProperties: false + else: + properties: + compatible: + items: + - + const: "apple,t6050-admac-control" + - + const: "apple,admac-control" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + additionalProperties: false diff --git a/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml b/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml index e367da852d1ac..75c6aaf5640ac 100644 --- a/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml +++ b/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml @@ -53,6 +53,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/dma/apple,admac.yaml b/Documentation/devicetree/bindings/dma/apple,admac.yaml index 15d221ebdfc2f..ef9719e3a269e 100644 --- a/Documentation/devicetree/bindings/dma/apple,admac.yaml +++ b/Documentation/devicetree/bindings/dma/apple,admac.yaml @@ -72,6 +72,8 @@ properties: clocks: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml b/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml index c3f41a9c36508..27c0202f58b5b 100644 --- a/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml +++ b/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml @@ -56,6 +56,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml index 2587727c143e3..0602a10dca494 100644 --- a/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml +++ b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml @@ -58,6 +58,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/dma/apple,sio.yaml b/Documentation/devicetree/bindings/dma/apple,sio.yaml index 27e081346754d..7700b3f2a473d 100644 --- a/Documentation/devicetree/bindings/dma/apple,sio.yaml +++ b/Documentation/devicetree/bindings/dma/apple,sio.yaml @@ -92,6 +92,8 @@ properties: Apple's firmware changes. interrupts: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml b/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml index 6d5220e8e8aee..ce1f774aa9087 100644 --- a/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml +++ b/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml @@ -56,6 +56,16 @@ select: - apple,t8152-event-log required: - compatible + - + properties: + compatible: + items: + - + const: "apple,t6050-error-handler" + - + const: "apple,soc-error-handler" + required: + - "compatible" - properties: compatible: @@ -77,9 +87,24 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-error-handler" + - + const: "apple,soc-error-handler" + status: + const: "disabled" + required: + - "compatible" + - "status" - properties: compatible: @@ -95,6 +120,30 @@ allOf: - "status" then: oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-error-handler" + - + const: "apple,soc-error-handler" + status: + const: "disabled" + reg: + minItems: 214 + maxItems: 214 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 105 + maxItems: 105 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + additionalProperties: false - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." properties: diff --git a/Documentation/devicetree/bindings/gpu/apple,agx.yaml b/Documentation/devicetree/bindings/gpu/apple,agx.yaml index d9afef42ef40d..dd6bcb6b8dee0 100644 --- a/Documentation/devicetree/bindings/gpu/apple,agx.yaml +++ b/Documentation/devicetree/bindings/gpu/apple,agx.yaml @@ -180,6 +180,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/i2c/apple,i2c.yaml b/Documentation/devicetree/bindings/i2c/apple,i2c.yaml index d476a35e0e7c6..8b14f3c6b43fb 100644 --- a/Documentation/devicetree/bindings/i2c/apple,i2c.yaml +++ b/Documentation/devicetree/bindings/i2c/apple,i2c.yaml @@ -68,6 +68,8 @@ properties: iommus: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/iommu/apple,dart.yaml b/Documentation/devicetree/bindings/iommu/apple,dart.yaml index 9f9ce0f6a652d..5e4b0f3409c2e 100644 --- a/Documentation/devicetree/bindings/iommu/apple,dart.yaml +++ b/Documentation/devicetree/bindings/iommu/apple,dart.yaml @@ -152,6 +152,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/iommu/apple,sart.yaml b/Documentation/devicetree/bindings/iommu/apple,sart.yaml index 067d4e2f73d0b..99b6f5cc29b6d 100644 --- a/Documentation/devicetree/bindings/iommu/apple,sart.yaml +++ b/Documentation/devicetree/bindings/iommu/apple,sart.yaml @@ -69,6 +69,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml b/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml index 19b1677eda176..7d8d19a4dfe19 100644 --- a/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml +++ b/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml @@ -48,6 +48,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/media/apple,avd.yaml b/Documentation/devicetree/bindings/media/apple,avd.yaml index 770a3386ea417..6c414b4fd6526 100644 --- a/Documentation/devicetree/bindings/media/apple,avd.yaml +++ b/Documentation/devicetree/bindings/media/apple,avd.yaml @@ -55,6 +55,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/media/apple,jpeg.yaml b/Documentation/devicetree/bindings/media/apple,jpeg.yaml index ae56a4bdb7470..4adbd0df134ae 100644 --- a/Documentation/devicetree/bindings/media/apple,jpeg.yaml +++ b/Documentation/devicetree/bindings/media/apple,jpeg.yaml @@ -67,6 +67,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/media/apple,prores.yaml b/Documentation/devicetree/bindings/media/apple,prores.yaml index 4fad7efc9cb02..135dffd767ed8 100644 --- a/Documentation/devicetree/bindings/media/apple,prores.yaml +++ b/Documentation/devicetree/bindings/media/apple,prores.yaml @@ -57,6 +57,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: @@ -87,7 +89,7 @@ allOf: status: const: "disabled" reg: - minItems: 5 + minItems: 2 maxItems: 5 description: "Native register apertures in hardware-interface order, including shared auxiliary views." interrupts: diff --git a/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml b/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml index 4030941193479..7c0ad4b49eade 100644 --- a/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml +++ b/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml @@ -58,6 +58,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/media/apple,t8140-isp.yaml b/Documentation/devicetree/bindings/media/apple,t8140-isp.yaml index 1671fa01bec96..8683baea2e9c8 100644 --- a/Documentation/devicetree/bindings/media/apple,t8140-isp.yaml +++ b/Documentation/devicetree/bindings/media/apple,t8140-isp.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/media/apple,t8140-isp.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple T8140 Image Signal Processor @@ -16,86 +17,48 @@ description: must be serviced while capturing to receive sensor pixels. select: - properties: - compatible: - contains: - enum: - - apple,t8140-isp - - apple,t8142-isp - required: - - compatible + anyOf: + - + properties: + compatible: + contains: + enum: + - apple,t8140-isp + - apple,t8142-isp + required: + - compatible + - + properties: + compatible: + items: + - + const: "apple,t6050-isp" + - + const: "apple,isp" + required: + - "compatible" properties: - compatible: - items: - - enum: - - apple,t8140-isp - - apple,t8142-isp - - const: apple,isp - - reg: - items: - - description: Coprocessor control registers - - description: Mailbox interrupt and doorbell registers - - description: Firmware handshake registers - - description: Capture watchdog registers - - reg-names: - items: - - const: coproc - - const: mbox - - const: gpio - - const: wdt - - interrupts: - maxItems: 1 - - iommus: - items: - - description: First ISP DART stream - - description: Second ISP DART stream - - description: Third ISP DART stream - - power-domains: - items: - - description: ISP system domain - - description: ISP CPU domain - - description: ISP CPU core 0 domain - - description: ISP CPU core 1 domain - - description: ISP FE domain - - description: ISP DPRX domain - - description: ISP secure domain - - description: ISP STS0 domain - - description: ISP STS1 domain - - description: ISP Pearl domain - - description: ISP BE domain - - description: ISP CLR domain - - description: ISP CVD domain - - description: ISP CVM domain - - memory-region: - maxItems: 1 - description: Firmware heap region provided by the bootloader - - memory-region-names: - items: - - const: heap - + compatible: true + reg: true + reg-names: true + interrupts: true + iommus: true + power-domains: true + memory-region: true + memory-region-names: true apple,dart-vm-size: $ref: /schemas/types.yaml#/definitions/uint64 description: Size in bytes of the host allocation aperture used by the ISP driver. - apple,platform-id: $ref: /schemas/types.yaml#/definitions/uint32 description: Platform identifier passed in the firmware boot descriptor. - apple,temporal-filter: $ref: /schemas/types.yaml#/definitions/uint32 description: Firmware temporal-filter strength selected for the attached sensor. - sensor-presets: type: object description: @@ -134,21 +97,188 @@ properties: - apple,crop additionalProperties: false additionalProperties: false + clocks: true + resets: true + status: true + +additionalProperties: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-isp" + - + const: "apple,isp" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-isp" + - + const: "apple,isp" + status: + const: "disabled" + reg: + minItems: 3 + maxItems: 3 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 5 + maxItems: 5 + iommus: + minItems: 6 + maxItems: 6 + power-domains: + minItems: 2 + maxItems: 2 + clocks: + maxItems: 2 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "iommus" + - "power-domains" + - "clocks" + additionalProperties: false + else: + properties: + compatible: + items: + - enum: + - apple,t8140-isp + - apple,t8142-isp + - const: apple,isp + + reg: + items: + - description: Coprocessor control registers + - description: Mailbox interrupt and doorbell registers + - description: Firmware handshake registers + - description: Capture watchdog registers + + reg-names: + items: + - const: coproc + - const: mbox + - const: gpio + - const: wdt + + interrupts: + maxItems: 1 + + iommus: + items: + - description: First ISP DART stream + - description: Second ISP DART stream + - description: Third ISP DART stream + + power-domains: + items: + - description: ISP system domain + - description: ISP CPU domain + - description: ISP CPU core 0 domain + - description: ISP CPU core 1 domain + - description: ISP FE domain + - description: ISP DPRX domain + - description: ISP secure domain + - description: ISP STS0 domain + - description: ISP STS1 domain + - description: ISP Pearl domain + - description: ISP BE domain + - description: ISP CLR domain + - description: ISP CVD domain + - description: ISP CVM domain + + memory-region: + maxItems: 1 + description: Firmware heap region provided by the bootloader + + memory-region-names: + items: + - const: heap + + apple,dart-vm-size: + $ref: /schemas/types.yaml#/definitions/uint64 + description: + Size in bytes of the host allocation aperture used by the ISP driver. + + apple,platform-id: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Platform identifier passed in the firmware boot descriptor. + + apple,temporal-filter: + $ref: /schemas/types.yaml#/definitions/uint32 + description: + Firmware temporal-filter strength selected for the attached sensor. -required: - - compatible - - reg - - reg-names - - interrupts - - iommus - - power-domains - - memory-region - - memory-region-names - - apple,dart-vm-size - - apple,platform-id - - sensor-presets - -additionalProperties: false + sensor-presets: + type: object + description: + Sensor firmware presets and the host output geometry associated with them. + patternProperties: + "^preset[0-9]+$": + type: object + properties: + apple,config-index: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Sensor configuration index understood by the firmware + apple,input-size: + $ref: /schemas/types.yaml#/definitions/uint32-array + items: + - description: Input width in pixels + - description: Input height in pixels + description: Sensor input dimensions + apple,output-size: + $ref: /schemas/types.yaml#/definitions/uint32-array + items: + - description: Output width in pixels + - description: Output height in pixels + description: Delivered frame dimensions + apple,crop: + $ref: /schemas/types.yaml#/definitions/uint32-array + items: + - description: Horizontal crop origin in pixels + - description: Vertical crop origin in pixels + - description: Crop width in pixels + - description: Crop height in pixels + description: Cropped sensor rectangle + required: + - apple,config-index + - apple,input-size + - apple,output-size + - apple,crop + additionalProperties: false + additionalProperties: false + required: + - compatible + - reg + - reg-names + - interrupts + - iommus + - power-domains + - memory-region + - memory-region-names + - apple,dart-vm-size + - apple,platform-id + - sensor-presets + additionalProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/mfd/apple,smc.yaml b/Documentation/devicetree/bindings/mfd/apple,smc.yaml index c8c8ba645a991..b9a325be54e73 100644 --- a/Documentation/devicetree/bindings/mfd/apple,smc.yaml +++ b/Documentation/devicetree/bindings/mfd/apple,smc.yaml @@ -74,6 +74,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml b/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml index 981a7e0893562..4368db85c7d19 100644 --- a/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml +++ b/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml @@ -55,6 +55,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/npu/apple,ane.yaml b/Documentation/devicetree/bindings/npu/apple,ane.yaml index 0b3ed5cae9004..ad1bfb82df269 100644 --- a/Documentation/devicetree/bindings/npu/apple,ane.yaml +++ b/Documentation/devicetree/bindings/npu/apple,ane.yaml @@ -139,6 +139,8 @@ properties: the exclave DART contexts. Absence does not prove a handoff on T8140. status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml b/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml index 24d7149497b26..047e1415b6825 100644 --- a/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml +++ b/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml @@ -75,6 +75,8 @@ properties: clocks: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/pci/apple,pcie.yaml b/Documentation/devicetree/bindings/pci/apple,pcie.yaml index e7b0ad9b0da89..7798a9e56c563 100644 --- a/Documentation/devicetree/bindings/pci/apple,pcie.yaml +++ b/Documentation/devicetree/bindings/pci/apple,pcie.yaml @@ -156,6 +156,8 @@ properties: clocks: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml index 9939de6416dd8..36cd2191558d5 100644 --- a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml +++ b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml @@ -259,6 +259,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml b/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml index 10b1620399192..fcf0b9d0e5c72 100644 --- a/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml +++ b/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml @@ -49,6 +49,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml index f6b3594cba830..5af484f890cd8 100644 --- a/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml +++ b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml @@ -79,6 +79,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml index 4b7018c7aa114..7b0665952e475 100644 --- a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml +++ b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml @@ -56,6 +56,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml b/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml index 5316c4c2eb2c8..854bb3e61c303 100644 --- a/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml +++ b/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml @@ -69,6 +69,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/serial/apple,uart.yaml b/Documentation/devicetree/bindings/serial/apple,uart.yaml index bb5148182bfcb..b72051067d432 100644 --- a/Documentation/devicetree/bindings/serial/apple,uart.yaml +++ b/Documentation/devicetree/bindings/serial/apple,uart.yaml @@ -2,34 +2,120 @@ %YAML 1.2 --- $id: "http://devicetree.org/schemas/serial/apple,uart.yaml#" + $schema: "http://devicetree.org/meta-schemas/core.yaml#" + title: "Apple uart hardware resources" + maintainers: - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,t6050-uart" + - "apple,uart" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-uart" + - + const: "apple,uart" + required: + - "compatible" + properties: - compatible: - items: - - - const: "apple,t6050-uart" - - - const: "apple,uart" - status: - const: "disabled" - reg: - maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - maxItems: 1 - power-domains: - maxItems: 1 - clocks: - maxItems: 2 -required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - - "clocks" -additionalProperties: false + compatible: true + status: true + reg: true + interrupts: true + power-domains: true + clocks: true + iommus: true + resets: true + +additionalProperties: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-uart" + - + const: "apple,uart" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-uart" + - + const: "apple,uart" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + power-domains: + maxItems: 1 + clocks: + maxItems: 2 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + - "clocks" + additionalProperties: false + else: + properties: + compatible: + items: + - + const: "apple,t6050-uart" + - + const: "apple,uart" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + power-domains: + maxItems: 1 + clocks: + maxItems: 2 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + - "clocks" + additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml b/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml index 93f7807a0a65b..6c6bd9d413d80 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml @@ -51,6 +51,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml b/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml index 427f44d94640c..83dd3e4157327 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml @@ -46,6 +46,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml b/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml index f1f475ac2e1eb..613ae4de713ee 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml @@ -69,6 +69,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,gpu-coproc.yaml b/Documentation/devicetree/bindings/soc/apple/apple,gpu-coproc.yaml index bd515330465e1..8fa58e374a5d2 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,gpu-coproc.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,gpu-coproc.yaml @@ -2,36 +2,124 @@ %YAML 1.2 --- $id: "http://devicetree.org/schemas/soc/apple/apple,gpu-coproc.yaml#" + $schema: "http://devicetree.org/meta-schemas/core.yaml#" + title: "Apple gpu coproc hardware resources" + maintainers: - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,gpu-coproc" + - "apple,t6050-gpu-coproc" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-gpu-coproc" + - + const: "apple,gpu-coproc" + required: + - "compatible" + properties: - compatible: - items: - - - const: "apple,t6050-gpu-coproc" - - - const: "apple,gpu-coproc" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - minItems: 4 - maxItems: 4 - power-domains: - maxItems: 1 - clocks: - maxItems: 1 -required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - - "clocks" -additionalProperties: false + compatible: true + status: true + reg: true + interrupts: true + power-domains: true + clocks: true + iommus: true + resets: true + +additionalProperties: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-gpu-coproc" + - + const: "apple,gpu-coproc" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-gpu-coproc" + - + const: "apple,gpu-coproc" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 + power-domains: + maxItems: 1 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + - "clocks" + additionalProperties: false + else: + properties: + compatible: + items: + - + const: "apple,t6050-gpu-coproc" + - + const: "apple,gpu-coproc" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 + power-domains: + maxItems: 1 + clocks: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + - "clocks" + additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,msg.yaml b/Documentation/devicetree/bindings/soc/apple/apple,msg.yaml index 7421a30a2bbde..0e40f20f52b82 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,msg.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,msg.yaml @@ -2,33 +2,118 @@ %YAML 1.2 --- $id: "http://devicetree.org/schemas/soc/apple/apple,msg.yaml#" + $schema: "http://devicetree.org/meta-schemas/core.yaml#" + title: "Apple msg hardware resources" + maintainers: - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,msg" + - "apple,t6050-msg" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-msg" + - + const: "apple,msg" + required: + - "compatible" + properties: - compatible: - items: - - - const: "apple,t6050-msg" - - - const: "apple,msg" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - minItems: 41 - maxItems: 41 - power-domains: - maxItems: 1 -required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" -additionalProperties: false + compatible: true + status: true + reg: true + interrupts: true + power-domains: true + iommus: true + clocks: true + resets: true + +additionalProperties: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-msg" + - + const: "apple,msg" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-msg" + - + const: "apple,msg" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 41 + maxItems: 41 + power-domains: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + additionalProperties: false + else: + properties: + compatible: + items: + - + const: "apple,t6050-msg" + - + const: "apple,msg" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 41 + maxItems: 41 + power-domains: + maxItems: 1 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,phy-coproc.yaml b/Documentation/devicetree/bindings/soc/apple/apple,phy-coproc.yaml index 1229422174764..d826dc010a29d 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,phy-coproc.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,phy-coproc.yaml @@ -2,30 +2,112 @@ %YAML 1.2 --- $id: "http://devicetree.org/schemas/soc/apple/apple,phy-coproc.yaml#" + $schema: "http://devicetree.org/meta-schemas/core.yaml#" + title: "Apple phy coproc hardware resources" + maintainers: - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,phy-coproc" + - "apple,t6050-phy-coproc" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-phy-coproc" + - + const: "apple,phy-coproc" + required: + - "compatible" + properties: - compatible: - items: - - - const: "apple,t6050-phy-coproc" - - - const: "apple,phy-coproc" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - minItems: 4 - maxItems: 4 -required: - - "compatible" - - "reg" - - "status" - - "interrupts" -additionalProperties: false + compatible: true + status: true + reg: true + interrupts: true + iommus: true + power-domains: true + clocks: true + resets: true + +additionalProperties: true + +allOf: + - if: + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-phy-coproc" + - + const: "apple,phy-coproc" + status: + const: "disabled" + required: + - "compatible" + - "status" + then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-phy-coproc" + - + const: "apple,phy-coproc" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + additionalProperties: false + else: + properties: + compatible: + items: + - + const: "apple,t6050-phy-coproc" + - + const: "apple,phy-coproc" + status: + const: "disabled" + reg: + minItems: 2 + maxItems: 2 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + minItems: 4 + maxItems: 4 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml b/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml index 2b953ccb9ca8f..7b4c1f6a48573 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml @@ -105,6 +105,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml b/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml index 035a1210171c2..47a2141aa56c6 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml @@ -50,6 +50,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml b/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml index ab304ce9ef21b..e433d4053fa0a 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml @@ -119,6 +119,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml b/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml index 62e491362d7b6..39e40ac06bd9b 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml @@ -65,6 +65,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml b/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml index faf46c9ef7d7e..12d2202ed2807 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml @@ -106,6 +106,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml index 9e6315cd83e91..e15fc9f30a4d5 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml @@ -64,6 +64,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/spi/apple,qspi.yaml b/Documentation/devicetree/bindings/spi/apple,qspi.yaml index f0f3ed088f905..40bb9b0f2c2f3 100644 --- a/Documentation/devicetree/bindings/spi/apple,qspi.yaml +++ b/Documentation/devicetree/bindings/spi/apple,qspi.yaml @@ -54,6 +54,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/spi/apple,spi.yaml b/Documentation/devicetree/bindings/spi/apple,spi.yaml index 54f22dd263165..7f6f9e66bd837 100644 --- a/Documentation/devicetree/bindings/spi/apple,spi.yaml +++ b/Documentation/devicetree/bindings/spi/apple,spi.yaml @@ -51,6 +51,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/spmi/apple,spmi.yaml b/Documentation/devicetree/bindings/spmi/apple,spmi.yaml index 69b30fa19a590..7767dff9a66e7 100644 --- a/Documentation/devicetree/bindings/spmi/apple,spmi.yaml +++ b/Documentation/devicetree/bindings/spmi/apple,spmi.yaml @@ -58,6 +58,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml index 94d2ee93c3a68..a36c42013a275 100644 --- a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml +++ b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml @@ -147,6 +147,8 @@ properties: clocks: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml index b27cae7db3b60..58dbfb80bf7e0 100644 --- a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml +++ b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml @@ -77,6 +77,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: @@ -114,7 +116,7 @@ allOf: minItems: 25 maxItems: 25 iommus: - minItems: 1 + minItems: 24 maxItems: 24 power-domains: minItems: 4 @@ -124,6 +126,7 @@ allOf: - "reg" - "status" - "interrupts" + - "iommus" - "power-domains" additionalProperties: false else: diff --git a/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml b/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml index 0cc6086e26a76..4ba63c976300e 100644 --- a/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml +++ b/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml @@ -53,6 +53,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/usb/apple,dwc3.yaml b/Documentation/devicetree/bindings/usb/apple,dwc3.yaml index b254814f11a6c..e5378f07e2b96 100644 --- a/Documentation/devicetree/bindings/usb/apple,dwc3.yaml +++ b/Documentation/devicetree/bindings/usb/apple,dwc3.yaml @@ -77,6 +77,8 @@ properties: clocks: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml b/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml index 383a4886ff287..dad1d99d0f49f 100644 --- a/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml +++ b/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml @@ -57,6 +57,8 @@ properties: resets: true status: true +additionalProperties: true + allOf: - if: anyOf: diff --git a/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi index 27ca11fcf868a..adb8ce32670d8 100644 --- a/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi +++ b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi @@ -237,6 +237,14 @@ }; &pmgr1 { + ps_ispsens0: power-controller@100 { + compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; + reg = <0x100 4>; + #power-domain-cells = <0>; + #reset-cells = <0>; + label = "ispsens0"; + status = "disabled"; + }; ps_global_aux_hpd_0: power-controller@108 { compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; reg = <0x108 4>; @@ -1295,6 +1303,24 @@ }; #endif +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + isp0: isp@580000000 { + compatible = "apple,t6050-isp", "apple,isp"; + reg = <0x5 0x80000000 0x0 0x3ff0000>, + <0x2 0x80900000 0x0 0x3f4>, + <0x2 0x80920000 0x0 0x4000>; + interrupts = , + , + , + , + ; + iommus = <&isp0_dart 0>, <&isp0_dart 12>, <&isp0_dart 4>, <&isp0_dart 5>, <&isp0_dart 8>, <&isp0_dart 9>; + power-domains = <&ps_isp_sys>, <&ps_ispsens0>; + clocks = <&peripheral_clocks 350>, <&peripheral_clocks 352>; + status = "disabled"; + }; +#endif + #if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) isp0_dart: iommu@5828c0000 { compatible = "apple,t6050-dart", "apple,t8110-dart"; @@ -1476,7 +1502,6 @@ status = "disabled"; }; -#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) acio0: usb4@2a1f00000 { compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; reg = <0x2 0xa1f00000 0x0 0x100000>, @@ -1514,7 +1539,6 @@ power-domains = <&ps_atc0_cio_auss>, <&ps_atc0_cio>, <&ps_atc0_cio_pcie>, <&ps_atc0_cio_usb>; status = "disabled"; }; -#endif acio0_dart: iommu@2a1a80000 { compatible = "apple,t6050-dart", "apple,t8110-dart"; @@ -1574,7 +1598,6 @@ status = "disabled"; }; -#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) acio1: usb4@2a9f00000 { compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; reg = <0x2 0xa9f00000 0x0 0x100000>, @@ -1612,7 +1635,6 @@ power-domains = <&ps_atc1_cio_auss>, <&ps_atc1_cio>, <&ps_atc1_cio_pcie>, <&ps_atc1_cio_usb>; status = "disabled"; }; -#endif acio1_dart: iommu@2a9a80000 { compatible = "apple,t6050-dart", "apple,t8110-dart"; @@ -1672,7 +1694,6 @@ status = "disabled"; }; -#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) acio2: usb4@381f00000 { compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; reg = <0x3 0x81f00000 0x0 0x100000>, @@ -1710,7 +1731,6 @@ power-domains = <&ps_atc2_cio_auss>, <&ps_atc2_cio>, <&ps_atc2_cio_pcie>, <&ps_atc2_cio_usb>; status = "disabled"; }; -#endif acio2_dart: iommu@381a80000 { compatible = "apple,t6050-dart", "apple,t8110-dart"; @@ -1847,6 +1867,330 @@ status = "disabled"; }; + error_handler: error-handler@2220000000 { + compatible = "apple,t6050-error-handler", "apple,soc-error-handler"; + reg = <0x22 0x20000000 0x0 0x240000>, + <0x22 0x20270000 0x0 0x1d0000>, + <0x22 0x20600000 0x0 0x40000>, + <0x22 0x20670000 0x0 0x1d0000>, + <0x22 0x22000000 0x0 0x240000>, + <0x22 0x22270000 0x0 0x1d0000>, + <0x22 0x22600000 0x0 0x40000>, + <0x22 0x22670000 0x0 0x1d0000>, + <0x2 0x80000000 0x0 0x80000>, + <0x2 0x80650000 0x0 0x4000>, + <0x2 0x806e0000 0x0 0xc000>, + <0x2 0x80210000 0x0 0x4000>, + <0x2 0x88374000 0x0 0x4000>, + <0x2 0x86000000 0x0 0x1000000>, + <0x2 0x84250000 0x0 0x4000>, + <0x22 0x63000000 0x0 0x38000>, + <0x22 0x64000000 0x0 0x38000>, + <0x22 0x65000000 0x0 0x38000>, + <0x2 0x63000000 0x0 0x44000>, + <0x2 0x64000000 0x0 0x30000>, + <0x2 0x65000000 0x0 0x3c000>, + <0x2 0x66000000 0x0 0x34000>, + <0x2 0x67000000 0x0 0x38000>, + <0x2 0x68000000 0x0 0x38000>, + <0x2 0x69000000 0x0 0x30000>, + <0x22 0x5a100000 0x0 0x24000>, + <0x22 0x5b100000 0x0 0x24000>, + <0x22 0x5c100000 0x0 0x24000>, + <0x22 0x5d100000 0x0 0x24000>, + <0x2 0x4f000000 0x0 0x30000>, + <0x2 0x50000000 0x0 0x30000>, + <0x2 0x51000000 0x0 0x30000>, + <0x2 0x52000000 0x0 0x24000>, + <0x2 0x62000000 0x0 0x1c000>, + <0x22 0x62000000 0x0 0x1c000>, + <0x22 0x5a000000 0x0 0x2c000>, + <0x22 0x5b000000 0x0 0x2c000>, + <0x22 0x5c000000 0x0 0x2c000>, + <0x22 0x5d000000 0x0 0x2c000>, + <0x22 0x5a200000 0x0 0x1c000>, + <0x22 0x5a300000 0x0 0x1c000>, + <0x22 0x5b200000 0x0 0x1c000>, + <0x22 0x5b300000 0x0 0x1c000>, + <0x2 0x6a000000 0x0 0x1c000>, + <0x2 0x6b000000 0x0 0x1c000>, + <0x2 0x6c000000 0x0 0x1c000>, + <0x2 0x6d000000 0x0 0x1c000>, + <0x22 0x66000000 0x0 0x1c000>, + <0x22 0x67000000 0x0 0x1c000>, + <0x22 0x68000000 0x0 0x1c000>, + <0x22 0x69000000 0x0 0x1c000>, + <0x22 0x75000000 0x0 0x10000>, + <0x22 0x75010000 0x0 0x10000>, + <0x22 0x75020000 0x0 0x10000>, + <0x22 0x75030000 0x0 0x10000>, + <0x22 0x75400000 0x0 0x10000>, + <0x22 0x75410000 0x0 0x10000>, + <0x22 0x75420000 0x0 0x10000>, + <0x22 0x75430000 0x0 0x10000>, + <0x22 0x75800000 0x0 0x10000>, + <0x22 0x75810000 0x0 0x10000>, + <0x22 0x75820000 0x0 0x10000>, + <0x22 0x75830000 0x0 0x10000>, + <0x22 0x75c00000 0x0 0x10000>, + <0x22 0x75c10000 0x0 0x10000>, + <0x22 0x75c20000 0x0 0x10000>, + <0x22 0x75c30000 0x0 0x10000>, + <0x22 0x76000000 0x0 0x10000>, + <0x22 0x76010000 0x0 0x10000>, + <0x22 0x76020000 0x0 0x10000>, + <0x22 0x76030000 0x0 0x10000>, + <0x22 0x76400000 0x0 0x10000>, + <0x22 0x76410000 0x0 0x10000>, + <0x22 0x76420000 0x0 0x10000>, + <0x22 0x76430000 0x0 0x10000>, + <0x22 0x76800000 0x0 0x10000>, + <0x22 0x76810000 0x0 0x10000>, + <0x22 0x76820000 0x0 0x10000>, + <0x22 0x76830000 0x0 0x10000>, + <0x22 0x76c00000 0x0 0x10000>, + <0x22 0x76c10000 0x0 0x10000>, + <0x22 0x76c20000 0x0 0x10000>, + <0x22 0x76c30000 0x0 0x10000>, + <0x22 0x77000000 0x0 0x10000>, + <0x22 0x77010000 0x0 0x10000>, + <0x22 0x77020000 0x0 0x10000>, + <0x22 0x77030000 0x0 0x10000>, + <0x22 0x77040000 0x0 0x10000>, + <0x22 0x77050000 0x0 0x10000>, + <0x22 0x77400000 0x0 0x10000>, + <0x22 0x77410000 0x0 0x10000>, + <0x22 0x77420000 0x0 0x10000>, + <0x22 0x77430000 0x0 0x10000>, + <0x22 0x77440000 0x0 0x10000>, + <0x22 0x77450000 0x0 0x10000>, + <0x22 0x77800000 0x0 0x10000>, + <0x22 0x77810000 0x0 0x10000>, + <0x22 0x77820000 0x0 0x10000>, + <0x22 0x77830000 0x0 0x10000>, + <0x22 0x77840000 0x0 0x10000>, + <0x22 0x77850000 0x0 0x10000>, + <0x22 0x77c00000 0x0 0x10000>, + <0x22 0x77c10000 0x0 0x10000>, + <0x22 0x77c20000 0x0 0x10000>, + <0x22 0x77c30000 0x0 0x10000>, + <0x22 0x77c40000 0x0 0x10000>, + <0x22 0x77c50000 0x0 0x10000>, + <0x2 0x73000000 0x0 0x10000>, + <0x2 0x73010000 0x0 0x10000>, + <0x2 0x73020000 0x0 0x10000>, + <0x2 0x73030000 0x0 0x10000>, + <0x2 0x73040000 0x0 0x10000>, + <0x2 0x73050000 0x0 0x10000>, + <0x2 0x73060000 0x0 0x10000>, + <0x2 0x73400000 0x0 0x10000>, + <0x2 0x73410000 0x0 0x10000>, + <0x2 0x73420000 0x0 0x10000>, + <0x2 0x73430000 0x0 0x10000>, + <0x2 0x73440000 0x0 0x10000>, + <0x2 0x73450000 0x0 0x10000>, + <0x2 0x73460000 0x0 0x10000>, + <0x2 0x73800000 0x0 0x10000>, + <0x2 0x73810000 0x0 0x10000>, + <0x2 0x73820000 0x0 0x10000>, + <0x2 0x73830000 0x0 0x10000>, + <0x2 0x73840000 0x0 0x10000>, + <0x2 0x73850000 0x0 0x10000>, + <0x2 0x73860000 0x0 0x10000>, + <0x2 0x73c00000 0x0 0x10000>, + <0x2 0x73c10000 0x0 0x10000>, + <0x2 0x73c20000 0x0 0x10000>, + <0x2 0x73c30000 0x0 0x10000>, + <0x2 0x73c40000 0x0 0x10000>, + <0x2 0x73c50000 0x0 0x10000>, + <0x2 0x73c60000 0x0 0x10000>, + <0x22 0x75100000 0x0 0x10000>, + <0x22 0x75110000 0x0 0x10000>, + <0x22 0x75120000 0x0 0x10000>, + <0x22 0x75130000 0x0 0x10000>, + <0x22 0x75500000 0x0 0x10000>, + <0x22 0x75510000 0x0 0x10000>, + <0x22 0x75520000 0x0 0x10000>, + <0x22 0x75530000 0x0 0x10000>, + <0x22 0x75900000 0x0 0x10000>, + <0x22 0x75910000 0x0 0x10000>, + <0x22 0x75920000 0x0 0x10000>, + <0x22 0x75930000 0x0 0x10000>, + <0x22 0x75d00000 0x0 0x10000>, + <0x22 0x75d10000 0x0 0x10000>, + <0x22 0x75d20000 0x0 0x10000>, + <0x22 0x75d30000 0x0 0x10000>, + <0x22 0x76100000 0x0 0x10000>, + <0x22 0x76110000 0x0 0x10000>, + <0x22 0x76120000 0x0 0x10000>, + <0x22 0x76130000 0x0 0x10000>, + <0x22 0x76500000 0x0 0x10000>, + <0x22 0x76510000 0x0 0x10000>, + <0x22 0x76520000 0x0 0x10000>, + <0x22 0x76530000 0x0 0x10000>, + <0x22 0x76900000 0x0 0x10000>, + <0x22 0x76910000 0x0 0x10000>, + <0x22 0x76920000 0x0 0x10000>, + <0x22 0x76930000 0x0 0x10000>, + <0x22 0x76d00000 0x0 0x10000>, + <0x22 0x76d10000 0x0 0x10000>, + <0x22 0x76d20000 0x0 0x10000>, + <0x22 0x76d30000 0x0 0x10000>, + <0x2 0x58000000 0x0 0x10000>, + <0x2 0x58010000 0x0 0x10000>, + <0x2 0x58020000 0x0 0x10000>, + <0x2 0x58030000 0x0 0x10000>, + <0x2 0x58040000 0x0 0x10000>, + <0x2 0x58400000 0x0 0x10000>, + <0x2 0x58410000 0x0 0x10000>, + <0x2 0x58420000 0x0 0x10000>, + <0x2 0x58430000 0x0 0x10000>, + <0x2 0x58440000 0x0 0x10000>, + <0x2 0x58800000 0x0 0x10000>, + <0x2 0x58810000 0x0 0x10000>, + <0x2 0x58820000 0x0 0x10000>, + <0x2 0x58830000 0x0 0x10000>, + <0x2 0x58840000 0x0 0x10000>, + <0x2 0x58850000 0x0 0x10000>, + <0x5 0xd00000 0x0 0x40000>, + <0x2 0x80078000 0x0 0x4000>, + <0x2 0x806e4000 0x0 0x4000>, + <0x2 0x806e8000 0x0 0x4000>, + <0x2 0x74004000 0x0 0x4000>, + <0x22 0x7b004000 0x0 0x4000>, + <0x2 0x88000400 0x0 0x400>, + <0x23 0x88000400 0x0 0x400>, + <0x2 0x8c801000 0x0 0x400>, + <0x2 0x84398000 0x0 0x4000>, + <0x2 0x8620c020 0x0 0x18>, + <0x2 0x8620c008 0x0 0x18>, + <0x5 0x8000200 0x0 0x24>, + <0x5 0x84000200 0x0 0x24>, + <0x4 0x1b000200 0x0 0x24>, + <0x2 0xa0000200 0x0 0x24>, + <0x2 0xa8000200 0x0 0x24>, + <0x3 0x80000200 0x0 0x24>, + <0x3 0x88000200 0x0 0x24>, + <0x3 0x94000200 0x0 0x24>, + <0x23 0x8000200 0x0 0x24>, + <0x23 0x1000200 0x0 0x24>, + <0x5 0x80000200 0x0 0x24>, + <0x22 0x80000200 0x0 0x24>, + <0x4 0x16000200 0x0 0x24>, + <0x4 0x86000200 0x0 0x40>, + <0x23 0xa000200 0x0 0x24>, + <0x2 0x97000200 0x0 0x24>, + <0x23 0x8c000200 0x0 0x24>, + <0x4 0x8c000200 0x0 0x24>, + <0x5 0x4000200 0x0 0x24>; + interrupts = , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + , + ; + status = "disabled"; + }; + aes: crypto@50500c000 { compatible = "apple,t6050-aes", "apple,aes"; reg = <0x5 0x500c000 0x0 0x4000>, @@ -3434,118 +3778,14 @@ #endif #if defined(T6050_J873S) - acio0: usb4@2a1f00000 { - compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; - reg = <0x2 0xa1f00000 0x0 0x100000>, - <0x2 0xa1ac0000 0x0 0x4000>, - <0x2 0xa1ac4000 0x0 0x4000>, - <0x2 0xa1ac8000 0x0 0x4000>, - <0x2 0xa1e44000 0x0 0x4000>, - <0x2 0xa1c80000 0x0 0x4000>; - interrupts = , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - ; - power-domains = <&ps_atc0_cio_auss>, <&ps_atc0_cio>, <&ps_atc0_cio_pcie>, <&ps_atc0_cio_usb>; - status = "disabled"; - }; -#endif - -#if defined(T6050_J873S) - acio1: usb4@2a9f00000 { - compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; - reg = <0x2 0xa9f00000 0x0 0x100000>, - <0x2 0xa9ac0000 0x0 0x4000>, - <0x2 0xa9ac4000 0x0 0x4000>, - <0x2 0xa9ac8000 0x0 0x4000>, - <0x2 0xa9e44000 0x0 0x4000>, - <0x2 0xa9c80000 0x0 0x4000>; - interrupts = , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - ; - power-domains = <&ps_atc1_cio_auss>, <&ps_atc1_cio>, <&ps_atc1_cio_pcie>, <&ps_atc1_cio_usb>; - status = "disabled"; - }; -#endif - -#if defined(T6050_J873S) - acio2: usb4@381f00000 { - compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; - reg = <0x3 0x81f00000 0x0 0x100000>, - <0x3 0x81ac0000 0x0 0x4000>, - <0x3 0x81ac4000 0x0 0x4000>, - <0x3 0x81ac8000 0x0 0x4000>, - <0x3 0x81e44000 0x0 0x4000>, - <0x3 0x81c80000 0x0 0x4000>; - interrupts = , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - ; - power-domains = <&ps_atc2_cio_auss>, <&ps_atc2_cio>, <&ps_atc2_cio_pcie>, <&ps_atc2_cio_usb>; + apr1: prores@230b000000 { + compatible = "apple,t6050-prores", "apple,prores"; + reg = <0x23 0xb000000 0x0 0x4000>, + <0x23 0xa000000 0x0 0x1000000>; + interrupts = , + ; + iommus = <&apr1_dart 0>; + power-domains = <&ps_prores>; status = "disabled"; }; #endif diff --git a/arch/arm64/boot/dts/apple/t6050.dtsi b/arch/arm64/boot/dts/apple/t6050.dtsi index c0b09898a0803..500c2ce7a975e 100644 --- a/arch/arm64/boot/dts/apple/t6050.dtsi +++ b/arch/arm64/boot/dts/apple/t6050.dtsi @@ -615,7 +615,7 @@ status = "disabled"; }; - dcpext0: display-engine@2b0000000 { + dispext0: display-engine@2b0000000 { compatible = "apple,t6050-display-engine", "apple,display-engine"; reg = <0x2 0xb0000000 0x0 0x4000000>, <0x2 0xb2240000 0x0 0x10000>, From fdadcd35fa328abb2c54efe487cc5637bef7532a Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 07:20:08 +1100 Subject: [PATCH 03/13] dt-bindings: apple: narrow T6050 selectors and reuse the UART contract Restrict inherited selectors to their compatible properties, retain the existing ANE conditional semantics with an explicit empty then branch, and use the Samsung/Apple UART binding. Correct SPMI child addressing and the disabled AIC3 and timer descriptions. Omit zero-length ANS template slots. Assisted-by: LLM Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> --- .../bindings/display/apple,dcp.yaml | 32 -- .../devicetree/bindings/dma/apple,admac.yaml | 1 - .../devicetree/bindings/dma/apple,sio.yaml | 1 - .../devicetree/bindings/gpu/apple,agx.yaml | 19 - .../devicetree/bindings/iommu/apple,dart.yaml | 7 - .../devicetree/bindings/mfd/apple,smc.yaml | 4 - .../devicetree/bindings/npu/apple,ane.yaml | 8 +- .../bindings/nvme/apple,nvme-ans.yaml | 7 +- .../devicetree/bindings/pci/apple,pcie.yaml | 9 - .../devicetree/bindings/phy/apple,atcphy.yaml | 32 -- .../bindings/pinctrl/apple,pinctrl.yaml | 2 - .../serial/apple,dockchannel-uart.yaml | 2 - .../bindings/serial/apple,uart.yaml | 121 ------ .../bindings/serial/samsung_uart.yaml | 400 +++++++++++------- .../bindings/soc/apple/apple,dockchannel.yaml | 1 - .../bindings/soc/apple/apple,pmp.yaml | 11 - .../soc/apple/apple,rtk-helper-asc4.yaml | 3 - .../bindings/soc/apple/apple,t6041-aop.yaml | 6 - .../devicetree/bindings/spmi/apple,spmi.yaml | 2 +- .../thunderbolt/apple,t8103-usb4-acio.yaml | 6 - .../thunderbolt/apple,t8103-usb4-nhi.yaml | 2 - .../devicetree/bindings/usb/apple,dwc3.yaml | 6 - .../boot/dts/apple/t6050-peripherals.dtsi | 20 +- arch/arm64/boot/dts/apple/t6050.dtsi | 17 +- 24 files changed, 283 insertions(+), 436 deletions(-) delete mode 100644 Documentation/devicetree/bindings/serial/apple,uart.yaml diff --git a/Documentation/devicetree/bindings/display/apple,dcp.yaml b/Documentation/devicetree/bindings/display/apple,dcp.yaml index 0bd0bc73d81b1..7c807e290fab6 100644 --- a/Documentation/devicetree/bindings/display/apple,dcp.yaml +++ b/Documentation/devicetree/bindings/display/apple,dcp.yaml @@ -22,40 +22,12 @@ select: compatible: contains: enum: - - "apple,bw-doorbell" - - "apple,bw-scratch" - - "apple,connector-type" - "apple,dcp" - - "apple,dcp-endpoint" - - "apple,dcp-index" - "apple,dcpext" - - "apple,dptx-die" - - "apple,dptx-phy" - - "apple,firmware-compat" - - "apple,firmware-uuid" - - "apple,firmware-version" - - "apple,iomfb-surfaces" - - "apple,j713-inherited-mappings" - - "apple,j713-native-piodma" - - "apple,j713-native-scanout" - - "apple,max-brightness" - - "apple,notch-height" - - "apple,panel" - - "apple,panel-height-mm" - - "apple,panel-j" - - "apple,panel-mini-led" - - "apple,panel-width-mm" - - "apple,pmp-report" - - "apple,power-lut-data-lut" - - "apple,power-lut-data-x" - - "apple,power-lut-data-xindex" - - "apple,power-lut-data-y" - - "apple,power-lut-data-yindex" - "apple,t6000-dcp" - "apple,t6000-dcpext" - "apple,t6020-dcp" - "apple,t6020-dcpext" - - "apple,t6030-dcpext" - "apple,t6031-dcp" - "apple,t6041-dcp" - "apple,t6041-dcpext" @@ -65,14 +37,10 @@ select: - "apple,t8112-dcpext" - "apple,t8132-dcp" - "apple,t8132-dcpext" - - "apple,t8132-dcpext-firmware-ready" - "apple,t8132-dcpext-firmware-ready." - "apple,t8140-dcp" - "apple,t8140-dcpext" - "apple,t8142-dcp" - - "apple,typec-dptx-phys" - - "apple,typec-hybrid-first" - - "apple,typec-mux-indices" required: - "compatible" - diff --git a/Documentation/devicetree/bindings/dma/apple,admac.yaml b/Documentation/devicetree/bindings/dma/apple,admac.yaml index ef9719e3a269e..17a5015deae17 100644 --- a/Documentation/devicetree/bindings/dma/apple,admac.yaml +++ b/Documentation/devicetree/bindings/dma/apple,admac.yaml @@ -26,7 +26,6 @@ select: contains: enum: - "apple,admac" - - "apple,dma-range" - "apple,t6000-admac" - "apple,t6020-admac" - "apple,t6030-admac" diff --git a/Documentation/devicetree/bindings/dma/apple,sio.yaml b/Documentation/devicetree/bindings/dma/apple,sio.yaml index 7700b3f2a473d..67d6821d76f66 100644 --- a/Documentation/devicetree/bindings/dma/apple,sio.yaml +++ b/Documentation/devicetree/bindings/dma/apple,sio.yaml @@ -25,7 +25,6 @@ select: contains: enum: - "apple,sio" - - "apple,sio-firmware-params" - "apple,t6000-sio" - "apple,t6020-sio" - "apple,t6030-sio" diff --git a/Documentation/devicetree/bindings/gpu/apple,agx.yaml b/Documentation/devicetree/bindings/gpu/apple,agx.yaml index dd6bcb6b8dee0..3ce031488d89e 100644 --- a/Documentation/devicetree/bindings/gpu/apple,agx.yaml +++ b/Documentation/devicetree/bindings/gpu/apple,agx.yaml @@ -17,8 +17,6 @@ select: compatible: contains: enum: - - "apple,afr-leak-coef" - - "apple,afr-opp" - "apple,agx-g13c" - "apple,agx-g13d" - "apple,agx-g13g" @@ -33,23 +31,6 @@ select: - "apple,agx-t8112" - "apple,agx-t8132" - "apple,agx-t8140" - - "apple,clpc" - - "apple,core-leak-coef" - - "apple,core-mask" - - "apple,cs-leak-coef" - - "apple,cs-opp" - - "apple,firmware-abi" - - "apple,firmware-version" - - "apple,idle-off-delay-ms" - - "apple,max-power-mw" - - "apple,perf-base-pstate" - - "apple,perf-map-a" - - "apple,perf-map-b" - - "apple,perf-relative-a" - - "apple,perf-relative-b" - - "apple,pmp" - - "apple,sram-leak-coef" - - "apple,t6040-handoff-version" required: - "compatible" - diff --git a/Documentation/devicetree/bindings/iommu/apple,dart.yaml b/Documentation/devicetree/bindings/iommu/apple,dart.yaml index 5e4b0f3409c2e..0cce56fa44f19 100644 --- a/Documentation/devicetree/bindings/iommu/apple,dart.yaml +++ b/Documentation/devicetree/bindings/iommu/apple,dart.yaml @@ -28,12 +28,6 @@ select: compatible: contains: enum: - - "apple,bypass-sids" - - "apple,dma-offset" - - "apple,dma-range" - - "apple,firmware-root-handoff" - - "apple,managed-sids" - - "apple,remap-streams" - "apple,t6000-dart" - "apple,t6000-display-dart" - "apple,t6020-dart" @@ -51,7 +45,6 @@ select: - "apple,t8140-dart" - "apple,t8142-dart" - "apple,t8152-dart" - - "apple,tunable" required: - "compatible" - diff --git a/Documentation/devicetree/bindings/mfd/apple,smc.yaml b/Documentation/devicetree/bindings/mfd/apple,smc.yaml index b9a325be54e73..929d0f6493623 100644 --- a/Documentation/devicetree/bindings/mfd/apple,smc.yaml +++ b/Documentation/devicetree/bindings/mfd/apple,smc.yaml @@ -22,10 +22,6 @@ select: contains: enum: - "apple,smc" - - "apple,smc-gpio.yaml" - - "apple,smc-hwmon.yaml" - - "apple,smc-reboot.yaml" - - "apple,smc-rtc.yaml" - "apple,t6000-smc" - "apple,t6020-smc" - "apple,t6030-smc" diff --git a/Documentation/devicetree/bindings/npu/apple,ane.yaml b/Documentation/devicetree/bindings/npu/apple,ane.yaml index ad1bfb82df269..5ca82a2fbc59c 100644 --- a/Documentation/devicetree/bindings/npu/apple,ane.yaml +++ b/Documentation/devicetree/bindings/npu/apple,ane.yaml @@ -30,13 +30,6 @@ select: contains: enum: - "apple,ane" - - "apple,ane-type" - - "apple,dapf-ranges" - - "apple,exclave-assigned" - - "apple,firmware-iovas" - - "apple,firmware-preloaded" - - "apple,performance-controller" - - "apple,preload-data-sha256" - "apple,t6000-ane" - "apple,t6001-ane" - "apple,t6020-ane" @@ -582,6 +575,7 @@ allOf: - apple,t8140-ane - apple,t6041-ane - apple,t6001-ane + then: true else: properties: power-domains: diff --git a/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml b/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml index 047e1415b6825..496d266386e4c 100644 --- a/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml +++ b/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml @@ -18,9 +18,6 @@ select: contains: enum: - "apple,nvme-ans2" - - "apple,rtkit-handoff" - - "apple,sart" - - "apple,sart.yaml." - "apple,t6000-nvme-ans2" - "apple,t6020-nvme-ans2" - "apple,t6030-nvme-ans2" @@ -107,8 +104,8 @@ allOf: status: const: "disabled" reg: - minItems: 10 - maxItems: 10 + minItems: 7 + maxItems: 7 description: "Native register apertures in hardware-interface order, including shared auxiliary views." interrupts: minItems: 5 diff --git a/Documentation/devicetree/bindings/pci/apple,pcie.yaml b/Documentation/devicetree/bindings/pci/apple,pcie.yaml index 7798a9e56c563..fb87d13e0814b 100644 --- a/Documentation/devicetree/bindings/pci/apple,pcie.yaml +++ b/Documentation/devicetree/bindings/pci/apple,pcie.yaml @@ -44,11 +44,7 @@ select: compatible: contains: enum: - - "apple,managed-sids" - - "apple,msi-vector-base" - "apple,pcie" - - "apple,pciec-kernel-init" - - "apple,piodma" - "apple,t6000-pcie" - "apple,t6000-pciec" - "apple,t6020-pcie" @@ -67,11 +63,6 @@ select: - "apple,t8132-pciec" - "apple,t8140-pcie" - "apple,t8152-pcie" - - "apple,tunable" - - "apple,tunable-debug" - - "apple,tunable-fabric" - - "apple,tunable-oe-fabric" - - "apple,tunable-rc" required: - "compatible" - diff --git a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml index 36cd2191558d5..a16e2641bf2d5 100644 --- a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml +++ b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml @@ -44,7 +44,6 @@ select: compatible: contains: enum: - - "apple,dp-training-table" - "apple,t6000-atcphy" - "apple,t6020-atcphy" - "apple,t6030-atcphy" @@ -55,37 +54,6 @@ select: - "apple,t8132-atcphy" - "apple,t8140-atcphy" - "apple,t8142-atcphy" - - "apple,tunable" - - "apple,tunable-axi2af" - - "apple,tunable-cio-axi2af" - - "apple,tunable-cio-common" - - "apple,tunable-cio-config" - - "apple,tunable-cio-fabric" - - "apple,tunable-cio-lane0" - - "apple,tunable-cio-lane0-eq" - - "apple,tunable-cio-lane1" - - "apple,tunable-cio-lane1-eq" - - "apple,tunable-cio-lioa" - - "apple,tunable-cio-post" - - "apple,tunable-common-a" - - "apple,tunable-common-b" - - "apple,tunable-dp-common-post" - - "apple,tunable-dp-common-pre" - - "apple,tunable-dp-lpdptx" - - "apple,tunable-lane0-cio" - - "apple,tunable-lane0-dp" - - "apple,tunable-lane0-usb" - - "apple,tunable-lane1-cio" - - "apple,tunable-lane1-dp" - - "apple,tunable-lane1-usb" - - "apple,tunable-usb2phy-reg-dflt" - - "apple,tunable-usb3-axi2af" - - "apple,tunable-usb3-common" - - "apple,tunable-usb3-config" - - "apple,tunable-usb3-dp" - - "apple,tunable-usb3-efuse" - - "apple,tunable-usb3-fabric" - - "apple,tunable-usb3-lioa" required: - "compatible" - diff --git a/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml index 5af484f890cd8..3d2095502d08d 100644 --- a/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml +++ b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml @@ -22,8 +22,6 @@ select: compatible: contains: enum: - - "apple,irq-group-base" - - "apple,npins" - "apple,pinctrl" - "apple,s5l8960x-pinctrl" - "apple,s8000-pinctrl" diff --git a/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml b/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml index 854bb3e61c303..f7e7f90214ddb 100644 --- a/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml +++ b/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml @@ -22,9 +22,7 @@ select: compatible: contains: enum: - - "apple,channel" - "apple,dockchannel-uart" - - "apple,sw-drain" - "apple,t6020-dockchannel-uart" - "apple,t6021-dockchannel-uart" - "apple,t6022-dockchannel-uart" diff --git a/Documentation/devicetree/bindings/serial/apple,uart.yaml b/Documentation/devicetree/bindings/serial/apple,uart.yaml deleted file mode 100644 index b72051067d432..0000000000000 --- a/Documentation/devicetree/bindings/serial/apple,uart.yaml +++ /dev/null @@ -1,121 +0,0 @@ -# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -%YAML 1.2 ---- -$id: "http://devicetree.org/schemas/serial/apple,uart.yaml#" - -$schema: "http://devicetree.org/meta-schemas/core.yaml#" - -title: "Apple uart hardware resources" - -maintainers: - - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" - -description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - -select: - anyOf: - - - properties: - compatible: - contains: - enum: - - "apple,t6050-uart" - - "apple,uart" - required: - - "compatible" - - - properties: - compatible: - items: - - - const: "apple,t6050-uart" - - - const: "apple,uart" - required: - - "compatible" - -properties: - compatible: true - status: true - reg: true - interrupts: true - power-domains: true - clocks: true - iommus: true - resets: true - -additionalProperties: true - -allOf: - - if: - anyOf: - - - properties: - compatible: - items: - - - const: "apple,t6050-uart" - - - const: "apple,uart" - status: - const: "disabled" - required: - - "compatible" - - "status" - then: - oneOf: - - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - properties: - compatible: - items: - - - const: "apple,t6050-uart" - - - const: "apple,uart" - status: - const: "disabled" - reg: - maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - maxItems: 1 - power-domains: - maxItems: 1 - clocks: - maxItems: 2 - required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - - "clocks" - additionalProperties: false - else: - properties: - compatible: - items: - - - const: "apple,t6050-uart" - - - const: "apple,uart" - status: - const: "disabled" - reg: - maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - maxItems: 1 - power-domains: - maxItems: 1 - clocks: - maxItems: 2 - required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - - "clocks" - additionalProperties: false diff --git a/Documentation/devicetree/bindings/serial/samsung_uart.yaml b/Documentation/devicetree/bindings/serial/samsung_uart.yaml index e1a606f86bce1..d44c501bdcee5 100644 --- a/Documentation/devicetree/bindings/serial/samsung_uart.yaml +++ b/Documentation/devicetree/bindings/serial/samsung_uart.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/serial/samsung_uart.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Samsung S3C, S5P, Exynos, and S5L (Apple SoC) SoC UART Controller @@ -15,187 +16,300 @@ description: |+ node, according to serialN format, where N is the port number (non-negative decimal integer) as specified by User's Manual of respective SoC. -properties: - compatible: - oneOf: - - enum: - - apple,s5l-uart - - axis,artpec8-uart - - google,gs101-uart - - samsung,s3c6400-uart - - samsung,s5pv210-uart - - samsung,exynos4210-uart - - samsung,exynos5433-uart - - samsung,exynos850-uart - - samsung,exynos8895-uart - - items: - - const: apple,t8140-uart - - const: apple,s5l-uart - - items: - - enum: - - samsung,exynos2200-uart - - const: google,gs101-uart - - items: - - enum: - - samsung,exynos7-uart - - tesla,fsd-uart - - const: samsung,exynos4210-uart - - items: - - enum: - - samsung,exynos7885-uart - - const: samsung,exynos5433-uart - - items: - - enum: - - samsung,exynosautov9-uart - - samsung,exynosautov920-uart - - const: samsung,exynos850-uart - - items: - - enum: - - axis,artpec9-uart - - samsung,exynos7870-uart - - samsung,exynos8890-uart - - const: samsung,exynos8895-uart - - reg: - maxItems: 1 +select: + anyOf: + - + properties: + compatible: + contains: + enum: + - "apple,s5l-uart" + - "apple,t8140-uart" + - "axis,artpec8-uart" + - "axis,artpec9-uart" + - "google,gs101-uart" + - "samsung,exynos2200-uart" + - "samsung,exynos4210-uart" + - "samsung,exynos5433-uart" + - "samsung,exynos7-uart" + - "samsung,exynos7870-uart" + - "samsung,exynos7885-uart" + - "samsung,exynos850-uart" + - "samsung,exynos8890-uart" + - "samsung,exynos8895-uart" + - "samsung,exynosautov9-uart" + - "samsung,exynosautov920-uart" + - "samsung,s3c6400-uart" + - "samsung,s5pv210-uart" + - "tesla,fsd-uart" + required: + - "compatible" + - + properties: + compatible: + items: + - + const: "apple,t6050-uart" + - + const: "apple,s5l-uart" + required: + - "compatible" +properties: + compatible: true + reg: true reg-io-width: description: | The size (in bytes) of the IO accesses that should be performed on the device. enum: [ 1, 4 ] - - clocks: - minItems: 2 - maxItems: 5 - - clock-names: - minItems: 2 - maxItems: 5 - + clocks: true + clock-names: true dmas: items: - description: DMA controller phandle and request line for RX - description: DMA controller phandle and request line for TX - dma-names: items: - const: rx - const: tx - - interrupts: - description: RX interrupt and optionally TX interrupt. - minItems: 1 - maxItems: 2 - - power-domains: - maxItems: 1 - + interrupts: true + power-domains: true samsung,uart-fifosize: description: The fifo size supported by the UART channel. $ref: /schemas/types.yaml#/definitions/uint32 enum: [16, 64, 256] + iommus: true + resets: true + status: true -required: - - compatible - - clocks - - clock-names - - interrupts - - reg +additionalProperties: true allOf: - - $ref: serial.yaml# - - if: - properties: - compatible: - contains: - enum: - - samsung,s3c6400-uart + anyOf: + - + properties: + compatible: + items: + - + const: "apple,t6050-uart" + - + const: "apple,s5l-uart" + status: + const: "disabled" + required: + - "compatible" + - "status" then: + oneOf: + - + description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + properties: + compatible: + items: + - + const: "apple,t6050-uart" + - + const: "apple,s5l-uart" + status: + const: "disabled" + reg: + maxItems: 1 + description: "Native register apertures in hardware-interface order, including shared auxiliary views." + interrupts: + maxItems: 1 + power-domains: + maxItems: 1 + clocks: + maxItems: 2 + required: + - "compatible" + - "reg" + - "status" + - "interrupts" + - "power-domains" + - "clocks" + additionalProperties: false + else: properties: - clocks: - minItems: 3 - maxItems: 3 + compatible: + oneOf: + - enum: + - apple,s5l-uart + - axis,artpec8-uart + - google,gs101-uart + - samsung,s3c6400-uart + - samsung,s5pv210-uart + - samsung,exynos4210-uart + - samsung,exynos5433-uart + - samsung,exynos850-uart + - samsung,exynos8895-uart + - items: + - const: apple,t8140-uart + - const: apple,s5l-uart + - items: + - enum: + - samsung,exynos2200-uart + - const: google,gs101-uart + - items: + - enum: + - samsung,exynos7-uart + - tesla,fsd-uart + - const: samsung,exynos4210-uart + - items: + - enum: + - samsung,exynos7885-uart + - const: samsung,exynos5433-uart + - items: + - enum: + - samsung,exynosautov9-uart + - samsung,exynosautov920-uart + - const: samsung,exynos850-uart + - items: + - enum: + - axis,artpec9-uart + - samsung,exynos7870-uart + - samsung,exynos8890-uart + - const: samsung,exynos8895-uart - clock-names: - items: - - const: uart - - const: clk_uart_baud2 - - const: clk_uart_baud3 + reg: + maxItems: 1 - else: - properties: - clock-names: - minItems: 2 - items: - - const: uart - - const: clk_uart_baud0 - - const: clk_uart_baud1 - - const: clk_uart_baud2 - - const: clk_uart_baud3 + reg-io-width: + description: | + The size (in bytes) of the IO accesses that should be performed + on the device. + enum: [ 1, 4 ] - - if: - properties: - compatible: - contains: - enum: - - samsung,s5pv210-uart - then: - properties: clocks: - minItems: 3 - maxItems: 3 + minItems: 2 + maxItems: 5 clock-names: - minItems: 3 - maxItems: 3 + minItems: 2 + maxItems: 5 - - if: - properties: - compatible: - contains: - enum: - - apple,s5l-uart - - axis,artpec8-uart - - samsung,exynos4210-uart - - samsung,exynos5433-uart - then: - properties: - clocks: - maxItems: 2 + dmas: + items: + - description: DMA controller phandle and request line for RX + - description: DMA controller phandle and request line for TX - clock-names: + dma-names: + items: + - const: rx + - const: tx + + interrupts: + description: RX interrupt and optionally TX interrupt. + minItems: 1 maxItems: 2 - - if: - properties: - compatible: - contains: - enum: - - google,gs101-uart - - samsung,exynos8895-uart - then: + power-domains: + maxItems: 1 + + samsung,uart-fifosize: + description: The fifo size supported by the UART channel. + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [16, 64, 256] required: - - samsung,uart-fifosize - properties: - clocks: - maxItems: 2 + - compatible + - clocks + - clock-names + - interrupts + - reg + allOf: + - $ref: serial.yaml# - clock-names: - maxItems: 2 + - if: + properties: + compatible: + contains: + enum: + - samsung,s3c6400-uart + then: + properties: + clocks: + minItems: 3 + maxItems: 3 - - if: - properties: - compatible: - contains: - enum: - - google,gs101-uart - then: - properties: - reg-io-width: false + clock-names: + items: + - const: uart + - const: clk_uart_baud2 + - const: clk_uart_baud3 + + else: + properties: + clock-names: + minItems: 2 + items: + - const: uart + - const: clk_uart_baud0 + - const: clk_uart_baud1 + - const: clk_uart_baud2 + - const: clk_uart_baud3 + + - if: + properties: + compatible: + contains: + enum: + - samsung,s5pv210-uart + then: + properties: + clocks: + minItems: 3 + maxItems: 3 + + clock-names: + minItems: 3 + maxItems: 3 + + - if: + properties: + compatible: + contains: + enum: + - apple,s5l-uart + - axis,artpec8-uart + - samsung,exynos4210-uart + - samsung,exynos5433-uart + then: + properties: + clocks: + maxItems: 2 + + clock-names: + maxItems: 2 + + - if: + properties: + compatible: + contains: + enum: + - google,gs101-uart + - samsung,exynos8895-uart + then: + required: + - samsung,uart-fifosize + properties: + clocks: + maxItems: 2 + + clock-names: + maxItems: 2 -unevaluatedProperties: false + - if: + properties: + compatible: + contains: + enum: + - google,gs101-uart + then: + properties: + reg-io-width: false + unevaluatedProperties: false examples: - | diff --git a/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml b/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml index 613ae4de713ee..a3562834e6090 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml @@ -27,7 +27,6 @@ select: contains: enum: - "apple,dockchannel" - - "apple,dockchannel-hid.yaml" - "apple,t6000-dockchannel" - "apple,t6020-dockchannel" - "apple,t6030-dockchannel" diff --git a/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml b/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml index 7b4c1f6a48573..4f46de8e059ac 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml @@ -23,17 +23,7 @@ select: compatible: contains: enum: - - "apple,board-id" - - "apple,dram-capacity" - - "apple,dram-channel-disable" - - "apple,dram-vendor-id" - - "apple,pio-ranges" - - "apple,pmc" - - "apple,pmc-msg-disabled" - - "apple,pmc-pmgr" - "apple,pmp" - - "apple,pmp-report" - - "apple,soc-chip-variant" - "apple,t6000-pmp-v2" - "apple,t6020-pmp-v2" - "apple,t6030-pmp-v2" @@ -43,7 +33,6 @@ select: - "apple,t8122-pmp-v2" - "apple,t8132-pmp-v2" - "apple,t8140-pmp-v2" - - "apple,tunable-" required: - "compatible" - diff --git a/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml b/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml index e433d4053fa0a..bda61a142c8af 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml @@ -28,9 +28,6 @@ select: enum: - "apple,mtp" - "apple,rtk-helper-asc4" - - "apple,rtkit-buffers" - - "apple,rtkit-buffers," - - "apple,rtkit-handoff" - "apple,t6020-mtp" - "apple,t6020-rtk-helper-asc4" - "apple,t6030-mtp" diff --git a/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml b/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml index 12d2202ed2807..b095eacf00f48 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml @@ -28,13 +28,7 @@ select: compatible: contains: enum: - - "apple,aop-als" - - "apple,aop-las" - - "apple,aop-motion.yaml" - "apple,t6041-aop" - - "apple,t6041-aop-als" - - "apple,t6041-aop-audio.yaml" - - "apple,t6041-aop-las" - "apple,t8132-aop" required: - "compatible" diff --git a/Documentation/devicetree/bindings/spmi/apple,spmi.yaml b/Documentation/devicetree/bindings/spmi/apple,spmi.yaml index 7767dff9a66e7..54a28be34bd73 100644 --- a/Documentation/devicetree/bindings/spmi/apple,spmi.yaml +++ b/Documentation/devicetree/bindings/spmi/apple,spmi.yaml @@ -96,7 +96,7 @@ allOf: interrupts: maxItems: 1 "#address-cells": - const: 1 + const: 2 "#size-cells": const: 0 required: diff --git a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml index a36c42013a275..027869e743b91 100644 --- a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml +++ b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml @@ -33,22 +33,16 @@ select: compatible: contains: enum: - - "apple,dart.yaml" - - "apple,pcie-tunnel" - "apple,t6000-usb4-acio" - "apple,t6020-usb4-acio" - "apple,t6030-usb4-acio" - "apple,t6031-usb4-acio" - "apple,t6040-usb4-acio" - "apple,t8103-usb4-acio" - - "apple,t8103-usb4-nhi.yaml" - "apple,t8112-usb4-acio" - "apple,t8122-usb4-acio" - "apple,t8132-usb4-acio" - "apple,t8142-usb4-acio" - - "apple,tunable-pcie-adapter" - - "apple,tunable-rc" - - "apple,tunable-rc," required: - "compatible" - diff --git a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml index 58dbfb80bf7e0..d26451da2f218 100644 --- a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml +++ b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml @@ -35,8 +35,6 @@ select: - "apple,t8122-usb4-nhi" - "apple,t8132-usb4-nhi" - "apple,t8142-usb4-nhi" - - "apple,thunderbolt-drom" - - "apple,tunable-nhi" required: - "compatible" - diff --git a/Documentation/devicetree/bindings/usb/apple,dwc3.yaml b/Documentation/devicetree/bindings/usb/apple,dwc3.yaml index e5378f07e2b96..5a81f9e02fd3b 100644 --- a/Documentation/devicetree/bindings/usb/apple,dwc3.yaml +++ b/Documentation/devicetree/bindings/usb/apple,dwc3.yaml @@ -32,12 +32,6 @@ select: - "apple,t8132-dwc3" - "apple,t8140-dwc3" - "apple,t8142-dwc3" - - "apple,tunable" - - "apple,tunable-cfg-host" - - "apple,tunable-dbg" - - "apple,tunable-gbl-default" - - "apple,tunable-gbl-host" - - "apple,tunable-link" required: - "compatible" - diff --git a/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi index adb8ce32670d8..20661dfa5fbb5 100644 --- a/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi +++ b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi @@ -1160,7 +1160,7 @@ <0x2 0x8a044000 0x0 0x4000>, <0x2 0x8a040000 0x0 0x4000>; interrupts = ; - #address-cells = <1>; + #address-cells = <2>; #size-cells = <0>; status = "disabled"; }; @@ -1173,7 +1173,7 @@ <0x2 0x8a104000 0x0 0x4000>, <0x2 0x8a100000 0x0 0x4000>; interrupts = ; - #address-cells = <1>; + #address-cells = <2>; #size-cells = <0>; status = "disabled"; }; @@ -1297,7 +1297,7 @@ <0x2 0x8a1a4000 0x0 0x4000>, <0x2 0x8a1a0000 0x0 0x4000>; interrupts = ; - #address-cells = <1>; + #address-cells = <2>; #size-cells = <0>; status = "disabled"; }; @@ -2547,7 +2547,7 @@ }; uart0: serial@505200000 { - compatible = "apple,t6050-uart", "apple,uart"; + compatible = "apple,t6050-uart", "apple,s5l-uart"; reg = <0x5 0x5200000 0x0 0x4000>; interrupts = ; power-domains = <&ps_uart0>; @@ -2671,7 +2671,7 @@ <0x2 0x8a004000 0x0 0x4000>, <0x2 0x8a000000 0x0 0x4000>; interrupts = ; - #address-cells = <1>; + #address-cells = <2>; #size-cells = <0>; status = "disabled"; }; @@ -2682,7 +2682,7 @@ <0x2 0x8a084000 0x0 0x4000>, <0x2 0x8a080000 0x0 0x4000>; interrupts = ; - #address-cells = <1>; + #address-cells = <2>; #size-cells = <0>; status = "disabled"; }; @@ -2693,7 +2693,7 @@ <0x2 0x8a0c4000 0x0 0x4000>, <0x2 0x8a0c0000 0x0 0x4000>; interrupts = ; - #address-cells = <1>; + #address-cells = <2>; #size-cells = <0>; status = "disabled"; }; @@ -2704,7 +2704,7 @@ <0x2 0x8a184000 0x0 0x4000>, <0x2 0x8a180000 0x0 0x4000>; interrupts = ; - #address-cells = <1>; + #address-cells = <2>; #size-cells = <0>; status = "disabled"; }; @@ -2715,7 +2715,7 @@ <0x2 0x90904000 0x0 0x4000>, <0x2 0x90900000 0x0 0x4000>; interrupts = ; - #address-cells = <1>; + #address-cells = <2>; #size-cells = <0>; status = "disabled"; }; @@ -3771,7 +3771,7 @@ <0x2 0x8a1c4000 0x0 0x4000>, <0x2 0x8a1c0000 0x0 0x4000>; interrupts = ; - #address-cells = <1>; + #address-cells = <2>; #size-cells = <0>; status = "disabled"; }; diff --git a/arch/arm64/boot/dts/apple/t6050.dtsi b/arch/arm64/boot/dts/apple/t6050.dtsi index 500c2ce7a975e..5328794b400b4 100644 --- a/arch/arm64/boot/dts/apple/t6050.dtsi +++ b/arch/arm64/boot/dts/apple/t6050.dtsi @@ -168,6 +168,16 @@ }; }; + timer { + compatible = "arm,armv8-timer"; + interrupts = , + , + , + ; + interrupt-names = "phys", "virt", "hyp-phys", "hyp-virt"; + status = "disabled"; + }; + soc { compatible = "simple-bus"; #address-cells = <2>; @@ -177,10 +187,10 @@ aic: interrupt-controller@280400000 { compatible = "apple,t6050-aic3", "apple,t8122-aic3"; - reg = <2 0x80400000 0 0x1cc000>; + reg = <2 0x80400000 0 0x1cc000>, <2 0x80440000 0 0x4000>; + reg-names = "core", "event"; interrupt-controller; #interrupt-cells = <4>; - #address-cells = <0>; status = "disabled"; }; }; @@ -346,13 +356,10 @@ compatible = "apple,t6050-nvme-ans2", "apple,nvme-ans"; reg = <0x4 0x19600000 0x0 0x88000>, <0x4 0x19050000 0x0 0x4000>, - <0x2 0x0 0x0 0x0>, <0x4 0x1dcc0000 0x0 0x60010>, <0x4 0x1b000000 0x0 0x18000>, <0x4 0x1db90000 0x0 0xc000>, <0x4 0x1dd47c00 0x0 0x4000>, - <0x2 0x0 0x0 0x0>, - <0x2 0x0 0x0 0x0>, <0x4 0x5dcc0000 0x0 0x10000>; interrupts = , , From 183fe763af9daf7f55d0c0b85980f59d785fc71d Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 07:24:39 +1100 Subject: [PATCH 04/13] dt-bindings: apple: reconcile the existing T6050 boot profile prerequisites Carry forward the licensed public T6050 binding work from d87e84f1da13 while retaining the merged family contracts. Describe the existing J775d handoff interfaces, including combo PHY, N1 control, AOP audio and PMGR consumers. New inventory variants remain disabled; this changes no DTS enable policy or driver source. Assisted-by: LLM Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> --- .../cpufreq/apple,cluster-cpufreq.yaml | 23 +- .../bindings/display/apple,dcp.yaml | 92 ++++++- .../devicetree/bindings/dma/apple,admac.yaml | 4 + .../bindings/gpio/apple,smc-pcio-gpio.yaml | 40 +++ .../bindings/hwmon/apple,smc-hwmon.yaml | 4 +- .../devicetree/bindings/iommu/apple,dart.yaml | 38 ++- .../devicetree/bindings/iommu/apple,sart.yaml | 5 + .../devicetree/bindings/mfd/apple,smc.yaml | 12 +- .../bindings/mux/apple,display-crossbar.yaml | 31 ++- .../bindings/net/wireless/apple,centauri.yaml | 50 ++++ .../bindings/nvme/apple,nvme-ans.yaml | 26 +- .../devicetree/bindings/pci/apple,pcie.yaml | 135 ++++++++-- .../bindings/phy/apple,combo-phy.yaml | 241 ++++++++++++++++++ .../bindings/phy/apple,dptx-phy.yaml | 174 +++++++++++-- .../bindings/pinctrl/apple,pinctrl.yaml | 15 +- .../devicetree/bindings/power/apple,pmc.yaml | 17 +- .../power/reset/apple,smc-reboot.yaml | 4 + .../bindings/reset/apple,t8103-cio-reset.yaml | 4 + .../serial/apple,dockchannel-uart.yaml | 7 + .../bindings/soc/apple/apple,aop.yaml | 145 ++++++++--- .../bindings/sound/apple,aop-audio.yaml | 112 ++++++-- .../bindings/sound/apple,macaudio.yaml | 1 + .../devicetree/bindings/sound/ti,tas27xx.yaml | 5 + .../devicetree/bindings/spmi/apple,spmi.yaml | 7 +- .../thunderbolt/apple,t8103-usb4-acio.yaml | 58 ++++- .../thunderbolt/apple,t8103-usb4-nhi.yaml | 27 +- .../devicetree/bindings/usb/apple,dwc3.yaml | 52 +++- 27 files changed, 1190 insertions(+), 139 deletions(-) create mode 100644 Documentation/devicetree/bindings/gpio/apple,smc-pcio-gpio.yaml create mode 100644 Documentation/devicetree/bindings/net/wireless/apple,centauri.yaml create mode 100644 Documentation/devicetree/bindings/phy/apple,combo-phy.yaml diff --git a/Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml b/Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml index 84e5ce2657dcb..2a4d01f24fa63 100644 --- a/Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml +++ b/Documentation/devicetree/bindings/cpufreq/apple,cluster-cpufreq.yaml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) AND GPL-2.0-only %YAML 1.2 --- $id: http://devicetree.org/schemas/cpufreq/apple,cluster-cpufreq.yaml# @@ -38,6 +38,7 @@ properties: - const: apple,s5l8960x-cluster-cpufreq - const: apple,t8140-cluster-cpufreq - const: apple,t8142-cluster-cpufreq + - const: apple,t6050-cluster-cpufreq - const: apple,t8152-cluster-cpufreq - items: - enum: @@ -66,6 +67,16 @@ properties: E, 1 for P0, 2 for P1 on T6041) enum: [0, 1, 2] + apple,firmware-managed-thermal: + type: boolean + description: | + The boot producer has retained active firmware thermal control and + qualified it for every OPP published for this cluster. Firmware + throttling, voltage and PLL ownership must remain intact throughout + the guest lifetime, including after PMP reinitialization. This is + an ownership assertion, not a request to enable thermal control. + Without it the T6050 driver refuses DVFS registration. + '#performance-domain-cells': const: 0 @@ -74,6 +85,16 @@ required: - reg - '#performance-domain-cells' +allOf: + - if: + properties: + compatible: + contains: + const: apple,t6050-cluster-cpufreq + then: + required: + - apple,firmware-managed-thermal + additionalProperties: false examples: diff --git a/Documentation/devicetree/bindings/display/apple,dcp.yaml b/Documentation/devicetree/bindings/display/apple,dcp.yaml index 7c807e290fab6..0f061179a6f52 100644 --- a/Documentation/devicetree/bindings/display/apple,dcp.yaml +++ b/Documentation/devicetree/bindings/display/apple,dcp.yaml @@ -31,6 +31,8 @@ select: - "apple,t6031-dcp" - "apple,t6041-dcp" - "apple,t6041-dcpext" + - "apple,t6050-dcp" + - "apple,t6050-dcpext" - "apple,t8103-dcp" - "apple,t8103-dcpext" - "apple,t8112-dcp" @@ -70,6 +72,25 @@ properties: resets: true clocks: true clock-names: true + apple,clock-ids: + oneOf: + - type: boolean + - $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 64 + description: | + Ordered firmware provider clock identifiers. Callback clock indices + select the corresponding entry in clocks. An explicitly empty table + is allowed when the provider has no clocks. + apple,firmware-physical-regs: + $ref: /schemas/types.yaml#/definitions/uint64-array + minItems: 1 + maxItems: 10 + description: | + Coprocessor physical base addresses in display register-table order, + including the bandwidth scratch and optional doorbell windows. + The number of entries must match the complete register table. + Omit on identity-mapped systems; reg supplies the physical view. memory-region: true memory-region-names: true phys: @@ -384,6 +405,7 @@ allOf: - apple,t6041-dcp - apple,t8140-dcp - apple,t8142-dcp + - apple,t6050-dcp - const: apple,dcp - items: - enum: @@ -392,6 +414,7 @@ allOf: - apple,t6000-dcpext - apple,t6020-dcpext - apple,t6041-dcpext + - apple,t6050-dcpext - const: apple,dcpext - items: - const: apple,t8140-dcpext @@ -453,13 +476,32 @@ allOf: clocks: minItems: 1 - maxItems: 2 + maxItems: 64 clock-names: minItems: 1 - items: - - const: clock-154 - - const: clock-194 + maxItems: 64 + + apple,clock-ids: + oneOf: + - type: boolean + - $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 1 + maxItems: 64 + description: | + Ordered firmware provider clock identifiers. Callback clock indices + select the corresponding entry in clocks. An explicitly empty table + is allowed when the provider has no clocks. + + apple,firmware-physical-regs: + $ref: /schemas/types.yaml#/definitions/uint64-array + minItems: 1 + maxItems: 10 + description: | + Coprocessor physical base addresses in display register-table order, + including the bandwidth scratch and optional doorbell windows. + The number of entries must match the complete register table. + Omit on identity-mapped systems; reg supplies the physical view. memory-region: minItems: 1 @@ -792,12 +834,49 @@ allOf: then: required: - apple,bw-scratch + - if: + properties: + compatible: + contains: + enum: ['apple,t6050-dcp', 'apple,t6050-dcpext'] + then: + required: + - apple,clock-ids + allOf: + - if: + not: + properties: + status: + const: disabled + required: + - status + then: + required: + - memory-region + - memory-region-names + - apple,firmware-compat + properties: + apple,firmware-compat: + items: + - const: 27 + - const: 0 + - const: 0 + else: + properties: + clocks: + maxItems: 2 + clock-names: + items: + - const: clock-154 + - const: clock-194 + apple,clock-ids: false + apple,firmware-physical-regs: false - if: not: properties: compatible: contains: - enum: ['apple,t8140-dcp', 'apple,t8140-dcpext'] + enum: ['apple,t8140-dcp', 'apple,t8140-dcpext', 'apple,t6050-dcp', 'apple,t6050-dcpext'] then: properties: apple,power-lut-data-x: false @@ -809,7 +888,8 @@ allOf: properties: compatible: contains: - enum: ['apple,t8140-dcp', 'apple,t8140-dcpext'] + enum: ['apple,t8140-dcp', 'apple,t8140-dcpext', + 'apple,t6050-dcp', 'apple,t6050-dcpext'] then: properties: resets: false diff --git a/Documentation/devicetree/bindings/dma/apple,admac.yaml b/Documentation/devicetree/bindings/dma/apple,admac.yaml index 17a5015deae17..144ad7aad8368 100644 --- a/Documentation/devicetree/bindings/dma/apple,admac.yaml +++ b/Documentation/devicetree/bindings/dma/apple,admac.yaml @@ -31,6 +31,7 @@ select: - "apple,t6030-admac" - "apple,t6031-admac" - "apple,t6041-admac" + - "apple,t6050-admac" - "apple,t8103-admac" - "apple,t8112-admac" - "apple,t8122-admac" @@ -125,6 +126,9 @@ allOf: properties: compatible: oneOf: + - items: + - const: apple,t6050-admac + - const: apple,t8140-admac - items: - const: apple,t6020-admac - const: apple,t8103-admac diff --git a/Documentation/devicetree/bindings/gpio/apple,smc-pcio-gpio.yaml b/Documentation/devicetree/bindings/gpio/apple,smc-pcio-gpio.yaml new file mode 100644 index 0000000000000..94d9672189fc6 --- /dev/null +++ b/Documentation/devicetree/bindings/gpio/apple,smc-pcio-gpio.yaml @@ -0,0 +1,40 @@ +# SPDX-License-Identifier: GPL-2.0-only +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/gpio/apple,smc-pcio-gpio.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple SMC pcIO output GPIOs + +maintainers: + - Dj + +description: | + The writable eight-byte pcIO SMC key controls outputs through board + command templates. Each template has its low 16 bits clear; the driver + inserts a boolean output level and sends the little-endian command. + Input reads and mode changes are not supported by this interface. + +properties: + compatible: + const: apple,smc-pcio-gpio + + gpio-controller: true + + '#gpio-cells': + const: 2 + + apple,output-commands: + $ref: /schemas/types.yaml#/definitions/uint64-array + minItems: 1 + maxItems: 64 + uniqueItems: true + description: Unique command templates with low 16 bits clear, in GPIO order + +required: + - compatible + - gpio-controller + - '#gpio-cells' + - apple,output-commands + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/hwmon/apple,smc-hwmon.yaml b/Documentation/devicetree/bindings/hwmon/apple,smc-hwmon.yaml index fcfe475d4dcf2..1c4249cfc5b98 100644 --- a/Documentation/devicetree/bindings/hwmon/apple,smc-hwmon.yaml +++ b/Documentation/devicetree/bindings/hwmon/apple,smc-hwmon.yaml @@ -53,7 +53,9 @@ properties: follow the temperature-* children in the listed order and are labelled "SoC die ". Keys absent from the running firmware or with an unsupported format are skipped. These channels do not change the indices - used by thermal-sensors references to temperature-* children. + used by thermal-sensors references to temperature-* children. With + apple,discover-temperatures, a listed key adds no channel; its + discovered channel (labelled with the key) supplies the zone. apple,thermal-pressure-key: $ref: /schemas/types.yaml#/definitions/string diff --git a/Documentation/devicetree/bindings/iommu/apple,dart.yaml b/Documentation/devicetree/bindings/iommu/apple,dart.yaml index 0cce56fa44f19..d7a54a513f27b 100644 --- a/Documentation/devicetree/bindings/iommu/apple,dart.yaml +++ b/Documentation/devicetree/bindings/iommu/apple,dart.yaml @@ -124,9 +124,23 @@ properties: items: maximum: 255 description: - Reserved streams of a USB4 PCIe tunnel DART that its PCIe-C port issues + Streams set to bypass after every reset of the DART, outside any domain. + On a USB4 PCIe tunnel DART, the reserved streams its PCIe-C port issues its own writes on, such as the interrupt controller writes its MSIs - turn into. They are set to bypass after every reset of the DART. + turn into. On a T8110 DART that nothing initialises before Linux, such + as a USB4 router's, the streams its co-processor uses without + translation. + apple,full-error-reporting: + type: boolean + description: + Unmask every error and enable the error interrupt for every stream, + with the registers of the DART's revision, and leave the DART unlocked + on error. For a T8110 DART that nothing initialises before Linux. + apple,ctc-flush: + type: boolean + description: + Flush the DART's context cache after a stream flush, where the DART + has one. For a T8110 DART that nothing initialises before Linux. apple,remap-streams: $ref: /schemas/types.yaml#/definitions/uint32-matrix minItems: 1 @@ -337,9 +351,25 @@ allOf: items: maximum: 255 description: - Reserved streams of a USB4 PCIe tunnel DART that its PCIe-C port issues + Streams set to bypass after every reset of the DART, outside any domain. + On a USB4 PCIe tunnel DART, the reserved streams its PCIe-C port issues its own writes on, such as the interrupt controller writes its MSIs - turn into. They are set to bypass after every reset of the DART. + turn into. On a T8110 DART that nothing initialises before Linux, such + as a USB4 router's, the streams its co-processor uses without + translation. + + apple,full-error-reporting: + type: boolean + description: + Unmask every error and enable the error interrupt for every stream, + with the registers of the DART's revision, and leave the DART unlocked + on error. For a T8110 DART that nothing initialises before Linux. + + apple,ctc-flush: + type: boolean + description: + Flush the DART's context cache after a stream flush, where the DART + has one. For a T8110 DART that nothing initialises before Linux. apple,remap-streams: $ref: /schemas/types.yaml#/definitions/uint32-matrix diff --git a/Documentation/devicetree/bindings/iommu/apple,sart.yaml b/Documentation/devicetree/bindings/iommu/apple,sart.yaml index 99b6f5cc29b6d..cd45d5d39ea80 100644 --- a/Documentation/devicetree/bindings/iommu/apple,sart.yaml +++ b/Documentation/devicetree/bindings/iommu/apple,sart.yaml @@ -27,6 +27,9 @@ description: SART3, first seen in M1 Pro/Max, extends both the address space and filter entry size to 42 bit. + SART4, seen on M5 Ultra (T6050), keeps SART3's entries but moves the + address and size arrays, so it has no SART3 fallback. + select: anyOf: - @@ -39,6 +42,7 @@ select: - "apple,t6030-sart" - "apple,t6031-sart" - "apple,t6041-sart" + - "apple,t6050-sart" - "apple,t8015-sart" - "apple,t8103-sart" - "apple,t8112-sart" @@ -127,6 +131,7 @@ allOf: - const: apple,t6000-sart - enum: - apple,t6000-sart + - apple,t6050-sart - apple,t8015-sart - apple,t8103-sart diff --git a/Documentation/devicetree/bindings/mfd/apple,smc.yaml b/Documentation/devicetree/bindings/mfd/apple,smc.yaml index 929d0f6493623..384fe9b19b183 100644 --- a/Documentation/devicetree/bindings/mfd/apple,smc.yaml +++ b/Documentation/devicetree/bindings/mfd/apple,smc.yaml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) AND GPL-2.0-only %YAML 1.2 --- $id: http://devicetree.org/schemas/mfd/apple,smc.yaml# @@ -27,6 +27,7 @@ select: - "apple,t6030-smc" - "apple,t6031-smc" - "apple,t6041-smc" + - "apple,t6050-smc" - "apple,t8103-smc" - "apple,t8112-smc" - "apple,t8122-smc" @@ -54,7 +55,9 @@ properties: mboxes: maxItems: 1 gpio: - $ref: /schemas/gpio/apple,smc-gpio.yaml + oneOf: + - $ref: /schemas/gpio/apple,smc-gpio.yaml + - $ref: /schemas/gpio/apple,smc-pcio-gpio.yaml gpio-low: $ref: /schemas/gpio/apple,smc-gpio.yaml reboot: @@ -123,6 +126,7 @@ allOf: oneOf: - description: T8152 SMC with read-only hardware monitoring. const: apple,t8152-smc + - const: apple,t6050-smc - items: - enum: - apple,t6020-smc @@ -156,7 +160,9 @@ allOf: maxItems: 1 gpio: - $ref: /schemas/gpio/apple,smc-gpio.yaml + oneOf: + - $ref: /schemas/gpio/apple,smc-gpio.yaml + - $ref: /schemas/gpio/apple,smc-pcio-gpio.yaml gpio-low: $ref: /schemas/gpio/apple,smc-gpio.yaml diff --git a/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml b/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml index 4368db85c7d19..206fa64fdb552 100644 --- a/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml +++ b/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml @@ -27,10 +27,12 @@ select: - "apple,t6030-display-crossbar" - "apple,t6031-display-crossbar" - "apple,t6041-display-crossbar" + - "apple,t6050-display-crossbar" - "apple,t8103-display-crossbar" - "apple,t8112-display-crossbar" - "apple,t8122-display-crossbar" - "apple,t8132-display-crossbar" + - "apple,t8142-display-crossbar" required: - "compatible" - @@ -48,6 +50,7 @@ properties: compatible: true reg: true power-domains: true + power-domain-names: true "#mux-control-cells": true interrupts: true iommus: true @@ -97,6 +100,22 @@ allOf: else: allOf: - $ref: mux-controller.yaml# + - if: + properties: + compatible: + contains: + const: apple,t6050-display-crossbar + then: + properties: + power-domains: + minItems: 2 + maxItems: 2 + required: + - power-domain-names + else: + properties: + power-domains: + maxItems: 1 properties: compatible: oneOf: @@ -106,6 +125,7 @@ allOf: - apple,t6000-display-crossbar - apple,t6020-display-crossbar - apple,t6041-display-crossbar + - apple,t8142-display-crossbar - apple,t8132-display-crossbar - items: - const: apple,t8112-display-crossbar @@ -116,12 +136,21 @@ allOf: - apple,t6031-display-crossbar - apple,t8122-display-crossbar - const: apple,t6020-display-crossbar + - items: + - const: apple,t6050-display-crossbar + - const: apple,t8142-display-crossbar reg: maxItems: 1 power-domains: - maxItems: 1 + minItems: 1 + maxItems: 2 + + power-domain-names: + items: + - const: usb-aon + - const: common '#mux-control-cells': const: 1 diff --git a/Documentation/devicetree/bindings/net/wireless/apple,centauri.yaml b/Documentation/devicetree/bindings/net/wireless/apple,centauri.yaml new file mode 100644 index 0000000000000..4e46c3573edbf --- /dev/null +++ b/Documentation/devicetree/bindings/net/wireless/apple,centauri.yaml @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: GPL-2.0-only +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/net/wireless/apple,centauri.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple N1 Centauri Control PCI function + +maintainers: + - Dj + +description: | + PCI function zero owns the shared N1 firmware bootstrap. The boot producer + supplies the personalized FTAB filename and packed firmware platform ID. + The endpoint must be left in its stopped ROM personality with DMA and MSI + quiesced. A supported APIF PCI host performs the isolated port reset after + ROM bootstrap. This binding does not authorize adopting an existing live + firmware session or releasing another owner's retained DART streams. + +properties: + compatible: + enum: + - pci106b,1900 + - pci106b,1901 + + reg: + maxItems: 1 + description: Standard five-cell PCI function address + + firmware-name: + $ref: /schemas/types.yaml#/definitions/string + description: Personalized FTAB including the required per-device calibration + + apple,centauri-platform-id: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Firmware chip ID in bits 15..0 and board ID in bits 30..16 + + apple,centauri-protocol: + $ref: /schemas/types.yaml#/definitions/uint32 + const: 27 + description: Shared firmware wire protocol profile + +required: + - compatible + - reg + - firmware-name + - apple,centauri-platform-id + - apple,centauri-protocol + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml b/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml index 496d266386e4c..65f42300efeaf 100644 --- a/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml +++ b/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml @@ -23,6 +23,7 @@ select: - "apple,t6030-nvme-ans2" - "apple,t6031-nvme-ans2" - "apple,t6041-nvme-ans2" + - "apple,t6050-nvme-ans2" - "apple,t8015-nvme-ans2" - "apple,t8103-nvme-ans2" - "apple,t8112-nvme-ans2" @@ -125,6 +126,7 @@ allOf: oneOf: - const: apple,t8015-nvme-ans2 - const: apple,t6041-nvme-ans2 + - const: apple,t6050-nvme-ans2 - items: - enum: - apple,t6020-nvme-ans2 @@ -226,6 +228,7 @@ allOf: not: contains: enum: + - apple,t6050-nvme-ans2 - apple,t8132-nvme-ans2 - apple,t8140-nvme-ans2 then: @@ -261,6 +264,7 @@ allOf: contains: enum: - apple,t6041-nvme-ans2 + - apple,t6050-nvme-ans2 - apple,t8132-nvme-ans2 - apple,t8140-nvme-ans2 then: @@ -275,13 +279,29 @@ allOf: maxItems: 2 reg-names: maxItems: 2 + + - if: + properties: + compatible: + contains: + const: apple,t6050-nvme-ans2 + then: + description: + The T6050 ANS is adopted running, its power stays with the firmware + and it is never reset through PMGR, so it names no power domain and + no reset. + properties: + power-domains: false + power-domain-names: false + else: + required: + - resets + - power-domains + - power-domain-names required: - compatible - reg - reg-names - - resets - - power-domains - - power-domain-names - mboxes - interrupts - apple,sart diff --git a/Documentation/devicetree/bindings/pci/apple,pcie.yaml b/Documentation/devicetree/bindings/pci/apple,pcie.yaml index fb87d13e0814b..7a5310d122ac7 100644 --- a/Documentation/devicetree/bindings/pci/apple,pcie.yaml +++ b/Documentation/devicetree/bindings/pci/apple,pcie.yaml @@ -53,6 +53,8 @@ select: - "apple,t6031-pcie" - "apple,t6040-pciec" - "apple,t6041-pcie" + - "apple,t6050-pcie" + - "apple,t6050-pciec" - "apple,t8103-pcie" - "apple,t8103-pciec" - "apple,t8112-pcie" @@ -107,6 +109,12 @@ properties: ranges: true interrupts: true interrupt-names: true + interrupt-names: true + nonposted-mmio: true + apple,msi-vector-base: + $ref: /schemas/types.yaml#/definitions/uint32 + maximum: 255 + description: First global vector targeted by this host's local MSI map. msi-parent: true msi-ranges: maxItems: 1 @@ -259,12 +267,14 @@ allOf: - const: apple,t6020-pcie - const: apple,t8140-pcie - const: apple,t8152-pcie + - const: apple,t6050-pcie - const: apple,t8132-pcie - const: apple,t8103-pciec - items: - const: apple,t8112-pciec - const: apple,t8103-pciec - const: apple,t6000-pciec + - const: apple,t6050-pciec - items: - const: apple,t8132-pciec - const: apple,t8122-pciec @@ -288,11 +298,11 @@ allOf: reg: minItems: 3 - maxItems: 10 + maxItems: 14 reg-names: minItems: 3 - maxItems: 10 + maxItems: 14 ranges: minItems: 2 @@ -308,6 +318,19 @@ allOf: minItems: 1 maxItems: 6 + interrupt-names: + minItems: 1 + maxItems: 4 + items: + pattern: "^port[0-3]$" + + nonposted-mmio: true + + apple,msi-vector-base: + $ref: /schemas/types.yaml#/definitions/uint32 + maximum: 255 + description: First global vector targeted by this host's local MSI map. + msi-parent: true msi-ranges: @@ -375,6 +398,19 @@ allOf: description: Optional GPIO to power on the device maxItems: 1 + apple,link-trained-by-bootloader: + type: boolean + description: | + Firmware has initialized power, shared registers, PHY and clocks, + deasserted PERST and trained the link. The OS must validate and adopt + this state, with no reset, tunable replay, clock policy changes or + retraining fallback. Firmware must leave endpoint DMA and MSI/MSI-X + disabled and the port RID table without valid entries. Firmware + retains responsibility for power and external reset throughout use. + On T6050, each such root port 00:.0 is admitted with one + endpoint, device 0 function 0, on the secondary bus the firmware + numbered, at Gen3 x1. + interrupt-controller: true apple,tunable: @@ -411,6 +447,52 @@ allOf: - apple,msi-vector-base - $ref: /schemas/pci/pci-host-bridge.yaml# - $ref: /schemas/interrupt-controller/msi-controller.yaml# + - if: + properties: + compatible: + contains: + const: apple,t6050-pcie + then: + properties: + reg: + minItems: 5 + maxItems: 14 + reg-names: + description: + config and rc, then port, phy and intr2axi for each + bootloader-trained root port 00:.0. + minItems: 5 + maxItems: 14 + items: + pattern: "^(config|rc|(port|phy|intr2axi)[0-3])$" + interrupts: + maxItems: 4 + interrupt-names: + items: + pattern: "^port[0-3]$" + apple,msi-vector-base: + const: 64 + power-domains: false + required: + - interrupt-names + - apple,msi-vector-base + - iommu-map + patternProperties: + "^pci@": + properties: + reset-gpios: + description: + The PERST# line of a port whose endpoint needs a root-port + reset after the bootloader trained the link. Left as the + bootloader set it until that reset. + pwren-gpios: false + required: + - apple,link-trained-by-bootloader + else: + patternProperties: + "^pci@": + properties: + apple,link-trained-by-bootloader: false - if: properties: compatible: @@ -450,6 +532,7 @@ allOf: - apple,t8103-pciec - apple,t6000-pciec - apple,t6040-pciec + - apple,t6050-pciec then: properties: reg: @@ -576,26 +659,42 @@ allOf: interrupts: maxItems: 3 else: - properties: - reg-names: - minItems: 3 - items: - - const: config - - const: rc - - const: port0 - - const: port1 - - const: port2 - - const: port3 - - const: phy0 - - const: phy1 - - const: phy2 - - const: phy3 + if: + properties: + compatible: + not: + contains: + const: apple,t6050-pcie + then: + properties: + reg-names: + minItems: 3 + items: + - const: config + - const: rc + - const: port0 + - const: port1 + - const: port2 + - const: port3 + - const: phy0 + - const: phy1 + - const: phy2 + - const: phy3 + - if: + properties: + compatible: + not: + contains: + const: apple,t6050-pcie + then: + patternProperties: + "^pci@": + required: + - reset-gpios patternProperties: "^pci@": properties: apple,tunable: false - required: - - reset-gpios $defs: tunable: diff --git a/Documentation/devicetree/bindings/phy/apple,combo-phy.yaml b/Documentation/devicetree/bindings/phy/apple,combo-phy.yaml new file mode 100644 index 0000000000000..ed40520108a20 --- /dev/null +++ b/Documentation/devicetree/bindings/phy/apple,combo-phy.yaml @@ -0,0 +1,241 @@ +# SPDX-License-Identifier: GPL-2.0-only +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/phy/apple,combo-phy.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple DisplayPort and Type-C combo PHY + +maintainers: + - Dj + +description: | + Fixed four-lane DisplayPort PHY for HDMI bridges, or one shared owner of + Type-C USB2, USB3 and DisplayPort alternate mode. DisplayPort supports RBR + through HBR3 without spread-spectrum clocking. The combo provider serializes + controller shutdown, PIPE handoff, orientation and alternate-mode changes. + Register resources, power domains and board tunables come from the producer. + +properties: + compatible: + enum: + - apple,t6050-dp-phy + - apple,t6050-combo-phy + + reg: + minItems: 6 + maxItems: 11 + + reg-names: + minItems: 6 + maxItems: 11 + + '#phy-cells': + enum: [0, 1] + + '#reset-cells': + const: 1 + + apple,port-index: + $ref: /schemas/types.yaml#/definitions/uint32 + enum: [1, 2, 3, 4, 5] + description: Type-C port; the debug port (0) is excluded + + apple,guest-port-reserved: + type: boolean + description: The boot producer has excluded this port from host ownership + + mode-switch: true + orientation-switch: true + + mboxes: + maxItems: 1 + + port: + $ref: /schemas/graph.yaml#/properties/port + + apple,tunable-aus40cmn-shm: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples for the common analog bank + + apple,tunable-cio4pll: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples for the CIO PLL bank + + apple,tunable-usb2-default: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples for the USB2 PHY bank + + apple,tunable-usb2-host: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples for the USB2 host bank + + apple,tunable-pipe-default: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples for the PIPE handler + + power-domains: + description: + A combo PHY may name the USB controller's domain fourth ("usb"). Its + USB2 PHY and digital banks are in that domain, and the PHY then holds it + while it runs, also on a port with no USB controller bound. + minItems: 3 + maxItems: 4 + + power-domain-names: + minItems: 3 + items: + - const: usb-aon + - const: common + - const: wrapper + - const: usb + + apple,tunable-axi2af: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples within the named bank + + apple,tunable-fabric: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples within the named bank + + apple,tunable-common-cfg: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples within the named bank + + apple,tunable-lioa: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples within the named bank + + apple,tunable-lane0-rx-clock: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples within the named bank + + apple,tunable-lane1-rx-clock: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples within the named bank + + apple,tunable-lane0-rx-eq: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples within the named bank + + apple,tunable-lane1-rx-eq: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples within the named bank + + apple,tunable-auspll: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: Offset, mask and value tuples within the named bank + + apple,tunable-uc-regs-cio: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: + Offset, mask and value tuples for the PHY firmware's registers in CIO + (USB4/Thunderbolt) mode. Optional; an absent CIO tunable is skipped. + + apple,tunable-lane0-rx-top-cio: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: As apple,tunable-uc-regs-cio, for lane 0's receiver top bank + + apple,tunable-lane1-rx-top-cio: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: As apple,tunable-uc-regs-cio, for lane 1's receiver top bank + + apple,tunable-lane0-rx-eq-cio: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: As apple,tunable-uc-regs-cio, for lane 0's receiver equalizer + + apple,tunable-lane1-rx-eq-cio: + $ref: /schemas/types.yaml#/definitions/uint32-array + description: As apple,tunable-uc-regs-cio, for lane 1's receiver equalizer + +patternProperties: + '^apple,dp-training-table(-rbr|-hbr|-hbr2|-hbr3)?$': + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 16 + maxItems: 16 + description: Drive presets indexed by voltage swing times four plus pre-emphasis + +required: + - compatible + - reg + - reg-names + - '#phy-cells' + - power-domains + - power-domain-names + +allOf: + - if: + properties: + compatible: + const: apple,t6050-combo-phy + then: + properties: + '#phy-cells': + const: 1 + reg: + minItems: 11 + maxItems: 11 + reg-names: + items: + - const: core + - const: usb2phy + - const: usb2-digital + - const: reset + - const: fabric + - const: axi2af + - const: lioa + - const: common-cfg + - const: usb-control + - const: firmware-data + - const: pipehandler + required: + - '#reset-cells' + - apple,port-index + - apple,guest-port-reserved + - mode-switch + - orientation-switch + - mboxes + else: + properties: + '#phy-cells': + const: 0 + power-domains: + maxItems: 3 + power-domain-names: + maxItems: 3 + if: + required: + - mode-switch + then: + properties: + reg: + minItems: 8 + maxItems: 8 + reg-names: + items: + - const: core + - const: reset + - const: fabric + - const: axi2af + - const: lioa + - const: common-cfg + - const: usb-control + - const: firmware-data + required: + - orientation-switch + - mboxes + else: + properties: + reg: + minItems: 6 + maxItems: 6 + reg-names: + items: + - const: core + - const: reset + - const: fabric + - const: axi2af + - const: lioa + - const: common-cfg + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml b/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml index fcf0b9d0e5c72..a30f835bb6af4 100644 --- a/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml +++ b/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml @@ -20,13 +20,22 @@ description: | select: anyOf: - - properties: - compatible: - contains: - enum: - - apple,t8122-dptx-phy - required: - - compatible + anyOf: + - + properties: + compatible: + contains: + enum: + - apple,t8122-dptx-phy + required: + - compatible + - + properties: + compatible: + contains: + const: "apple,t6050-dptx-phy" + required: + - "compatible" - properties: compatible: @@ -43,11 +52,34 @@ properties: reg: true power-domains: true "#phy-cells": true + reg-names: true + "#reset-cells": true + status: true + apple,pll-dcocfg: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pll-dtcvreg: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pll-dtccal: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pll-dcdadj: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pll-dlfcfg: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pclkdrv-select: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,ufp-endpoint: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." interrupts: true iommus: true clocks: true resets: true - status: true additionalProperties: true @@ -94,24 +126,114 @@ allOf: additionalProperties: false else: properties: - compatible: - items: - - enum: - - apple,t8122-dptx-phy - - const: apple,dptx-phy + "compatible": true + "reg": true + "power-domains": true + "#phy-cells": true + reg-names: true + "#reset-cells": true + status: true + apple,pll-dcocfg: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pll-dtcvreg: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pll-dtccal: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pll-dcdadj: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pll-dlfcfg: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pclkdrv-select: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,ufp-endpoint: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + additionalProperties: true + allOf: + - if: + properties: + compatible: + contains: + const: "apple,t6050-dptx-phy" + required: + - "compatible" + then: + properties: + compatible: + const: "apple,t6050-dptx-phy" + reg: + minItems: 2 + maxItems: 2 + reg-names: + items: + - + const: "core" + - + const: "dptx" + power-domains: + maxItems: 1 + "#phy-cells": + const: 0 + "#reset-cells": + const: 1 + status: + const: "disabled" + apple,pll-dcocfg: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pll-dtcvreg: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pll-dtccal: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pll-dcdadj: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pll-dlfcfg: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,pclkdrv-select: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + apple,ufp-endpoint: + $ref: "/schemas/types.yaml#/definitions/uint32" + description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + required: + - "compatible" + - "reg" + - "reg-names" + - "power-domains" + - "#phy-cells" + - "#reset-cells" + - "status" + additionalProperties: false + else: + properties: + compatible: + items: + - enum: + - apple,t8122-dptx-phy + - const: apple,dptx-phy - reg: - minItems: 2 - maxItems: 2 + reg: + minItems: 2 + maxItems: 2 - power-domains: - maxItems: 1 + power-domains: + maxItems: 1 - '#phy-cells': - const: 0 - required: - - compatible - - reg - - power-domains - - '#phy-cells' - additionalProperties: false + '#phy-cells': + const: 0 + required: + - compatible + - reg + - power-domains + - '#phy-cells' + additionalProperties: false diff --git a/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml index 3d2095502d08d..a8572dc9374e7 100644 --- a/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml +++ b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml @@ -30,6 +30,7 @@ select: - "apple,t6030-pinctrl" - "apple,t6031-pinctrl" - "apple,t6041-pinctrl" + - "apple,t6050-pinctrl" - "apple,t7000-pinctrl" - "apple,t8010-pinctrl" - "apple,t8015-pinctrl" @@ -64,7 +65,10 @@ properties: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 6 default: 0 - description: First hardware interrupt group owned by the host. + description: | + First interrupt group owned by this host. Interrupts lists consecutive + groups starting at this index. The loader must preserve any groups + owned by resident firmware. The range must end before group seven. apple,npins: $ref: /schemas/types.yaml#/definitions/uint32 description: The number of pins in this GPIO controller. @@ -124,6 +128,9 @@ allOf: properties: compatible: oneOf: + - items: + - const: apple,t6050-pinctrl + - const: apple,t8132-pinctrl - items: - enum: - apple,t6020-pinctrl @@ -134,6 +141,7 @@ allOf: - apple,t8132-pinctrl - apple,t8140-pinctrl - apple,t8152-pinctrl + - apple,t6050-pinctrl - const: apple,t8103-pinctrl - items: # Do not add additional SoC to this list. @@ -166,7 +174,10 @@ allOf: $ref: /schemas/types.yaml#/definitions/uint32 maximum: 6 default: 0 - description: First hardware interrupt group owned by the host. + description: | + First interrupt group owned by this host. Interrupts lists consecutive + groups starting at this index. The loader must preserve any groups + owned by resident firmware. The range must end before group seven. apple,npins: $ref: /schemas/types.yaml#/definitions/uint32 diff --git a/Documentation/devicetree/bindings/power/apple,pmc.yaml b/Documentation/devicetree/bindings/power/apple,pmc.yaml index 825d68ce51998..85b54bc769bfa 100644 --- a/Documentation/devicetree/bindings/power/apple,pmc.yaml +++ b/Documentation/devicetree/bindings/power/apple,pmc.yaml @@ -26,6 +26,7 @@ properties: compatible: enum: - apple,t6041-pmc + - apple,t6050-pmc - apple,t8132-pmc - apple,t8140-pmc - apple,t8142-pmc @@ -226,12 +227,16 @@ patternProperties: properties: compatible: - enum: - - apple,t6041-clpc - - apple,t8132-clpc - - apple,t8140-clpc - - apple,t8142-clpc - - apple,t8152-clpc + oneOf: + - items: + - const: apple,t6050-clpc + - const: apple,t6041-clpc + - enum: + - apple,t6041-clpc + - apple,t8132-clpc + - apple,t8140-clpc + - apple,t8142-clpc + - apple,t8152-clpc reg: maxItems: 1 diff --git a/Documentation/devicetree/bindings/power/reset/apple,smc-reboot.yaml b/Documentation/devicetree/bindings/power/reset/apple,smc-reboot.yaml index 6d5b33c016769..1b20e48561ef9 100644 --- a/Documentation/devicetree/bindings/power/reset/apple,smc-reboot.yaml +++ b/Documentation/devicetree/bindings/power/reset/apple,smc-reboot.yaml @@ -23,18 +23,22 @@ properties: - const: apple,smc-reboot nvmem-cells: + minItems: 4 items: - description: Flag indicating shutdown (as opposed to reboot) - description: Stage at which the boot process stopped (0x30 for normal boot) - description: Counter for boot errors - description: Counter for system panics + - description: The PMU's power-on policy (after a power loss, at power connect) nvmem-cell-names: + minItems: 4 items: - const: shutdown_flag - const: boot_stage - const: boot_error_count - const: panic_count + - const: pm_setting required: - compatible diff --git a/Documentation/devicetree/bindings/reset/apple,t8103-cio-reset.yaml b/Documentation/devicetree/bindings/reset/apple,t8103-cio-reset.yaml index 21ed54f3e0152..65b62eaf5951d 100644 --- a/Documentation/devicetree/bindings/reset/apple,t8103-cio-reset.yaml +++ b/Documentation/devicetree/bindings/reset/apple,t8103-cio-reset.yaml @@ -22,6 +22,9 @@ description: | On t8142, a standalone register page contains a shared request register with alternating request and busy bits for four ports. + On t6050 the same request register sits at offset 0x60 of a page in the + die's PMGR block. + In all cases the reset id is the CIO port index on the die. properties: @@ -30,6 +33,7 @@ properties: - enum: - apple,t8103-cio-reset - apple,t8142-cio-reset + - apple,t6050-cio-reset - apple,t6000-cio-reset - items: - const: apple,t8112-cio-reset diff --git a/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml b/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml index f7e7f90214ddb..4c1da2ec60e84 100644 --- a/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml +++ b/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml @@ -41,6 +41,9 @@ select: - "compatible" properties: + apple,tx-never-wait: + type: boolean + description: Do not wait for a console reader before completing transmit. compatible: true reg: true reg-names: true @@ -114,6 +117,10 @@ allOf: allOf: - $ref: serial.yaml# properties: + apple,tx-never-wait: + type: boolean + description: Do not wait for a console reader before completing transmit. + compatible: oneOf: - const: apple,dockchannel-uart diff --git a/Documentation/devicetree/bindings/soc/apple/apple,aop.yaml b/Documentation/devicetree/bindings/soc/apple/apple,aop.yaml index ea96d7b290384..23c4cf21ae95b 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,aop.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,aop.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/apple/apple,aop.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple Always-On Processor @@ -15,55 +16,131 @@ description: | buffers. Service nodes do not have independent host MMIO or interrupts. select: - properties: - compatible: - items: - - enum: - - apple,t6020-aop - - apple,t8112-aop - required: - - compatible + anyOf: + - + properties: + compatible: + items: + - enum: + - apple,t6020-aop + - apple,t8112-aop + required: + - compatible + - + properties: + compatible: + items: + - + const: "apple,t6050-aop" + - + const: "apple,t8152-aop" + required: + - "compatible" properties: - compatible: - enum: - - apple,t6020-aop - - apple,t8112-aop - - reg: - items: - - description: Shared SRAM - - description: Coprocessor registers - + "compatible": true + "reg": true mboxes: maxItems: 1 - mbox-names: const: mbox - - iommus: - maxItems: 1 - + "iommus": true audio: $ref: /schemas/sound/apple,aop-audio.yaml# - als: $ref: /schemas/iio/light/apple,aop-als.yaml# - las: $ref: /schemas/iio/position/apple,aop-las.yaml# - accel: $ref: /schemas/iio/imu/apple,aop-motion.yaml# - gyro: $ref: /schemas/iio/imu/apple,aop-motion.yaml# + reg-names: true + nonposted-mmio: true + +additionalProperties: true + +allOf: + - if: + properties: + compatible: + items: + - + const: "apple,t6050-aop" + - + const: "apple,t8152-aop" + required: + - "compatible" + then: + properties: + compatible: + items: + - + const: "apple,t6050-aop" + - + const: "apple,t8152-aop" + reg: + minItems: 2 + maxItems: 2 + reg-names: + minItems: 2 + maxItems: 2 + mboxes: + maxItems: 1 + mbox-names: + const: "mbox" + iommus: + maxItems: 1 + nonposted-mmio: true + audio: + $ref: "/schemas/sound/apple,aop-audio.yaml#" + required: + - "compatible" + - "reg" + - "reg-names" + - "mboxes" + - "mbox-names" + - "iommus" + additionalProperties: false + else: + properties: + compatible: + enum: + - apple,t6020-aop + - apple,t8112-aop + + reg: + items: + - description: Shared SRAM + - description: Coprocessor registers + + mboxes: + maxItems: 1 + + mbox-names: + const: mbox + + iommus: + maxItems: 1 + + audio: + $ref: /schemas/sound/apple,aop-audio.yaml# + + als: + $ref: /schemas/iio/light/apple,aop-als.yaml# + + las: + $ref: /schemas/iio/position/apple,aop-las.yaml# -required: - - compatible - - reg - - mboxes - - mbox-names - - iommus + accel: + $ref: /schemas/iio/imu/apple,aop-motion.yaml# -additionalProperties: false + gyro: + $ref: /schemas/iio/imu/apple,aop-motion.yaml# + required: + - compatible + - reg + - mboxes + - mbox-names + - iommus + additionalProperties: false diff --git a/Documentation/devicetree/bindings/sound/apple,aop-audio.yaml b/Documentation/devicetree/bindings/sound/apple,aop-audio.yaml index 5a501c66df767..278a5ba13a9c5 100644 --- a/Documentation/devicetree/bindings/sound/apple,aop-audio.yaml +++ b/Documentation/devicetree/bindings/sound/apple,aop-audio.yaml @@ -2,6 +2,7 @@ %YAML 1.2 --- $id: http://devicetree.org/schemas/sound/apple,aop-audio.yaml# + $schema: http://devicetree.org/meta-schemas/core.yaml# title: Apple AOP audio service @@ -15,40 +16,105 @@ description: | application-processor register window or interrupt. select: - properties: - compatible: - contains: - enum: - - apple,t6020-aop-audio - - apple,t8112-aop-audio - required: - - compatible + anyOf: + - + properties: + compatible: + contains: + enum: + - apple,t6020-aop-audio + - apple,t8112-aop-audio + required: + - compatible + - + properties: + compatible: + contains: + const: "apple,t6050-aop-audio" + required: + - "compatible" properties: - compatible: - items: - - enum: - - apple,t6020-aop-audio - - apple,t8112-aop-audio - - const: apple,aop-audio - + "compatible": true dmas: maxItems: 1 - dma-names: const: dma - apple,chassis-name: $ref: /schemas/types.yaml#/definitions/string description: Board family used to identify the audio configuration. - apple,machine-kind: $ref: /schemas/types.yaml#/definitions/string description: Machine family used for the sound card identity. + "#sound-dai-cells": true + +additionalProperties: true + +allOf: + - if: + properties: + compatible: + contains: + const: "apple,t6050-aop-audio" + required: + - "compatible" + then: + properties: + compatible: + oneOf: + - + const: "apple,t6050-aop-audio" + - + items: + - + const: "apple,t6050-aop-audio" + - + const: "apple,aop-audio" + dmas: + minItems: 4 + maxItems: 4 + dma-names: + items: + - + const: "cout" + - + const: "cin" + - + const: "spkr" + - + const: "sense" + "#sound-dai-cells": + const: 1 + required: + - "compatible" + - "dmas" + - "dma-names" + - "#sound-dai-cells" + additionalProperties: false + else: + properties: + compatible: + items: + - enum: + - apple,t6020-aop-audio + - apple,t8112-aop-audio + - const: apple,aop-audio + + dmas: + maxItems: 1 + + dma-names: + const: dma -required: - - compatible - - dmas - - dma-names + apple,chassis-name: + $ref: /schemas/types.yaml#/definitions/string + description: Board family used to identify the audio configuration. -additionalProperties: false + apple,machine-kind: + $ref: /schemas/types.yaml#/definitions/string + description: Machine family used for the sound card identity. + required: + - compatible + - dmas + - dma-names + additionalProperties: false diff --git a/Documentation/devicetree/bindings/sound/apple,macaudio.yaml b/Documentation/devicetree/bindings/sound/apple,macaudio.yaml index 904e41f6c28fc..0d9004fab9c1d 100644 --- a/Documentation/devicetree/bindings/sound/apple,macaudio.yaml +++ b/Documentation/devicetree/bindings/sound/apple,macaudio.yaml @@ -34,6 +34,7 @@ properties: - apple,j473-macaudio - apple,j493-macaudio - apple,j575c-macaudio + - apple,j775d-macaudio - apple,j575c-macaudio-jack - apple,j604-macaudio - apple,j604-macaudio-jack diff --git a/Documentation/devicetree/bindings/sound/ti,tas27xx.yaml b/Documentation/devicetree/bindings/sound/ti,tas27xx.yaml index 1f6bd7b4635b6..319ee69c0868c 100644 --- a/Documentation/devicetree/bindings/sound/ti,tas27xx.yaml +++ b/Documentation/devicetree/bindings/sound/ti,tas27xx.yaml @@ -23,6 +23,11 @@ allOf: - apple,sdz-group-fail-closed then: properties: + ti,bclk-ratio: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Serial bit clock ratio supplied by the board producer. + minimum: 1 + shutdown-gpios: false properties: diff --git a/Documentation/devicetree/bindings/spmi/apple,spmi.yaml b/Documentation/devicetree/bindings/spmi/apple,spmi.yaml index 54a28be34bd73..41fb5dfaf7215 100644 --- a/Documentation/devicetree/bindings/spmi/apple,spmi.yaml +++ b/Documentation/devicetree/bindings/spmi/apple,spmi.yaml @@ -1,4 +1,4 @@ -# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) AND GPL-2.0-only %YAML 1.2 --- $id: http://devicetree.org/schemas/spmi/apple,spmi.yaml# @@ -25,6 +25,7 @@ select: - "apple,t6030-spmi" - "apple,t6031-spmi" - "apple,t6041-spmi" + - "apple,t6050-spmi" - "apple,t8012-spmi" - "apple,t8015-spmi" - "apple,t8103-spmi" @@ -113,6 +114,9 @@ allOf: properties: compatible: oneOf: + - items: + - const: apple,t6050-spmi + - const: apple,t8142-spmi - const: apple,t8142-spmi - items: - enum: @@ -134,6 +138,7 @@ allOf: - apple,t8132-spmi - apple,t8140-spmi - const: apple,t8103-spmi + - const: apple,t6050-spmi reg: minItems: 1 diff --git a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml index 027869e743b91..89a34220d7f69 100644 --- a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml +++ b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml @@ -38,6 +38,7 @@ select: - "apple,t6030-usb4-acio" - "apple,t6031-usb4-acio" - "apple,t6040-usb4-acio" + - "apple,t6050-usb4-acio" - "apple,t8103-usb4-acio" - "apple,t8112-usb4-acio" - "apple,t8122-usb4-acio" @@ -103,6 +104,17 @@ properties: As apple,tunable-rc, but applied to the PCIe adapter configuration space named by the pcie-adapter reg entry. Only meaningful where that entry is present. + apple,tunable-router-ap-fw: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + items: + items: + - description: Register offset + - description: Mask of bits to clear + - description: Bits to set + description: | + As apple,tunable-rc, but applied to the PCIe router AP firmware + registers named by the router-ap-fw reg entry, with the other router + tunables once the co-processor firmware is ready. "#address-cells": true "#size-cells": true ranges: true @@ -192,6 +204,7 @@ allOf: - const: apple,t8103-usb4-acio - const: apple,t8142-usb4-acio - const: apple,t6040-usb4-acio + - const: apple,t6050-usb4-acio - items: - enum: - apple,t6000-usb4-acio @@ -213,6 +226,7 @@ allOf: the root complex exposes the adapter separately, so that the tunnel can be configured before a PCIe-C link is brought up. - description: MxWrap co-processor control registers + - description: PCIe router AP firmware registers, on T6050 reg-names: minItems: 2 @@ -221,6 +235,7 @@ allOf: - const: sram - const: pcie-adapter - const: cpu + - const: router-ap-fw interrupts: maxItems: 1 @@ -241,11 +256,12 @@ allOf: power-domains: minItems: 3 - maxItems: 4 + maxItems: 5 description: | - The first three domains power the ACIO co-processor complex. When - apple,pcie-tunnel is present, the fourth domain powers its PCIe-C - controller and is enabled only after the USB4 PCIe tunnel is active. + The first three domains (four on T6050) power the ACIO co-processor + complex. When apple,pcie-tunnel is present, the domain after them powers + its PCIe-C controller and is enabled only after the USB4 PCIe tunnel is + active. thunderbolt-switch: type: boolean @@ -288,6 +304,18 @@ allOf: named by the pcie-adapter reg entry. Only meaningful where that entry is present. + apple,tunable-router-ap-fw: + $ref: /schemas/types.yaml#/definitions/uint32-matrix + items: + items: + - description: Register offset + - description: Mask of bits to clear + - description: Bits to set + description: | + As apple,tunable-rc, but applied to the PCIe router AP firmware + registers named by the router-ap-fw reg entry, with the other router + tunables once the co-processor firmware is ready. + '#address-cells': const: 1 @@ -357,7 +385,9 @@ allOf: properties: compatible: contains: - const: apple,t8132-usb4-acio + enum: + - apple,t6050-usb4-acio + - apple,t8132-usb4-acio then: properties: reg: @@ -385,6 +415,24 @@ allOf: required: - iommu@a80000 - nhi@f00000 + - if: + properties: + compatible: + contains: + const: apple,t6050-usb4-acio + then: + properties: + reg: + minItems: 5 + reg-names: + minItems: 5 + power-domains: + minItems: 4 + else: + properties: + power-domains: + maxItems: 4 + apple,tunable-router-ap-fw: false additionalProperties: false examples: diff --git a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml index d26451da2f218..b1fea5453d8b4 100644 --- a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml +++ b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml @@ -30,6 +30,7 @@ select: - "apple,t6030-usb4-nhi" - "apple,t6031-usb4-nhi" - "apple,t6040-usb4-nhi" + - "apple,t6050-usb4-nhi" - "apple,t8103-usb4-nhi" - "apple,t8112-usb4-nhi" - "apple,t8122-usb4-nhi" @@ -134,6 +135,7 @@ allOf: - const: apple,t8103-usb4-nhi - const: apple,t8142-usb4-nhi - const: apple,t6040-usb4-nhi + - const: apple,t6050-usb4-nhi - items: - enum: - apple,t6000-usb4-nhi @@ -162,10 +164,12 @@ allOf: interrupts: description: One interrupt for each of the 12 transmit rings followed by one for each - of the 12 receive rings. - maxItems: 24 + of the 12 receive rings. On T6050 an SRAM parity interrupt follows them. + minItems: 24 + maxItems: 25 interrupt-names: + minItems: 24 items: - const: txring0 - const: txring1 @@ -191,6 +195,7 @@ allOf: - const: rxring9 - const: rxring10 - const: rxring11 + - const: parity iommus: minItems: 1 @@ -201,7 +206,8 @@ allOf: all other rings which are only used for XDomain connections to other hosts. - T8142 uses one DART stream per ring: TX streams 0-11 and RX streams 16-27. + T8142 and T6050 use one DART stream per ring: TX streams 0-11 and RX + streams 16-27. T6030, T6031 and T8122 also use 24 entries. These are most likely one DART stream for each of the 12 transmit and 12 receive rings. @@ -237,6 +243,7 @@ allOf: enum: - apple,t8142-usb4-nhi - apple,t6040-usb4-nhi + - apple,t6050-usb4-nhi then: properties: reg: @@ -260,6 +267,7 @@ allOf: - apple,t8132-usb4-nhi - apple,t8142-usb4-nhi - apple,t6040-usb4-nhi + - apple,t6050-usb4-nhi then: properties: iommus: @@ -282,4 +290,17 @@ allOf: properties: iommus: maxItems: 1 + + - if: + properties: + compatible: + not: + contains: + const: apple,t6050-usb4-nhi + then: + properties: + interrupts: + maxItems: 24 + interrupt-names: + maxItems: 24 additionalProperties: false diff --git a/Documentation/devicetree/bindings/usb/apple,dwc3.yaml b/Documentation/devicetree/bindings/usb/apple,dwc3.yaml index 5a81f9e02fd3b..e84c7c90c26c0 100644 --- a/Documentation/devicetree/bindings/usb/apple,dwc3.yaml +++ b/Documentation/devicetree/bindings/usb/apple,dwc3.yaml @@ -26,6 +26,7 @@ select: - "apple,t6030-dwc3" - "apple,t6031-dwc3" - "apple,t6040-dwc3" + - "apple,t6050-dwc3" - "apple,t8103-dwc3" - "apple,t8112-dwc3" - "apple,t8122-dwc3" @@ -68,6 +69,17 @@ properties: apple,tunable-link: $ref: "#/$defs/apple,tunable" description: Tunables applied to the link registers of the Apple region. + apple,tunable-cio: + $ref: "#/$defs/apple,tunable" + description: + Tunables applied to the CIO registers of the Apple region, from offset + 0x20 of that region, after the driver's fixed CIO values. + apple,tunable-bulk: + $ref: "#/$defs/apple,tunable" + description: Tunables applied to the drd-bulk region. + apple,tunable-ausbc: + $ref: "#/$defs/apple,tunable" + description: Tunables applied to the drd-ausbc region. clocks: true status: true @@ -133,6 +145,23 @@ allOf: then: required: - power-domains + - if: + properties: + compatible: + contains: + const: apple,t6050-dwc3 + then: + properties: + reg: + minItems: 3 + reg-names: + minItems: 3 + else: + properties: + reg: + maxItems: 3 + reg-names: + maxItems: 3 properties: compatible: oneOf: @@ -143,6 +172,7 @@ allOf: - apple,t6030-dwc3 - apple,t6031-dwc3 - apple,t6040-dwc3 + - apple,t6050-dwc3 - apple,t8112-dwc3 - apple,t8122-dwc3 - apple,t8140-dwc3 @@ -156,7 +186,9 @@ allOf: items: - description: Core DWC3 region - description: Apple-specific DWC3 region - - description: Controller configuration block (T6040) + - description: Controller configuration block (T6040, T6050) + - description: Bulk fabric block (T6050) + - description: AUSBC debug block (T6050) reg-names: minItems: 2 @@ -164,6 +196,8 @@ allOf: - const: dwc3-core - const: dwc3-apple - const: drd-cfg + - const: drd-bulk + - const: drd-ausbc interrupts: maxItems: 1 @@ -196,6 +230,20 @@ allOf: apple,tunable-link: $ref: "#/$defs/apple,tunable" description: Tunables applied to the link registers of the Apple region. + + apple,tunable-cio: + $ref: "#/$defs/apple,tunable" + description: + Tunables applied to the CIO registers of the Apple region, from offset + 0x20 of that region, after the driver's fixed CIO values. + + apple,tunable-bulk: + $ref: "#/$defs/apple,tunable" + description: Tunables applied to the drd-bulk region. + + apple,tunable-ausbc: + $ref: "#/$defs/apple,tunable" + description: Tunables applied to the drd-ausbc region. required: - compatible - reg @@ -218,7 +266,7 @@ $defs: - description: Bits to be set after applying the mask description: > Controller table from the device's Apple device tree, applied after - every core reset (T6040). + every core reset (T6040, T6050). examples: - | From 707ae64736625038922a5c815cc5f1fa5352e689 Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 07:25:03 +1100 Subject: [PATCH 05/13] dt-bindings: apple: retain T6050 video and I2C fallback identities Accept the existing J775d fallback sequences without changing the independent disabled resource forms. Assisted-by: LLM Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> --- Documentation/devicetree/bindings/i2c/apple,i2c.yaml | 2 ++ Documentation/devicetree/bindings/media/apple,avd.yaml | 4 ++++ 2 files changed, 6 insertions(+) diff --git a/Documentation/devicetree/bindings/i2c/apple,i2c.yaml b/Documentation/devicetree/bindings/i2c/apple,i2c.yaml index 8b14f3c6b43fb..374e9aaae38d2 100644 --- a/Documentation/devicetree/bindings/i2c/apple,i2c.yaml +++ b/Documentation/devicetree/bindings/i2c/apple,i2c.yaml @@ -31,6 +31,7 @@ select: - "apple,t6030-i2c" - "apple,t6031-i2c" - "apple,t6041-i2c" + - "apple,t6050-i2c" - "apple,t7000-i2c" - "apple,t8010-i2c" - "apple,t8015-i2c" @@ -134,6 +135,7 @@ allOf: - apple,t6030-i2c - apple,t6031-i2c - apple,t6041-i2c + - apple,t6050-i2c - apple,t8122-i2c - apple,t8132-i2c - apple,t8140-i2c diff --git a/Documentation/devicetree/bindings/media/apple,avd.yaml b/Documentation/devicetree/bindings/media/apple,avd.yaml index 6c414b4fd6526..c297de487f359 100644 --- a/Documentation/devicetree/bindings/media/apple,avd.yaml +++ b/Documentation/devicetree/bindings/media/apple,avd.yaml @@ -25,6 +25,7 @@ select: - apple,t6030-avd - apple,t6031-avd - apple,t6041-avd + - apple,t6050-avd - apple,t6041-max-avd - apple,t8103-avd - apple,t8112-avd @@ -160,6 +161,9 @@ allOf: properties: compatible: oneOf: + - items: + - const: apple,t6050-avd + - const: apple,t8142-avd - items: - enum: - apple,t6030-avd From bf1a9a8ea9f730e7c13b662f5298a1b2dcb22054 Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 07:31:19 +1100 Subject: [PATCH 06/13] arm64: dts: apple: retain T6050 shared resource views and binding types Describe the shared PWM register bank once with both interrupt and gate relationships. Keep distinct audio DMA proxy views, expose legacy pattern-property types at binding roots, and normalize generated YAML. Resolve the public profile contracts without adding enables or changing driver code. Assisted-by: LLM Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> --- .../devicetree/bindings/arm/apple.yaml | 2 +- .../bindings/arm/apple/apple,pmgr.yaml | 2 +- .../devicetree/bindings/crypto/apple,aes.yaml | 42 ++-- .../bindings/display/apple,dcp-expert.yaml | 38 ++-- .../bindings/display/apple,dcp.yaml | 86 ++++---- .../display/apple,display-engine.yaml | 157 +++----------- .../bindings/display/apple,dpin.yaml | 38 ++-- .../bindings/display/apple,dptx-aux.yaml | 133 +++--------- .../bindings/dma/apple,admac-control.yaml | 133 +++--------- .../bindings/dma/apple,admac-secure.yaml | 42 ++-- .../devicetree/bindings/dma/apple,admac.yaml | 64 +++--- .../bindings/dma/apple,pcie-piodma.yaml | 40 ++-- .../bindings/dma/apple,pciec-piodma.yaml | 40 ++-- .../devicetree/bindings/dma/apple,sio.yaml | 68 +++--- .../edac/apple,soc-error-handler.yaml | 76 ++++--- .../devicetree/bindings/gpu/apple,agx.yaml | 72 ++++--- .../bindings/hwmon/apple,smc-hwmon.yaml | 14 +- .../devicetree/bindings/i2c/apple,i2c.yaml | 78 +++---- .../devicetree/bindings/iommu/apple,dart.yaml | 82 +++---- .../devicetree/bindings/iommu/apple,sart.yaml | 64 +++--- .../mailbox/apple,secure-mailbox.yaml | 50 +++-- .../devicetree/bindings/media/apple,avd.yaml | 42 ++-- .../devicetree/bindings/media/apple,jpeg.yaml | 44 ++-- .../bindings/media/apple,prores.yaml | 42 ++-- .../bindings/media/apple,t8140-ave.yaml | 44 ++-- .../bindings/media/apple,t8140-isp.yaml | 44 ++-- .../devicetree/bindings/mfd/apple,smc.yaml | 70 +++--- .../bindings/mux/apple,display-crossbar.yaml | 60 +++--- .../devicetree/bindings/npu/apple,ane.yaml | 66 +++--- .../bindings/nvme/apple,nvme-ans.yaml | 70 +++--- .../devicetree/bindings/pci/apple,pcie.yaml | 200 +++++++++++------- .../devicetree/bindings/phy/apple,atcphy.yaml | 70 +++--- .../bindings/phy/apple,combo-phy.yaml | 38 ++-- .../bindings/phy/apple,dptx-phy.yaml | 150 ++++++------- .../bindings/pinctrl/apple,pinctrl.yaml | 93 ++++---- .../bindings/pwm/apple,s5l-fpwm.yaml | 72 ++++--- .../serial/apple,dockchannel-uart.yaml | 50 +++-- .../bindings/serial/samsung_uart.yaml | 82 +++---- .../bindings/soc/apple/apple,aon-ptd.yaml | 38 ++-- .../bindings/soc/apple/apple,aop.yaml | 37 ++-- .../bindings/soc/apple/apple,aop2.yaml | 48 +++-- .../bindings/soc/apple/apple,dockchannel.yaml | 70 +++--- .../bindings/soc/apple/apple,gpu-coproc.yaml | 154 +++----------- .../bindings/soc/apple/apple,msg.yaml | 145 +++---------- .../bindings/soc/apple/apple,phy-coproc.yaml | 136 +++--------- .../bindings/soc/apple/apple,pmp.yaml | 71 ++++--- .../bindings/soc/apple/apple,rsm.yaml | 42 ++-- .../soc/apple/apple,rtk-helper-asc4.yaml | 82 +++---- .../bindings/soc/apple/apple,sep.yaml | 52 ++--- .../bindings/soc/apple/apple,t6041-aop.yaml | 48 +++-- .../bindings/soc/apple/apple,t8140-mcc.yaml | 36 ++-- .../bindings/sound/apple,aop-audio.yaml | 33 ++- .../devicetree/bindings/sound/ti,tas27xx.yaml | 6 +- .../devicetree/bindings/spi/apple,qspi.yaml | 62 +++--- .../devicetree/bindings/spi/apple,spi.yaml | 66 +++--- .../devicetree/bindings/spmi/apple,spmi.yaml | 70 +++--- .../thunderbolt/apple,t8103-usb4-acio.yaml | 78 ++++--- .../thunderbolt/apple,t8103-usb4-nhi.yaml | 66 +++--- .../bindings/timer/apple,aic-timebase.yaml | 58 ++--- .../devicetree/bindings/usb/apple,dwc3.yaml | 68 +++--- .../bindings/watchdog/apple,wdt.yaml | 76 +++---- .../boot/dts/apple/t6050-peripherals.dtsi | 44 ++-- 62 files changed, 1975 insertions(+), 2169 deletions(-) diff --git a/Documentation/devicetree/bindings/arm/apple.yaml b/Documentation/devicetree/bindings/arm/apple.yaml index 253bf3830ae31..904fe58ebae21 100644 --- a/Documentation/devicetree/bindings/arm/apple.yaml +++ b/Documentation/devicetree/bindings/arm/apple.yaml @@ -180,7 +180,7 @@ description: | properties: $nodename: - const: "/" + const: / compatible: oneOf: - description: Apple A7 SoC based platforms diff --git a/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml b/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml index 91ae5a3ce1bca..60ae59cf1200a 100644 --- a/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml +++ b/Documentation/devicetree/bindings/arm/apple/apple,pmgr.yaml @@ -17,7 +17,7 @@ description: | properties: $nodename: - pattern: "^power-management@[0-9a-f]+$" + pattern: ^power-management@[0-9a-f]+$ compatible: oneOf: diff --git a/Documentation/devicetree/bindings/crypto/apple,aes.yaml b/Documentation/devicetree/bindings/crypto/apple,aes.yaml index d111ad1cb9c6e..9140b833611aa 100644 --- a/Documentation/devicetree/bindings/crypto/apple,aes.yaml +++ b/Documentation/devicetree/bindings/crypto/apple,aes.yaml @@ -41,11 +41,11 @@ select: compatible: items: - - const: "apple,t6050-aes" + const: apple,t6050-aes - - const: "apple,aes" + const: apple,aes required: - - "compatible" + - compatible properties: compatible: true @@ -67,31 +67,35 @@ allOf: compatible: items: - - const: "apple,t6050-aes" + const: apple,t6050-aes - - const: "apple,aes" + const: apple,aes status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-aes" + const: apple,t6050-aes - - const: "apple,aes" + const: apple,aes status: - const: "disabled" + const: disabled reg: minItems: 3 maxItems: 3 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 iommus: @@ -99,12 +103,12 @@ allOf: power-domains: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "power-domains" + - compatible + - reg + - status + - interrupts + - iommus + - power-domains additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml b/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml index 04366902676e6..74d4103ffee5a 100644 --- a/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml +++ b/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml @@ -32,11 +32,11 @@ select: compatible: items: - - const: "apple,t6050-dcp-expert" + const: apple,t6050-dcp-expert - - const: "apple,dcp-expert" + const: apple,dcp-expert required: - - "compatible" + - compatible properties: compatible: true @@ -58,38 +58,42 @@ allOf: compatible: items: - - const: "apple,t6050-dcp-expert" + const: apple,t6050-dcp-expert - - const: "apple,dcp-expert" + const: apple,dcp-expert status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-dcp-expert" + const: apple,t6050-dcp-expert - - const: "apple,dcp-expert" + const: apple,dcp-expert status: - const: "disabled" + const: disabled reg: minItems: 3 maxItems: 13 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" + - compatible + - reg + - status + - interrupts additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/display/apple,dcp.yaml b/Documentation/devicetree/bindings/display/apple,dcp.yaml index 0f061179a6f52..9439e0004b27a 100644 --- a/Documentation/devicetree/bindings/display/apple,dcp.yaml +++ b/Documentation/devicetree/bindings/display/apple,dcp.yaml @@ -22,39 +22,39 @@ select: compatible: contains: enum: - - "apple,dcp" - - "apple,dcpext" - - "apple,t6000-dcp" - - "apple,t6000-dcpext" - - "apple,t6020-dcp" - - "apple,t6020-dcpext" - - "apple,t6031-dcp" - - "apple,t6041-dcp" - - "apple,t6041-dcpext" - - "apple,t6050-dcp" - - "apple,t6050-dcpext" - - "apple,t8103-dcp" - - "apple,t8103-dcpext" - - "apple,t8112-dcp" - - "apple,t8112-dcpext" - - "apple,t8132-dcp" - - "apple,t8132-dcpext" - - "apple,t8132-dcpext-firmware-ready." - - "apple,t8140-dcp" - - "apple,t8140-dcpext" - - "apple,t8142-dcp" + - apple,dcp + - apple,dcpext + - apple,t6000-dcp + - apple,t6000-dcpext + - apple,t6020-dcp + - apple,t6020-dcpext + - apple,t6031-dcp + - apple,t6041-dcp + - apple,t6041-dcpext + - apple,t6050-dcp + - apple,t6050-dcpext + - apple,t8103-dcp + - apple,t8103-dcpext + - apple,t8112-dcp + - apple,t8112-dcpext + - apple,t8132-dcp + - apple,t8132-dcpext + - apple,t8132-dcpext-firmware-ready. + - apple,t8140-dcp + - apple,t8140-dcpext + - apple,t8142-dcp required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-dcp" + const: apple,t6050-dcp - - const: "apple,dcp" + const: apple,dcp required: - - "compatible" + - compatible properties: compatible: true @@ -348,31 +348,35 @@ allOf: compatible: items: - - const: "apple,t6050-dcp" + const: apple,t6050-dcp - - const: "apple,dcp" + const: apple,dcp status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-dcp" + const: apple,t6050-dcp - - const: "apple,dcp" + const: apple,dcp status: - const: "disabled" + const: disabled reg: minItems: 2 maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 7 maxItems: 8 @@ -385,12 +389,12 @@ allOf: clocks: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "clocks" + - compatible + - reg + - status + - interrupts + - iommus + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/display/apple,display-engine.yaml b/Documentation/devicetree/bindings/display/apple,display-engine.yaml index 0bdf7a45401aa..c3f7a9e2c152a 100644 --- a/Documentation/devicetree/bindings/display/apple,display-engine.yaml +++ b/Documentation/devicetree/bindings/display/apple,display-engine.yaml @@ -1,127 +1,40 @@ # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- -$id: "http://devicetree.org/schemas/display/apple,display-engine.yaml#" - -$schema: "http://devicetree.org/meta-schemas/core.yaml#" - -title: "Apple display engine hardware resources" - +$id: http://devicetree.org/schemas/display/apple,display-engine.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# +title: Apple display engine hardware resources maintainers: - - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" - -description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - -select: - anyOf: - - - properties: - compatible: - contains: - enum: - - "apple,display-engine" - - "apple,t6050-display-engine" - required: - - "compatible" - - - properties: - compatible: - items: - - - const: "apple,t6050-display-engine" - - - const: "apple,display-engine" - required: - - "compatible" - + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> +description: | + T6050 native resource description. Firmware ownership, backend support and enables require separate + qualification. This variant remains disabled and contains no programming sequences or firmware data. properties: - compatible: true - status: true - reg: true - interrupts: true - iommus: true - clocks: true - power-domains: true - resets: true - -additionalProperties: true - -allOf: - - if: - anyOf: - - - properties: - compatible: - items: - - - const: "apple,t6050-display-engine" - - - const: "apple,display-engine" - status: - const: "disabled" - required: - - "compatible" - - "status" - then: - oneOf: - - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - properties: - compatible: - items: - - - const: "apple,t6050-display-engine" - - - const: "apple,display-engine" - status: - const: "disabled" - reg: - minItems: 5 - maxItems: 5 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - minItems: 11 - maxItems: 13 - iommus: - minItems: 2 - maxItems: 2 - clocks: - maxItems: 2 - required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "clocks" - additionalProperties: false - else: - properties: - compatible: - items: - - - const: "apple,t6050-display-engine" - - - const: "apple,display-engine" - status: - const: "disabled" - reg: - minItems: 5 - maxItems: 5 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - minItems: 11 - maxItems: 13 - iommus: - minItems: 2 - maxItems: 2 - clocks: - maxItems: 2 - required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "clocks" - additionalProperties: false + compatible: + items: + - + const: apple,t6050-display-engine + - + const: apple,display-engine + status: + const: disabled + reg: + minItems: 5 + maxItems: 5 + description: Native register apertures in hardware-interface order, including shared auxiliary views. + interrupts: + minItems: 11 + maxItems: 13 + iommus: + minItems: 2 + maxItems: 2 + clocks: + maxItems: 2 +required: + - compatible + - reg + - status + - interrupts + - iommus + - clocks +additionalProperties: false diff --git a/Documentation/devicetree/bindings/display/apple,dpin.yaml b/Documentation/devicetree/bindings/display/apple,dpin.yaml index 5a32a8546c3cf..6bcb5a25ac6d1 100644 --- a/Documentation/devicetree/bindings/display/apple,dpin.yaml +++ b/Documentation/devicetree/bindings/display/apple,dpin.yaml @@ -39,11 +39,11 @@ select: compatible: items: - - const: "apple,t6050-dpin" + const: apple,t6050-dpin - - const: "apple,dpin" + const: apple,dpin required: - - "compatible" + - compatible properties: compatible: true @@ -65,37 +65,41 @@ allOf: compatible: items: - - const: "apple,t6050-dpin" + const: apple,t6050-dpin - - const: "apple,dpin" + const: apple,dpin status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-dpin" + const: apple,t6050-dpin - - const: "apple,dpin" + const: apple,dpin status: - const: "disabled" + const: disabled reg: maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" + - compatible + - reg + - status + - interrupts additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/display/apple,dptx-aux.yaml b/Documentation/devicetree/bindings/display/apple,dptx-aux.yaml index 2f4e2a98171f2..1209f777e8f92 100644 --- a/Documentation/devicetree/bindings/display/apple,dptx-aux.yaml +++ b/Documentation/devicetree/bindings/display/apple,dptx-aux.yaml @@ -1,111 +1,32 @@ # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- -$id: "http://devicetree.org/schemas/display/apple,dptx-aux.yaml#" - -$schema: "http://devicetree.org/meta-schemas/core.yaml#" - -title: "Apple dptx aux hardware resources" - +$id: http://devicetree.org/schemas/display/apple,dptx-aux.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# +title: Apple dptx aux hardware resources maintainers: - - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" - -description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - -select: - anyOf: - - - properties: - compatible: - contains: - enum: - - "apple,dptx-aux" - - "apple,t6050-dptx-aux" - required: - - "compatible" - - - properties: - compatible: - items: - - - const: "apple,t6050-dptx-aux" - - - const: "apple,dptx-aux" - required: - - "compatible" - + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> +description: | + T6050 native resource description. Firmware ownership, backend support and enables require separate + qualification. This variant remains disabled and contains no programming sequences or firmware data. properties: - compatible: true - status: true - reg: true - power-domains: true - interrupts: true - iommus: true - clocks: true - resets: true - -additionalProperties: true - -allOf: - - if: - anyOf: - - - properties: - compatible: - items: - - - const: "apple,t6050-dptx-aux" - - - const: "apple,dptx-aux" - status: - const: "disabled" - required: - - "compatible" - - "status" - then: - oneOf: - - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - properties: - compatible: - items: - - - const: "apple,t6050-dptx-aux" - - - const: "apple,dptx-aux" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - power-domains: - maxItems: 1 - required: - - "compatible" - - "reg" - - "status" - - "power-domains" - additionalProperties: false - else: - properties: - compatible: - items: - - - const: "apple,t6050-dptx-aux" - - - const: "apple,dptx-aux" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - power-domains: - maxItems: 1 - required: - - "compatible" - - "reg" - - "status" - - "power-domains" - additionalProperties: false + compatible: + items: + - + const: apple,t6050-dptx-aux + - + const: apple,dptx-aux + status: + const: disabled + reg: + minItems: 2 + maxItems: 2 + description: Native register apertures in hardware-interface order, including shared auxiliary views. + power-domains: + maxItems: 1 +required: + - compatible + - reg + - status + - power-domains +additionalProperties: false diff --git a/Documentation/devicetree/bindings/dma/apple,admac-control.yaml b/Documentation/devicetree/bindings/dma/apple,admac-control.yaml index 720aeddd925ab..723a45332dd8b 100644 --- a/Documentation/devicetree/bindings/dma/apple,admac-control.yaml +++ b/Documentation/devicetree/bindings/dma/apple,admac-control.yaml @@ -1,111 +1,32 @@ # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- -$id: "http://devicetree.org/schemas/dma/apple,admac-control.yaml#" - -$schema: "http://devicetree.org/meta-schemas/core.yaml#" - -title: "Apple admac control hardware resources" - +$id: http://devicetree.org/schemas/dma/apple,admac-control.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# +title: Apple admac control hardware resources maintainers: - - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" - -description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - -select: - anyOf: - - - properties: - compatible: - contains: - enum: - - "apple,admac-control" - - "apple,t6050-admac-control" - required: - - "compatible" - - - properties: - compatible: - items: - - - const: "apple,t6050-admac-control" - - - const: "apple,admac-control" - required: - - "compatible" - + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> +description: | + T6050 native resource description. Firmware ownership, backend support and enables require separate + qualification. This variant remains disabled and contains no programming sequences or firmware data. properties: - compatible: true - status: true - reg: true - interrupts: true - iommus: true - power-domains: true - clocks: true - resets: true - -additionalProperties: true - -allOf: - - if: - anyOf: - - - properties: - compatible: - items: - - - const: "apple,t6050-admac-control" - - - const: "apple,admac-control" - status: - const: "disabled" - required: - - "compatible" - - "status" - then: - oneOf: - - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - properties: - compatible: - items: - - - const: "apple,t6050-admac-control" - - - const: "apple,admac-control" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - maxItems: 1 - required: - - "compatible" - - "reg" - - "status" - - "interrupts" - additionalProperties: false - else: - properties: - compatible: - items: - - - const: "apple,t6050-admac-control" - - - const: "apple,admac-control" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - maxItems: 1 - required: - - "compatible" - - "reg" - - "status" - - "interrupts" - additionalProperties: false + compatible: + items: + - + const: apple,t6050-admac-control + - + const: apple,admac-control + status: + const: disabled + reg: + minItems: 2 + maxItems: 2 + description: Native register apertures in hardware-interface order, including shared auxiliary views. + interrupts: + maxItems: 1 +required: + - compatible + - reg + - status + - interrupts +additionalProperties: false diff --git a/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml b/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml index 75c6aaf5640ac..6daf7c177c45f 100644 --- a/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml +++ b/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml @@ -25,20 +25,20 @@ select: compatible: contains: enum: - - "apple,admac-secure" - - "apple,t8140-admac-secure" + - apple,admac-secure + - apple,t8140-admac-secure required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-admac-secure" + const: apple,t6050-admac-secure - - const: "apple,admac-secure" + const: apple,admac-secure required: - - "compatible" + - compatible properties: compatible: true @@ -63,36 +63,40 @@ allOf: compatible: items: - - const: "apple,t6050-admac-secure" + const: apple,t6050-admac-secure - - const: "apple,admac-secure" + const: apple,admac-secure status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-admac-secure" + const: apple,t6050-admac-secure - - const: "apple,admac-secure" + const: apple,admac-secure status: - const: "disabled" + const: disabled reg: maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. "#dma-cells": const: 1 required: - - "compatible" - - "reg" - - "status" + - compatible + - reg + - status - "#dma-cells" additionalProperties: false else: diff --git a/Documentation/devicetree/bindings/dma/apple,admac.yaml b/Documentation/devicetree/bindings/dma/apple,admac.yaml index 144ad7aad8368..ddfc5eb9b4762 100644 --- a/Documentation/devicetree/bindings/dma/apple,admac.yaml +++ b/Documentation/devicetree/bindings/dma/apple,admac.yaml @@ -25,30 +25,30 @@ select: compatible: contains: enum: - - "apple,admac" - - "apple,t6000-admac" - - "apple,t6020-admac" - - "apple,t6030-admac" - - "apple,t6031-admac" - - "apple,t6041-admac" - - "apple,t6050-admac" - - "apple,t8103-admac" - - "apple,t8112-admac" - - "apple,t8122-admac" - - "apple,t8132-admac" - - "apple,t8140-admac" + - apple,admac + - apple,t6000-admac + - apple,t6020-admac + - apple,t6030-admac + - apple,t6031-admac + - apple,t6041-admac + - apple,t6050-admac + - apple,t8103-admac + - apple,t8112-admac + - apple,t8122-admac + - apple,t8132-admac + - apple,t8140-admac required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-admac" + const: apple,t6050-admac - - const: "apple,admac" + const: apple,admac required: - - "compatible" + - compatible properties: compatible: true @@ -82,31 +82,35 @@ allOf: compatible: items: - - const: "apple,t6050-admac" + const: apple,t6050-admac - - const: "apple,admac" + const: apple,admac status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-admac" + const: apple,t6050-admac - - const: "apple,admac" + const: apple,admac status: - const: "disabled" + const: disabled reg: minItems: 2 maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 iommus: @@ -114,10 +118,10 @@ allOf: "#dma-cells": const: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" + - compatible + - reg + - status + - interrupts - "#dma-cells" additionalProperties: false else: diff --git a/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml b/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml index 27c0202f58b5b..0c4d779fc787e 100644 --- a/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml +++ b/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml @@ -40,11 +40,11 @@ select: compatible: items: - - const: "apple,t6050-pcie-piodma" + const: apple,t6050-pcie-piodma - - const: "apple,pcie-piodma" + const: apple,pcie-piodma required: - - "compatible" + - compatible properties: compatible: true @@ -66,41 +66,45 @@ allOf: compatible: items: - - const: "apple,t6050-pcie-piodma" + const: apple,t6050-pcie-piodma - - const: "apple,pcie-piodma" + const: apple,pcie-piodma status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-pcie-piodma" + const: apple,t6050-pcie-piodma - - const: "apple,pcie-piodma" + const: apple,pcie-piodma status: - const: "disabled" + const: disabled reg: minItems: 3 maxItems: 3 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 iommus: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" + - compatible + - reg + - status + - interrupts + - iommus additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml index 0602a10dca494..8cbcce8573d34 100644 --- a/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml +++ b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml @@ -42,11 +42,11 @@ select: compatible: items: - - const: "apple,t6050-pciec-piodma" + const: apple,t6050-pciec-piodma - - const: "apple,pciec-piodma" + const: apple,pciec-piodma required: - - "compatible" + - compatible properties: compatible: true @@ -68,41 +68,45 @@ allOf: compatible: items: - - const: "apple,t6050-pciec-piodma" + const: apple,t6050-pciec-piodma - - const: "apple,pciec-piodma" + const: apple,pciec-piodma status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-pciec-piodma" + const: apple,t6050-pciec-piodma - - const: "apple,pciec-piodma" + const: apple,pciec-piodma status: - const: "disabled" + const: disabled reg: minItems: 4 maxItems: 4 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 iommus: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" + - compatible + - reg + - status + - interrupts + - iommus additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/dma/apple,sio.yaml b/Documentation/devicetree/bindings/dma/apple,sio.yaml index 67d6821d76f66..a07f3c19d51ce 100644 --- a/Documentation/devicetree/bindings/dma/apple,sio.yaml +++ b/Documentation/devicetree/bindings/dma/apple,sio.yaml @@ -24,29 +24,29 @@ select: compatible: contains: enum: - - "apple,sio" - - "apple,t6000-sio" - - "apple,t6020-sio" - - "apple,t6030-sio" - - "apple,t6031-sio" - - "apple,t6041-sio" - - "apple,t8103-sio" - - "apple,t8112-sio" - - "apple,t8122-sio" - - "apple,t8132-sio" - - "apple,t8140-sio" + - apple,sio + - apple,t6000-sio + - apple,t6020-sio + - apple,t6030-sio + - apple,t6031-sio + - apple,t6041-sio + - apple,t8103-sio + - apple,t8112-sio + - apple,t8122-sio + - apple,t8132-sio + - apple,t8140-sio required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-sio" + const: apple,t6050-sio - - const: "apple,sio" + const: apple,sio required: - - "compatible" + - compatible properties: compatible: true @@ -101,31 +101,35 @@ allOf: compatible: items: - - const: "apple,t6050-sio" + const: apple,t6050-sio - - const: "apple,sio" + const: apple,sio status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-sio" + const: apple,t6050-sio - - const: "apple,sio" + const: apple,sio status: - const: "disabled" + const: disabled reg: minItems: 2 maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 4 maxItems: 4 @@ -138,13 +142,13 @@ allOf: "#dma-cells": const: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "power-domains" - - "clocks" + - compatible + - reg + - status + - interrupts + - iommus + - power-domains + - clocks - "#dma-cells" additionalProperties: false else: diff --git a/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml b/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml index ce1f774aa9087..c581e4325d2a1 100644 --- a/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml +++ b/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml @@ -61,21 +61,21 @@ select: compatible: items: - - const: "apple,t6050-error-handler" + const: apple,t6050-error-handler - - const: "apple,soc-error-handler" + const: apple,soc-error-handler required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-event-log" + const: apple,t6050-event-log - - const: "apple,soc-event-log" + const: apple,soc-event-log required: - - "compatible" + - compatible properties: compatible: true @@ -97,76 +97,84 @@ allOf: compatible: items: - - const: "apple,t6050-error-handler" + const: apple,t6050-error-handler - - const: "apple,soc-error-handler" + const: apple,soc-error-handler status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status - properties: compatible: items: - - const: "apple,t6050-event-log" + const: apple,t6050-event-log - - const: "apple,soc-event-log" + const: apple,soc-event-log status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-error-handler" + const: apple,t6050-error-handler - - const: "apple,soc-error-handler" + const: apple,soc-error-handler status: - const: "disabled" + const: disabled reg: minItems: 214 maxItems: 214 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 105 maxItems: 105 required: - - "compatible" - - "reg" - - "status" - - "interrupts" + - compatible + - reg + - status + - interrupts additionalProperties: false - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-event-log" + const: apple,t6050-event-log - - const: "apple,soc-event-log" + const: apple,soc-event-log status: - const: "disabled" + const: disabled reg: minItems: 141 maxItems: 141 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 23 maxItems: 23 required: - - "compatible" - - "reg" - - "status" - - "interrupts" + - compatible + - reg + - status + - interrupts additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/gpu/apple,agx.yaml b/Documentation/devicetree/bindings/gpu/apple,agx.yaml index 3ce031488d89e..35b58558207b5 100644 --- a/Documentation/devicetree/bindings/gpu/apple,agx.yaml +++ b/Documentation/devicetree/bindings/gpu/apple,agx.yaml @@ -17,32 +17,32 @@ select: compatible: contains: enum: - - "apple,agx-g13c" - - "apple,agx-g13d" - - "apple,agx-g13g" - - "apple,agx-g13s" - - "apple,agx-g14c" - - "apple,agx-g14d" - - "apple,agx-g14g" - - "apple,agx-g14s" - - "apple,agx-t6040" - - "apple,agx-t6041" - - "apple,agx-t8103" - - "apple,agx-t8112" - - "apple,agx-t8132" - - "apple,agx-t8140" + - apple,agx-g13c + - apple,agx-g13d + - apple,agx-g13g + - apple,agx-g13s + - apple,agx-g14c + - apple,agx-g14d + - apple,agx-g14g + - apple,agx-g14s + - apple,agx-t6040 + - apple,agx-t6041 + - apple,agx-t8103 + - apple,agx-t8112 + - apple,agx-t8132 + - apple,agx-t8140 required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-gpu" + const: apple,t6050-gpu - - const: "apple,gpu" + const: apple,gpu required: - - "compatible" + - compatible properties: compatible: true @@ -171,31 +171,35 @@ allOf: compatible: items: - - const: "apple,t6050-gpu" + const: apple,t6050-gpu - - const: "apple,gpu" + const: apple,gpu status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-gpu" + const: apple,t6050-gpu - - const: "apple,gpu" + const: apple,gpu status: - const: "disabled" + const: disabled reg: minItems: 2 maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 8 maxItems: 8 @@ -204,12 +208,12 @@ allOf: clocks: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - - "clocks" + - compatible + - reg + - status + - interrupts + - power-domains + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/hwmon/apple,smc-hwmon.yaml b/Documentation/devicetree/bindings/hwmon/apple,smc-hwmon.yaml index 1c4249cfc5b98..5c2623fdf8abc 100644 --- a/Documentation/devicetree/bindings/hwmon/apple,smc-hwmon.yaml +++ b/Documentation/devicetree/bindings/hwmon/apple,smc-hwmon.yaml @@ -26,7 +26,7 @@ $defs: properties: apple,key-id: $ref: /schemas/types.yaml#/definitions/string - pattern: "^[A-Za-z0-9]{4}$" + pattern: ^[A-Za-z0-9]{4}$ description: The SMC FourCC key of the desired sensor. Must match the node's suffix. @@ -45,7 +45,7 @@ properties: minItems: 1 maxItems: 32 items: - pattern: "^[A-Za-z0-9]{4}$" + pattern: ^[A-Za-z0-9]{4}$ description: SMC FourCC keys for SoC die temperature sensors. Each key must report a readable four-byte floating-point temperature in degrees Celsius. The @@ -59,7 +59,7 @@ properties: apple,thermal-pressure-key: $ref: /schemas/types.yaml#/definitions/string - pattern: "^[A-Za-z0-9]{4}$" + pattern: ^[A-Za-z0-9]{4}$ description: SMC FourCC key reporting the firmware thermal pressure level as a readable signed 32-bit integer. This is exposed for monitoring only. @@ -99,22 +99,22 @@ patternProperties: properties: apple,fan-minimum: $ref: /schemas/types.yaml#/definitions/string - pattern: "^[A-Za-z0-9]{4}$" + pattern: ^[A-Za-z0-9]{4}$ description: SMC key containing the fan's minimum speed apple,fan-maximum: $ref: /schemas/types.yaml#/definitions/string - pattern: "^[A-Za-z0-9]{4}$" + pattern: ^[A-Za-z0-9]{4}$ description: SMC key containing the fan's maximum speed apple,fan-target: $ref: /schemas/types.yaml#/definitions/string - pattern: "^[A-Za-z0-9]{4}$" + pattern: ^[A-Za-z0-9]{4}$ description: Writeable endpoint for setting desired fan speed apple,fan-mode: $ref: /schemas/types.yaml#/definitions/string - pattern: "^[A-Za-z0-9]{4}$" + pattern: ^[A-Za-z0-9]{4}$ description: Writeable key to enable/disable manual fan control apple,fan-manual-control: diff --git a/Documentation/devicetree/bindings/i2c/apple,i2c.yaml b/Documentation/devicetree/bindings/i2c/apple,i2c.yaml index 374e9aaae38d2..a7fff5a6000c1 100644 --- a/Documentation/devicetree/bindings/i2c/apple,i2c.yaml +++ b/Documentation/devicetree/bindings/i2c/apple,i2c.yaml @@ -23,35 +23,35 @@ select: compatible: contains: enum: - - "apple,i2c" - - "apple,s5l8960x-i2c" - - "apple,s8000-i2c" - - "apple,t6000-i2c" - - "apple,t6020-i2c" - - "apple,t6030-i2c" - - "apple,t6031-i2c" - - "apple,t6041-i2c" - - "apple,t6050-i2c" - - "apple,t7000-i2c" - - "apple,t8010-i2c" - - "apple,t8015-i2c" - - "apple,t8103-i2c" - - "apple,t8112-i2c" - - "apple,t8122-i2c" - - "apple,t8132-i2c" - - "apple,t8140-i2c" + - apple,i2c + - apple,s5l8960x-i2c + - apple,s8000-i2c + - apple,t6000-i2c + - apple,t6020-i2c + - apple,t6030-i2c + - apple,t6031-i2c + - apple,t6041-i2c + - apple,t6050-i2c + - apple,t7000-i2c + - apple,t8010-i2c + - apple,t8015-i2c + - apple,t8103-i2c + - apple,t8112-i2c + - apple,t8122-i2c + - apple,t8132-i2c + - apple,t8140-i2c required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-i2c" + const: apple,t6050-i2c - - const: "apple,t8103-i2c" + const: apple,t8103-i2c required: - - "compatible" + - compatible properties: compatible: true @@ -79,30 +79,34 @@ allOf: compatible: items: - - const: "apple,t6050-i2c" + const: apple,t6050-i2c - - const: "apple,t8103-i2c" + const: apple,t8103-i2c status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-i2c" + const: apple,t6050-i2c - - const: "apple,t8103-i2c" + const: apple,t8103-i2c status: - const: "disabled" + const: disabled reg: maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 power-domains: @@ -114,12 +118,12 @@ allOf: "#size-cells": const: 0 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - - "clocks" + - compatible + - reg + - status + - interrupts + - power-domains + - clocks - "#address-cells" - "#size-cells" additionalProperties: false diff --git a/Documentation/devicetree/bindings/iommu/apple,dart.yaml b/Documentation/devicetree/bindings/iommu/apple,dart.yaml index d7a54a513f27b..9df862c68a495 100644 --- a/Documentation/devicetree/bindings/iommu/apple,dart.yaml +++ b/Documentation/devicetree/bindings/iommu/apple,dart.yaml @@ -28,35 +28,35 @@ select: compatible: contains: enum: - - "apple,t6000-dart" - - "apple,t6000-display-dart" - - "apple,t6020-dart" - - "apple,t6030-dart" - - "apple,t6031-dart" - - "apple,t6041-dart" - - "apple,t6050-dart" - - "apple,t8103-dart" - - "apple,t8103-usb4-dart" - - "apple,t8110-dart" - - "apple,t8112-dart" - - "apple,t8122-dart" - - "apple,t8132-dart" - - "apple,t8140-ane-dart" - - "apple,t8140-dart" - - "apple,t8142-dart" - - "apple,t8152-dart" + - apple,t6000-dart + - apple,t6000-display-dart + - apple,t6020-dart + - apple,t6030-dart + - apple,t6031-dart + - apple,t6041-dart + - apple,t6050-dart + - apple,t8103-dart + - apple,t8103-usb4-dart + - apple,t8110-dart + - apple,t8112-dart + - apple,t8122-dart + - apple,t8132-dart + - apple,t8140-ane-dart + - apple,t8140-dart + - apple,t8142-dart + - apple,t8152-dart required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-dart" + const: apple,t6050-dart - - const: "apple,t8110-dart" + const: apple,t8110-dart required: - - "compatible" + - compatible properties: compatible: true @@ -169,31 +169,35 @@ allOf: compatible: items: - - const: "apple,t6050-dart" + const: apple,t6050-dart - - const: "apple,t8110-dart" + const: apple,t8110-dart status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-dart" + const: apple,t6050-dart - - const: "apple,t8110-dart" + const: apple,t8110-dart status: - const: "disabled" + const: disabled reg: minItems: 1 maxItems: 6 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 power-domains: @@ -201,22 +205,22 @@ allOf: "#iommu-cells": const: 1 apple,dma-range: - $ref: "/schemas/types.yaml#/definitions/uint64-array" + $ref: /schemas/types.yaml#/definitions/uint64-array minItems: 2 maxItems: 2 - description: "Device-visible DMA base and size." + description: Device-visible DMA base and size. apple,dma-offset: - $ref: "/schemas/types.yaml#/definitions/uint64" - description: "Offset of the device-visible translation window." + $ref: /schemas/types.yaml#/definitions/uint64 + description: Offset of the device-visible translation window. reg-names: minItems: 1 maxItems: 5 nonposted-mmio: true required: - - "compatible" - - "reg" - - "status" - - "interrupts" + - compatible + - reg + - status + - interrupts - "#iommu-cells" additionalProperties: false else: diff --git a/Documentation/devicetree/bindings/iommu/apple,sart.yaml b/Documentation/devicetree/bindings/iommu/apple,sart.yaml index cd45d5d39ea80..d6c0332442a4f 100644 --- a/Documentation/devicetree/bindings/iommu/apple,sart.yaml +++ b/Documentation/devicetree/bindings/iommu/apple,sart.yaml @@ -37,31 +37,31 @@ select: compatible: contains: enum: - - "apple,t6000-sart" - - "apple,t6020-sart" - - "apple,t6030-sart" - - "apple,t6031-sart" - - "apple,t6041-sart" - - "apple,t6050-sart" - - "apple,t8015-sart" - - "apple,t8103-sart" - - "apple,t8112-sart" - - "apple,t8122-sart" - - "apple,t8132-sart" - - "apple,t8140-sart" - - "apple,t8142-sart" + - apple,t6000-sart + - apple,t6020-sart + - apple,t6030-sart + - apple,t6031-sart + - apple,t6041-sart + - apple,t6050-sart + - apple,t8015-sart + - apple,t8103-sart + - apple,t8112-sart + - apple,t8122-sart + - apple,t8132-sart + - apple,t8140-sart + - apple,t8142-sart required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-sart" + const: apple,t6050-sart - - const: "apple,sart" + const: apple,sart required: - - "compatible" + - compatible properties: compatible: true @@ -83,35 +83,39 @@ allOf: compatible: items: - - const: "apple,t6050-sart" + const: apple,t6050-sart - - const: "apple,sart" + const: apple,sart status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-sart" + const: apple,t6050-sart - - const: "apple,sart" + const: apple,sart status: - const: "disabled" + const: disabled reg: minItems: 3 maxItems: 3 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. required: - - "compatible" - - "reg" - - "status" + - compatible + - reg + - status additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml b/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml index 7d8d19a4dfe19..89bfbb9712a88 100644 --- a/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml +++ b/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml @@ -21,22 +21,22 @@ select: compatible: contains: enum: - - "apple,secure-mailbox" - - "apple,t8140-secure-mailbox" - - "apple,t8142-secure-mailbox" - - "apple,t8152-secure-mailbox" + - apple,secure-mailbox + - apple,t8140-secure-mailbox + - apple,t8142-secure-mailbox + - apple,t8152-secure-mailbox required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-secure-mailbox" + const: apple,t6050-secure-mailbox - - const: "apple,secure-mailbox" + const: apple,secure-mailbox required: - - "compatible" + - compatible properties: compatible: true @@ -58,41 +58,45 @@ allOf: compatible: items: - - const: "apple,t6050-secure-mailbox" + const: apple,t6050-secure-mailbox - - const: "apple,secure-mailbox" + const: apple,secure-mailbox status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-secure-mailbox" + const: apple,t6050-secure-mailbox - - const: "apple,secure-mailbox" + const: apple,secure-mailbox status: - const: "disabled" + const: disabled reg: maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 2 maxItems: 2 iommus: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" + - compatible + - reg + - status + - interrupts + - iommus additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/media/apple,avd.yaml b/Documentation/devicetree/bindings/media/apple,avd.yaml index c297de487f359..7a8a43e45a0c8 100644 --- a/Documentation/devicetree/bindings/media/apple,avd.yaml +++ b/Documentation/devicetree/bindings/media/apple,avd.yaml @@ -40,11 +40,11 @@ select: compatible: items: - - const: "apple,t6050-avd" + const: apple,t6050-avd - - const: "apple,avd" + const: apple,avd required: - - "compatible" + - compatible properties: compatible: true @@ -66,31 +66,35 @@ allOf: compatible: items: - - const: "apple,t6050-avd" + const: apple,t6050-avd - - const: "apple,avd" + const: apple,avd status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-avd" + const: apple,t6050-avd - - const: "apple,avd" + const: apple,avd status: - const: "disabled" + const: disabled reg: minItems: 2 maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 2 maxItems: 2 @@ -102,12 +106,12 @@ allOf: clocks: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - - "clocks" + - compatible + - reg + - status + - interrupts + - power-domains + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/media/apple,jpeg.yaml b/Documentation/devicetree/bindings/media/apple,jpeg.yaml index 4adbd0df134ae..0049a8495a3c6 100644 --- a/Documentation/devicetree/bindings/media/apple,jpeg.yaml +++ b/Documentation/devicetree/bindings/media/apple,jpeg.yaml @@ -48,11 +48,11 @@ select: compatible: items: - - const: "apple,t6050-jpeg" + const: apple,t6050-jpeg - - const: "apple,jpeg" + const: apple,jpeg required: - - "compatible" + - compatible properties: compatible: true @@ -77,30 +77,34 @@ allOf: compatible: items: - - const: "apple,t6050-jpeg" + const: apple,t6050-jpeg - - const: "apple,jpeg" + const: apple,jpeg status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-jpeg" + const: apple,t6050-jpeg - - const: "apple,jpeg" + const: apple,jpeg status: - const: "disabled" + const: disabled reg: maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 iommus: @@ -110,13 +114,13 @@ allOf: clocks: maxItems: 2 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "power-domains" - - "clocks" + - compatible + - reg + - status + - interrupts + - iommus + - power-domains + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/media/apple,prores.yaml b/Documentation/devicetree/bindings/media/apple,prores.yaml index 135dffd767ed8..3ff57901bf7d9 100644 --- a/Documentation/devicetree/bindings/media/apple,prores.yaml +++ b/Documentation/devicetree/bindings/media/apple,prores.yaml @@ -41,11 +41,11 @@ select: compatible: items: - - const: "apple,t6050-prores" + const: apple,t6050-prores - - const: "apple,prores" + const: apple,prores required: - - "compatible" + - compatible properties: compatible: true @@ -67,31 +67,35 @@ allOf: compatible: items: - - const: "apple,t6050-prores" + const: apple,t6050-prores - - const: "apple,prores" + const: apple,prores status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-prores" + const: apple,t6050-prores - - const: "apple,prores" + const: apple,prores status: - const: "disabled" + const: disabled reg: minItems: 2 maxItems: 5 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 2 maxItems: 2 @@ -100,12 +104,12 @@ allOf: power-domains: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "power-domains" + - compatible + - reg + - status + - interrupts + - iommus + - power-domains additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml b/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml index 7c0ad4b49eade..ba444c731cf80 100644 --- a/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml +++ b/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml @@ -42,11 +42,11 @@ select: compatible: items: - - const: "apple,t6050-ave" + const: apple,t6050-ave - - const: "apple,ave" + const: apple,ave required: - - "compatible" + - compatible properties: compatible: true @@ -68,31 +68,35 @@ allOf: compatible: items: - - const: "apple,t6050-ave" + const: apple,t6050-ave - - const: "apple,ave" + const: apple,ave status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-ave" + const: apple,t6050-ave - - const: "apple,ave" + const: apple,ave status: - const: "disabled" + const: disabled reg: minItems: 5 maxItems: 5 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 5 maxItems: 5 @@ -104,13 +108,13 @@ allOf: clocks: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "power-domains" - - "clocks" + - compatible + - reg + - status + - interrupts + - iommus + - power-domains + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/media/apple,t8140-isp.yaml b/Documentation/devicetree/bindings/media/apple,t8140-isp.yaml index 8683baea2e9c8..21eda9394d52c 100644 --- a/Documentation/devicetree/bindings/media/apple,t8140-isp.yaml +++ b/Documentation/devicetree/bindings/media/apple,t8140-isp.yaml @@ -32,11 +32,11 @@ select: compatible: items: - - const: "apple,t6050-isp" + const: apple,t6050-isp - - const: "apple,isp" + const: apple,isp required: - - "compatible" + - compatible properties: compatible: true @@ -111,31 +111,35 @@ allOf: compatible: items: - - const: "apple,t6050-isp" + const: apple,t6050-isp - - const: "apple,isp" + const: apple,isp status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-isp" + const: apple,t6050-isp - - const: "apple,isp" + const: apple,isp status: - const: "disabled" + const: disabled reg: minItems: 3 maxItems: 3 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 5 maxItems: 5 @@ -148,13 +152,13 @@ allOf: clocks: maxItems: 2 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "power-domains" - - "clocks" + - compatible + - reg + - status + - interrupts + - iommus + - power-domains + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/mfd/apple,smc.yaml b/Documentation/devicetree/bindings/mfd/apple,smc.yaml index 384fe9b19b183..8510208cf4620 100644 --- a/Documentation/devicetree/bindings/mfd/apple,smc.yaml +++ b/Documentation/devicetree/bindings/mfd/apple,smc.yaml @@ -21,32 +21,32 @@ select: compatible: contains: enum: - - "apple,smc" - - "apple,t6000-smc" - - "apple,t6020-smc" - - "apple,t6030-smc" - - "apple,t6031-smc" - - "apple,t6041-smc" - - "apple,t6050-smc" - - "apple,t8103-smc" - - "apple,t8112-smc" - - "apple,t8122-smc" - - "apple,t8132-smc" - - "apple,t8140-smc" - - "apple,t8142-smc" - - "apple,t8152-smc" + - apple,smc + - apple,t6000-smc + - apple,t6020-smc + - apple,t6030-smc + - apple,t6031-smc + - apple,t6041-smc + - apple,t6050-smc + - apple,t8103-smc + - apple,t8112-smc + - apple,t8122-smc + - apple,t8132-smc + - apple,t8140-smc + - apple,t8142-smc + - apple,t8152-smc required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-smc" + const: apple,t6050-smc - - const: "apple,smc" + const: apple,smc required: - - "compatible" + - compatible properties: compatible: true @@ -83,42 +83,46 @@ allOf: compatible: items: - - const: "apple,t6050-smc" + const: apple,t6050-smc - - const: "apple,smc" + const: apple,smc status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-smc" + const: apple,t6050-smc - - const: "apple,smc" + const: apple,smc status: - const: "disabled" + const: disabled reg: minItems: 3 maxItems: 3 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 4 maxItems: 4 clocks: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "clocks" + - compatible + - reg + - status + - interrupts + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml b/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml index 206fa64fdb552..1140034f1d2e3 100644 --- a/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml +++ b/Documentation/devicetree/bindings/mux/apple,display-crossbar.yaml @@ -22,29 +22,29 @@ select: compatible: contains: enum: - - "apple,t6000-display-crossbar" - - "apple,t6020-display-crossbar" - - "apple,t6030-display-crossbar" - - "apple,t6031-display-crossbar" - - "apple,t6041-display-crossbar" - - "apple,t6050-display-crossbar" - - "apple,t8103-display-crossbar" - - "apple,t8112-display-crossbar" - - "apple,t8122-display-crossbar" - - "apple,t8132-display-crossbar" - - "apple,t8142-display-crossbar" + - apple,t6000-display-crossbar + - apple,t6020-display-crossbar + - apple,t6030-display-crossbar + - apple,t6031-display-crossbar + - apple,t6041-display-crossbar + - apple,t6050-display-crossbar + - apple,t8103-display-crossbar + - apple,t8112-display-crossbar + - apple,t8122-display-crossbar + - apple,t8132-display-crossbar + - apple,t8142-display-crossbar required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-display-crossbar" + const: apple,t6050-display-crossbar - - const: "apple,display-crossbar" + const: apple,display-crossbar required: - - "compatible" + - compatible properties: compatible: true @@ -68,34 +68,38 @@ allOf: compatible: items: - - const: "apple,t6050-display-crossbar" + const: apple,t6050-display-crossbar - - const: "apple,display-crossbar" + const: apple,display-crossbar status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-display-crossbar" + const: apple,t6050-display-crossbar - - const: "apple,display-crossbar" + const: apple,display-crossbar status: - const: "disabled" + const: disabled reg: maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. required: - - "compatible" - - "reg" - - "status" + - compatible + - reg + - status additionalProperties: false else: allOf: diff --git a/Documentation/devicetree/bindings/npu/apple,ane.yaml b/Documentation/devicetree/bindings/npu/apple,ane.yaml index 5ca82a2fbc59c..c4c7e8b660577 100644 --- a/Documentation/devicetree/bindings/npu/apple,ane.yaml +++ b/Documentation/devicetree/bindings/npu/apple,ane.yaml @@ -29,28 +29,28 @@ select: compatible: contains: enum: - - "apple,ane" - - "apple,t6000-ane" - - "apple,t6001-ane" - - "apple,t6020-ane" - - "apple,t6021-ane" - - "apple,t6022-ane" - - "apple,t6041-ane" - - "apple,t8103-ane" - - "apple,t8112-ane" - - "apple,t8140-ane" + - apple,ane + - apple,t6000-ane + - apple,t6001-ane + - apple,t6020-ane + - apple,t6021-ane + - apple,t6022-ane + - apple,t6041-ane + - apple,t8103-ane + - apple,t8112-ane + - apple,t8140-ane required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-ane" + const: apple,t6050-ane - - const: "apple,ane" + const: apple,ane required: - - "compatible" + - compatible properties: compatible: true @@ -142,31 +142,35 @@ allOf: compatible: items: - - const: "apple,t6050-ane" + const: apple,t6050-ane - - const: "apple,ane" + const: apple,ane status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-ane" + const: apple,t6050-ane - - const: "apple,ane" + const: apple,ane status: - const: "disabled" + const: disabled reg: minItems: 7 maxItems: 7 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 2 maxItems: 2 @@ -178,13 +182,13 @@ allOf: clocks: maxItems: 3 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "power-domains" - - "clocks" + - compatible + - reg + - status + - interrupts + - iommus + - power-domains + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml b/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml index 65f42300efeaf..f4ee0fd83bf65 100644 --- a/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml +++ b/Documentation/devicetree/bindings/nvme/apple,nvme-ans.yaml @@ -17,32 +17,32 @@ select: compatible: contains: enum: - - "apple,nvme-ans2" - - "apple,t6000-nvme-ans2" - - "apple,t6020-nvme-ans2" - - "apple,t6030-nvme-ans2" - - "apple,t6031-nvme-ans2" - - "apple,t6041-nvme-ans2" - - "apple,t6050-nvme-ans2" - - "apple,t8015-nvme-ans2" - - "apple,t8103-nvme-ans2" - - "apple,t8112-nvme-ans2" - - "apple,t8122-nvme-ans2" - - "apple,t8132-nvme-ans2" - - "apple,t8140-nvme-ans2" - - "apple,t8142-nvme-ans2" + - apple,nvme-ans2 + - apple,t6000-nvme-ans2 + - apple,t6020-nvme-ans2 + - apple,t6030-nvme-ans2 + - apple,t6031-nvme-ans2 + - apple,t6041-nvme-ans2 + - apple,t6050-nvme-ans2 + - apple,t8015-nvme-ans2 + - apple,t8103-nvme-ans2 + - apple,t8112-nvme-ans2 + - apple,t8122-nvme-ans2 + - apple,t8132-nvme-ans2 + - apple,t8140-nvme-ans2 + - apple,t8142-nvme-ans2 required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-nvme-ans2" + const: apple,t6050-nvme-ans2 - - const: "apple,nvme-ans" + const: apple,nvme-ans required: - - "compatible" + - compatible properties: compatible: true @@ -83,42 +83,46 @@ allOf: compatible: items: - - const: "apple,t6050-nvme-ans2" + const: apple,t6050-nvme-ans2 - - const: "apple,nvme-ans" + const: apple,nvme-ans status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-nvme-ans2" + const: apple,t6050-nvme-ans2 - - const: "apple,nvme-ans" + const: apple,nvme-ans status: - const: "disabled" + const: disabled reg: minItems: 7 maxItems: 7 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 5 maxItems: 5 clocks: maxItems: 3 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "clocks" + - compatible + - reg + - status + - interrupts + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/pci/apple,pcie.yaml b/Documentation/devicetree/bindings/pci/apple,pcie.yaml index 7a5310d122ac7..8d9e71e3ec1a2 100644 --- a/Documentation/devicetree/bindings/pci/apple,pcie.yaml +++ b/Documentation/devicetree/bindings/pci/apple,pcie.yaml @@ -44,49 +44,49 @@ select: compatible: contains: enum: - - "apple,pcie" - - "apple,t6000-pcie" - - "apple,t6000-pciec" - - "apple,t6020-pcie" - - "apple,t6020-pcie-ge" - - "apple,t6030-pcie" - - "apple,t6031-pcie" - - "apple,t6040-pciec" - - "apple,t6041-pcie" - - "apple,t6050-pcie" - - "apple,t6050-pciec" - - "apple,t8103-pcie" - - "apple,t8103-pciec" - - "apple,t8112-pcie" - - "apple,t8112-pciec" - - "apple,t8122-pcie" - - "apple,t8122-pciec" - - "apple,t8132-pcie" - - "apple,t8132-pciec" - - "apple,t8140-pcie" - - "apple,t8152-pcie" + - apple,pcie + - apple,t6000-pcie + - apple,t6000-pciec + - apple,t6020-pcie + - apple,t6020-pcie-ge + - apple,t6030-pcie + - apple,t6031-pcie + - apple,t6040-pciec + - apple,t6041-pcie + - apple,t6050-pcie + - apple,t6050-pciec + - apple,t8103-pcie + - apple,t8103-pciec + - apple,t8112-pcie + - apple,t8112-pciec + - apple,t8122-pcie + - apple,t8122-pciec + - apple,t8132-pcie + - apple,t8132-pciec + - apple,t8140-pcie + - apple,t8152-pcie required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-pcie" + const: apple,t6050-pcie - - const: "apple,pcie" + const: apple,pcie required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-pciec" + const: apple,t6050-pciec - - const: "apple,pciec" + const: apple,pciec required: - - "compatible" + - compatible properties: compatible: true @@ -109,7 +109,6 @@ properties: ranges: true interrupts: true interrupt-names: true - interrupt-names: true nonposted-mmio: true apple,msi-vector-base: $ref: /schemas/types.yaml#/definitions/uint32 @@ -118,11 +117,6 @@ properties: msi-parent: true msi-ranges: maxItems: 1 - apple,msi-vector-base: - $ref: /schemas/types.yaml#/definitions/uint32 - description: - First vector of this PCIe-C controller's slice of the MSI window it - shares with the internal PCIe controller. iommu-map: true iommu-map-mask: true power-domains: true @@ -155,6 +149,47 @@ properties: clocks: true status: true +patternProperties: + "^pci@": + $ref: /schemas/pci/pci-bus.yaml# + type: object + description: A single PCI root port + + properties: + reg: + maxItems: 1 + + pwren-gpios: + description: Optional GPIO to power on the device + maxItems: 1 + + apple,link-trained-by-bootloader: + type: boolean + description: | + Firmware has initialized power, shared registers, PHY and clocks, + deasserted PERST and trained the link. The OS must validate and adopt + this state, with no reset, tunable replay, clock policy changes or + retraining fallback. Firmware must leave endpoint DMA and MSI/MSI-X + disabled and the port RID table without valid entries. Firmware + retains responsibility for power and external reset throughout use. + On T6050, each such root port 00:.0 is admitted with one + endpoint, device 0 function 0, on the secondary bus the firmware + numbered, at Gen3 x1. + + interrupt-controller: true + + apple,tunable: + $ref: '#/$defs/tunable' + description: Initialization tuples relative to this port's registers. + + required: + - interrupt-controller + - "#interrupt-cells" + - interrupt-map-mask + - interrupt-map + + unevaluatedProperties: false + additionalProperties: true allOf: @@ -165,44 +200,48 @@ allOf: compatible: items: - - const: "apple,t6050-pcie" + const: apple,t6050-pcie - - const: "apple,pcie" + const: apple,pcie status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status - properties: compatible: items: - - const: "apple,t6050-pciec" + const: apple,t6050-pciec - - const: "apple,pciec" + const: apple,pciec status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-pcie" + const: apple,t6050-pcie - - const: "apple,pcie" + const: apple,pcie status: - const: "disabled" + const: disabled reg: minItems: 40 maxItems: 40 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 6 maxItems: 6 @@ -210,27 +249,31 @@ allOf: minItems: 18 maxItems: 18 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" + - compatible + - reg + - status + - interrupts + - power-domains additionalProperties: false - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-pciec" + const: apple,t6050-pciec - - const: "apple,pciec" + const: apple,pciec status: - const: "disabled" + const: disabled reg: minItems: 8 maxItems: 8 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 6 maxItems: 6 @@ -238,11 +281,11 @@ allOf: minItems: 2 maxItems: 2 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" + - compatible + - reg + - status + - interrupts + - power-domains additionalProperties: false else: properties: @@ -318,12 +361,6 @@ allOf: minItems: 1 maxItems: 6 - interrupt-names: - minItems: 1 - maxItems: 4 - items: - pattern: "^port[0-3]$" - nonposted-mmio: true apple,msi-vector-base: @@ -336,12 +373,6 @@ allOf: msi-ranges: maxItems: 1 - apple,msi-vector-base: - $ref: /schemas/types.yaml#/definitions/uint32 - description: - First vector of this PCIe-C controller's slice of the MSI window it - shares with the internal PCIe controller. - iommu-map: true iommu-map-mask: true @@ -435,6 +466,19 @@ allOf: - msi-ranges unevaluatedProperties: false allOf: + - if: + not: + properties: + compatible: + contains: + enum: ['apple,t6050-pcie', 'apple,t6050-pciec'] + then: + properties: + interrupt-names: + minItems: 1 + maxItems: 4 + items: + pattern: ^port[0-3]$ - if: properties: compatible: @@ -464,12 +508,12 @@ allOf: minItems: 5 maxItems: 14 items: - pattern: "^(config|rc|(port|phy|intr2axi)[0-3])$" + pattern: ^(config|rc|(port|phy|intr2axi)[0-3])$ interrupts: maxItems: 4 interrupt-names: items: - pattern: "^port[0-3]$" + pattern: ^port[0-3]$ apple,msi-vector-base: const: 64 power-domains: false diff --git a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml index a16e2641bf2d5..219df19f9d7d9 100644 --- a/Documentation/devicetree/bindings/phy/apple,atcphy.yaml +++ b/Documentation/devicetree/bindings/phy/apple,atcphy.yaml @@ -44,28 +44,28 @@ select: compatible: contains: enum: - - "apple,t6000-atcphy" - - "apple,t6020-atcphy" - - "apple,t6030-atcphy" - - "apple,t6031-atcphy" - - "apple,t8103-atcphy" - - "apple,t8112-atcphy" - - "apple,t8122-atcphy" - - "apple,t8132-atcphy" - - "apple,t8140-atcphy" - - "apple,t8142-atcphy" + - apple,t6000-atcphy + - apple,t6020-atcphy + - apple,t6030-atcphy + - apple,t6031-atcphy + - apple,t8103-atcphy + - apple,t8112-atcphy + - apple,t8122-atcphy + - apple,t8132-atcphy + - apple,t8140-atcphy + - apple,t8142-atcphy required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-atcphy" + const: apple,t6050-atcphy - - const: "apple,atcphy" + const: apple,atcphy required: - - "compatible" + - compatible properties: compatible: true @@ -227,6 +227,16 @@ properties: resets: true status: true +patternProperties: + "^apple,dp-training-table(-rbr|-hbr|-hbr2|-hbr3)?$": + $ref: /schemas/types.yaml#/definitions/uint32-array + minItems: 16 + maxItems: 16 + description: > + Firmware-provided T8140 drive presets indexed by voltage swing times + four plus pre-emphasis. The unsuffixed table is the required fallback; + a link-rate suffix selects an optional rate-specific override. + additionalProperties: true allOf: @@ -237,39 +247,43 @@ allOf: compatible: items: - - const: "apple,t6050-atcphy" + const: apple,t6050-atcphy - - const: "apple,atcphy" + const: apple,atcphy status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-atcphy" + const: apple,t6050-atcphy - - const: "apple,atcphy" + const: apple,atcphy status: - const: "disabled" + const: disabled reg: minItems: 44 maxItems: 44 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. power-domains: minItems: 7 maxItems: 7 required: - - "compatible" - - "reg" - - "status" - - "power-domains" + - compatible + - reg + - status + - power-domains additionalProperties: false else: allOf: diff --git a/Documentation/devicetree/bindings/phy/apple,combo-phy.yaml b/Documentation/devicetree/bindings/phy/apple,combo-phy.yaml index ed40520108a20..43b179b4dd879 100644 --- a/Documentation/devicetree/bindings/phy/apple,combo-phy.yaml +++ b/Documentation/devicetree/bindings/phy/apple,combo-phy.yaml @@ -55,23 +55,23 @@ properties: $ref: /schemas/graph.yaml#/properties/port apple,tunable-aus40cmn-shm: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples for the common analog bank apple,tunable-cio4pll: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples for the CIO PLL bank apple,tunable-usb2-default: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples for the USB2 PHY bank apple,tunable-usb2-host: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples for the USB2 host bank apple,tunable-pipe-default: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples for the PIPE handler power-domains: @@ -91,61 +91,61 @@ properties: - const: usb apple,tunable-axi2af: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples within the named bank apple,tunable-fabric: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples within the named bank apple,tunable-common-cfg: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples within the named bank apple,tunable-lioa: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples within the named bank apple,tunable-lane0-rx-clock: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples within the named bank apple,tunable-lane1-rx-clock: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples within the named bank apple,tunable-lane0-rx-eq: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples within the named bank apple,tunable-lane1-rx-eq: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples within the named bank apple,tunable-auspll: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples within the named bank apple,tunable-uc-regs-cio: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: Offset, mask and value tuples for the PHY firmware's registers in CIO (USB4/Thunderbolt) mode. Optional; an absent CIO tunable is skipped. apple,tunable-lane0-rx-top-cio: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: As apple,tunable-uc-regs-cio, for lane 0's receiver top bank apple,tunable-lane1-rx-top-cio: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: As apple,tunable-uc-regs-cio, for lane 1's receiver top bank apple,tunable-lane0-rx-eq-cio: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: As apple,tunable-uc-regs-cio, for lane 0's receiver equalizer apple,tunable-lane1-rx-eq-cio: - $ref: /schemas/types.yaml#/definitions/uint32-array + $ref: /schemas/types.yaml#/definitions/uint32-matrix description: As apple,tunable-uc-regs-cio, for lane 1's receiver equalizer patternProperties: diff --git a/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml b/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml index a30f835bb6af4..da121f3ac309f 100644 --- a/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml +++ b/Documentation/devicetree/bindings/phy/apple,dptx-phy.yaml @@ -33,19 +33,19 @@ select: properties: compatible: contains: - const: "apple,t6050-dptx-phy" + const: apple,t6050-dptx-phy required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-dptx-phy" + const: apple,t6050-dptx-phy - - const: "apple,dptx-phy" + const: apple,dptx-phy required: - - "compatible" + - compatible properties: compatible: true @@ -56,26 +56,26 @@ properties: "#reset-cells": true status: true apple,pll-dcocfg: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pll-dtcvreg: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pll-dtccal: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pll-dcdadj: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pll-dlfcfg: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pclkdrv-select: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,ufp-endpoint: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. interrupts: true iommus: true clocks: true @@ -91,38 +91,42 @@ allOf: compatible: items: - - const: "apple,t6050-dptx-phy" + const: apple,t6050-dptx-phy - - const: "apple,dptx-phy" + const: apple,dptx-phy status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-dptx-phy" + const: apple,t6050-dptx-phy - - const: "apple,dptx-phy" + const: apple,dptx-phy status: - const: "disabled" + const: disabled reg: minItems: 2 maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. power-domains: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "power-domains" + - compatible + - reg + - status + - power-domains additionalProperties: false else: properties: @@ -134,85 +138,85 @@ allOf: "#reset-cells": true status: true apple,pll-dcocfg: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pll-dtcvreg: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pll-dtccal: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pll-dcdadj: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pll-dlfcfg: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pclkdrv-select: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,ufp-endpoint: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. additionalProperties: true allOf: - if: properties: compatible: contains: - const: "apple,t6050-dptx-phy" + const: apple,t6050-dptx-phy required: - - "compatible" + - compatible then: properties: compatible: - const: "apple,t6050-dptx-phy" + const: apple,t6050-dptx-phy reg: minItems: 2 maxItems: 2 reg-names: items: - - const: "core" + const: core - - const: "dptx" + const: dptx power-domains: maxItems: 1 "#phy-cells": const: 0 "#reset-cells": - const: 1 + const: 0 status: - const: "disabled" + const: disabled apple,pll-dcocfg: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pll-dtcvreg: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pll-dtccal: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pll-dcdadj: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pll-dlfcfg: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,pclkdrv-select: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. apple,ufp-endpoint: - $ref: "/schemas/types.yaml#/definitions/uint32" - description: "Boot-producer hardware configuration for the fixed DisplayPort PHY." + $ref: /schemas/types.yaml#/definitions/uint32 + description: Boot-producer hardware configuration for the fixed DisplayPort PHY. required: - - "compatible" - - "reg" - - "reg-names" - - "power-domains" + - compatible + - reg + - reg-names + - power-domains - "#phy-cells" - "#reset-cells" - - "status" + - status additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml index a8572dc9374e7..46b087466bc3a 100644 --- a/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml +++ b/Documentation/devicetree/bindings/pinctrl/apple,pinctrl.yaml @@ -22,36 +22,36 @@ select: compatible: contains: enum: - - "apple,pinctrl" - - "apple,s5l8960x-pinctrl" - - "apple,s8000-pinctrl" - - "apple,t6000-pinctrl" - - "apple,t6020-pinctrl" - - "apple,t6030-pinctrl" - - "apple,t6031-pinctrl" - - "apple,t6041-pinctrl" - - "apple,t6050-pinctrl" - - "apple,t7000-pinctrl" - - "apple,t8010-pinctrl" - - "apple,t8015-pinctrl" - - "apple,t8103-pinctrl" - - "apple,t8112-pinctrl" - - "apple,t8122-pinctrl" - - "apple,t8132-pinctrl" - - "apple,t8140-pinctrl" - - "apple,t8152-pinctrl" + - apple,pinctrl + - apple,s5l8960x-pinctrl + - apple,s8000-pinctrl + - apple,t6000-pinctrl + - apple,t6020-pinctrl + - apple,t6030-pinctrl + - apple,t6031-pinctrl + - apple,t6041-pinctrl + - apple,t6050-pinctrl + - apple,t7000-pinctrl + - apple,t8010-pinctrl + - apple,t8015-pinctrl + - apple,t8103-pinctrl + - apple,t8112-pinctrl + - apple,t8122-pinctrl + - apple,t8132-pinctrl + - apple,t8140-pinctrl + - apple,t8152-pinctrl required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-pinctrl" + const: apple,t6050-pinctrl - - const: "apple,t8103-pinctrl" + const: apple,t8103-pinctrl required: - - "compatible" + - compatible properties: compatible: true @@ -81,6 +81,23 @@ properties: resets: true status: true +patternProperties: + '-pins$': + type: object + $ref: pinmux-node.yaml# + + properties: + pinmux: + description: + Values are constructed from pin number and alternate function + configuration number using the APPLE_PINMUX() helper macro + defined in include/dt-bindings/pinctrl/apple.h. + + required: + - pinmux + + additionalProperties: false + additionalProperties: true allOf: @@ -91,38 +108,42 @@ allOf: compatible: items: - - const: "apple,t6050-pinctrl" + const: apple,t6050-pinctrl - - const: "apple,t8103-pinctrl" + const: apple,t8103-pinctrl status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-pinctrl" + const: apple,t6050-pinctrl - - const: "apple,t8103-pinctrl" + const: apple,t8103-pinctrl status: - const: "disabled" + const: disabled reg: maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 7 maxItems: 7 required: - - "compatible" - - "reg" - - "status" - - "interrupts" + - compatible + - reg + - status + - interrupts additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml index 7b0665952e475..6af74935497fe 100644 --- a/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml +++ b/Documentation/devicetree/bindings/pwm/apple,s5l-fpwm.yaml @@ -20,30 +20,30 @@ select: compatible: contains: enum: - - "apple,s5l-fpwm" - - "apple,t6000-fpwm" - - "apple,t6020-fpwm" - - "apple,t6030-fpwm" - - "apple,t6031-fpwm" - - "apple,t6041-fpwm" - - "apple,t8103-fpwm" - - "apple,t8112-fpwm" - - "apple,t8122-fpwm" - - "apple,t8132-fpwm" - - "apple,t8140-fpwm" - - "apple,t8142-fpwm" + - apple,s5l-fpwm + - apple,t6000-fpwm + - apple,t6020-fpwm + - apple,t6030-fpwm + - apple,t6031-fpwm + - apple,t6041-fpwm + - apple,t8103-fpwm + - apple,t8112-fpwm + - apple,t8122-fpwm + - apple,t8132-fpwm + - apple,t8140-fpwm + - apple,t8142-fpwm required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-fpwm" + const: apple,t6050-fpwm - - const: "apple,s5l-fpwm" + const: apple,s5l-fpwm required: - - "compatible" + - compatible properties: compatible: true @@ -66,42 +66,48 @@ allOf: compatible: items: - - const: "apple,t6050-fpwm" + const: apple,t6050-fpwm - - const: "apple,s5l-fpwm" + const: apple,s5l-fpwm status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-fpwm" + const: apple,t6050-fpwm - - const: "apple,s5l-fpwm" + const: apple,s5l-fpwm status: - const: "disabled" + const: disabled reg: maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: - maxItems: 1 + minItems: 1 + maxItems: 2 power-domains: - maxItems: 1 + minItems: 1 + maxItems: 2 "#pwm-cells": const: 2 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" + - compatible + - reg + - status + - interrupts + - power-domains - "#pwm-cells" additionalProperties: false else: diff --git a/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml b/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml index 4c1da2ec60e84..ebde02ba78772 100644 --- a/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml +++ b/Documentation/devicetree/bindings/serial/apple,dockchannel-uart.yaml @@ -22,23 +22,23 @@ select: compatible: contains: enum: - - "apple,dockchannel-uart" - - "apple,t6020-dockchannel-uart" - - "apple,t6021-dockchannel-uart" - - "apple,t6022-dockchannel-uart" - - "apple,t8112-dockchannel-uart" + - apple,dockchannel-uart + - apple,t6020-dockchannel-uart + - apple,t6021-dockchannel-uart + - apple,t6022-dockchannel-uart + - apple,t8112-dockchannel-uart required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-dockchannel-uart" + const: apple,t6050-dockchannel-uart - - const: "apple,dockchannel-uart" + const: apple,dockchannel-uart required: - - "compatible" + - compatible properties: apple,tx-never-wait: @@ -80,38 +80,42 @@ allOf: compatible: items: - - const: "apple,t6050-dockchannel-uart" + const: apple,t6050-dockchannel-uart - - const: "apple,dockchannel-uart" + const: apple,dockchannel-uart status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-dockchannel-uart" + const: apple,t6050-dockchannel-uart - - const: "apple,dockchannel-uart" + const: apple,dockchannel-uart status: - const: "disabled" + const: disabled reg: minItems: 2 maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" + - compatible + - reg + - status + - interrupts additionalProperties: false else: allOf: diff --git a/Documentation/devicetree/bindings/serial/samsung_uart.yaml b/Documentation/devicetree/bindings/serial/samsung_uart.yaml index d44c501bdcee5..8c4c89d81079c 100644 --- a/Documentation/devicetree/bindings/serial/samsung_uart.yaml +++ b/Documentation/devicetree/bindings/serial/samsung_uart.yaml @@ -23,37 +23,37 @@ select: compatible: contains: enum: - - "apple,s5l-uart" - - "apple,t8140-uart" - - "axis,artpec8-uart" - - "axis,artpec9-uart" - - "google,gs101-uart" - - "samsung,exynos2200-uart" - - "samsung,exynos4210-uart" - - "samsung,exynos5433-uart" - - "samsung,exynos7-uart" - - "samsung,exynos7870-uart" - - "samsung,exynos7885-uart" - - "samsung,exynos850-uart" - - "samsung,exynos8890-uart" - - "samsung,exynos8895-uart" - - "samsung,exynosautov9-uart" - - "samsung,exynosautov920-uart" - - "samsung,s3c6400-uart" - - "samsung,s5pv210-uart" - - "tesla,fsd-uart" + - apple,s5l-uart + - apple,t8140-uart + - axis,artpec8-uart + - axis,artpec9-uart + - google,gs101-uart + - samsung,exynos2200-uart + - samsung,exynos4210-uart + - samsung,exynos5433-uart + - samsung,exynos7-uart + - samsung,exynos7870-uart + - samsung,exynos7885-uart + - samsung,exynos850-uart + - samsung,exynos8890-uart + - samsung,exynos8895-uart + - samsung,exynosautov9-uart + - samsung,exynosautov920-uart + - samsung,s3c6400-uart + - samsung,s5pv210-uart + - tesla,fsd-uart required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-uart" + const: apple,t6050-uart - - const: "apple,s5l-uart" + const: apple,s5l-uart required: - - "compatible" + - compatible properties: compatible: true @@ -93,30 +93,34 @@ allOf: compatible: items: - - const: "apple,t6050-uart" + const: apple,t6050-uart - - const: "apple,s5l-uart" + const: apple,s5l-uart status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-uart" + const: apple,t6050-uart - - const: "apple,s5l-uart" + const: apple,s5l-uart status: - const: "disabled" + const: disabled reg: maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 power-domains: @@ -124,12 +128,12 @@ allOf: clocks: maxItems: 2 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - - "clocks" + - compatible + - reg + - status + - interrupts + - power-domains + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml b/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml index 6c6bd9d413d80..f194dbc6691a2 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml @@ -35,11 +35,11 @@ select: compatible: items: - - const: "apple,t6050-aon-ptd" + const: apple,t6050-aon-ptd - - const: "apple,aon-ptd" + const: apple,aon-ptd required: - - "compatible" + - compatible properties: compatible: true @@ -61,39 +61,43 @@ allOf: compatible: items: - - const: "apple,t6050-aon-ptd" + const: apple,t6050-aon-ptd - - const: "apple,aon-ptd" + const: apple,aon-ptd status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-aon-ptd" + const: apple,t6050-aon-ptd - - const: "apple,aon-ptd" + const: apple,aon-ptd status: - const: "disabled" + const: disabled reg: minItems: 4 maxItems: 4 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 32 maxItems: 32 required: - - "compatible" - - "reg" - - "status" - - "interrupts" + - compatible + - reg + - status + - interrupts additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,aop.yaml b/Documentation/devicetree/bindings/soc/apple/apple,aop.yaml index 23c4cf21ae95b..caa58511c630a 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,aop.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,aop.yaml @@ -31,11 +31,11 @@ select: compatible: items: - - const: "apple,t6050-aop" + const: apple,t6050-aop - - const: "apple,t8152-aop" + const: apple,t8152-aop required: - - "compatible" + - compatible properties: "compatible": true @@ -66,19 +66,19 @@ allOf: compatible: items: - - const: "apple,t6050-aop" + const: apple,t6050-aop - - const: "apple,t8152-aop" + const: apple,t8152-aop required: - - "compatible" + - compatible then: properties: compatible: items: - - const: "apple,t6050-aop" + const: apple,t6050-aop - - const: "apple,t8152-aop" + const: apple,t8152-aop reg: minItems: 2 maxItems: 2 @@ -88,19 +88,24 @@ allOf: mboxes: maxItems: 1 mbox-names: - const: "mbox" + const: mbox iommus: maxItems: 1 nonposted-mmio: true + apple,dma-range: + $ref: /schemas/types.yaml#/definitions/uint64-array + minItems: 2 + maxItems: 2 + description: Device-visible DMA aperture reserved by the boot producer. audio: - $ref: "/schemas/sound/apple,aop-audio.yaml#" + $ref: /schemas/sound/apple,aop-audio.yaml# required: - - "compatible" - - "reg" - - "reg-names" - - "mboxes" - - "mbox-names" - - "iommus" + - compatible + - reg + - reg-names + - mboxes + - mbox-names + - iommus additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml b/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml index 83dd3e4157327..fac893fd8799e 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml @@ -21,20 +21,20 @@ select: compatible: contains: enum: - - "apple,aop2" - - "apple,t8140-aop2" + - apple,aop2 + - apple,t8140-aop2 required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-aop2" + const: apple,t6050-aop2 - - const: "apple,aop2" + const: apple,aop2 required: - - "compatible" + - compatible properties: compatible: true @@ -56,31 +56,35 @@ allOf: compatible: items: - - const: "apple,t6050-aop2" + const: apple,t6050-aop2 - - const: "apple,aop2" + const: apple,aop2 status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-aop2" + const: apple,t6050-aop2 - - const: "apple,aop2" + const: apple,aop2 status: - const: "disabled" + const: disabled reg: minItems: 3 maxItems: 3 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 4 maxItems: 4 @@ -89,12 +93,12 @@ allOf: clocks: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "clocks" + - compatible + - reg + - status + - interrupts + - iommus + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml b/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml index a3562834e6090..7512a082bf11d 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,dockchannel.yaml @@ -26,30 +26,30 @@ select: compatible: contains: enum: - - "apple,dockchannel" - - "apple,t6000-dockchannel" - - "apple,t6020-dockchannel" - - "apple,t6030-dockchannel" - - "apple,t6031-dockchannel" - - "apple,t6041-dockchannel" - - "apple,t8103-dockchannel" - - "apple,t8112-dockchannel" - - "apple,t8122-dockchannel" - - "apple,t8132-dockchannel" - - "apple,t8140-dockchannel" - - "apple,t8142-dockchannel" + - apple,dockchannel + - apple,t6000-dockchannel + - apple,t6020-dockchannel + - apple,t6030-dockchannel + - apple,t6031-dockchannel + - apple,t6041-dockchannel + - apple,t8103-dockchannel + - apple,t8112-dockchannel + - apple,t8122-dockchannel + - apple,t8132-dockchannel + - apple,t8140-dockchannel + - apple,t8142-dockchannel required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-dockchannel" + const: apple,t6050-dockchannel - - const: "apple,dockchannel" + const: apple,dockchannel required: - - "compatible" + - compatible properties: compatible: true @@ -68,6 +68,12 @@ properties: resets: true status: true +patternProperties: + '^input@[0-9a-f]+$': + type: object + $ref: /schemas/input/apple,dockchannel-hid.yaml# + description: A DockChannel HID transport. + additionalProperties: true allOf: @@ -78,38 +84,42 @@ allOf: compatible: items: - - const: "apple,t6050-dockchannel" + const: apple,t6050-dockchannel - - const: "apple,dockchannel" + const: apple,dockchannel status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-dockchannel" + const: apple,t6050-dockchannel - - const: "apple,dockchannel" + const: apple,dockchannel status: - const: "disabled" + const: disabled reg: minItems: 6 maxItems: 6 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" + - compatible + - reg + - status + - interrupts additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,gpu-coproc.yaml b/Documentation/devicetree/bindings/soc/apple/apple,gpu-coproc.yaml index 8fa58e374a5d2..0a9dd17c3d06c 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,gpu-coproc.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,gpu-coproc.yaml @@ -1,125 +1,39 @@ # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- -$id: "http://devicetree.org/schemas/soc/apple/apple,gpu-coproc.yaml#" - -$schema: "http://devicetree.org/meta-schemas/core.yaml#" - -title: "Apple gpu coproc hardware resources" - +$id: http://devicetree.org/schemas/soc/apple/apple,gpu-coproc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# +title: Apple gpu coproc hardware resources maintainers: - - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" - -description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - -select: - anyOf: - - - properties: - compatible: - contains: - enum: - - "apple,gpu-coproc" - - "apple,t6050-gpu-coproc" - required: - - "compatible" - - - properties: - compatible: - items: - - - const: "apple,t6050-gpu-coproc" - - - const: "apple,gpu-coproc" - required: - - "compatible" - + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> +description: | + T6050 native resource description. Firmware ownership, backend support and enables require separate + qualification. This variant remains disabled and contains no programming sequences or firmware data. properties: - compatible: true - status: true - reg: true - interrupts: true - power-domains: true - clocks: true - iommus: true - resets: true - -additionalProperties: true - -allOf: - - if: - anyOf: - - - properties: - compatible: - items: - - - const: "apple,t6050-gpu-coproc" - - - const: "apple,gpu-coproc" - status: - const: "disabled" - required: - - "compatible" - - "status" - then: - oneOf: - - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - properties: - compatible: - items: - - - const: "apple,t6050-gpu-coproc" - - - const: "apple,gpu-coproc" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - minItems: 4 - maxItems: 4 - power-domains: - maxItems: 1 - clocks: - maxItems: 1 - required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - - "clocks" - additionalProperties: false - else: - properties: - compatible: - items: - - - const: "apple,t6050-gpu-coproc" - - - const: "apple,gpu-coproc" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - minItems: 4 - maxItems: 4 - power-domains: - maxItems: 1 - clocks: - maxItems: 1 - required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - - "clocks" - additionalProperties: false + compatible: + items: + - + const: apple,t6050-gpu-coproc + - + const: apple,gpu-coproc + status: + const: disabled + reg: + minItems: 2 + maxItems: 2 + description: Native register apertures in hardware-interface order, including shared auxiliary views. + interrupts: + minItems: 4 + maxItems: 4 + power-domains: + maxItems: 1 + clocks: + maxItems: 1 +required: + - compatible + - reg + - status + - interrupts + - power-domains + - clocks +additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,msg.yaml b/Documentation/devicetree/bindings/soc/apple/apple,msg.yaml index 0e40f20f52b82..7ffe0d79db28c 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,msg.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,msg.yaml @@ -1,119 +1,36 @@ # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- -$id: "http://devicetree.org/schemas/soc/apple/apple,msg.yaml#" - -$schema: "http://devicetree.org/meta-schemas/core.yaml#" - -title: "Apple msg hardware resources" - +$id: http://devicetree.org/schemas/soc/apple/apple,msg.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# +title: Apple msg hardware resources maintainers: - - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" - -description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - -select: - anyOf: - - - properties: - compatible: - contains: - enum: - - "apple,msg" - - "apple,t6050-msg" - required: - - "compatible" - - - properties: - compatible: - items: - - - const: "apple,t6050-msg" - - - const: "apple,msg" - required: - - "compatible" - + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> +description: | + T6050 native resource description. Firmware ownership, backend support and enables require separate + qualification. This variant remains disabled and contains no programming sequences or firmware data. properties: - compatible: true - status: true - reg: true - interrupts: true - power-domains: true - iommus: true - clocks: true - resets: true - -additionalProperties: true - -allOf: - - if: - anyOf: - - - properties: - compatible: - items: - - - const: "apple,t6050-msg" - - - const: "apple,msg" - status: - const: "disabled" - required: - - "compatible" - - "status" - then: - oneOf: - - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - properties: - compatible: - items: - - - const: "apple,t6050-msg" - - - const: "apple,msg" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - minItems: 41 - maxItems: 41 - power-domains: - maxItems: 1 - required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - additionalProperties: false - else: - properties: - compatible: - items: - - - const: "apple,t6050-msg" - - - const: "apple,msg" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - minItems: 41 - maxItems: 41 - power-domains: - maxItems: 1 - required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - additionalProperties: false + compatible: + items: + - + const: apple,t6050-msg + - + const: apple,msg + status: + const: disabled + reg: + minItems: 2 + maxItems: 2 + description: Native register apertures in hardware-interface order, including shared auxiliary views. + interrupts: + minItems: 41 + maxItems: 41 + power-domains: + maxItems: 1 +required: + - compatible + - reg + - status + - interrupts + - power-domains +additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,phy-coproc.yaml b/Documentation/devicetree/bindings/soc/apple/apple,phy-coproc.yaml index d826dc010a29d..fbb928ee63d5b 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,phy-coproc.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,phy-coproc.yaml @@ -1,113 +1,33 @@ # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) %YAML 1.2 --- -$id: "http://devicetree.org/schemas/soc/apple/apple,phy-coproc.yaml#" - -$schema: "http://devicetree.org/meta-schemas/core.yaml#" - -title: "Apple phy coproc hardware resources" - +$id: http://devicetree.org/schemas/soc/apple/apple,phy-coproc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# +title: Apple phy coproc hardware resources maintainers: - - "Ryan Murray <81541646+RyanTheTide@users.noreply.github.com>" - -description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - -select: - anyOf: - - - properties: - compatible: - contains: - enum: - - "apple,phy-coproc" - - "apple,t6050-phy-coproc" - required: - - "compatible" - - - properties: - compatible: - items: - - - const: "apple,t6050-phy-coproc" - - - const: "apple,phy-coproc" - required: - - "compatible" - + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> +description: | + T6050 native resource description. Firmware ownership, backend support and enables require separate + qualification. This variant remains disabled and contains no programming sequences or firmware data. properties: - compatible: true - status: true - reg: true - interrupts: true - iommus: true - power-domains: true - clocks: true - resets: true - -additionalProperties: true - -allOf: - - if: - anyOf: - - - properties: - compatible: - items: - - - const: "apple,t6050-phy-coproc" - - - const: "apple,phy-coproc" - status: - const: "disabled" - required: - - "compatible" - - "status" - then: - oneOf: - - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." - properties: - compatible: - items: - - - const: "apple,t6050-phy-coproc" - - - const: "apple,phy-coproc" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - minItems: 4 - maxItems: 4 - required: - - "compatible" - - "reg" - - "status" - - "interrupts" - additionalProperties: false - else: - properties: - compatible: - items: - - - const: "apple,t6050-phy-coproc" - - - const: "apple,phy-coproc" - status: - const: "disabled" - reg: - minItems: 2 - maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." - interrupts: - minItems: 4 - maxItems: 4 - required: - - "compatible" - - "reg" - - "status" - - "interrupts" - additionalProperties: false + compatible: + items: + - + const: apple,t6050-phy-coproc + - + const: apple,phy-coproc + status: + const: disabled + reg: + minItems: 2 + maxItems: 2 + description: Native register apertures in hardware-interface order, including shared auxiliary views. + interrupts: + minItems: 4 + maxItems: 4 +required: + - compatible + - reg + - status + - interrupts +additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml b/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml index 4f46de8e059ac..b327f5cb10502 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml @@ -23,28 +23,28 @@ select: compatible: contains: enum: - - "apple,pmp" - - "apple,t6000-pmp-v2" - - "apple,t6020-pmp-v2" - - "apple,t6030-pmp-v2" - - "apple,t6031-pmp-v2" - - "apple,t6041-pmp-v2" - - "apple,t8103-pmp" - - "apple,t8122-pmp-v2" - - "apple,t8132-pmp-v2" - - "apple,t8140-pmp-v2" + - apple,pmp + - apple,t6000-pmp-v2 + - apple,t6020-pmp-v2 + - apple,t6030-pmp-v2 + - apple,t6031-pmp-v2 + - apple,t6041-pmp-v2 + - apple,t8103-pmp + - apple,t8122-pmp-v2 + - apple,t8132-pmp-v2 + - apple,t8140-pmp-v2 required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-pmp" + const: apple,t6050-pmp - - const: "apple,pmp" + const: apple,pmp required: - - "compatible" + - compatible properties: compatible: true @@ -94,6 +94,11 @@ properties: resets: true status: true +patternProperties: + '^apple,tunable-': + $ref: /schemas/types.yaml#/definitions/uint8-array + description: Opaque firmware calibration copied from the Apple device tree. + additionalProperties: true allOf: @@ -104,31 +109,35 @@ allOf: compatible: items: - - const: "apple,t6050-pmp" + const: apple,t6050-pmp - - const: "apple,pmp" + const: apple,pmp status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-pmp" + const: apple,t6050-pmp - - const: "apple,pmp" + const: apple,pmp status: - const: "disabled" + const: disabled reg: minItems: 4 maxItems: 4 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 4 maxItems: 4 @@ -140,13 +149,13 @@ allOf: clocks: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "power-domains" - - "clocks" + - compatible + - reg + - status + - interrupts + - iommus + - power-domains + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml b/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml index 47a2141aa56c6..db06a847e0d82 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml @@ -34,11 +34,11 @@ select: compatible: items: - - const: "apple,t6050-rsm" + const: apple,t6050-rsm - - const: "apple,rsm" + const: apple,rsm required: - - "compatible" + - compatible properties: compatible: true @@ -60,31 +60,35 @@ allOf: compatible: items: - - const: "apple,t6050-rsm" + const: apple,t6050-rsm - - const: "apple,rsm" + const: apple,rsm status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-rsm" + const: apple,t6050-rsm - - const: "apple,rsm" + const: apple,rsm status: - const: "disabled" + const: disabled reg: minItems: 2 maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 iommus: @@ -92,12 +96,12 @@ allOf: power-domains: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "power-domains" + - compatible + - reg + - status + - interrupts + - iommus + - power-domains additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml b/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml index bda61a142c8af..9186c01ba865a 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,rtk-helper-asc4.yaml @@ -26,37 +26,37 @@ select: compatible: contains: enum: - - "apple,mtp" - - "apple,rtk-helper-asc4" - - "apple,t6020-mtp" - - "apple,t6020-rtk-helper-asc4" - - "apple,t6030-mtp" - - "apple,t6030-rtk-helper-asc4" - - "apple,t6031-mtp" - - "apple,t6041-mtp" - - "apple,t6041-rtk-helper-asc4" - - "apple,t8112-mtp" - - "apple,t8112-rtk-helper-asc4" - - "apple,t8122-mtp" - - "apple,t8122-rtk-helper-asc4" - - "apple,t8132-mtp" - - "apple,t8132-rtk-helper-asc4" - - "apple,t8140-mtp" - - "apple,t8140-rtk-helper-asc4" - - "apple,t8142-mtp" - - "apple,t8142-rtk-helper-asc4" + - apple,mtp + - apple,rtk-helper-asc4 + - apple,t6020-mtp + - apple,t6020-rtk-helper-asc4 + - apple,t6030-mtp + - apple,t6030-rtk-helper-asc4 + - apple,t6031-mtp + - apple,t6041-mtp + - apple,t6041-rtk-helper-asc4 + - apple,t8112-mtp + - apple,t8112-rtk-helper-asc4 + - apple,t8122-mtp + - apple,t8122-rtk-helper-asc4 + - apple,t8132-mtp + - apple,t8132-rtk-helper-asc4 + - apple,t8140-mtp + - apple,t8140-rtk-helper-asc4 + - apple,t8142-mtp + - apple,t8142-rtk-helper-asc4 required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-mtp" + const: apple,t6050-mtp - - const: "apple,mtp" + const: apple,mtp required: - - "compatible" + - compatible properties: compatible: true @@ -126,31 +126,35 @@ allOf: compatible: items: - - const: "apple,t6050-mtp" + const: apple,t6050-mtp - - const: "apple,mtp" + const: apple,mtp status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-mtp" + const: apple,t6050-mtp - - const: "apple,mtp" + const: apple,mtp status: - const: "disabled" + const: disabled reg: minItems: 2 maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 4 maxItems: 4 @@ -159,12 +163,12 @@ allOf: clocks: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "clocks" + - compatible + - reg + - status + - interrupts + - iommus + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml b/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml index 39e40ac06bd9b..d66285c3da68a 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml @@ -24,21 +24,21 @@ select: compatible: contains: enum: - - "apple,sep" - - "apple,t6030-sep" - - "apple,t6031-sep" + - apple,sep + - apple,t6030-sep + - apple,t6031-sep required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-sep" + const: apple,t6050-sep - - const: "apple,sep" + const: apple,sep required: - - "compatible" + - compatible properties: compatible: true @@ -75,31 +75,35 @@ allOf: compatible: items: - - const: "apple,t6050-sep" + const: apple,t6050-sep - - const: "apple,sep" + const: apple,sep status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-sep" + const: apple,t6050-sep - - const: "apple,sep" + const: apple,sep status: - const: "disabled" + const: disabled reg: minItems: 2 maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 4 maxItems: 4 @@ -110,13 +114,13 @@ allOf: clocks: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "power-domains" - - "clocks" + - compatible + - reg + - status + - interrupts + - iommus + - power-domains + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml b/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml index b095eacf00f48..50731d73e6ef9 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,t6041-aop.yaml @@ -28,20 +28,20 @@ select: compatible: contains: enum: - - "apple,t6041-aop" - - "apple,t8132-aop" + - apple,t6041-aop + - apple,t8132-aop required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-aop" + const: apple,t6050-aop - - const: "apple,aop" + const: apple,aop required: - - "compatible" + - compatible properties: compatible: true @@ -110,31 +110,35 @@ allOf: compatible: items: - - const: "apple,t6050-aop" + const: apple,t6050-aop - - const: "apple,aop" + const: apple,aop status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-aop" + const: apple,t6050-aop - - const: "apple,aop" + const: apple,aop status: - const: "disabled" + const: disabled reg: minItems: 5 maxItems: 5 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 4 maxItems: 4 @@ -143,12 +147,12 @@ allOf: clocks: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "clocks" + - compatible + - reg + - status + - interrupts + - iommus + - clocks additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml index e15fc9f30a4d5..c2420910e62cb 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,t8140-mcc.yaml @@ -43,11 +43,11 @@ select: compatible: items: - - const: "apple,t6050-mcc" + const: apple,t6050-mcc - - const: "apple,mcc" + const: apple,mcc required: - - "compatible" + - compatible properties: compatible: true @@ -74,35 +74,39 @@ allOf: compatible: items: - - const: "apple,t6050-mcc" + const: apple,t6050-mcc - - const: "apple,mcc" + const: apple,mcc status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-mcc" + const: apple,t6050-mcc - - const: "apple,mcc" + const: apple,mcc status: - const: "disabled" + const: disabled reg: minItems: 4 maxItems: 4 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. required: - - "compatible" - - "reg" - - "status" + - compatible + - reg + - status additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/sound/apple,aop-audio.yaml b/Documentation/devicetree/bindings/sound/apple,aop-audio.yaml index 278a5ba13a9c5..05f2dbfe995a9 100644 --- a/Documentation/devicetree/bindings/sound/apple,aop-audio.yaml +++ b/Documentation/devicetree/bindings/sound/apple,aop-audio.yaml @@ -30,15 +30,14 @@ select: properties: compatible: contains: - const: "apple,t6050-aop-audio" + const: apple,t6050-aop-audio required: - - "compatible" + - compatible properties: "compatible": true - dmas: - maxItems: 1 - dma-names: + dmas: true + dma-names: true const: dma apple,chassis-name: $ref: /schemas/types.yaml#/definitions/string @@ -55,40 +54,40 @@ allOf: properties: compatible: contains: - const: "apple,t6050-aop-audio" + const: apple,t6050-aop-audio required: - - "compatible" + - compatible then: properties: compatible: oneOf: - - const: "apple,t6050-aop-audio" + const: apple,t6050-aop-audio - items: - - const: "apple,t6050-aop-audio" + const: apple,t6050-aop-audio - - const: "apple,aop-audio" + const: apple,aop-audio dmas: minItems: 4 maxItems: 4 dma-names: items: - - const: "cout" + const: cout - - const: "cin" + const: cin - - const: "spkr" + const: spkr - - const: "sense" + const: sense "#sound-dai-cells": const: 1 required: - - "compatible" - - "dmas" - - "dma-names" + - compatible + - dmas + - dma-names - "#sound-dai-cells" additionalProperties: false else: diff --git a/Documentation/devicetree/bindings/sound/ti,tas27xx.yaml b/Documentation/devicetree/bindings/sound/ti,tas27xx.yaml index 319ee69c0868c..9ade7dc3dc6a1 100644 --- a/Documentation/devicetree/bindings/sound/ti,tas27xx.yaml +++ b/Documentation/devicetree/bindings/sound/ti,tas27xx.yaml @@ -23,14 +23,14 @@ allOf: - apple,sdz-group-fail-closed then: properties: + shutdown-gpios: false + +properties: ti,bclk-ratio: $ref: /schemas/types.yaml#/definitions/uint32 description: Serial bit clock ratio supplied by the board producer. minimum: 1 - shutdown-gpios: false - -properties: compatible: oneOf: - enum: diff --git a/Documentation/devicetree/bindings/spi/apple,qspi.yaml b/Documentation/devicetree/bindings/spi/apple,qspi.yaml index 40bb9b0f2c2f3..658f413fcff1f 100644 --- a/Documentation/devicetree/bindings/spi/apple,qspi.yaml +++ b/Documentation/devicetree/bindings/spi/apple,qspi.yaml @@ -22,27 +22,27 @@ select: compatible: contains: enum: - - "apple,qspi" - - "apple,t6030-qspi" - - "apple,t6031-qspi" - - "apple,t6041-qspi" - - "apple,t6050-qspi" - - "apple,t8122-qspi" - - "apple,t8132-qspi" - - "apple,t8140-qspi" - - "apple,t8152-qspi" + - apple,qspi + - apple,t6030-qspi + - apple,t6031-qspi + - apple,t6041-qspi + - apple,t6050-qspi + - apple,t8122-qspi + - apple,t8132-qspi + - apple,t8140-qspi + - apple,t8152-qspi required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-qspi" + const: apple,t6050-qspi - - const: "apple,qspi" + const: apple,qspi required: - - "compatible" + - compatible properties: compatible: true @@ -64,31 +64,35 @@ allOf: compatible: items: - - const: "apple,t6050-qspi" + const: apple,t6050-qspi - - const: "apple,qspi" + const: apple,qspi status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-qspi" + const: apple,t6050-qspi - - const: "apple,qspi" + const: apple,qspi status: - const: "disabled" + const: disabled reg: minItems: 2 maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 power-domains: @@ -96,12 +100,12 @@ allOf: clocks: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - - "clocks" + - compatible + - reg + - status + - interrupts + - power-domains + - clocks additionalProperties: false else: allOf: diff --git a/Documentation/devicetree/bindings/spi/apple,spi.yaml b/Documentation/devicetree/bindings/spi/apple,spi.yaml index 7f6f9e66bd837..0e51b07951312 100644 --- a/Documentation/devicetree/bindings/spi/apple,spi.yaml +++ b/Documentation/devicetree/bindings/spi/apple,spi.yaml @@ -17,29 +17,29 @@ select: compatible: contains: enum: - - "apple,spi" - - "apple,t6000-spi" - - "apple,t6020-spi" - - "apple,t6030-spi" - - "apple,t6031-spi" - - "apple,t6041-spi" - - "apple,t8103-spi" - - "apple,t8112-spi" - - "apple,t8122-spi" - - "apple,t8132-spi" - - "apple,t8140-spi" + - apple,spi + - apple,t6000-spi + - apple,t6020-spi + - apple,t6030-spi + - apple,t6031-spi + - apple,t6041-spi + - apple,t8103-spi + - apple,t8112-spi + - apple,t8122-spi + - apple,t8132-spi + - apple,t8140-spi required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-spi" + const: apple,t6050-spi - - const: "apple,t8103-spi" + const: apple,t8103-spi required: - - "compatible" + - compatible properties: compatible: true @@ -61,30 +61,34 @@ allOf: compatible: items: - - const: "apple,t6050-spi" + const: apple,t6050-spi - - const: "apple,t8103-spi" + const: apple,t8103-spi status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-spi" + const: apple,t6050-spi - - const: "apple,t8103-spi" + const: apple,t8103-spi status: - const: "disabled" + const: disabled reg: maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 power-domains: @@ -96,12 +100,12 @@ allOf: "#size-cells": const: 0 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "power-domains" - - "clocks" + - compatible + - reg + - status + - interrupts + - power-domains + - clocks - "#address-cells" - "#size-cells" additionalProperties: false diff --git a/Documentation/devicetree/bindings/spmi/apple,spmi.yaml b/Documentation/devicetree/bindings/spmi/apple,spmi.yaml index 41fb5dfaf7215..0cdb9c1fdab07 100644 --- a/Documentation/devicetree/bindings/spmi/apple,spmi.yaml +++ b/Documentation/devicetree/bindings/spmi/apple,spmi.yaml @@ -19,33 +19,33 @@ select: compatible: contains: enum: - - "apple,spmi" - - "apple,t6000-spmi" - - "apple,t6020-spmi" - - "apple,t6030-spmi" - - "apple,t6031-spmi" - - "apple,t6041-spmi" - - "apple,t6050-spmi" - - "apple,t8012-spmi" - - "apple,t8015-spmi" - - "apple,t8103-spmi" - - "apple,t8112-spmi" - - "apple,t8122-spmi" - - "apple,t8132-spmi" - - "apple,t8140-spmi" - - "apple,t8142-spmi" + - apple,spmi + - apple,t6000-spmi + - apple,t6020-spmi + - apple,t6030-spmi + - apple,t6031-spmi + - apple,t6041-spmi + - apple,t6050-spmi + - apple,t8012-spmi + - apple,t8015-spmi + - apple,t8103-spmi + - apple,t8112-spmi + - apple,t8122-spmi + - apple,t8132-spmi + - apple,t8140-spmi + - apple,t8142-spmi required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-spmi" + const: apple,t6050-spmi - - const: "apple,spmi" + const: apple,spmi required: - - "compatible" + - compatible properties: compatible: true @@ -69,31 +69,35 @@ allOf: compatible: items: - - const: "apple,t6050-spmi" + const: apple,t6050-spmi - - const: "apple,spmi" + const: apple,spmi status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-spmi" + const: apple,t6050-spmi - - const: "apple,spmi" + const: apple,spmi status: - const: "disabled" + const: disabled reg: minItems: 3 maxItems: 3 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: maxItems: 1 "#address-cells": @@ -101,10 +105,10 @@ allOf: "#size-cells": const: 0 required: - - "compatible" - - "reg" - - "status" - - "interrupts" + - compatible + - reg + - status + - interrupts - "#address-cells" - "#size-cells" additionalProperties: false diff --git a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml index 89a34220d7f69..a95d37ab07717 100644 --- a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml +++ b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-acio.yaml @@ -33,29 +33,29 @@ select: compatible: contains: enum: - - "apple,t6000-usb4-acio" - - "apple,t6020-usb4-acio" - - "apple,t6030-usb4-acio" - - "apple,t6031-usb4-acio" - - "apple,t6040-usb4-acio" - - "apple,t6050-usb4-acio" - - "apple,t8103-usb4-acio" - - "apple,t8112-usb4-acio" - - "apple,t8122-usb4-acio" - - "apple,t8132-usb4-acio" - - "apple,t8142-usb4-acio" + - apple,t6000-usb4-acio + - apple,t6020-usb4-acio + - apple,t6030-usb4-acio + - apple,t6031-usb4-acio + - apple,t6040-usb4-acio + - apple,t6050-usb4-acio + - apple,t8103-usb4-acio + - apple,t8112-usb4-acio + - apple,t8122-usb4-acio + - apple,t8132-usb4-acio + - apple,t8142-usb4-acio required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-usb4-acio" + const: apple,t6050-usb4-acio - - const: "apple,usb4-acio" + const: apple,usb4-acio required: - - "compatible" + - compatible properties: compatible: true @@ -153,6 +153,15 @@ properties: clocks: true status: true +patternProperties: + "^iommu@(a80000|1a80000)$": + $ref: /schemas/iommu/apple,dart.yaml# + description: DART IOMMU exposed by ACIO and used for DMA from the NHI + + "^nhi@(f00000|1f00000)$": + $ref: /schemas/thunderbolt/apple,t8103-usb4-nhi.yaml# + description: Native Host Interface exposed by ACIO + additionalProperties: true allOf: @@ -163,39 +172,43 @@ allOf: compatible: items: - - const: "apple,t6050-usb4-acio" + const: apple,t6050-usb4-acio - - const: "apple,usb4-acio" + const: apple,usb4-acio status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-usb4-acio" + const: apple,t6050-usb4-acio - - const: "apple,usb4-acio" + const: apple,usb4-acio status: - const: "disabled" + const: disabled reg: minItems: 2 maxItems: 2 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 4 maxItems: 4 required: - - "compatible" - - "reg" - - "status" - - "interrupts" + - compatible + - reg + - status + - interrupts additionalProperties: false else: properties: @@ -233,7 +246,7 @@ allOf: items: - const: rc - const: sram - - const: pcie-adapter + - enum: [pcie-adapter, cpu] - const: cpu - const: router-ap-fw @@ -386,7 +399,6 @@ allOf: compatible: contains: enum: - - apple,t6050-usb4-acio - apple,t8132-usb4-acio then: properties: @@ -423,9 +435,9 @@ allOf: then: properties: reg: - minItems: 5 + minItems: 3 reg-names: - minItems: 5 + minItems: 3 power-domains: minItems: 4 else: diff --git a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml index b1fea5453d8b4..22aa11b72d26b 100644 --- a/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml +++ b/Documentation/devicetree/bindings/thunderbolt/apple,t8103-usb4-nhi.yaml @@ -25,29 +25,29 @@ select: compatible: contains: enum: - - "apple,t6000-usb4-nhi" - - "apple,t6020-usb4-nhi" - - "apple,t6030-usb4-nhi" - - "apple,t6031-usb4-nhi" - - "apple,t6040-usb4-nhi" - - "apple,t6050-usb4-nhi" - - "apple,t8103-usb4-nhi" - - "apple,t8112-usb4-nhi" - - "apple,t8122-usb4-nhi" - - "apple,t8132-usb4-nhi" - - "apple,t8142-usb4-nhi" + - apple,t6000-usb4-nhi + - apple,t6020-usb4-nhi + - apple,t6030-usb4-nhi + - apple,t6031-usb4-nhi + - apple,t6040-usb4-nhi + - apple,t6050-usb4-nhi + - apple,t8103-usb4-nhi + - apple,t8112-usb4-nhi + - apple,t8122-usb4-nhi + - apple,t8132-usb4-nhi + - apple,t8142-usb4-nhi required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-usb4-nhi" + const: apple,t6050-usb4-nhi - - const: "apple,usb4-nhi" + const: apple,usb4-nhi required: - - "compatible" + - compatible properties: compatible: true @@ -86,31 +86,35 @@ allOf: compatible: items: - - const: "apple,t6050-usb4-nhi" + const: apple,t6050-usb4-nhi - - const: "apple,usb4-nhi" + const: apple,usb4-nhi status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-usb4-nhi" + const: apple,t6050-usb4-nhi - - const: "apple,usb4-nhi" + const: apple,usb4-nhi status: - const: "disabled" + const: disabled reg: minItems: 6 maxItems: 6 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 25 maxItems: 25 @@ -121,12 +125,12 @@ allOf: minItems: 4 maxItems: 4 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "power-domains" + - compatible + - reg + - status + - interrupts + - iommus + - power-domains additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml b/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml index 4ba63c976300e..96724538bf3d5 100644 --- a/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml +++ b/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml @@ -20,28 +20,28 @@ select: compatible: contains: enum: - - "apple,aic-timebase" - - "apple,t6000-aic-timebase" - - "apple,t6020-aic-timebase" - - "apple,t6021-aic-timebase" - - "apple,t6022-aic-timebase" - - "apple,t6041-aic-timebase" - - "apple,t8103-aic-timebase" - - "apple,t8112-aic-timebase" - - "apple,t8142-aic-timebase" - - "apple,t8152-aic-timebase" + - apple,aic-timebase + - apple,t6000-aic-timebase + - apple,t6020-aic-timebase + - apple,t6021-aic-timebase + - apple,t6022-aic-timebase + - apple,t6041-aic-timebase + - apple,t8103-aic-timebase + - apple,t8112-aic-timebase + - apple,t8142-aic-timebase + - apple,t8152-aic-timebase required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-aic-timebase" + const: apple,t6050-aic-timebase - - const: "apple,aic-timebase" + const: apple,aic-timebase required: - - "compatible" + - compatible properties: compatible: true @@ -63,34 +63,38 @@ allOf: compatible: items: - - const: "apple,t6050-aic-timebase" + const: apple,t6050-aic-timebase - - const: "apple,aic-timebase" + const: apple,aic-timebase status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-aic-timebase" + const: apple,t6050-aic-timebase - - const: "apple,aic-timebase" + const: apple,aic-timebase status: - const: "disabled" + const: disabled reg: maxItems: 1 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. required: - - "compatible" - - "reg" - - "status" + - compatible + - reg + - status additionalProperties: false else: properties: diff --git a/Documentation/devicetree/bindings/usb/apple,dwc3.yaml b/Documentation/devicetree/bindings/usb/apple,dwc3.yaml index e84c7c90c26c0..066c5c7262a53 100644 --- a/Documentation/devicetree/bindings/usb/apple,dwc3.yaml +++ b/Documentation/devicetree/bindings/usb/apple,dwc3.yaml @@ -21,30 +21,30 @@ select: compatible: contains: enum: - - "apple,t6000-dwc3" - - "apple,t6020-dwc3" - - "apple,t6030-dwc3" - - "apple,t6031-dwc3" - - "apple,t6040-dwc3" - - "apple,t6050-dwc3" - - "apple,t8103-dwc3" - - "apple,t8112-dwc3" - - "apple,t8122-dwc3" - - "apple,t8132-dwc3" - - "apple,t8140-dwc3" - - "apple,t8142-dwc3" + - apple,t6000-dwc3 + - apple,t6020-dwc3 + - apple,t6030-dwc3 + - apple,t6031-dwc3 + - apple,t6040-dwc3 + - apple,t6050-dwc3 + - apple,t8103-dwc3 + - apple,t8112-dwc3 + - apple,t8122-dwc3 + - apple,t8132-dwc3 + - apple,t8140-dwc3 + - apple,t8142-dwc3 required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-dwc3" + const: apple,t6050-dwc3 - - const: "apple,dwc3" + const: apple,dwc3 required: - - "compatible" + - compatible properties: compatible: true @@ -93,31 +93,35 @@ allOf: compatible: items: - - const: "apple,t6050-dwc3" + const: apple,t6050-dwc3 - - const: "apple,dwc3" + const: apple,dwc3 status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-dwc3" + const: apple,t6050-dwc3 - - const: "apple,dwc3" + const: apple,dwc3 status: - const: "disabled" + const: disabled reg: minItems: 10 maxItems: 10 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 4 maxItems: 5 @@ -126,12 +130,12 @@ allOf: power-domains: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "iommus" - - "power-domains" + - compatible + - reg + - status + - interrupts + - iommus + - power-domains additionalProperties: false else: allOf: diff --git a/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml b/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml index dad1d99d0f49f..9ae5a7e238178 100644 --- a/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml +++ b/Documentation/devicetree/bindings/watchdog/apple,wdt.yaml @@ -17,35 +17,35 @@ select: compatible: contains: enum: - - "apple,s5l8960x-wdt" - - "apple,s8000-wdt" - - "apple,t6000-wdt" - - "apple,t6020-wdt" - - "apple,t6030-wdt" - - "apple,t6031-wdt" - - "apple,t6041-wdt" - - "apple,t6050-wdt" - - "apple,t7000-wdt" - - "apple,t8010-wdt" - - "apple,t8015-wdt" - - "apple,t8103-wdt" - - "apple,t8112-wdt" - - "apple,t8122-wdt" - - "apple,t8132-wdt" - - "apple,t8140-wdt" - - "apple,wdt" + - apple,s5l8960x-wdt + - apple,s8000-wdt + - apple,t6000-wdt + - apple,t6020-wdt + - apple,t6030-wdt + - apple,t6031-wdt + - apple,t6041-wdt + - apple,t6050-wdt + - apple,t7000-wdt + - apple,t8010-wdt + - apple,t8015-wdt + - apple,t8103-wdt + - apple,t8112-wdt + - apple,t8122-wdt + - apple,t8132-wdt + - apple,t8140-wdt + - apple,wdt required: - - "compatible" + - compatible - properties: compatible: items: - - const: "apple,t6050-wdt" + const: apple,t6050-wdt - - const: "apple,wdt" + const: apple,wdt required: - - "compatible" + - compatible properties: compatible: true @@ -67,42 +67,46 @@ allOf: compatible: items: - - const: "apple,t6050-wdt" + const: apple,t6050-wdt - - const: "apple,wdt" + const: apple,wdt status: - const: "disabled" + const: disabled required: - - "compatible" - - "status" + - compatible + - status then: oneOf: - - description: "T6050 native resource description. Firmware ownership, backend support and enables require separate qualification. This variant remains disabled and contains no programming sequences or firmware data." + description: | + T6050 native resource description. Firmware ownership, backend support and enables require + separate qualification. This variant remains disabled and contains no programming sequences or + firmware data. properties: compatible: items: - - const: "apple,t6050-wdt" + const: apple,t6050-wdt - - const: "apple,wdt" + const: apple,wdt status: - const: "disabled" + const: disabled reg: minItems: 5 maxItems: 5 - description: "Native register apertures in hardware-interface order, including shared auxiliary views." + description: | + Native register apertures in hardware-interface order, including shared auxiliary views. interrupts: minItems: 2 maxItems: 2 clocks: maxItems: 1 required: - - "compatible" - - "reg" - - "status" - - "interrupts" - - "clocks" + - compatible + - reg + - status + - interrupts + - clocks additionalProperties: false else: allOf: diff --git a/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi index 20661dfa5fbb5..74b44f030c05e 100644 --- a/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi +++ b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi @@ -1337,12 +1337,13 @@ }; #endif -#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) +#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) pwm0: pwm@505040000 { compatible = "apple,t6050-fpwm", "apple,s5l-fpwm"; reg = <0x5 0x5040000 0x0 0x4000>; - interrupts = ; - power-domains = <&ps_fpwm0>; + interrupts = , + ; + power-domains = <&ps_fpwm0>, <&ps_fpwm1>; #pwm-cells = <2>; status = "disabled"; }; @@ -3496,7 +3497,7 @@ #endif #if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) - admac_hp_mic_ec_proxy: dma-controller@4d3200000 { + admac_hp_mic_ec_proxy: dma-controller-hp-mic@4d3200000 { compatible = "apple,t6050-admac-secure", "apple,admac-secure"; reg = <0x4 0xd3200000 0x0 0x34000>; #dma-cells = <1>; @@ -3505,7 +3506,7 @@ #endif #if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) - admac_sllb_ec_proxy: dma-controller@4d3200000 { + admac_sllb_ec_proxy: dma-controller-sllb@4d3200000 { compatible = "apple,t6050-admac-secure", "apple,admac-secure"; reg = <0x4 0xd3200000 0x0 0x34000>; #dma-cells = <1>; @@ -3513,17 +3514,6 @@ }; #endif -#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_J873S) - pwm1: pwm@505040000 { - compatible = "apple,t6050-fpwm", "apple,s5l-fpwm"; - reg = <0x5 0x5040000 0x0 0x4000>; - interrupts = ; - power-domains = <&ps_fpwm1>; - #pwm-cells = <2>; - status = "disabled"; - }; -#endif - msg: message-controller@29b000000 { compatible = "apple,t6050-msg", "apple,msg"; reg = <0x2 0x9b000000 0x0 0xb4000>, @@ -3764,6 +3754,17 @@ }; #endif +#if defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_J873S) + pwm1: pwm@505040000 { + compatible = "apple,t6050-fpwm", "apple,s5l-fpwm"; + reg = <0x5 0x5040000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_fpwm1>; + #pwm-cells = <2>; + status = "disabled"; + }; +#endif + #if defined(T6050_J775D) nub_spmi_a2_control: spmi@28a1c8000 { compatible = "apple,t6050-spmi", "apple,spmi"; @@ -3814,6 +3815,17 @@ }; #endif +#if defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + pwm0: pwm@505040000 { + compatible = "apple,t6050-fpwm", "apple,s5l-fpwm"; + reg = <0x5 0x5040000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_fpwm0>; + #pwm-cells = <2>; + status = "disabled"; + }; +#endif + #if defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) pwm1: pwm@505044000 { compatible = "apple,t6050-fpwm", "apple,s5l-fpwm"; From 32c3062ec5fe610093b5ab0052ab89dd81c75258 Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 07:34:57 +1100 Subject: [PATCH 07/13] dt-bindings: sound: fix T6050 AOP root property projection Keep the four-stream native transport in its closed alternative and retain the original DMA-name limit only in the original interface. Assisted-by: LLM Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> --- Documentation/devicetree/bindings/sound/apple,aop-audio.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/Documentation/devicetree/bindings/sound/apple,aop-audio.yaml b/Documentation/devicetree/bindings/sound/apple,aop-audio.yaml index 05f2dbfe995a9..6619a933824fc 100644 --- a/Documentation/devicetree/bindings/sound/apple,aop-audio.yaml +++ b/Documentation/devicetree/bindings/sound/apple,aop-audio.yaml @@ -38,7 +38,6 @@ properties: "compatible": true dmas: true dma-names: true - const: dma apple,chassis-name: $ref: /schemas/types.yaml#/definitions/string description: Board family used to identify the audio configuration. From dcbdb5da70b13be32c07096d909822d247711789 Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 07:43:44 +1100 Subject: [PATCH 08/13] arm64: dts: apple: use native T6050 CPU affinities and board power votes Use the published T6050 CPU-class affinity mapping with the ADT cluster/core affinities, retaining all CPU inventory disabled. Include the optional J775d die-1 CPU records. Resolve the notebook FPWM1 NoPS vote through its native parent and omit the invented independent state on those templates. Assisted-by: LLM Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> --- .../boot/dts/apple/t6050-peripherals.dtsi | 6 +- arch/arm64/boot/dts/apple/t6050.dtsi | 252 +++++++++++++++--- 2 files changed, 221 insertions(+), 37 deletions(-) diff --git a/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi index 74b44f030c05e..15e891042af9c 100644 --- a/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi +++ b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi @@ -518,6 +518,7 @@ power-domains = <&ps_sio>; status = "disabled"; }; +#if defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_J873S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) ps_fpwm1: power-controller@2b0 { compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; reg = <0x2b0 4>; @@ -527,6 +528,7 @@ power-domains = <&ps_sio>; status = "disabled"; }; +#endif ps_fpwm2: power-controller@2b8 { compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; reg = <0x2b8 4>; @@ -679,6 +681,7 @@ label = "ane-cpu"; status = "disabled"; }; +#if defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_J873S) ps_dptx_phy: power-controller@3f8 { compatible = "apple,t6050-pmgr-pwrstate", "apple,t8103-pmgr-pwrstate"; reg = <0x3f8 4>; @@ -687,6 +690,7 @@ label = "dptx-phy"; status = "disabled"; }; +#endif }; &pmgr2 { @@ -1343,7 +1347,7 @@ reg = <0x5 0x5040000 0x0 0x4000>; interrupts = , ; - power-domains = <&ps_fpwm0>, <&ps_fpwm1>; + power-domains = <&ps_fpwm0>, <&ps_sio>; #pwm-cells = <2>; status = "disabled"; }; diff --git a/arch/arm64/boot/dts/apple/t6050.dtsi b/arch/arm64/boot/dts/apple/t6050.dtsi index 5328794b400b4..d946053cc5784 100644 --- a/arch/arm64/boot/dts/apple/t6050.dtsi +++ b/arch/arm64/boot/dts/apple/t6050.dtsi @@ -22,150 +22,330 @@ cpus { #address-cells = <2>; #size-cells = <0>; - cpu0: cpu@0 { + cpu0: cpu@40000 { compatible = "apple,sawtooth"; device_type = "cpu"; - reg = <0 0x0>; + reg = <0 0x40000>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu1: cpu@1 { + cpu1: cpu@40001 { compatible = "apple,sawtooth"; device_type = "cpu"; - reg = <0 0x1>; + reg = <0 0x40001>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu2: cpu@2 { + cpu2: cpu@40002 { compatible = "apple,sawtooth"; device_type = "cpu"; - reg = <0 0x2>; + reg = <0 0x40002>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu3: cpu@3 { + cpu3: cpu@40003 { compatible = "apple,sawtooth"; device_type = "cpu"; - reg = <0 0x3>; + reg = <0 0x40003>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu4: cpu@4 { + cpu4: cpu@40004 { compatible = "apple,sawtooth"; device_type = "cpu"; - reg = <0 0x4>; + reg = <0 0x40004>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu5: cpu@5 { + cpu5: cpu@40005 { compatible = "apple,sawtooth"; device_type = "cpu"; - reg = <0 0x5>; + reg = <0 0x40005>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu6: cpu@100 { + cpu6: cpu@40100 { compatible = "apple,sawtooth"; device_type = "cpu"; - reg = <0 0x100>; + reg = <0 0x40100>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu7: cpu@101 { + cpu7: cpu@40101 { compatible = "apple,sawtooth"; device_type = "cpu"; - reg = <0 0x101>; + reg = <0 0x40101>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu8: cpu@102 { + cpu8: cpu@40102 { compatible = "apple,sawtooth"; device_type = "cpu"; - reg = <0 0x102>; + reg = <0 0x40102>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu9: cpu@103 { + cpu9: cpu@40103 { compatible = "apple,sawtooth"; device_type = "cpu"; - reg = <0 0x103>; + reg = <0 0x40103>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu10: cpu@104 { + cpu10: cpu@40104 { compatible = "apple,sawtooth"; device_type = "cpu"; - reg = <0 0x104>; + reg = <0 0x40104>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu11: cpu@105 { + cpu11: cpu@40105 { compatible = "apple,sawtooth"; device_type = "cpu"; - reg = <0 0x105>; + reg = <0 0x40105>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu12: cpu@200 { + cpu12: cpu@10200 { compatible = "apple,everest"; device_type = "cpu"; - reg = <0 0x200>; + reg = <0 0x10200>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu13: cpu@201 { + cpu13: cpu@10201 { compatible = "apple,everest"; device_type = "cpu"; - reg = <0 0x201>; + reg = <0 0x10201>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu14: cpu@202 { + cpu14: cpu@10202 { compatible = "apple,everest"; device_type = "cpu"; - reg = <0 0x202>; + reg = <0 0x10202>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu15: cpu@203 { + cpu15: cpu@10203 { compatible = "apple,everest"; device_type = "cpu"; - reg = <0 0x203>; + reg = <0 0x10203>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu16: cpu@204 { + cpu16: cpu@10204 { compatible = "apple,everest"; device_type = "cpu"; - reg = <0 0x204>; + reg = <0 0x10204>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; - cpu17: cpu@205 { + cpu17: cpu@10205 { compatible = "apple,everest"; device_type = "cpu"; - reg = <0 0x205>; + reg = <0 0x10205>; enable-method = "spin-table"; cpu-release-addr = <0 0>; status = "disabled"; }; +#ifdef T6050_J775D + cpu18: cpu@41000 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x41000>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu19: cpu@41001 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x41001>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu20: cpu@41002 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x41002>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu21: cpu@41003 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x41003>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu22: cpu@41004 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x41004>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu23: cpu@41005 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x41005>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu24: cpu@41100 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x41100>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu25: cpu@41101 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x41101>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu26: cpu@41102 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x41102>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu27: cpu@41103 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x41103>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu28: cpu@41104 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x41104>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu29: cpu@41105 { + compatible = "apple,sawtooth"; + device_type = "cpu"; + reg = <0 0x41105>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu30: cpu@11200 { + compatible = "apple,everest"; + device_type = "cpu"; + reg = <0 0x11200>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu31: cpu@11201 { + compatible = "apple,everest"; + device_type = "cpu"; + reg = <0 0x11201>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu32: cpu@11202 { + compatible = "apple,everest"; + device_type = "cpu"; + reg = <0 0x11202>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu33: cpu@11203 { + compatible = "apple,everest"; + device_type = "cpu"; + reg = <0 0x11203>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu34: cpu@11204 { + compatible = "apple,everest"; + device_type = "cpu"; + reg = <0 0x11204>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif +#ifdef T6050_J775D + cpu35: cpu@11205 { + compatible = "apple,everest"; + device_type = "cpu"; + reg = <0 0x11205>; + enable-method = "spin-table"; + cpu-release-addr = <0 0>; + status = "disabled"; + }; +#endif }; timer { From e69878c716ca50eba785fd619be574119f08c57f Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 07:47:08 +1100 Subject: [PATCH 09/13] dt-bindings: PCI: retain the merged T6040 interrupt-name contract Drop an obsolete four-port pattern carried by the older T6050 prerequisite snapshot. The merged T6040 PCIe-C contract keeps its six interrupt names; the T6050 disabled alternatives and boot profile are unchanged. Assisted-by: LLM Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> --- .../devicetree/bindings/pci/apple,pcie.yaml | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/Documentation/devicetree/bindings/pci/apple,pcie.yaml b/Documentation/devicetree/bindings/pci/apple,pcie.yaml index 8d9e71e3ec1a2..7830f4c8d6eb8 100644 --- a/Documentation/devicetree/bindings/pci/apple,pcie.yaml +++ b/Documentation/devicetree/bindings/pci/apple,pcie.yaml @@ -466,19 +466,6 @@ allOf: - msi-ranges unevaluatedProperties: false allOf: - - if: - not: - properties: - compatible: - contains: - enum: ['apple,t6050-pcie', 'apple,t6050-pciec'] - then: - properties: - interrupt-names: - minItems: 1 - maxItems: 4 - items: - pattern: ^port[0-3]$ - if: properties: compatible: From c1f7100c4a6f7641e8bbb594b92175fe64d6ab0a Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 07:52:47 +1100 Subject: [PATCH 10/13] arm64: dts: apple: describe the shared T6050 audio proxy bank once Both EC proxy ADT identities publish the same complete hardware register view and no distinct IRQ, clock or DMA route. Retain one disabled physical bank; downstream service separation remains in the gap ledger. Assisted-by: LLM Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> --- arch/arm64/boot/dts/apple/t6050-peripherals.dtsi | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi index 15e891042af9c..5cbc596f7f108 100644 --- a/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi +++ b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi @@ -3501,16 +3501,7 @@ #endif #if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) - admac_hp_mic_ec_proxy: dma-controller-hp-mic@4d3200000 { - compatible = "apple,t6050-admac-secure", "apple,admac-secure"; - reg = <0x4 0xd3200000 0x0 0x34000>; - #dma-cells = <1>; - status = "disabled"; - }; -#endif - -#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) - admac_sllb_ec_proxy: dma-controller-sllb@4d3200000 { + admac_ec_proxy: dma-controller@4d3200000 { compatible = "apple,t6050-admac-secure", "apple,admac-secure"; reg = <0x4 0xd3200000 0x0 0x34000>; #dma-cells = <1>; From 25c1bd38cef71a3a79cca95fef097dab93554dc8 Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 18:14:43 +1100 Subject: [PATCH 11/13] arm64: dts: apple: t6050: Describe the inventory the way the reviewed nodes are Several inventory nodes described a block in a shape of their own where the reviewed T6050 trees, or the same block on other SoCs, already have a Linux form. Rework them from the same ADT records: - The external display coprocessors (dcpext1-3) and the internal DCP take dcpext0's form: the ASC, the display engine's five windows and iop-vbar in one node, the ASC v4 mailbox at +0x8000 with the first four ADT interrupts in mailbox order, the DCP and display DARTs. The separate display-engine nodes go, their windows are in the DCP now. - ADMACs use the T8140 fallback with dma-channels from the ADT channel counts and the AP's interrupt in the first of the four outputs, as admac_base_ns does. - DARTs with several instances (ISP, ANE, AVE, the ATC0 USB DART) are split into one node per instance, as on T8140, each with the auxiliary window that belongs to it; their consumers use stream 0 of each. - The ATC0 USB controller takes usb_drd2's register split. The ANE takes the T6041 register names and layout, which it shares. The PMP is "apple,t6050-pmp-v2", the family the PMP driver matches. The GPU block is "apple,agx-t6050". The AUSS USB controller is not a dwc3 and gets its own compatible. The display crossbars and the DisplayPort PHY take the reviewed T6050 compatibles and cells, the AON PTD the interrupt controller cells of T8142/T8152, the UART its clock names. - Dropped: the MTP DockChannel (t6050-max.dtsi has it), and the ATC0-2 USB4 routers, ATC PCIe-C hosts and the raw ATC0 PHY record. Describing those properly needs data the static ADTs do not carry (the routers' firmware SRAM window) or a combo PHY description per port; they are left for that work instead of being described in a second shape. Everything stays disabled. Assisted-by: LLM Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> --- .../display/apple,display-engine.yaml | 46 -- .../boot/dts/apple/t6050-peripherals.dtsi | 782 ++++++------------ 2 files changed, 261 insertions(+), 567 deletions(-) delete mode 100644 Documentation/devicetree/bindings/display/apple,display-engine.yaml diff --git a/Documentation/devicetree/bindings/display/apple,display-engine.yaml b/Documentation/devicetree/bindings/display/apple,display-engine.yaml deleted file mode 100644 index ed6f3e4d6c54a..0000000000000 --- a/Documentation/devicetree/bindings/display/apple,display-engine.yaml +++ /dev/null @@ -1,46 +0,0 @@ -# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) -%YAML 1.2 ---- -$id: http://devicetree.org/schemas/display/apple,display-engine.yaml# -$schema: http://devicetree.org/meta-schemas/core.yaml# - -title: Apple display engine - -maintainers: - - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> - -description: | - A T6050 block described from the ADT so that the device tree lists all of - the SoC's hardware. No driver uses it yet: the node stays disabled until - one does and the block is brought up on hardware. - -properties: - compatible: - items: - - const: apple,t6050-display-engine - - const: apple,display-engine - - reg: - minItems: 5 - maxItems: 5 - description: Register windows in the ADT's order, including views shared with other blocks. - - interrupts: - minItems: 11 - maxItems: 13 - - iommus: - minItems: 2 - maxItems: 2 - - clocks: - maxItems: 2 - -required: - - compatible - - reg - - interrupts - - iommus - - clocks - -additionalProperties: false diff --git a/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi index 5c90aa8f55b55..eef667d647d3d 100644 --- a/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi +++ b/arch/arm64/boot/dts/apple/t6050-peripherals.dtsi @@ -1343,7 +1343,7 @@ , , ; - iommus = <&isp0_dart 0>, <&isp0_dart 12>, <&isp0_dart 4>, <&isp0_dart 5>, <&isp0_dart 8>, <&isp0_dart 9>; + iommus = <&isp0_dart 0>, <&isp0_dart1 0>, <&isp0_dart2 0>; power-domains = <&ps_isp_sys>, <&ps_ispsens0>; clocks = <&peripheral_clocks 350>, <&peripheral_clocks 352>; status = "disabled"; @@ -1354,16 +1354,32 @@ isp0_dart: iommu@5828c0000 { compatible = "apple,t6050-dart", "apple,t8110-dart"; reg = <0x5 0x828c0000 0x0 0xc000>, - <0x5 0x828e0000 0x0 0xc000>, - <0x5 0x82900000 0x0 0xc000>, - <0x5 0x828f4000 0x0 0x4000>, - <0x5 0x82914000 0x0 0x4000>, <0x5 0x828d0000 0x0 0x4000>; interrupts = ; power-domains = <&ps_isp_sys>; #iommu-cells = <1>; status = "disabled"; }; + + isp0_dart1: iommu@5828e0000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x5 0x828e0000 0x0 0xc000>, + <0x5 0x828f4000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_isp_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + isp0_dart2: iommu@582900000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x5 0x82900000 0x0 0xc000>, + <0x5 0x82914000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_isp_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; #endif @@ -1413,42 +1429,8 @@ -#if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) - dockchannel_mtp: fifo@294b00000 { - compatible = "apple,t6050-dockchannel", "apple,dockchannel"; - reg = <0x2 0x94b00000 0x0 0x1000>, - <0x2 0x94b14000 0x0 0x1000>, - <0x2 0x94b30000 0x0 0x1000>, - <0x2 0x94b34000 0x0 0x1000>, - <0x2 0x94b28000 0x0 0x1000>, - <0x2 0x94b2c000 0x0 0x1000>; - interrupts = ; - status = "disabled"; - }; -#endif - - apciec0: pcie@1c50000000 { - compatible = "apple,t6050-pciec", "apple,pciec"; - reg = <0x1c 0x50000000 0x0 0x10000000>, - <0x2 0xa4034000 0x0 0x4000>, - <0x2 0xa4020000 0x0 0x8000>, - <0x2 0xa4038000 0x0 0x4000>, - <0x2 0xa4060000 0x0 0x4000>, - <0x2 0xa0020000 0x0 0x4000>, - <0x2 0xa402c000 0x0 0x4000>, - <0x2 0xa4028000 0x0 0x4000>; - interrupts = , - , - , - , - , - ; - power-domains = <&ps_atc0_usb_aon>, <&ps_atc0_pcie>; - status = "disabled"; - }; - apciec0_dart: iommu@2a4000000 { compatible = "apple,t6050-dart", "apple,t8110-dart"; reg = <0x2 0xa4000000 0x0 0x20000>; @@ -1468,83 +1450,6 @@ status = "disabled"; }; - acio0: usb4@2a1f00000 { - compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; - reg = <0x2 0xa1f00000 0x0 0x100000>, - <0x2 0xa1ac0000 0x0 0x4000>, - <0x2 0xa1ac4000 0x0 0x4000>, - <0x2 0xa1ac8000 0x0 0x4000>, - <0x2 0xa1e44000 0x0 0x4000>, - <0x2 0xa1c80000 0x0 0x4000>; - interrupts = , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - ; - iommus = <&acio0_dart 0>, <&acio0_dart 1>, <&acio0_dart 2>, <&acio0_dart 3>, <&acio0_dart 4>, <&acio0_dart 5>, <&acio0_dart 6>, <&acio0_dart 7>, <&acio0_dart 8>, <&acio0_dart 9>, <&acio0_dart 10>, <&acio0_dart 11>, <&acio0_dart 16>, <&acio0_dart 17>, <&acio0_dart 18>, <&acio0_dart 19>, <&acio0_dart 20>, <&acio0_dart 21>, <&acio0_dart 22>, <&acio0_dart 23>, <&acio0_dart 24>, <&acio0_dart 25>, <&acio0_dart 26>, <&acio0_dart 27>; - power-domains = <&ps_atc0_cio_auss>, <&ps_atc0_cio>, <&ps_atc0_cio_pcie>, <&ps_atc0_cio_usb>; - status = "disabled"; - }; - - acio0_dart: iommu@2a1a80000 { - compatible = "apple,t6050-dart", "apple,t8110-dart"; - reg = <0x2 0xa1a80000 0x0 0xc000>; - interrupts = ; - #iommu-cells = <1>; - status = "disabled"; - }; - - acio_cpu0: usb4-coproc@2a1108000 { - compatible = "apple,t6050-usb4-acio", "apple,usb4-acio"; - reg = <0x2 0xa1108000 0x0 0x4000>, - <0x2 0xa1100000 0x0 0x4000>; - interrupts = , - , - , - ; - status = "disabled"; - }; - - apciec1: pcie@1c60000000 { - compatible = "apple,t6050-pciec", "apple,pciec"; - reg = <0x1c 0x60000000 0x0 0x10000000>, - <0x2 0xac034000 0x0 0x4000>, - <0x2 0xac020000 0x0 0x8000>, - <0x2 0xac038000 0x0 0x4000>, - <0x2 0xac060000 0x0 0x4000>, - <0x2 0xa8020000 0x0 0x4000>, - <0x2 0xac02c000 0x0 0x4000>, - <0x2 0xac028000 0x0 0x4000>; - interrupts = , - , - , - , - , - ; - power-domains = <&ps_atc1_usb_aon>, <&ps_atc1_pcie>; - status = "disabled"; - }; - apciec1_dart: iommu@2ac000000 { compatible = "apple,t6050-dart", "apple,t8110-dart"; reg = <0x2 0xac000000 0x0 0x20000>; @@ -1564,83 +1469,6 @@ status = "disabled"; }; - acio1: usb4@2a9f00000 { - compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; - reg = <0x2 0xa9f00000 0x0 0x100000>, - <0x2 0xa9ac0000 0x0 0x4000>, - <0x2 0xa9ac4000 0x0 0x4000>, - <0x2 0xa9ac8000 0x0 0x4000>, - <0x2 0xa9e44000 0x0 0x4000>, - <0x2 0xa9c80000 0x0 0x4000>; - interrupts = , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - ; - iommus = <&acio1_dart 0>, <&acio1_dart 1>, <&acio1_dart 2>, <&acio1_dart 3>, <&acio1_dart 4>, <&acio1_dart 5>, <&acio1_dart 6>, <&acio1_dart 7>, <&acio1_dart 8>, <&acio1_dart 9>, <&acio1_dart 10>, <&acio1_dart 11>, <&acio1_dart 16>, <&acio1_dart 17>, <&acio1_dart 18>, <&acio1_dart 19>, <&acio1_dart 20>, <&acio1_dart 21>, <&acio1_dart 22>, <&acio1_dart 23>, <&acio1_dart 24>, <&acio1_dart 25>, <&acio1_dart 26>, <&acio1_dart 27>; - power-domains = <&ps_atc1_cio_auss>, <&ps_atc1_cio>, <&ps_atc1_cio_pcie>, <&ps_atc1_cio_usb>; - status = "disabled"; - }; - - acio1_dart: iommu@2a9a80000 { - compatible = "apple,t6050-dart", "apple,t8110-dart"; - reg = <0x2 0xa9a80000 0x0 0xc000>; - interrupts = ; - #iommu-cells = <1>; - status = "disabled"; - }; - - acio_cpu1: usb4-coproc@2a9108000 { - compatible = "apple,t6050-usb4-acio", "apple,usb4-acio"; - reg = <0x2 0xa9108000 0x0 0x4000>, - <0x2 0xa9100000 0x0 0x4000>; - interrupts = , - , - , - ; - status = "disabled"; - }; - - apciec2: pcie@1c70000000 { - compatible = "apple,t6050-pciec", "apple,pciec"; - reg = <0x1c 0x70000000 0x0 0x10000000>, - <0x3 0x84034000 0x0 0x4000>, - <0x3 0x84020000 0x0 0x8000>, - <0x3 0x84038000 0x0 0x4000>, - <0x3 0x84060000 0x0 0x4000>, - <0x3 0x80020000 0x0 0x4000>, - <0x3 0x8402c000 0x0 0x4000>, - <0x3 0x84028000 0x0 0x4000>; - interrupts = , - , - , - , - , - ; - power-domains = <&ps_atc2_usb_aon>, <&ps_atc2_pcie>; - status = "disabled"; - }; - apciec2_dart: iommu@384000000 { compatible = "apple,t6050-dart", "apple,t8110-dart"; reg = <0x3 0x84000000 0x0 0x20000>; @@ -1660,66 +1488,10 @@ status = "disabled"; }; - acio2: usb4@381f00000 { - compatible = "apple,t6050-usb4-nhi", "apple,usb4-nhi"; - reg = <0x3 0x81f00000 0x0 0x100000>, - <0x3 0x81ac0000 0x0 0x4000>, - <0x3 0x81ac4000 0x0 0x4000>, - <0x3 0x81ac8000 0x0 0x4000>, - <0x3 0x81e44000 0x0 0x4000>, - <0x3 0x81c80000 0x0 0x4000>; - interrupts = , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - , - ; - iommus = <&acio2_dart 0>, <&acio2_dart 1>, <&acio2_dart 2>, <&acio2_dart 3>, <&acio2_dart 4>, <&acio2_dart 5>, <&acio2_dart 6>, <&acio2_dart 7>, <&acio2_dart 8>, <&acio2_dart 9>, <&acio2_dart 10>, <&acio2_dart 11>, <&acio2_dart 16>, <&acio2_dart 17>, <&acio2_dart 18>, <&acio2_dart 19>, <&acio2_dart 20>, <&acio2_dart 21>, <&acio2_dart 22>, <&acio2_dart 23>, <&acio2_dart 24>, <&acio2_dart 25>, <&acio2_dart 26>, <&acio2_dart 27>; - power-domains = <&ps_atc2_cio_auss>, <&ps_atc2_cio>, <&ps_atc2_cio_pcie>, <&ps_atc2_cio_usb>; - status = "disabled"; - }; - - acio2_dart: iommu@381a80000 { - compatible = "apple,t6050-dart", "apple,t8110-dart"; - reg = <0x3 0x81a80000 0x0 0xc000>; - interrupts = ; - #iommu-cells = <1>; - status = "disabled"; - }; - - acio_cpu2: usb4-coproc@381108000 { - compatible = "apple,t6050-usb4-acio", "apple,usb4-acio"; - reg = <0x3 0x81108000 0x0 0x4000>, - <0x3 0x81100000 0x0 0x4000>; - interrupts = , - , - , - ; - status = "disabled"; - }; - atc0_dpxbar: mux@2a324c000 { - compatible = "apple,t6050-display-crossbar", "apple,display-crossbar"; + compatible = "apple,t6050-display-crossbar", "apple,t8142-display-crossbar"; reg = <0x2 0xa324c000 0x0 0x4000>; + #mux-control-cells = <1>; status = "disabled"; }; @@ -1752,8 +1524,9 @@ }; atc1_dpxbar: mux@2ab24c000 { - compatible = "apple,t6050-display-crossbar", "apple,display-crossbar"; + compatible = "apple,t6050-display-crossbar", "apple,t8142-display-crossbar"; reg = <0x2 0xab24c000 0x0 0x4000>; + #mux-control-cells = <1>; status = "disabled"; }; @@ -1816,8 +1589,9 @@ #if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) atc3_dpxbar: mux@38b24c000 { - compatible = "apple,t6050-display-crossbar", "apple,display-crossbar"; + compatible = "apple,t6050-display-crossbar", "apple,t8142-display-crossbar"; reg = <0x3 0x8b24c000 0x0 0x4000>; + #mux-control-cells = <1>; status = "disabled"; }; #endif @@ -2403,7 +2177,7 @@ }; pmp0: pmp@284e00000 { - compatible = "apple,t6050-pmp", "apple,pmp"; + compatible = "apple,t6050-pmp-v2", "apple,t6000-pmp-v2"; reg = <0x2 0x84e00000 0x0 0x88000>, <0x2 0x84850000 0x0 0x4000>, <0x2 0x84500000 0x0 0x100000>, @@ -2486,6 +2260,9 @@ , , ; + interrupt-controller; + #interrupt-cells = <1>; + #address-cells = <0>; status = "disabled"; }; @@ -2513,86 +2290,37 @@ interrupts = ; power-domains = <&ps_uart0>; clocks = <&peripheral_clocks 457>, <&peripheral_clocks 4>; + clock-names = "uart", "clk_uart_baud0"; status = "disabled"; }; - atc_phy0: phy@2a2a90000 { - compatible = "apple,t6050-atcphy", "apple,atcphy"; - reg = <0x2 0xa2a90000 0x0 0x4000>, - <0x2 0xa2800000 0x0 0x4000>, - <0x2 0xa3000000 0x0 0x4000>, - <0x2 0xa3000400 0x0 0x4000>, - <0x2 0xa3000800 0x0 0x4000>, - <0x2 0xa3000a00 0x0 0x4000>, - <0x2 0xa3001000 0x0 0x4000>, - <0x2 0xa3003000 0x0 0x4000>, - <0x2 0xa3003200 0x0 0x4000>, - <0x2 0xa3003800 0x0 0x4000>, - <0x2 0xa3003a00 0x0 0x4000>, - <0x2 0xa3004000 0x0 0x4000>, - <0x2 0xa3005000 0x0 0x4000>, - <0x2 0xa3006000 0x0 0x4000>, - <0x2 0xa3007000 0x0 0x4000>, - <0x2 0xa3008000 0x0 0x4000>, - <0x2 0xa3009000 0x0 0x4000>, - <0x2 0xa300a000 0x0 0x4000>, - <0x2 0xa300b000 0x0 0x4000>, - <0x2 0xa300c000 0x0 0x4000>, - <0x2 0xa300d000 0x0 0x4000>, - <0x2 0xa300e000 0x0 0x4000>, - <0x2 0xa300f000 0x0 0x4000>, - <0x2 0xa3010000 0x0 0x4000>, - <0x2 0xa3018000 0x0 0x4000>, - <0x2 0xa3019000 0x0 0x4000>, - <0x2 0xa301a000 0x0 0x4000>, - <0x2 0xa301b000 0x0 0x4000>, - <0x2 0xa301c000 0x0 0x4000>, - <0x2 0xa301d000 0x0 0x4000>, - <0x2 0xa301e000 0x0 0x4000>, - <0x2 0xa301f000 0x0 0x4000>, - <0x2 0xa3020000 0x0 0x4000>, - <0x2 0xa3028000 0x0 0x4000>, - <0x2 0xa3028400 0x0 0x4000>, - <0x2 0xa3029000 0x0 0x4000>, - <0x2 0xa3040000 0x0 0x20000>, - <0x2 0xa30c0000 0x0 0x10000>, - <0x2 0xa3140000 0x0 0x1c000>, - <0x2 0xa3200000 0x0 0x4000>, - <0x2 0xa3244000 0x0 0x4000>, - <0x2 0xa0000000 0x0 0x8000>, - <0x2 0xa0020000 0x0 0x4000>, - <0x2 0xa3250000 0x0 0x4000>; - power-domains = <&ps_atc0_usb_aon>, <&ps_atc0_common>, <&ps_atc0_phymxwrap>, <&ps_atc0_common_dp_0>, <&ps_atc0_common_dp_1>, <&ps_atc0_common_dp_2>, <&ps_atc0_common_dp_3>; + usb0_dart: iommu@2a2f00000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x2 0xa2f00000 0x0 0xc000>; + interrupts = ; + power-domains = <&ps_atc0_usb>; + #iommu-cells = <1>; status = "disabled"; }; - usb0_dart: iommu@2a2f00000 { + usb0_dart1: iommu@2a2f80000 { compatible = "apple,t6050-dart", "apple,t8110-dart"; - reg = <0x2 0xa2f00000 0x0 0xc000>, - <0x2 0xa2f80000 0x0 0xc000>; + reg = <0x2 0xa2f80000 0x0 0xc000>; interrupts = ; power-domains = <&ps_atc0_usb>; #iommu-cells = <1>; status = "disabled"; }; + /* ADT usb-drd0: reg[0] (core and Apple regions) and reg[1] (drd-cfg), as usb_drd2 */ usb_drd0: usb@2a2280000 { - compatible = "apple,t6050-dwc3", "apple,dwc3"; - reg = <0x2 0xa2280000 0x0 0x11800>, - <0x2 0xa2200000 0x0 0x4000>, - <0x2 0xa228c000 0x0 0x5800>, - <0x2 0xa2a84000 0x0 0x4000>, - <0x2 0xa2800000 0x0 0x4000>, - <0x2 0xa2a80000 0x0 0x4000>, - <0x2 0xa2080000 0x0 0x4000>, - <0x2 0xa228d000 0x0 0x4000>, - <0x2 0xa2980000 0x0 0x4000>, - <0x2 0x86758000 0x0 0x8>; - interrupts = , - , - , - ; - iommus = <&usb0_dart 1>; + compatible = "apple,t6050-dwc3", "apple,t8103-dwc3"; + reg = <0x2 0xa2280000 0x0 0xcd00>, + <0x2 0xa228cd00 0x0 0x4b00>, + <0x2 0xa2200000 0x0 0x4000>; + reg-names = "dwc3-core", "dwc3-apple", "drd-cfg"; + interrupts = ; + iommus = <&usb0_dart 0>, <&usb0_dart1 1>; power-domains = <&ps_atc0_usb>; status = "disabled"; }; @@ -2606,7 +2334,7 @@ }; usb_auss0: usb@3953f0000 { - compatible = "apple,t6050-dwc3", "apple,dwc3"; + compatible = "apple,t6050-usb-auss"; reg = <0x3 0x953f0000 0x0 0x4600>, <0x3 0x95800000 0x0 0x4000>, <0x3 0x95803c00 0x0 0x4000>, @@ -2678,30 +2406,6 @@ }; #if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J873S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) - disp0: display-engine@488000000 { - compatible = "apple,t6050-display-engine", "apple,display-engine"; - reg = <0x4 0x88000000 0x0 0x4000000>, - <0x4 0x8a240000 0x0 0x10000>, - <0x4 0x8a3ac000 0x0 0x4000>, - <0x4 0x8a800000 0x0 0x800000>, - <0x2 0x86700000 0x0 0x114000>; - interrupts = , - , - , - , - , - , - , - , - , - , - , - , - ; - iommus = <&disp0_dart 0>, <&disp0_dart 16>; - clocks = <&peripheral_clocks 361>, <&peripheral_clocks 458>; - status = "disabled"; - }; #endif #if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J873S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) @@ -2737,21 +2441,42 @@ #endif #if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J873S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) + /* The ASC v4 mailbox at dcp + 0x8000; the first four ADT interrupts in mailbox order */ + dcp_mbox: mailbox@48ae08000 { + compatible = "apple,t6050-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x4 0x8ae08000 0x0 0x4000>; + interrupts = , + , + , + ; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + status = "disabled"; + }; + + /* + * ADT dcp reg[0] (its ASC, the first 0x4000) and reg[1] (iop-vbar), disp0 reg[0..4] + * (display registers and the PMC metadata), as the reviewed dcpext0. + */ dcp: dcp@48ae00000 { compatible = "apple,t6050-dcp", "apple,dcp"; - reg = <0x4 0x8ae00000 0x0 0x88000>, + reg = <0x4 0x8ae00000 0x0 0x4000>, + <0x4 0x88000000 0x0 0x4000000>, + <0x4 0x8a240000 0x0 0x10000>, + <0x4 0x8a3ac000 0x0 0x4000>, + <0x4 0x8a800000 0x0 0x800000>, + <0x2 0x86700000 0x0 0x114000>, <0x4 0x8a850000 0x0 0x4000>; - interrupts = , - , - , - , - , - , - , - ; - iommus = <&dcp_dart 23>, <&dcp_dart 24>; - power-domains = <&ps_disp_fe>, <&ps_disp_cpu>; + reg-names = "coproc", "disp-0", "disp-1", "disp-2", "disp-3", "disp-4", "iop-vbar"; + mboxes = <&dcp_mbox>; + mbox-names = "mbox"; + iommus = <&dcp_dart 23>; status = "disabled"; + + piodma { + iommus = <&disp0_dart 16>; + }; }; #endif @@ -2777,10 +2502,10 @@ #if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J873S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) admac_disp0: dma-controller@48a140000 { - compatible = "apple,t6050-admac", "apple,admac"; - reg = <0x4 0x8a140000 0x0 0x24000>, - <0x2 0x88328000 0x0 0x8>; - interrupts = ; + compatible = "apple,t6050-admac", "apple,t8140-admac"; + reg = <0x4 0x8a140000 0x0 0x24000>; + dma-channels = <1>; + interrupts-extended = <&aic AIC_IRQ 0 1012 IRQ_TYPE_LEVEL_HIGH>, <0>, <0>, <0>; iommus = <&disp0_isoc_dart 30>; #dma-cells = <1>; status = "disabled"; @@ -2815,10 +2540,10 @@ }; admac_dispext0: dma-controller@2b2140000 { - compatible = "apple,t6050-admac", "apple,admac"; - reg = <0x2 0xb2140000 0x0 0x24000>, - <0x2 0x88328000 0x0 0x8>; - interrupts = ; + compatible = "apple,t6050-admac", "apple,t8140-admac"; + reg = <0x2 0xb2140000 0x0 0x24000>; + dma-channels = <1>; + interrupts-extended = <&aic AIC_IRQ 0 1092 IRQ_TYPE_LEVEL_HIGH>, <0>, <0>, <0>; iommus = <&dispext0_isoc_dart 30>; #dma-cells = <1>; status = "disabled"; @@ -2832,28 +2557,6 @@ status = "disabled"; }; - dispext1: display-engine@390000000 { - compatible = "apple,t6050-display-engine", "apple,display-engine"; - reg = <0x3 0x90000000 0x0 0x4000000>, - <0x3 0x92240000 0x0 0x10000>, - <0x3 0x923ac000 0x0 0x4000>, - <0x3 0x92800000 0x0 0x800000>, - <0x2 0x86700000 0x0 0x114000>; - interrupts = , - , - , - , - , - , - , - , - , - , - , - ; - iommus = <&dispext1_dart 0>, <&dispext1_dart 16>; - status = "disabled"; - }; dcpext1_expert: dcp-expert@3923ac058 { compatible = "apple,t6050-dcp-expert", "apple,dcp-expert"; @@ -2864,19 +2567,42 @@ status = "disabled"; }; + /* The ASC v4 mailbox at dcpext1 + 0x8000; the first four ADT interrupts in mailbox order */ + dcpext1_mbox: mailbox@392e08000 { + compatible = "apple,t6050-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x3 0x92e08000 0x0 0x4000>; + interrupts = , + , + , + ; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + status = "disabled"; + }; + + /* + * ADT dcpext1 reg[0] (its ASC, the first 0x4000) and reg[1] (iop-vbar), dispext1 reg[0..4] + * (display registers and the PMC metadata), as the reviewed dcpext0. + */ dcpext1: dcp@392e00000 { - compatible = "apple,t6050-dcp", "apple,dcp"; - reg = <0x3 0x92e00000 0x0 0x88000>, + compatible = "apple,t6050-dcpext", "apple,dcpext"; + reg = <0x3 0x92e00000 0x0 0x4000>, + <0x3 0x90000000 0x0 0x4000000>, + <0x3 0x92240000 0x0 0x10000>, + <0x3 0x923ac000 0x0 0x4000>, + <0x3 0x92800000 0x0 0x800000>, + <0x2 0x86700000 0x0 0x114000>, <0x3 0x92850000 0x0 0x4000>; - interrupts = , - , - , - , - , - , - ; - iommus = <&dcpext1_dart 23>, <&dcpext1_dart 24>; + reg-names = "coproc", "disp-0", "disp-1", "disp-2", "disp-3", "disp-4", "iop-vbar"; + mboxes = <&dcpext1_mbox>; + mbox-names = "mbox"; + iommus = <&dcpext1_dart 23>; status = "disabled"; + + piodma { + iommus = <&dispext1_dart 16>; + }; }; dcpext1_dart: iommu@392340000 { @@ -2905,10 +2631,10 @@ }; admac_dispext1: dma-controller@392140000 { - compatible = "apple,t6050-admac", "apple,admac"; - reg = <0x3 0x92140000 0x0 0x24000>, - <0x2 0x88328000 0x0 0x8>; - interrupts = ; + compatible = "apple,t6050-admac", "apple,t8140-admac"; + reg = <0x3 0x92140000 0x0 0x24000>; + dma-channels = <1>; + interrupts-extended = <&aic AIC_IRQ 0 1164 IRQ_TYPE_LEVEL_HIGH>, <0>, <0>, <0>; iommus = <&dispext1_isoc_dart 30>; #dma-cells = <1>; status = "disabled"; @@ -2922,27 +2648,6 @@ status = "disabled"; }; - dispext2: display-engine@300000000 { - compatible = "apple,t6050-display-engine", "apple,display-engine"; - reg = <0x3 0x0 0x0 0x4000000>, - <0x3 0x2240000 0x0 0x10000>, - <0x3 0x23ac000 0x0 0x4000>, - <0x3 0x2800000 0x0 0x800000>, - <0x2 0x86700000 0x0 0x114000>; - interrupts = , - , - , - , - , - , - , - , - , - , - ; - iommus = <&dispext2_dart 0>, <&dispext2_dart 16>; - status = "disabled"; - }; dcpext2_expert: dcp-expert@3023ac058 { compatible = "apple,t6050-dcp-expert", "apple,dcp-expert"; @@ -2953,20 +2658,42 @@ status = "disabled"; }; + /* The ASC v4 mailbox at dcpext2 + 0x8000; the first four ADT interrupts in mailbox order */ + dcpext2_mbox: mailbox@302e08000 { + compatible = "apple,t6050-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x3 0x2e08000 0x0 0x4000>; + interrupts = , + , + , + ; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + status = "disabled"; + }; + + /* + * ADT dcpext2 reg[0] (its ASC, the first 0x4000) and reg[1] (iop-vbar), dispext2 reg[0..4] + * (display registers and the PMC metadata), as the reviewed dcpext0. + */ dcpext2: dcp@302e00000 { - compatible = "apple,t6050-dcp", "apple,dcp"; - reg = <0x3 0x2e00000 0x0 0x88000>, + compatible = "apple,t6050-dcpext", "apple,dcpext"; + reg = <0x3 0x2e00000 0x0 0x4000>, + <0x3 0x0 0x0 0x4000000>, + <0x3 0x2240000 0x0 0x10000>, + <0x3 0x23ac000 0x0 0x4000>, + <0x3 0x2800000 0x0 0x800000>, + <0x2 0x86700000 0x0 0x114000>, <0x3 0x2850000 0x0 0x4000>; - interrupts = , - , - , - , - , - , - , - ; - iommus = <&dcpext2_dart 23>, <&dcpext2_dart 24>; + reg-names = "coproc", "disp-0", "disp-1", "disp-2", "disp-3", "disp-4", "iop-vbar"; + mboxes = <&dcpext2_mbox>; + mbox-names = "mbox"; + iommus = <&dcpext2_dart 23>; status = "disabled"; + + piodma { + iommus = <&dispext2_dart 16>; + }; }; dcpext2_dart: iommu@302340000 { @@ -2995,10 +2722,10 @@ }; admac_dispext2: dma-controller@302140000 { - compatible = "apple,t6050-admac", "apple,admac"; - reg = <0x3 0x2140000 0x0 0x24000>, - <0x2 0x88328000 0x0 0x8>; - interrupts = ; + compatible = "apple,t6050-admac", "apple,t8140-admac"; + reg = <0x3 0x2140000 0x0 0x24000>; + dma-channels = <1>; + interrupts-extended = <&aic AIC_IRQ 0 1236 IRQ_TYPE_LEVEL_HIGH>, <0>, <0>, <0>; iommus = <&dispext2_isoc_dart 30>; #dma-cells = <1>; status = "disabled"; @@ -3012,27 +2739,6 @@ status = "disabled"; }; - dispext3: display-engine@304000000 { - compatible = "apple,t6050-display-engine", "apple,display-engine"; - reg = <0x3 0x4000000 0x0 0x4000000>, - <0x3 0x6240000 0x0 0x10000>, - <0x3 0x63ac000 0x0 0x4000>, - <0x3 0x6800000 0x0 0x800000>, - <0x2 0x86700000 0x0 0x114000>; - interrupts = , - , - , - , - , - , - , - , - , - , - ; - iommus = <&dispext3_dart 0>, <&dispext3_dart 16>; - status = "disabled"; - }; dcpext3_expert: dcp-expert@3063ac058 { compatible = "apple,t6050-dcp-expert", "apple,dcp-expert"; @@ -3043,20 +2749,42 @@ status = "disabled"; }; + /* The ASC v4 mailbox at dcpext3 + 0x8000; the first four ADT interrupts in mailbox order */ + dcpext3_mbox: mailbox@306e08000 { + compatible = "apple,t6050-asc-mailbox", "apple,asc-mailbox-v4"; + reg = <0x3 0x6e08000 0x0 0x4000>; + interrupts = , + , + , + ; + interrupt-names = "send-empty", "send-not-empty", + "recv-empty", "recv-not-empty"; + #mbox-cells = <0>; + status = "disabled"; + }; + + /* + * ADT dcpext3 reg[0] (its ASC, the first 0x4000) and reg[1] (iop-vbar), dispext3 reg[0..4] + * (display registers and the PMC metadata), as the reviewed dcpext0. + */ dcpext3: dcp@306e00000 { - compatible = "apple,t6050-dcp", "apple,dcp"; - reg = <0x3 0x6e00000 0x0 0x88000>, + compatible = "apple,t6050-dcpext", "apple,dcpext"; + reg = <0x3 0x6e00000 0x0 0x4000>, + <0x3 0x4000000 0x0 0x4000000>, + <0x3 0x6240000 0x0 0x10000>, + <0x3 0x63ac000 0x0 0x4000>, + <0x3 0x6800000 0x0 0x800000>, + <0x2 0x86700000 0x0 0x114000>, <0x3 0x6850000 0x0 0x4000>; - interrupts = , - , - , - , - , - , - , - ; - iommus = <&dcpext3_dart 23>, <&dcpext3_dart 24>; + reg-names = "coproc", "disp-0", "disp-1", "disp-2", "disp-3", "disp-4", "iop-vbar"; + mboxes = <&dcpext3_mbox>; + mbox-names = "mbox"; + iommus = <&dcpext3_dart 23>; status = "disabled"; + + piodma { + iommus = <&dispext3_dart 16>; + }; }; dcpext3_dart: iommu@306340000 { @@ -3085,10 +2813,10 @@ }; admac_dispext3: dma-controller@306140000 { - compatible = "apple,t6050-admac", "apple,admac"; - reg = <0x3 0x6140000 0x0 0x24000>, - <0x2 0x88328000 0x0 0x8>; - interrupts = ; + compatible = "apple,t6050-admac", "apple,t8140-admac"; + reg = <0x3 0x6140000 0x0 0x24000>; + dma-channels = <1>; + interrupts-extended = <&aic AIC_IRQ 0 1308 IRQ_TYPE_LEVEL_HIGH>, <0>, <0>, <0>; iommus = <&dispext3_isoc_dart 30>; #dma-cells = <1>; status = "disabled"; @@ -3212,7 +2940,7 @@ , , ; - iommus = <&ave0_dart 0>; + iommus = <&ave0_dart 0>, <&ave0_dart1 0>; power-domains = <&ps_venc0_sys>, <&ps_venc0_pipe4>, <&ps_venc0_pipe5>, <&ps_venc0_me0>, <&ps_venc0_me1>, <&ps_venc0_dma>; clocks = <&peripheral_clocks 503>; status = "disabled"; @@ -3221,10 +2949,17 @@ ave0_dart: iommu@22830a0000 { compatible = "apple,t6050-dart", "apple,t8110-dart"; reg = <0x22 0x830a0000 0x0 0xc000>, - <0x22 0x83080000 0x0 0xc000>, - <0x22 0x83094000 0x0 0x4000>, - <0x22 0x830b0000 0x0 0x4000>, - <0x2 0x74000000 0x0 0x4000>; + <0x22 0x830b0000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_venc0_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave0_dart1: iommu@2283080000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x22 0x83080000 0x0 0xc000>, + <0x22 0x83094000 0x0 0x4000>; interrupts = ; power-domains = <&ps_venc0_sys>; #iommu-cells = <1>; @@ -3243,7 +2978,7 @@ , , ; - iommus = <&ave1_dart 0>; + iommus = <&ave1_dart 0>, <&ave1_dart1 0>; power-domains = <&ps_venc1_sys>, <&ps_venc1_pipe4>, <&ps_venc1_pipe5>, <&ps_venc1_me0>, <&ps_venc1_me1>, <&ps_venc1_dma>; clocks = <&peripheral_clocks 504>; status = "disabled"; @@ -3252,10 +2987,17 @@ ave1_dart: iommu@23a30a0000 { compatible = "apple,t6050-dart", "apple,t8110-dart"; reg = <0x23 0xa30a0000 0x0 0xc000>, - <0x23 0xa3080000 0x0 0xc000>, - <0x23 0xa3094000 0x0 0x4000>, - <0x23 0xa30b0000 0x0 0x4000>, - <0x2 0x74000000 0x0 0x4000>; + <0x23 0xa30b0000 0x0 0x4000>; + interrupts = ; + power-domains = <&ps_venc1_sys>; + #iommu-cells = <1>; + status = "disabled"; + }; + + ave1_dart1: iommu@23a3080000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x23 0xa3080000 0x0 0xc000>, + <0x23 0xa3094000 0x0 0x4000>; interrupts = ; power-domains = <&ps_venc1_sys>; #iommu-cells = <1>; @@ -3326,7 +3068,7 @@ }; ane0: neural-processor@508000000 { - compatible = "apple,t6050-ane", "apple,ane"; + compatible = "apple,t6050-ane"; reg = <0x5 0x8000000 0x0 0x2000000>, <0x2 0x80900000 0x0 0x18000>, <0x2 0x80920000 0x0 0x4000>, @@ -3334,9 +3076,12 @@ <0x2 0x12000000 0x0 0xff4000>, <0x5 0x84000000 0x0 0x2000000>, <0x2 0x88374000 0x0 0x4000>; + reg-names = "engine", "pmgr", "aux-0", "aux-1", "aux-2", + "aux-3", "aux-4"; interrupts = , ; - iommus = <&ane0_dart 0>, <&ane0_dart 11>; + /* Stream 0 of each DART, as on T6041: the MPM stream 11 is not the host's. */ + iommus = <&ane0_dart 0>, <&ane0_dart1 0>, <&ane0_dart2 0>; power-domains = <&ps_ane_cpu>; clocks = <&peripheral_clocks 335>, <&peripheral_clocks 334>, <&peripheral_clocks 381>; status = "disabled"; @@ -3345,14 +3090,28 @@ ane0_dart: iommu@509800000 { compatible = "apple,t6050-dart", "apple,t8110-dart"; reg = <0x5 0x9800000 0x0 0xc000>, - <0x5 0x9820000 0x0 0xc000>, - <0x5 0x9840000 0x0 0xc000>, <0x5 0x9810000 0x0 0x4000>; interrupts = ; #iommu-cells = <1>; status = "disabled"; }; + ane0_dart1: iommu@509820000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x5 0x9820000 0x0 0xc000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + + ane0_dart2: iommu@509840000 { + compatible = "apple,t6050-dart", "apple,t8110-dart"; + reg = <0x5 0x9840000 0x0 0xc000>; + interrupts = ; + #iommu-cells = <1>; + status = "disabled"; + }; + #if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_J775C) || defined(T6050_J775D) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) avd0: video-decoder@2308000000 { compatible = "apple,t6050-avd", "apple,avd"; @@ -3368,7 +3127,7 @@ #endif sgx: gpu@2300000000 { - compatible = "apple,t6050-gpu", "apple,gpu"; + compatible = "apple,agx-t6050"; reg = <0x23 0x0 0x0 0x3fdc000>, <0x23 0xd00000 0x0 0x177000>; interrupts = , @@ -3408,10 +3167,10 @@ }; admac_leap_ns: dma-controller@293300000 { - compatible = "apple,t6050-admac", "apple,admac"; - reg = <0x2 0x93300000 0x0 0x34000>, - <0x2 0x88328000 0x0 0x8>; - interrupts = ; + compatible = "apple,t6050-admac", "apple,t8140-admac"; + reg = <0x2 0x93300000 0x0 0x34000>; + dma-channels = <9>; + interrupts-extended = <&aic AIC_IRQ 0 639 IRQ_TYPE_LEVEL_HIGH>, <0>, <0>, <0>; iommus = <&aop_dart 10>; #dma-cells = <1>; status = "disabled"; @@ -3427,10 +3186,10 @@ #if defined(T6050_J714C) || defined(T6050_J714S) || defined(T6050_J716C) || defined(T6050_J716S) || defined(T6050_K114C) || defined(T6050_K114S) || defined(T6050_K116C) || defined(T6050_K116S) admac_leap_s: dma-controller@293200000 { - compatible = "apple,t6050-admac", "apple,admac"; - reg = <0x2 0x93200000 0x0 0x34000>, - <0x2 0x88328000 0x0 0x8>; - interrupts = ; + compatible = "apple,t6050-admac", "apple,t8140-admac"; + reg = <0x2 0x93200000 0x0 0x34000>; + dma-channels = <9>; + interrupts-extended = <&aic AIC_IRQ 0 638 IRQ_TYPE_LEVEL_HIGH>, <0>, <0>, <0>; #dma-cells = <1>; status = "disabled"; }; @@ -3531,28 +3290,6 @@ }; #endif -#if defined(T6050_J775C) || defined(T6050_J775D) - apciec3: pcie@1c80000000 { - compatible = "apple,t6050-pciec", "apple,pciec"; - reg = <0x1c 0x80000000 0x0 0x10000000>, - <0x3 0x8c034000 0x0 0x4000>, - <0x3 0x8c020000 0x0 0x8000>, - <0x3 0x8c038000 0x0 0x4000>, - <0x3 0x8c060000 0x0 0x4000>, - <0x3 0x88020000 0x0 0x4000>, - <0x3 0x8c02c000 0x0 0x4000>, - <0x3 0x8c028000 0x0 0x4000>; - interrupts = , - , - , - , - , - ; - power-domains = <&ps_atc3_usb_aon>, <&ps_atc3_pcie>; - status = "disabled"; - }; -#endif - #if defined(T6050_J775C) || defined(T6050_J775D) apciec3_dart: iommu@38c000000 { compatible = "apple,t6050-dart", "apple,t8110-dart"; @@ -3616,11 +3353,14 @@ #endif #if defined(T6050_J775C) || defined(T6050_J873S) - lpdptx_phy0: phy@29c240000 { - compatible = "apple,t6050-dptx-phy", "apple,dptx-phy"; - reg = <0x2 0x9c240000 0x0 0x10000>, - <0x2 0x9c200000 0x0 0x4000>; + lpdptx_phy0: phy@29c200000 { + compatible = "apple,t6050-dptx-phy"; + reg = <0x2 0x9c200000 0x0 0x4000>, + <0x2 0x9c240000 0x0 0x10000>; + reg-names = "core", "dptx"; power-domains = <&ps_dptx_phy>; + #phy-cells = <0>; + #reset-cells = <0>; status = "disabled"; }; #endif From f67926c275eafc7881c1df6c31b40d5f04d540b5 Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 18:14:44 +1100 Subject: [PATCH 12/13] dt-bindings: apple: Add the T6050 inventory compatibles Describe the T6050 blocks of t6050-peripherals.dtsi in the shared Apple bindings, with the register and interrupt counts of the ADT records: - Added to existing entries with the same shape: AES (T6041's three windows), AIC timebase, AON PTD, DisplayPort input, PCIe and PCIe-C PIODMA, SPI, PMGR clocks (60 windows), RSM (T6032's), secure mailbox (T8142's), UART (T8140's), DCP and DCP expert, AVE, JPEG (T8132's), ProRes (two or five windows), AOP2, the secure ADMAC. - With a T6050 branch: the SoC error handler (214 windows, 105 interrupts) and event log (141, 23), the SIO (two windows, four interrupts), the SEP (its mailbox interrupts, no mailbox node yet), the PMP v2 (four windows and interrupts, two power domains), the ANE (the T6041 layout, three clocks, one power domain) and the GPU block. - New: the T6050 ISP, whose ADT node lists the coprocessor and two PMGR windows instead of in-block mailbox windows, and the AUSS USB controller. Properties only a driver needs (resets and role switching for dwc3, the SEP and PMP mailboxes, the GPU's firmware regions, the secure ADMAC's channels and interrupt) are required for enabled nodes only, as the ISP binding already does, so a disabled description from the ADT validates. The display engine binding goes, as nothing uses it now. Assisted-by: LLM Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> --- .../bindings/clock/apple,pmgr-clocks.yaml | 12 ++++ .../devicetree/bindings/crypto/apple,aes.yaml | 2 + .../bindings/display/apple,dcp-expert.yaml | 5 +- .../bindings/display/apple,dcp.yaml | 1 + .../bindings/display/apple,dpin.yaml | 2 + .../bindings/dma/apple,admac-secure.yaml | 19 +++-- .../bindings/dma/apple,pcie-piodma.yaml | 2 + .../bindings/dma/apple,pciec-piodma.yaml | 2 + .../devicetree/bindings/dma/apple,sio.yaml | 39 ++++++++++- .../edac/apple,soc-error-handler.yaml | 34 +++++++++ .../devicetree/bindings/gpu/apple,agx.yaml | 38 +++++++++- .../mailbox/apple,secure-mailbox.yaml | 4 +- .../devicetree/bindings/media/apple,jpeg.yaml | 3 + .../bindings/media/apple,prores.yaml | 20 +++++- .../bindings/media/apple,t6050-isp.yaml | 70 +++++++++++++++++++ .../bindings/media/apple,t8140-ave.yaml | 3 + .../devicetree/bindings/npu/apple,ane.yaml | 42 ++++++++++- .../bindings/serial/samsung_uart.yaml | 4 +- .../bindings/soc/apple/apple,aon-ptd.yaml | 2 + .../bindings/soc/apple/apple,aop2.yaml | 15 +++- .../bindings/soc/apple/apple,pmp.yaml | 53 +++++++++++--- .../bindings/soc/apple/apple,rsm.yaml | 6 +- .../bindings/soc/apple/apple,sep.yaml | 42 ++++++++++- .../devicetree/bindings/spi/apple,spi.yaml | 1 + .../bindings/timer/apple,aic-timebase.yaml | 1 + .../devicetree/bindings/usb/apple,dwc3.yaml | 13 +++- .../bindings/usb/apple,usb-auss.yaml | 44 ++++++++++++ 27 files changed, 447 insertions(+), 32 deletions(-) create mode 100644 Documentation/devicetree/bindings/media/apple,t6050-isp.yaml create mode 100644 Documentation/devicetree/bindings/usb/apple,usb-auss.yaml diff --git a/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml b/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml index 31d13c93d120e..c64b5fe809a65 100644 --- a/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml +++ b/Documentation/devicetree/bindings/clock/apple,pmgr-clocks.yaml @@ -27,6 +27,7 @@ select: - apple,t6000-pmgr-clocks - apple,t6032-pmgr-clocks - apple,t6041-pmgr-clocks + - apple,t6050-pmgr-clocks - apple,t8103-pmgr-clocks - apple,t8132-pmgr-clocks - apple,t8140-pmgr-clocks @@ -93,6 +94,7 @@ allOf: - enum: - apple,t6000-pmgr-clocks - apple,t6041-pmgr-clocks + - apple,t6050-pmgr-clocks - apple,t8103-pmgr-clocks - apple,t8140-pmgr-clocks - apple,t8142-pmgr-clocks @@ -137,6 +139,16 @@ allOf: reg: minItems: 63 maxItems: 63 + - if: + properties: + compatible: + contains: + const: apple,t6050-pmgr-clocks + then: + properties: + reg: + minItems: 60 + maxItems: 60 - if: properties: compatible: diff --git a/Documentation/devicetree/bindings/crypto/apple,aes.yaml b/Documentation/devicetree/bindings/crypto/apple,aes.yaml index 57f7a93b5b284..3dac40bd0ff3e 100644 --- a/Documentation/devicetree/bindings/crypto/apple,aes.yaml +++ b/Documentation/devicetree/bindings/crypto/apple,aes.yaml @@ -26,6 +26,7 @@ select: - apple,t6031-aes - apple,t6032-aes - apple,t6041-aes + - apple,t6050-aes - apple,t8103-aes - apple,t8112-aes - apple,t8122-aes @@ -121,6 +122,7 @@ allOf: - apple,t6030-aes - apple,t6031-aes - apple,t6041-aes + - apple,t6050-aes - apple,t8103-aes - apple,t8112-aes - apple,t8122-aes diff --git a/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml b/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml index 0d85582addd62..47c47f880f2ee 100644 --- a/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml +++ b/Documentation/devicetree/bindings/display/apple,dcp-expert.yaml @@ -20,6 +20,7 @@ select: contains: enum: - apple,t6041-dcp-expert + - apple,t6050-dcp-expert - apple,t8132-dcp-expert - apple,t8140-dcp-expert required: @@ -58,7 +59,9 @@ allOf: compatible: oneOf: - items: - - const: apple,t6041-dcp-expert + - enum: + - apple,t6041-dcp-expert + - apple,t6050-dcp-expert - const: apple,dcp-expert - items: - const: apple,t8140-dcp-expert diff --git a/Documentation/devicetree/bindings/display/apple,dcp.yaml b/Documentation/devicetree/bindings/display/apple,dcp.yaml index 9bfdd95d94896..3db18e058dce3 100644 --- a/Documentation/devicetree/bindings/display/apple,dcp.yaml +++ b/Documentation/devicetree/bindings/display/apple,dcp.yaml @@ -24,6 +24,7 @@ properties: - apple,t6000-dcp - apple,t6020-dcp - apple,t6041-dcp + - apple,t6050-dcp - apple,t8140-dcp - apple,t8142-dcp - const: apple,dcp diff --git a/Documentation/devicetree/bindings/display/apple,dpin.yaml b/Documentation/devicetree/bindings/display/apple,dpin.yaml index bb4ca4c234236..7fa77a6595c57 100644 --- a/Documentation/devicetree/bindings/display/apple,dpin.yaml +++ b/Documentation/devicetree/bindings/display/apple,dpin.yaml @@ -25,6 +25,7 @@ select: - apple,t6031-dpin - apple,t6032-dpin - apple,t6041-dpin + - apple,t6050-dpin - apple,t8103-dpin - apple,t8112-dpin - apple,t8122-dpin @@ -101,6 +102,7 @@ allOf: - apple,t6030-dpin - apple,t6031-dpin - apple,t6041-dpin + - apple,t6050-dpin - apple,t8103-dpin - apple,t8112-dpin - apple,t8122-dpin diff --git a/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml b/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml index bb8ee4570b6bd..babef429f5407 100644 --- a/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml +++ b/Documentation/devicetree/bindings/dma/apple,admac-secure.yaml @@ -19,11 +19,24 @@ description: | allOf: - $ref: dma-controller.yaml# + - if: + properties: + compatible: + contains: + const: apple,t8140-admac-secure + then: + required: + - dma-channels + - interrupts + - iommus + - power-domains properties: compatible: items: - - const: apple,t8140-admac-secure + - enum: + - apple,t6050-admac-secure + - apple,t8140-admac-secure - const: apple,admac-secure reg: @@ -48,9 +61,5 @@ required: - compatible - reg - '#dma-cells' - - dma-channels - - interrupts - - iommus - - power-domains additionalProperties: false diff --git a/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml b/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml index 1fc76061f0644..efcb5312e0bdb 100644 --- a/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml +++ b/Documentation/devicetree/bindings/dma/apple,pcie-piodma.yaml @@ -29,6 +29,7 @@ select: - apple,t8122-pcie-piodma - apple,t8132-pcie-piodma - apple,t8142-pcie-piodma + - apple,t6050-pcie-piodma - apple,t8152-pcie-piodma required: - compatible @@ -113,6 +114,7 @@ allOf: - apple,t8112-pcie-piodma - apple,t8122-pcie-piodma - apple,t8142-pcie-piodma + - apple,t6050-pcie-piodma - apple,t8152-pcie-piodma - const: apple,pcie-piodma diff --git a/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml index ba0f87c3ffbae..f1a164d3e15e7 100644 --- a/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml +++ b/Documentation/devicetree/bindings/dma/apple,pciec-piodma.yaml @@ -31,6 +31,7 @@ select: - apple,t8122-pciec-piodma - apple,t8132-pciec-piodma - apple,t8142-pciec-piodma + - apple,t6050-pciec-piodma - apple,t8152-pciec-piodma required: - compatible @@ -117,6 +118,7 @@ allOf: - apple,t8112-pciec-piodma - apple,t8122-pciec-piodma - apple,t8142-pciec-piodma + - apple,t6050-pciec-piodma - apple,t8152-pciec-piodma - const: apple,pciec-piodma diff --git a/Documentation/devicetree/bindings/dma/apple,sio.yaml b/Documentation/devicetree/bindings/dma/apple,sio.yaml index 66e881608d388..ad512ac8491df 100644 --- a/Documentation/devicetree/bindings/dma/apple,sio.yaml +++ b/Documentation/devicetree/bindings/dma/apple,sio.yaml @@ -22,17 +22,47 @@ allOf: properties: compatible: contains: - const: apple,t8132-sio + const: apple,t6050-sio required: - compatible then: properties: - reg: + interrupts: + minItems: 4 + clocks: minItems: 2 maxItems: 2 + required: + - interrupts + else: + properties: + interrupts: false + - if: + properties: + compatible: + contains: + const: apple,t8132-sio + required: + - compatible + then: + properties: clocks: minItems: 3 maxItems: 3 + - if: + properties: + compatible: + contains: + enum: + - apple,t6050-sio + - apple,t8132-sio + required: + - compatible + then: + properties: + reg: + minItems: 2 + maxItems: 2 status: const: disabled required: @@ -84,6 +114,7 @@ properties: - apple,t8112-sio - apple,t8132-sio - apple,t8140-sio + - apple,t6050-sio - const: apple,sio - description: T6041 firmware requires a generation-specific backend. const: apple,t6041-sio @@ -100,6 +131,10 @@ properties: minItems: 1 maxItems: 3 + interrupts: + maxItems: 4 + description: On T6050, the coprocessor's mailbox interrupts in ADT order. + status: true '#dma-cells': diff --git a/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml b/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml index dfc99661e5b58..41b120ac6fc37 100644 --- a/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml +++ b/Documentation/devicetree/bindings/edac/apple,soc-error-handler.yaml @@ -37,6 +37,8 @@ select: - apple,t6031-event-log - apple,t6041-error-handler - apple,t6041-event-log + - apple,t6050-error-handler + - apple,t6050-event-log - apple,t8103-error-handler - apple,t8103-event-log - apple,t8112-error-handler @@ -129,6 +131,7 @@ allOf: - apple,t6030-error-handler - apple,t6031-error-handler - apple,t6041-error-handler + - apple,t6050-error-handler - apple,t8103-error-handler - apple,t8112-error-handler - apple,t8122-error-handler @@ -147,6 +150,7 @@ allOf: - apple,t6030-event-log - apple,t6031-event-log - apple,t6041-event-log + - apple,t6050-event-log - apple,t8103-event-log - apple,t8112-event-log - apple,t8122-event-log @@ -251,6 +255,36 @@ allOf: maxItems: 25 required: - reg + - if: + properties: + compatible: + contains: + const: apple,t6050-error-handler + then: + properties: + interrupts: + minItems: 105 + maxItems: 105 + reg: + minItems: 214 + maxItems: 214 + required: + - reg + - if: + properties: + compatible: + contains: + const: apple,t6050-event-log + then: + properties: + interrupts: + minItems: 23 + maxItems: 23 + reg: + minItems: 141 + maxItems: 141 + required: + - reg - if: properties: compatible: diff --git a/Documentation/devicetree/bindings/gpu/apple,agx.yaml b/Documentation/devicetree/bindings/gpu/apple,agx.yaml index 882756aa0067d..202544c07b0bb 100644 --- a/Documentation/devicetree/bindings/gpu/apple,agx.yaml +++ b/Documentation/devicetree/bindings/gpu/apple,agx.yaml @@ -19,6 +19,7 @@ properties: - apple,agx-g14s - apple,agx-t6040 - apple,agx-t6041 + - apple,agx-t6050 - apple,agx-t8132 - apple,agx-t8140 - items: @@ -47,6 +48,12 @@ properties: power-domains: maxItems: 1 + interrupts: + maxItems: 8 + description: + The GPU block's interrupt outputs, as the ADT lists them. Only + described on T6050, whose GPU is not driven from Linux yet. + dma-noncoherent: true mboxes: @@ -204,10 +211,37 @@ properties: required: - compatible - reg - - mboxes - - memory-region allOf: + - if: + properties: + compatible: + contains: + const: apple,agx-t6050 + then: + description: + The T6050 GPU block, described from the ADT /arm-io/sgx node. Its + firmware coprocessor is a separate node, and the GPU stays disabled + until the firmware handoff is supported. + properties: + reg: + items: + - description: GPU block MMIO registers + - description: GPU block secondary registers + interrupts: + minItems: 8 + status: + const: disabled + required: + - interrupts + - power-domains + - status + else: + properties: + interrupts: false + required: + - mboxes + - memory-region - if: properties: compatible: diff --git a/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml b/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml index 6b50540015458..737c0059f836e 100644 --- a/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml +++ b/Documentation/devicetree/bindings/mailbox/apple,secure-mailbox.yaml @@ -20,7 +20,9 @@ properties: - const: apple,t8152-secure-mailbox - const: apple,secure-mailbox - items: - - const: apple,t8142-secure-mailbox + - enum: + - apple,t6050-secure-mailbox + - apple,t8142-secure-mailbox - const: apple,secure-mailbox - items: - const: apple,t8140-secure-mailbox diff --git a/Documentation/devicetree/bindings/media/apple,jpeg.yaml b/Documentation/devicetree/bindings/media/apple,jpeg.yaml index bbab1e49d9f50..7571f1969c42c 100644 --- a/Documentation/devicetree/bindings/media/apple,jpeg.yaml +++ b/Documentation/devicetree/bindings/media/apple,jpeg.yaml @@ -37,6 +37,7 @@ select: - apple,t8112-jpeg - apple,t8122-jpeg - apple,t8132-jpeg + - apple,t6050-jpeg - apple,t8140-jpeg required: - compatible @@ -55,6 +56,7 @@ allOf: contains: enum: - apple,t8132-jpeg + - apple,t6050-jpeg required: - compatible then: @@ -63,6 +65,7 @@ allOf: items: - enum: - apple,t8132-jpeg + - apple,t6050-jpeg - const: apple,jpeg reg: diff --git a/Documentation/devicetree/bindings/media/apple,prores.yaml b/Documentation/devicetree/bindings/media/apple,prores.yaml index 52213425af62b..78514091b76f6 100644 --- a/Documentation/devicetree/bindings/media/apple,prores.yaml +++ b/Documentation/devicetree/bindings/media/apple,prores.yaml @@ -30,6 +30,7 @@ select: - apple,t8112-prores - apple,t8122-prores - apple,t8132-prores + - apple,t6050-prores - apple,t8140-prores required: - compatible @@ -38,12 +39,23 @@ properties: compatible: true allOf: + - if: + properties: + compatible: + contains: + const: apple,t8132-prores + then: + properties: + reg: + minItems: 3 + maxItems: 3 - if: properties: compatible: contains: enum: - apple,t8132-prores + - apple,t6050-prores required: - compatible then: @@ -52,11 +64,15 @@ allOf: items: - enum: - apple,t8132-prores + - apple,t6050-prores - const: apple,prores reg: - minItems: 3 - maxItems: 3 + minItems: 2 + maxItems: 5 + description: + Three windows on T8132. On T6050 the ADT lists two for the first + ProRes instance and five for the second. interrupts: minItems: 2 diff --git a/Documentation/devicetree/bindings/media/apple,t6050-isp.yaml b/Documentation/devicetree/bindings/media/apple,t6050-isp.yaml new file mode 100644 index 0000000000000..ea791487d642e --- /dev/null +++ b/Documentation/devicetree/bindings/media/apple,t6050-isp.yaml @@ -0,0 +1,70 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/media/apple,t6050-isp.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple T6050 image signal processor + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: + The camera image signal processor of the T6050 MacBook Pros (ADT isp0). + Unlike earlier generations its ADT node lists the coprocessor window and + two PMGR windows rather than mailbox and handshake windows inside the ISP + block. Its buffers go through the three instances of the ISP DART. It is + described from the ADT so the device tree lists all of the SoC's + hardware; no driver supports this generation yet and the node stays + disabled. + +select: + properties: + compatible: + contains: + const: apple,t6050-isp + required: + - compatible + +properties: + compatible: + items: + - const: apple,t6050-isp + - const: apple,isp + + reg: + items: + - description: Coprocessor registers + - description: The ISP's PMGR control window + - description: The ISP's PMGR power-state window + + interrupts: + minItems: 5 + maxItems: 5 + + iommus: + items: + - description: Stream 0 of the first ISP DART + - description: Stream 0 of the second ISP DART + - description: Stream 0 of the third ISP DART + + power-domains: + items: + - description: ISP system domain + - description: Camera sensor domain + + clocks: + maxItems: 2 + + status: + const: disabled + +required: + - compatible + - reg + - interrupts + - iommus + - power-domains + - status + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml b/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml index f02744fd0ce6b..1cd9a5c490fad 100644 --- a/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml +++ b/Documentation/devicetree/bindings/media/apple,t8140-ave.yaml @@ -31,6 +31,7 @@ select: - apple,t8112-ave - apple,t8122-ave - apple,t8132-ave + - apple,t6050-ave - apple,t8140-ave required: - compatible @@ -45,6 +46,7 @@ allOf: contains: enum: - apple,t8132-ave + - apple,t6050-ave required: - compatible then: @@ -53,6 +55,7 @@ allOf: items: - enum: - apple,t8132-ave + - apple,t6050-ave - const: apple,ave reg: diff --git a/Documentation/devicetree/bindings/npu/apple,ane.yaml b/Documentation/devicetree/bindings/npu/apple,ane.yaml index 6e50f9f11b233..f85fcc27f24ab 100644 --- a/Documentation/devicetree/bindings/npu/apple,ane.yaml +++ b/Documentation/devicetree/bindings/npu/apple,ane.yaml @@ -31,6 +31,7 @@ properties: - apple,t6021-ane - apple,t6022-ane - apple,t6041-ane + - apple,t6050-ane - apple,t8112-ane - apple,t8140-ane - items: @@ -50,7 +51,7 @@ properties: - description: Fifth auxiliary window clocks: - minItems: 4 + minItems: 3 maxItems: 4 description: Native secondary-engine clock selectors in hardware-description order. @@ -304,6 +305,36 @@ allOf: - apple,ane-type - apple,firmware-preloaded - apple,dapf-ranges + - if: + properties: + compatible: + const: apple,t6050-ane + then: + description: + The T6050 ANE has the T6041 register layout. It is described from the + ADT and stays disabled until its firmware handoff is supported. + properties: + reg: + minItems: 7 + reg-names: + items: + - const: engine + - const: pmgr + - const: aux-0 + - const: aux-1 + - const: aux-2 + - const: aux-3 + - const: aux-4 + clocks: + maxItems: 3 + status: + const: disabled + required: + - status + else: + properties: + clocks: + minItems: 4 - if: properties: compatible: @@ -311,6 +342,7 @@ allOf: enum: - apple,t8140-ane - apple,t6041-ane + - apple,t6050-ane then: properties: interrupt-names: false @@ -410,6 +442,7 @@ allOf: enum: - apple,t8140-ane - apple,t6041-ane + - apple,t6050-ane - apple,t6001-ane else: properties: @@ -430,6 +463,13 @@ allOf: maxItems: 1 required: - clocks + - if: + properties: + compatible: + contains: + enum: + - apple,t6001-ane + - apple,t6050-ane else: properties: clocks: false diff --git a/Documentation/devicetree/bindings/serial/samsung_uart.yaml b/Documentation/devicetree/bindings/serial/samsung_uart.yaml index e1a606f86bce1..391a42f9243d9 100644 --- a/Documentation/devicetree/bindings/serial/samsung_uart.yaml +++ b/Documentation/devicetree/bindings/serial/samsung_uart.yaml @@ -29,7 +29,9 @@ properties: - samsung,exynos850-uart - samsung,exynos8895-uart - items: - - const: apple,t8140-uart + - enum: + - apple,t6050-uart + - apple,t8140-uart - const: apple,s5l-uart - items: - enum: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml b/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml index db9095e79917c..4d4fbb247f17d 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,aon-ptd.yaml @@ -25,6 +25,7 @@ select: - apple,t8140-aon-ptd - apple,t8142-aon-ptd - apple,t8152-aon-ptd + - apple,t6050-aon-ptd required: - compatible @@ -118,6 +119,7 @@ allOf: - apple,t8140-aon-ptd - apple,t8142-aon-ptd - apple,t8152-aon-ptd + - apple,t6050-aon-ptd - const: apple,aon-ptd reg: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml b/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml index 54e5b2d87d875..2e59c01eacf2b 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,aop2.yaml @@ -17,7 +17,9 @@ properties: compatible: oneOf: - items: - - const: apple,t8140-aop2 + - enum: + - apple,t6050-aop2 + - apple,t8140-aop2 - const: apple,aop2 reg: @@ -39,7 +41,16 @@ required: - compatible - reg - interrupts - - power-domains - iommus +allOf: + - if: + properties: + compatible: + contains: + const: apple,t8140-aop2 + then: + required: + - power-domains + additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml b/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml index 6b7874ffa1f46..927dd53f8909e 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,pmp.yaml @@ -27,6 +27,7 @@ properties: - apple,t6030-pmp-v2 - apple,t6031-pmp-v2 - apple,t6041-pmp-v2 + - apple,t6050-pmp-v2 - apple,t8122-pmp-v2 - apple,t8132-pmp-v2 - apple,t8140-pmp-v2 @@ -54,6 +55,10 @@ properties: mbox-names: const: mbox + interrupts: + maxItems: 4 + description: Coprocessor mailbox and status interrupts, on T6050 in ADT order. + iommus: maxItems: 1 @@ -91,6 +96,8 @@ properties: PMGR PMC configuration word from the Apple device tree. Bits 0 and 3 are passed as the boot arguments PMCV and PMCB. + status: true + apple,pmc-msg-disabled: $ref: /schemas/types.yaml#/definitions/uint32 description: Boot argument PMCX, from the Apple device tree. @@ -113,8 +120,6 @@ required: - compatible - reg - iommus - - mboxes - - mbox-names allOf: - if: @@ -130,16 +135,44 @@ allOf: minItems: 2 required: - power-domains - else: - properties: - reg: - maxItems: 2 - power-domains: - maxItems: 1 - required: - - reg-names - mboxes - mbox-names + else: + if: + properties: + compatible: + contains: + const: apple,t6050-pmp-v2 + then: + description: + The T6050 PMP is described from the ADT and stays disabled until its + firmware handoff is supported; its mailbox is not described yet. + properties: + reg: + minItems: 4 + maxItems: 4 + interrupts: + minItems: 4 + maxItems: 4 + power-domains: + minItems: 2 + status: + const: disabled + required: + - interrupts + - power-domains + - status + else: + properties: + reg: + maxItems: 2 + power-domains: + maxItems: 1 + interrupts: false + required: + - reg-names + - mboxes + - mbox-names additionalProperties: false diff --git a/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml b/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml index a357858915714..b7539cbcdb19f 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,rsm.yaml @@ -20,6 +20,7 @@ select: - apple,t6030-rsm - apple,t6031-rsm - apple,t6032-rsm + - apple,t6050-rsm - apple,t8122-rsm - apple,t8140-rsm - apple,t8142-rsm @@ -37,13 +38,16 @@ allOf: contains: enum: - apple,t6032-rsm + - apple,t6050-rsm required: - compatible then: properties: compatible: items: - - const: apple,t6032-rsm + - enum: + - apple,t6032-rsm + - apple,t6050-rsm - const: apple,rsm reg: diff --git a/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml b/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml index 06a404265ab56..4ab4e2439b7aa 100644 --- a/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml +++ b/Documentation/devicetree/bindings/soc/apple/apple,sep.yaml @@ -24,6 +24,7 @@ properties: - enum: - apple,t6030-sep - apple,t6031-sep + - apple,t6050-sep - const: apple,sep reg: @@ -38,6 +39,15 @@ properties: mbox-names: const: mbox + interrupts: + maxItems: 4 + description: + The coprocessor's mailbox interrupts, on a SoC whose SEP mailbox is not + described as a separate node. + + clocks: + maxItems: 1 + iommus: maxItems: 1 @@ -67,13 +77,41 @@ properties: The signed local boot policy of the running boot, added by the bootloader, for the same purpose. + status: true + required: - compatible - reg - - mboxes - - mbox-names - iommus +allOf: + - if: + properties: + compatible: + contains: + const: apple,t6050-sep + then: + description: + The T6050 SEP is described from the ADT and stays disabled until its + mailbox and firmware handoff are supported. + properties: + reg: + minItems: 2 + interrupts: + minItems: 4 + status: + const: disabled + required: + - interrupts + - status + else: + properties: + interrupts: false + clocks: false + required: + - mboxes + - mbox-names + additionalProperties: false examples: diff --git a/Documentation/devicetree/bindings/spi/apple,spi.yaml b/Documentation/devicetree/bindings/spi/apple,spi.yaml index 46f9330f5ea55..62d5afda0d310 100644 --- a/Documentation/devicetree/bindings/spi/apple,spi.yaml +++ b/Documentation/devicetree/bindings/spi/apple,spi.yaml @@ -22,6 +22,7 @@ properties: - apple,t6030-spi - apple,t6031-spi - apple,t6041-spi + - apple,t6050-spi - apple,t8112-spi - apple,t8122-spi - apple,t8132-spi diff --git a/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml b/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml index 34bf3ec296b0f..a433ce43e98fb 100644 --- a/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml +++ b/Documentation/devicetree/bindings/timer/apple,aic-timebase.yaml @@ -21,6 +21,7 @@ properties: - apple,t6021-aic-timebase - apple,t6022-aic-timebase - apple,t6041-aic-timebase + - apple,t6050-aic-timebase - apple,t8103-aic-timebase - apple,t8112-aic-timebase - apple,t8142-aic-timebase diff --git a/Documentation/devicetree/bindings/usb/apple,dwc3.yaml b/Documentation/devicetree/bindings/usb/apple,dwc3.yaml index 3685c126f404c..706d2866f61ba 100644 --- a/Documentation/devicetree/bindings/usb/apple,dwc3.yaml +++ b/Documentation/devicetree/bindings/usb/apple,dwc3.yaml @@ -24,6 +24,17 @@ allOf: then: required: - power-domains + - if: + not: + properties: + status: + const: disabled + required: + - status + then: + required: + - resets + - usb-role-switch $defs: apple,tunable: @@ -115,8 +126,6 @@ required: - reg-names - interrupts - iommus - - resets - - usb-role-switch unevaluatedProperties: false diff --git a/Documentation/devicetree/bindings/usb/apple,usb-auss.yaml b/Documentation/devicetree/bindings/usb/apple,usb-auss.yaml new file mode 100644 index 0000000000000..34d6feeb7e419 --- /dev/null +++ b/Documentation/devicetree/bindings/usb/apple,usb-auss.yaml @@ -0,0 +1,44 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/usb/apple,usb-auss.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Apple AUSS USB controller + +maintainers: + - Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> + +description: + The USB controller in the AUSS block that the T6050 Type-C routers share + (ADT usb-auss0), separate from the per-port controllers. It is described + from the ADT so the device tree lists all of the SoC's hardware; no driver + uses it yet and the node stays disabled. + +properties: + compatible: + const: apple,t6050-usb-auss + + reg: + minItems: 10 + maxItems: 10 + description: Register windows in the ADT's order. + + interrupts: + minItems: 4 + maxItems: 4 + + iommus: + maxItems: 1 + + power-domains: + maxItems: 1 + +required: + - compatible + - reg + - interrupts + - iommus + - power-domains + +additionalProperties: false From ec4ea176f168b0c8002e65f9a2772a4c460bfa6c Mon Sep 17 00:00:00 2001 From: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> Date: Sun, 8 Nov 2026 18:32:22 +1100 Subject: [PATCH 13/13] arm64: dts: apple: adt-coverage: Update the J716s inventory Regenerate the J716s ADT coverage inventory against the J716s tree with the T6050 inventory included. MISSING drops from 941 to 700, mapped rises from 155 to 516; the inventory still lists the same 1603 devices and every DT path in it exists. Assisted-by: LLM Signed-off-by: Ryan Murray <81541646+RyanTheTide@users.noreply.github.com> --- .../dts/apple/adt-coverage/t6050-j716s.txt | 728 +++++++++--------- 1 file changed, 364 insertions(+), 364 deletions(-) diff --git a/arch/arm64/boot/dts/apple/adt-coverage/t6050-j716s.txt b/arch/arm64/boot/dts/apple/adt-coverage/t6050-j716s.txt index 3dc38c61695de..096aa6df9a804 100644 --- a/arch/arm64/boot/dts/apple/adt-coverage/t6050-j716s.txt +++ b/arch/arm64/boot/dts/apple/adt-coverage/t6050-j716s.txt @@ -43,12 +43,12 @@ /arm-io/dynamic-pil - -> MISSING /arm-io/dynamic-pil/cil - -> MISSING /arm-io/dynamic-pil/mil - -> MISSING -/arm-io/i2c5 0x505024000 -> MISSING +/arm-io/i2c5 0x505024000 -> /soc/i2c@505024000 /arm-io/i2c5/mogul-las /arm-io/i2c5@0x10 -> MISSING -/arm-io/i2c7 0x50502c000 -> MISSING +/arm-io/i2c7 0x50502c000 -> /soc/i2c@50502c000 /arm-io/i2c7/disp-bklt /arm-io/i2c7@0x44 -> MISSING -/arm-io/displaymanager - -> MISSING -/arm-io/i2c0 0x505010000 -> MISSING +/arm-io/displaymanager - -> /soc/dcp@48ae00000 +/arm-io/i2c0 0x505010000 -> /soc/i2c@505010000 /arm-io/i2c0/sync-hub-config /arm-io/i2c0@0x20 -> MISSING /arm-io/i2c0/sync-hub-prog /arm-io/i2c0@0x40 -> MISSING /arm-io/i2c1 0x505014000 -> /soc@200000000/i2c@505014000 @@ -57,23 +57,23 @@ /arm-io/i2c1/audio-speaker-left-tweeter /arm-io/i2c1@0x3a -> MISSING /arm-io/i2c2 0x505018000 -> /soc@200000000/i2c@505018000 /arm-io/i2c2/audio-codec-output /arm-io/i2c2@0x4b -> MISSING -/arm-io/i2c3 0x50501c000 -> MISSING +/arm-io/i2c3 0x50501c000 -> /soc/i2c@50501c000 /arm-io/i2c3/audio-speaker-right-woofer-1 /arm-io/i2c3@0x3b -> MISSING /arm-io/i2c3/audio-speaker-right-woofer-2 /arm-io/i2c3@0x3c -> MISSING /arm-io/i2c3/audio-speaker-right-tweeter /arm-io/i2c3@0x3d -> MISSING /arm-io/iop-voicetrigger-controller - -> MISSING /arm-io/iop-voicetrigger-controller/audio-vt-device - -> MISSING -/arm-io/i2c4 0x505020000 -> MISSING +/arm-io/i2c4 0x505020000 -> /soc/i2c@505020000 /arm-io/i2c4/sd-card /arm-io/i2c4@0x20 -> MISSING -/arm-io/i2c6 0x505028000 -> MISSING +/arm-io/i2c6 0x505028000 -> /soc/i2c@505028000 /arm-io/i2c6/uatcrt0 /arm-io/i2c6@0x18 -> MISSING /arm-io/i2c6/uatcrt1 /arm-io/i2c6@0x19 -> MISSING /arm-io/i2c6/uatcrt2 /arm-io/i2c6@0x1a -> MISSING -/arm-io/i2c8 0x505030000 -> MISSING +/arm-io/i2c8 0x505030000 -> /soc/i2c@505030000 /arm-io/i2c8/pcon0 /arm-io/i2c8@0x8 -> MISSING -/arm-io/spi2 0x505108000 -> MISSING +/arm-io/spi2 0x505108000 -> /soc/spi@505108000 /arm-io/spi2/mesa /arm-io/spi2@0x0 -> MISSING -/arm-io/spi4 0x505110000 -> MISSING +/arm-io/spi4 0x505110000 -> /soc/spi@505110000 /arm-io/spi4/dp855 /arm-io/spi4@0x0 -> MISSING /arm-io/spi4/dp855/lcd-pmicwp /arm-io/spi4/dp855@0x4f -> MISSING /arm-io/spi4/dp855/lcd-pmic /arm-io/spi4/dp855@0x74 -> MISSING @@ -86,13 +86,13 @@ /arm-io/spi4/display-temp-sens3 /arm-io/spi4@0x72 -> MISSING /arm-io/nub-spmi-a1 0x28a1a8000 -> /soc@200000000/spmi@28a1a8000 /arm-io/nub-spmi-a1/hpm2 /arm-io/nub-spmi-a1@0xc -> /soc@200000000/spmi@28a1a8000/usb-pd@c -/arm-io/isp0 0x580000000 -> MISSING +/arm-io/isp0 0x580000000 -> /soc/isp@580000000 /arm-io/isp0/:sotra_h17c_0 - -> MISSING /arm-io/isp0/:sotra_h17d_0 - -> MISSING /arm-io/isp0/:sotra_h17s_0 - -> MISSING /arm-io/isp0/:sotra_h17cr1_0 - -> MISSING /arm-io/isp0/:sotra_h17cr2_0 - -> MISSING -/arm-io/dart-isp0 0x5828c0000 -> MISSING +/arm-io/dart-isp0 0x5828c0000 -> /soc/iommu@5828c0000 /arm-io/dart-isp0/:sotra_h17c_45 - -> MISSING /arm-io/dart-isp0/:sotra_h17s_33 - -> MISSING /arm-io/dart-isp0/:sotra_h17d_94 - -> MISSING @@ -104,12 +104,12 @@ /arm-io/dart-isp0/:sotra_h17c_47 - -> MISSING /arm-io/dart-isp0/:sotra_h17d_96 - -> MISSING /arm-io/dart-isp0/:sotra_h17cr2_41 - -> MISSING -/arm-io/dart-isp0/mapper-isp0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-isp0/mapper-isp-mpm - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-isp0/mapper-isp-epipe0-exclave - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-isp0/mapper-isp-epipe1-exclave - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-isp0/mapper-isp-piodma0-exclave - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-isp0/mapper-isp-piodma1-exclave - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. +/arm-io/dart-isp0/mapper-isp0 - -> /soc/iommu@5828c0000 +/arm-io/dart-isp0/mapper-isp-mpm - -> /soc/iommu@5828c0000 +/arm-io/dart-isp0/mapper-isp-epipe0-exclave - -> /soc/iommu@5828c0000 +/arm-io/dart-isp0/mapper-isp-epipe1-exclave - -> /soc/iommu@5828c0000 +/arm-io/dart-isp0/mapper-isp-piodma0-exclave - -> /soc/iommu@5828c0000 +/arm-io/dart-isp0/mapper-isp-piodma1-exclave - -> /soc/iommu@5828c0000 /arm-io/isp-exclave-proxy - -> MISSING /arm-io/pwm0 0x505040000 -> /soc@200000000/pwm@505040000 /arm-io/pwm0/kbd-backlight - -> /led-controller @@ -125,13 +125,13 @@ /arm-io/dart-apcie0/mapper-apcie0-alpha - -> /soc@200000000/iommu@410000000 /arm-io/dart-apcie0/mapper-apcie0-beta - -> /soc@200000000/iommu@410000000 /arm-io/dart-apcie0/mapper-apcie0-piodma - -> /soc@200000000/iommu@410000000 -/arm-io/apcie0-piodma 0x410030000 -> MISSING -/arm-io/dart-apcie1 0x411000000 -> MISSING -/arm-io/dart-apcie1/mapper-apcie1 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-apcie1/mapper-apcie1-piodma - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/apcie1-piodma 0x411030000 -> MISSING -/arm-io/acio-phy-cpu0 0x2a3148000 -> MISSING -/arm-io/acio-phy-cpu0/iop-aciophy0-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. +/arm-io/apcie0-piodma 0x410030000 -> /soc/dma-controller@410030000 +/arm-io/dart-apcie1 0x411000000 -> /soc/iommu@411000000 +/arm-io/dart-apcie1/mapper-apcie1 - -> /soc/iommu@411000000 +/arm-io/dart-apcie1/mapper-apcie1-piodma - -> /soc/iommu@411000000 +/arm-io/apcie1-piodma 0x411030000 -> /soc/dma-controller@411030000 +/arm-io/acio-phy-cpu0 0x2a3148000 -> /soc/phy-coproc@2a3148000 +/arm-io/acio-phy-cpu0/iop-aciophy0-nub - -> /soc/phy-coproc@2a3148000 /arm-io/acio-phy-cpu1 0x2ab148000 -> /soc@200000000/mailbox@2ab148000 /arm-io/acio-phy-cpu1/iop-aciophy1-nub - -> /soc@200000000/mailbox@2ab148000 /arm-io/acio-phy-cpu2 0x383148000 -> /soc@200000000/mailbox@383148000 @@ -150,14 +150,14 @@ /arm-io/dart-mtp 0x294800000 -> /soc@200000000/iommu@294800000 /arm-io/dart-mtp/mapper-mtp - -> /soc@200000000/iommu@294800000 /arm-io/mtp-aop-mux - -> WAIVED: Firmware transport arbitration policy; MTP and AOP hardware are inventoried separately. -/arm-io/secure-repair 0x2881e4000 -> MISSING +/arm-io/secure-repair 0x2881e4000 -> /soc/pinctrl@2881e4000 /arm-io/eic - -> MISSING /arm-io/aod2 - -> MISSING /arm-io/apciec0 0x1c50000000 -> MISSING /arm-io/apciec0/pcic0-bridge - -> WAIVED: PCI root-port topology; PCIe controller hardware is inventoried separately. -/arm-io/dart-apciec0 0x2a4000000 -> MISSING -/arm-io/dart-apciec0/mapper-apciec0-piodma - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/apciec0-piodma 0x2a4068000 -> MISSING +/arm-io/dart-apciec0 0x2a4000000 -> /soc/iommu@2a4000000 +/arm-io/dart-apciec0/mapper-apciec0-piodma - -> /soc/iommu@2a4000000 +/arm-io/apciec0-piodma 0x2a4068000 -> /soc/dma-controller@2a4068000 /arm-io/acio0 0x2a1f00000 -> MISSING /arm-io/dart-acio0 0x2a1a80000 -> MISSING /arm-io/dart-acio0/mapper-acio0-tx-0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. @@ -188,9 +188,9 @@ /arm-io/acio-cpu0/iop-acio0-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. /arm-io/apciec1 0x1c60000000 -> MISSING /arm-io/apciec1/pcic1-bridge - -> WAIVED: PCI root-port topology; PCIe controller hardware is inventoried separately. -/arm-io/dart-apciec1 0x2ac000000 -> MISSING -/arm-io/dart-apciec1/mapper-apciec1-piodma - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/apciec1-piodma 0x2ac068000 -> MISSING +/arm-io/dart-apciec1 0x2ac000000 -> /soc/iommu@2ac000000 +/arm-io/dart-apciec1/mapper-apciec1-piodma - -> /soc/iommu@2ac000000 +/arm-io/apciec1-piodma 0x2ac068000 -> /soc/dma-controller@2ac068000 /arm-io/acio1 0x2a9f00000 -> MISSING /arm-io/dart-acio1 0x2a9a80000 -> MISSING /arm-io/dart-acio1/mapper-acio1-tx-0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. @@ -221,9 +221,9 @@ /arm-io/acio-cpu1/iop-acio1-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. /arm-io/apciec2 0x1c70000000 -> MISSING /arm-io/apciec2/pcic2-bridge - -> WAIVED: PCI root-port topology; PCIe controller hardware is inventoried separately. -/arm-io/dart-apciec2 0x384000000 -> MISSING -/arm-io/dart-apciec2/mapper-apciec2-piodma - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/apciec2-piodma 0x384068000 -> MISSING +/arm-io/dart-apciec2 0x384000000 -> /soc/iommu@384000000 +/arm-io/dart-apciec2/mapper-apciec2-piodma - -> /soc/iommu@384000000 +/arm-io/apciec2-piodma 0x384068000 -> /soc/dma-controller@384068000 /arm-io/acio2 0x381f00000 -> MISSING /arm-io/dart-acio2 0x381a80000 -> MISSING /arm-io/dart-acio2/mapper-acio2-tx-0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. @@ -254,26 +254,26 @@ /arm-io/acio-cpu2/iop-acio2-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. /arm-io/bluetooth - -> /pcie@1cb0000000/pci@0,0/bluetooth@0,2 /arm-io/centauri - -> MISSING -/arm-io/display-crossbar0 - -> MISSING -/arm-io/atc0-dpxbar 0x2a324c000 -> MISSING +/arm-io/display-crossbar0 - -> /soc/dcp@48ae00000 +/arm-io/atc0-dpxbar 0x2a324c000 -> /soc/mux@2a324c000 /arm-io/atc0-dpphy - -> MISSING -/arm-io/atc0-dpin0 0x2a1e50000 -> MISSING -/arm-io/atc0-dpin1 0x2a1e58000 -> MISSING -/arm-io/atc0-dpin2 0x2a1e68000 -> MISSING -/arm-io/atc0-dpin3 0x2a1e70000 -> MISSING -/arm-io/atc1-dpxbar 0x2ab24c000 -> MISSING +/arm-io/atc0-dpin0 0x2a1e50000 -> /soc/dpin@2a1e50000 +/arm-io/atc0-dpin1 0x2a1e58000 -> /soc/dpin@2a1e58000 +/arm-io/atc0-dpin2 0x2a1e68000 -> /soc/dpin@2a1e68000 +/arm-io/atc0-dpin3 0x2a1e70000 -> /soc/dpin@2a1e70000 +/arm-io/atc1-dpxbar 0x2ab24c000 -> /soc/mux@2ab24c000 /arm-io/atc1-dpphy - -> /soc@200000000/phy@2ab000000 -/arm-io/atc1-dpin0 0x2a9e50000 -> MISSING -/arm-io/atc1-dpin1 0x2a9e58000 -> MISSING -/arm-io/atc1-dpin2 0x2a9e68000 -> MISSING -/arm-io/atc1-dpin3 0x2a9e70000 -> MISSING +/arm-io/atc1-dpin0 0x2a9e50000 -> /soc/dpin@2a9e50000 +/arm-io/atc1-dpin1 0x2a9e58000 -> /soc/dpin@2a9e58000 +/arm-io/atc1-dpin2 0x2a9e68000 -> /soc/dpin@2a9e68000 +/arm-io/atc1-dpin3 0x2a9e70000 -> /soc/dpin@2a9e70000 /arm-io/atc2-dpxbar 0x38324c000 -> /soc@200000000/mux@38324c000 /arm-io/atc2-dpphy - -> /soc@200000000/phy@383000000 -/arm-io/atc2-dpin0 0x381e50000 -> MISSING -/arm-io/atc2-dpin1 0x381e58000 -> MISSING -/arm-io/atc2-dpin2 0x381e68000 -> MISSING -/arm-io/atc2-dpin3 0x381e70000 -> MISSING -/arm-io/atc3-dpxbar 0x38b24c000 -> MISSING +/arm-io/atc2-dpin0 0x381e50000 -> /soc/dpin@381e50000 +/arm-io/atc2-dpin1 0x381e58000 -> /soc/dpin@381e58000 +/arm-io/atc2-dpin2 0x381e68000 -> /soc/dpin@381e68000 +/arm-io/atc2-dpin3 0x381e70000 -> /soc/dpin@381e70000 +/arm-io/atc3-dpxbar 0x38b24c000 -> /soc/mux@38b24c000 /arm-io/atc3-dpphy - -> /soc@200000000/phy@38b000000 /arm-io/mcc 0x280620000 -> /soc@200000000/reset-controller@280620000 /arm-io/mcc/:sotra_h17s_2 - -> MISSING @@ -297,10 +297,10 @@ /arm-io/mcc/:sotra_h17cr1_6 - -> MISSING /arm-io/mcc/:sotra_h17cr2_6 - -> MISSING /arm-io/aic 0x280400000 -> /soc@200000000/interrupt-controller@280400000 -/arm-io/aic-timebase 0x280580000 -> MISSING -/arm-io/wdt 0x28836c000 -> /soc@200000000/watchdog@28836c000 +/arm-io/aic-timebase 0x280580000 -> /soc/aic-timebase@280580000 +/arm-io/wdt 0x28836c000 -> MISSING /arm-io/wdt/:sotra_h17d_86 - -> MISSING -/arm-io/error-handler - -> MISSING +/arm-io/error-handler - -> /soc/error-handler@2220000000 /arm-io/error-handler/:sotra_h17d_62 - -> MISSING /arm-io/error-handler/:sotra_h17s_9 - -> MISSING /arm-io/error-handler/:sotra_h17cr1_15 - -> MISSING @@ -428,12 +428,12 @@ /arm-io/error-handler/:sotra_h17s_0 - -> MISSING /arm-io/error-handler/:sotra_h17cr1_0 - -> MISSING /arm-io/error-handler/:sotra_h17cr2_0 - -> MISSING -/arm-io/aes 0x50500c000 -> MISSING -/arm-io/auss-cpu0 0x395d08000 -> MISSING +/arm-io/aes 0x50500c000 -> /soc/crypto@50500c000 +/arm-io/auss-cpu0 0x395d08000 -> /soc/phy-coproc@395d08000 /arm-io/auss-cpu0/auss-cpu0-nub - -> MISSING /arm-io/gpio0 0x29c000000 -> /soc@200000000/pinctrl@29c000000 /arm-io/aop-gpio0 0x290824000 -> /soc@200000000/pinctrl@290824000 -/arm-io/nub-gpio0 0x2881e4000 -> MISSING +/arm-io/nub-gpio0 0x2881e4000 -> /soc/pinctrl@2881e4000 /arm-io/aop 0x290600000 -> /soc@200000000/aop@290c00000 /arm-io/aop/iop-aop-nub - -> /soc@200000000/aop@290c00000 /arm-io/aop/iop-aop-nub/aop-audio - -> /soc@200000000/aop@290c00000 @@ -453,10 +453,10 @@ /arm-io/dart-aop/mapper-admac-leap-s - -> /soc@200000000/iommu@290fc0000 /arm-io/dart-aop/mapper-admac-base-s - -> /soc@200000000/iommu@290fc0000 /arm-io/dart-aop/mapper-scm - -> /soc@200000000/iommu@290fc0000 -/arm-io/aop-exclave-mailbox 0x4d067c000 -> /soc@200000000/aop@290c00000 +/arm-io/aop-exclave-mailbox 0x4d067c000 -> /soc/mailbox@4d067c000 /arm-io/aop-exclave-ioreporting - -> MISSING -/arm-io/aop2 0x291600000 -> MISSING -/arm-io/aop2/iop-aop2-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. +/arm-io/aop2 0x291600000 -> /soc/aop@291600000 +/arm-io/aop2/iop-aop2-nub - -> /soc/aop@291600000 /arm-io/pmgr 0x280600000 -> /soc@200000000/power-management@280600000 /arm-io/pmgr/soc-tuner - -> WAIVED: Firmware tuning policy; not an independent hardware block. /arm-io/pmgr/clpc - -> WAIVED: Firmware performance policy; PMGR and PMP hardware are inventoried separately. @@ -552,13 +552,13 @@ /arm-io/pmgr/power-devices/PCPU_3 0x280600078 -> MISSING /arm-io/pmgr/power-devices/PCPU_4 0x280600080 -> MISSING /arm-io/pmgr/power-devices/PCPU_5 0x280600088 -> MISSING -/arm-io/pmgr/power-devices/PMS 0x280600100 -> MISSING +/arm-io/pmgr/power-devices/PMS 0x280600100 -> /soc@200000000/power-management@280600000/power-controller@100 /arm-io/pmgr/power-devices/AIC 0x280600108 -> MISSING /arm-io/pmgr/power-devices/PMC 0x280600110 -> MISSING /arm-io/pmgr/power-devices/PMS_C1PPT 0x280600118 -> MISSING /arm-io/pmgr/power-devices/SOC_DPE 0x280600120 -> MISSING -/arm-io/pmgr/power-devices/PMP 0x280600128 -> MISSING -/arm-io/pmgr/power-devices/PMS_SRAM 0x280600130 -> MISSING +/arm-io/pmgr/power-devices/PMP 0x280600128 -> /soc@200000000/power-management@280600000/power-controller@128 +/arm-io/pmgr/power-devices/PMS_SRAM 0x280600130 -> /soc@200000000/power-management@280600000/power-controller@130 /arm-io/pmgr/power-devices/PMGR_SOC_OCLA 0x280600138 -> MISSING /arm-io/pmgr/power-devices/B2B_CTRL_NOGATE 0x280600140 -> MISSING /arm-io/pmgr/power-devices/FAB0_ACC_0 0x280600148 -> MISSING @@ -579,13 +579,13 @@ /arm-io/pmgr/power-devices/B2BC_AFI_0_DFX 0x2806001c0 -> MISSING /arm-io/pmgr/power-devices/B2BC_AFI_1 0x2806001c8 -> MISSING /arm-io/pmgr/power-devices/B2BC_AFI_1_DFX 0x2806001d0 -> MISSING -/arm-io/pmgr/power-devices/FAB0_PIOGW 0x2806001d8 -> MISSING -/arm-io/pmgr/power-devices/FAB3_SOC 0x2806001e0 -> MISSING +/arm-io/pmgr/power-devices/FAB0_PIOGW 0x2806001d8 -> /soc@200000000/power-management@280600000/power-controller@1d8 +/arm-io/pmgr/power-devices/FAB3_SOC 0x2806001e0 -> /soc@200000000/power-management@280600000/power-controller@1e0 /arm-io/pmgr/power-devices/FAB4_SOC 0x2806001e8 -> MISSING -/arm-io/pmgr/power-devices/FAB5_SOC 0x2806001f0 -> MISSING -/arm-io/pmgr/power-devices/SBR 0x2806001f8 -> MISSING +/arm-io/pmgr/power-devices/FAB5_SOC 0x2806001f0 -> /soc@200000000/power-management@280600000/power-controller@1f0 +/arm-io/pmgr/power-devices/SBR 0x2806001f8 -> /soc@200000000/power-management@280600000/power-controller@1f8 /arm-io/pmgr/power-devices/DISPEXT0_SYS 0x280600200 -> MISSING -/arm-io/pmgr/power-devices/ATC0_COMMON 0x280600208 -> MISSING +/arm-io/pmgr/power-devices/ATC0_COMMON 0x280600208 -> /soc@200000000/power-management@280600000/power-controller@208 /arm-io/pmgr/power-devices/ATC1_COMMON 0x280600210 -> /soc@200000000/power-management@280600000/power-controller@210 /arm-io/pmgr/power-devices/TRACE_FAB - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DISPEXT2_SYS 0x280600220 -> MISSING @@ -595,15 +595,15 @@ /arm-io/pmgr/power-devices/ATC3_COMMON 0x280600240 -> /soc@200000000/power-management@280600000/power-controller@240 /arm-io/pmgr/power-devices/AUSS 0x280600248 -> /soc@200000000/power-management@280600000/power-controller@248 /arm-io/pmgr/power-devices/GPIO 0x280600250 -> MISSING -/arm-io/pmgr/power-devices/MSG 0x280600258 -> MISSING +/arm-io/pmgr/power-devices/MSG 0x280600258 -> /soc@200000000/power-management@280600000/power-controller@258 /arm-io/pmgr/power-devices/AP_TMM 0x280600260 -> MISSING /arm-io/pmgr/power-devices/DISPEXT0_FE 0x280600268 -> MISSING /arm-io/pmgr/power-devices/DISPEXT0_ADMA 0x280600270 -> MISSING /arm-io/pmgr/power-devices/DISPEXT0_CPU 0x280600278 -> MISSING -/arm-io/pmgr/power-devices/ATC0_CIO 0x280600280 -> MISSING -/arm-io/pmgr/power-devices/ATC0_PCIE 0x280600288 -> MISSING -/arm-io/pmgr/power-devices/ATC1_CIO 0x280600290 -> MISSING -/arm-io/pmgr/power-devices/ATC1_PCIE 0x280600298 -> MISSING +/arm-io/pmgr/power-devices/ATC0_CIO 0x280600280 -> /soc@200000000/power-management@280600000/power-controller@280 +/arm-io/pmgr/power-devices/ATC0_PCIE 0x280600288 -> /soc@200000000/power-management@280600000/power-controller@288 +/arm-io/pmgr/power-devices/ATC1_CIO 0x280600290 -> /soc@200000000/power-management@280600000/power-controller@290 +/arm-io/pmgr/power-devices/ATC1_PCIE 0x280600298 -> /soc@200000000/power-management@280600000/power-controller@298 /arm-io/pmgr/power-devices/DISPEXT2_FE 0x2806002a0 -> MISSING /arm-io/pmgr/power-devices/DISPEXT2_ADMA 0x2806002a8 -> MISSING /arm-io/pmgr/power-devices/DISPEXT2_CPU 0x2806002b0 -> MISSING @@ -613,22 +613,22 @@ /arm-io/pmgr/power-devices/DISPEXT1_FE 0x2806002d0 -> MISSING /arm-io/pmgr/power-devices/DISPEXT1_ADMA 0x2806002d8 -> MISSING /arm-io/pmgr/power-devices/DISPEXT1_CPU 0x2806002e0 -> MISSING -/arm-io/pmgr/power-devices/ATC2_CIO 0x2806002e8 -> MISSING -/arm-io/pmgr/power-devices/ATC2_PCIE 0x2806002f0 -> MISSING +/arm-io/pmgr/power-devices/ATC2_CIO 0x2806002e8 -> /soc@200000000/power-management@280600000/power-controller@2e8 +/arm-io/pmgr/power-devices/ATC2_PCIE 0x2806002f0 -> /soc@200000000/power-management@280600000/power-controller@2f0 /arm-io/pmgr/power-devices/ATC3_CIO 0x2806002f8 -> /soc@200000000/power-management@280600000/power-controller@2f8 -/arm-io/pmgr/power-devices/ATC3_PCIE 0x280600300 -> MISSING +/arm-io/pmgr/power-devices/ATC3_PCIE 0x280600300 -> /soc@200000000/power-management@280600000/power-controller@300 /arm-io/pmgr/power-devices/DISPEXT0_DBE - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DPEXT0 - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DISPEXT0_GP0 - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DISPEXT0_GP1 - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DISPEXT0_GPL - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DISPEXT0_PPP - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. -/arm-io/pmgr/power-devices/ATC0_CIO_PCIE 0x280600338 -> MISSING -/arm-io/pmgr/power-devices/ATC0_CIO_USB 0x280600340 -> MISSING -/arm-io/pmgr/power-devices/ATC0_CIO_AUSS 0x280600348 -> MISSING -/arm-io/pmgr/power-devices/ATC1_CIO_PCIE 0x280600350 -> MISSING -/arm-io/pmgr/power-devices/ATC1_CIO_USB 0x280600358 -> MISSING -/arm-io/pmgr/power-devices/ATC1_CIO_AUSS 0x280600360 -> MISSING +/arm-io/pmgr/power-devices/ATC0_CIO_PCIE 0x280600338 -> /soc@200000000/power-management@280600000/power-controller@338 +/arm-io/pmgr/power-devices/ATC0_CIO_USB 0x280600340 -> /soc@200000000/power-management@280600000/power-controller@340 +/arm-io/pmgr/power-devices/ATC0_CIO_AUSS 0x280600348 -> /soc@200000000/power-management@280600000/power-controller@348 +/arm-io/pmgr/power-devices/ATC1_CIO_PCIE 0x280600350 -> /soc@200000000/power-management@280600000/power-controller@350 +/arm-io/pmgr/power-devices/ATC1_CIO_USB 0x280600358 -> /soc@200000000/power-management@280600000/power-controller@358 +/arm-io/pmgr/power-devices/ATC1_CIO_AUSS 0x280600360 -> /soc@200000000/power-management@280600000/power-controller@360 /arm-io/pmgr/power-devices/DISPEXT2_DBE - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DPEXT2 - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DISPEXT2_GP0 - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. @@ -647,9 +647,9 @@ /arm-io/pmgr/power-devices/DISPEXT1_GP1 - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DISPEXT1_GPL - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DISPEXT1_PPP - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. -/arm-io/pmgr/power-devices/ATC2_CIO_PCIE 0x2806003f8 -> MISSING -/arm-io/pmgr/power-devices/ATC2_CIO_USB 0x280600400 -> MISSING -/arm-io/pmgr/power-devices/ATC2_CIO_AUSS 0x280600408 -> MISSING +/arm-io/pmgr/power-devices/ATC2_CIO_PCIE 0x2806003f8 -> /soc@200000000/power-management@280600000/power-controller@3f8 +/arm-io/pmgr/power-devices/ATC2_CIO_USB 0x280600400 -> /soc@200000000/power-management@280600000/power-controller@400 +/arm-io/pmgr/power-devices/ATC2_CIO_AUSS 0x280600408 -> /soc@200000000/power-management@280600000/power-controller@408 /arm-io/pmgr/power-devices/ATC3_CIO_PCIE 0x280600410 -> /soc@200000000/power-management@280600000/power-controller@410 /arm-io/pmgr/power-devices/ATC3_CIO_USB 0x280600418 -> /soc@200000000/power-management@280600000/power-controller@418 /arm-io/pmgr/power-devices/ATC3_CIO_AUSS 0x280600420 -> /soc@200000000/power-management@280600000/power-controller@420 @@ -664,29 +664,29 @@ /arm-io/pmgr/power-devices/B2BC_DBG_0 0x280600468 -> MISSING /arm-io/pmgr/power-devices/B2BC_DBG_1 0x280600470 -> MISSING /arm-io/pmgr/power-devices/B2BC_DBG_2 0x280600478 -> MISSING -/arm-io/pmgr/power-devices/ISPSENS0 0x280900100 -> MISSING -/arm-io/pmgr/power-devices/GLOBAL_AUX_HPD_0 0x280900108 -> MISSING -/arm-io/pmgr/power-devices/GLOBAL_AUX_HPD_1 0x280900110 -> MISSING -/arm-io/pmgr/power-devices/APCIE_GP 0x280900118 -> MISSING -/arm-io/pmgr/power-devices/APCIE_GE 0x280900120 -> MISSING -/arm-io/pmgr/power-devices/APCIE_ST0 0x280900128 -> MISSING -/arm-io/pmgr/power-devices/APCIE_ST1 0x280900130 -> MISSING -/arm-io/pmgr/power-devices/FAB6_SOC 0x280900138 -> MISSING -/arm-io/pmgr/power-devices/ANS 0x280900140 -> MISSING -/arm-io/pmgr/power-devices/APCIE_SYS_GP 0x280900148 -> MISSING -/arm-io/pmgr/power-devices/APCIE_SYS_ST0 0x280900150 -> MISSING -/arm-io/pmgr/power-devices/APCIE_SYS_ST1 0x280900158 -> MISSING +/arm-io/pmgr/power-devices/ISPSENS0 0x280900100 -> /soc@200000000/power-management@280900000/power-controller@100 +/arm-io/pmgr/power-devices/GLOBAL_AUX_HPD_0 0x280900108 -> /soc@200000000/power-management@280900000/power-controller@108 +/arm-io/pmgr/power-devices/GLOBAL_AUX_HPD_1 0x280900110 -> /soc@200000000/power-management@280900000/power-controller@110 +/arm-io/pmgr/power-devices/APCIE_GP 0x280900118 -> /soc@200000000/power-management@280900000/power-controller@118 +/arm-io/pmgr/power-devices/APCIE_GE 0x280900120 -> /soc@200000000/power-management@280900000/power-controller@120 +/arm-io/pmgr/power-devices/APCIE_ST0 0x280900128 -> /soc@200000000/power-management@280900000/power-controller@128 +/arm-io/pmgr/power-devices/APCIE_ST1 0x280900130 -> /soc@200000000/power-management@280900000/power-controller@130 +/arm-io/pmgr/power-devices/FAB6_SOC 0x280900138 -> /soc@200000000/power-management@280900000/power-controller@138 +/arm-io/pmgr/power-devices/ANS 0x280900140 -> /soc@200000000/power-management@280900000/power-controller@140 +/arm-io/pmgr/power-devices/APCIE_SYS_GP 0x280900148 -> /soc@200000000/power-management@280900000/power-controller@148 +/arm-io/pmgr/power-devices/APCIE_SYS_ST0 0x280900150 -> /soc@200000000/power-management@280900000/power-controller@150 +/arm-io/pmgr/power-devices/APCIE_SYS_ST1 0x280900158 -> /soc@200000000/power-management@280900000/power-controller@158 /arm-io/pmgr/power-devices/APCIE_SYS_GP_OC 0x280900160 -> MISSING /arm-io/pmgr/power-devices/APCIE_SYS_ST0_O 0x280900168 -> MISSING /arm-io/pmgr/power-devices/APCIE_SYS_ST1_O 0x280900170 -> MISSING -/arm-io/pmgr/power-devices/FAB7_SOC 0x280900178 -> MISSING -/arm-io/pmgr/power-devices/DISP_SYS 0x280900180 -> MISSING -/arm-io/pmgr/power-devices/APCIE_SYS_GE 0x280900188 -> MISSING -/arm-io/pmgr/power-devices/SCODEC 0x280900190 -> MISSING -/arm-io/pmgr/power-devices/DISP_FE 0x280900198 -> MISSING +/arm-io/pmgr/power-devices/FAB7_SOC 0x280900178 -> /soc@200000000/power-management@280900000/power-controller@178 +/arm-io/pmgr/power-devices/DISP_SYS 0x280900180 -> /soc@200000000/power-management@280900000/power-controller@180 +/arm-io/pmgr/power-devices/APCIE_SYS_GE 0x280900188 -> /soc@200000000/power-management@280900000/power-controller@188 +/arm-io/pmgr/power-devices/SCODEC 0x280900190 -> /soc@200000000/power-management@280900000/power-controller@190 +/arm-io/pmgr/power-devices/DISP_FE 0x280900198 -> /soc@200000000/power-management@280900000/power-controller@198 /arm-io/pmgr/power-devices/DISP_ADMA 0x2809001a0 -> MISSING -/arm-io/pmgr/power-devices/DISP_CPU 0x2809001a8 -> MISSING -/arm-io/pmgr/power-devices/APCIE_PHY_SW 0x2809001b0 -> MISSING +/arm-io/pmgr/power-devices/DISP_CPU 0x2809001a8 -> /soc@200000000/power-management@280900000/power-controller@1a8 +/arm-io/pmgr/power-devices/APCIE_PHY_SW 0x2809001b0 -> /soc@200000000/power-management@280900000/power-controller@1b0 /arm-io/pmgr/power-devices/APCIE_SYS_GE_OL 0x2809001b8 -> MISSING /arm-io/pmgr/power-devices/SCODEC_STREAMING 0x2809001c0 -> MISSING /arm-io/pmgr/power-devices/DISP_SPI - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. @@ -704,62 +704,62 @@ /arm-io/pmgr/power-devices/DISP_BLC - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DISP_HILO - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DISP_RCA - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. -/arm-io/pmgr/power-devices/APHY_ST0_AUS5_A 0x280900240 -> MISSING -/arm-io/pmgr/power-devices/APHY_ST1_AUS5_A 0x280900248 -> MISSING -/arm-io/pmgr/power-devices/APHY_GE_AUS5_A 0x280900250 -> MISSING -/arm-io/pmgr/power-devices/APHY_GP_AUS5_A 0x280900258 -> MISSING +/arm-io/pmgr/power-devices/APHY_ST0_AUS5_A 0x280900240 -> /soc@200000000/power-management@280900000/power-controller@240 +/arm-io/pmgr/power-devices/APHY_ST1_AUS5_A 0x280900248 -> /soc@200000000/power-management@280900000/power-controller@248 +/arm-io/pmgr/power-devices/APHY_GE_AUS5_A 0x280900250 -> /soc@200000000/power-management@280900000/power-controller@250 +/arm-io/pmgr/power-devices/APHY_GP_AUS5_A 0x280900258 -> /soc@200000000/power-management@280900000/power-controller@258 /arm-io/pmgr/power-devices/DISP_DSC - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. -/arm-io/pmgr/power-devices/APHY_ST0_AUS5 0x280900268 -> MISSING -/arm-io/pmgr/power-devices/APHY_ST1_AUS5 0x280900270 -> MISSING -/arm-io/pmgr/power-devices/APHY_GE_AUS5 0x280900278 -> MISSING -/arm-io/pmgr/power-devices/APHY_GP_AUS5 0x280900280 -> MISSING -/arm-io/pmgr/power-devices/FAB8_SOC 0x280900288 -> MISSING -/arm-io/pmgr/power-devices/SIO 0x280900290 -> MISSING -/arm-io/pmgr/power-devices/SEP 0x280900298 -> MISSING -/arm-io/pmgr/power-devices/SIO_CPU 0x2809002a0 -> MISSING +/arm-io/pmgr/power-devices/APHY_ST0_AUS5 0x280900268 -> /soc@200000000/power-management@280900000/power-controller@268 +/arm-io/pmgr/power-devices/APHY_ST1_AUS5 0x280900270 -> /soc@200000000/power-management@280900000/power-controller@270 +/arm-io/pmgr/power-devices/APHY_GE_AUS5 0x280900278 -> /soc@200000000/power-management@280900000/power-controller@278 +/arm-io/pmgr/power-devices/APHY_GP_AUS5 0x280900280 -> /soc@200000000/power-management@280900000/power-controller@280 +/arm-io/pmgr/power-devices/FAB8_SOC 0x280900288 -> /soc@200000000/power-management@280900000/power-controller@288 +/arm-io/pmgr/power-devices/SIO 0x280900290 -> /soc@200000000/power-management@280900000/power-controller@290 +/arm-io/pmgr/power-devices/SEP 0x280900298 -> /soc@200000000/power-management@280900000/power-controller@298 +/arm-io/pmgr/power-devices/SIO_CPU 0x2809002a0 -> /soc@200000000/power-management@280900000/power-controller@2a0 /arm-io/pmgr/power-devices/FPWM0 0x2809002a8 -> /soc@200000000/power-management@280900000/power-controller@2a8 /arm-io/pmgr/power-devices/FPWM1 - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/FPWM2 0x2809002b8 -> /soc@200000000/power-management@280900000/power-controller@2b8 -/arm-io/pmgr/power-devices/I2C0 0x2809002c0 -> MISSING +/arm-io/pmgr/power-devices/I2C0 0x2809002c0 -> /soc@200000000/power-management@280900000/power-controller@2c0 /arm-io/pmgr/power-devices/I2C1 0x2809002c8 -> /soc@200000000/power-management@280900000/power-controller@2c8 /arm-io/pmgr/power-devices/I2C2 0x2809002d0 -> /soc@200000000/power-management@280900000/power-controller@2d0 -/arm-io/pmgr/power-devices/I2C3 0x2809002d8 -> MISSING -/arm-io/pmgr/power-devices/I2C4 0x2809002e0 -> MISSING -/arm-io/pmgr/power-devices/I2C5 0x2809002e8 -> MISSING -/arm-io/pmgr/power-devices/I2C6 0x2809002f0 -> MISSING -/arm-io/pmgr/power-devices/I2C7 0x2809002f8 -> MISSING -/arm-io/pmgr/power-devices/I2C8 0x280900300 -> MISSING +/arm-io/pmgr/power-devices/I2C3 0x2809002d8 -> /soc@200000000/power-management@280900000/power-controller@2d8 +/arm-io/pmgr/power-devices/I2C4 0x2809002e0 -> /soc@200000000/power-management@280900000/power-controller@2e0 +/arm-io/pmgr/power-devices/I2C5 0x2809002e8 -> /soc@200000000/power-management@280900000/power-controller@2e8 +/arm-io/pmgr/power-devices/I2C6 0x2809002f0 -> /soc@200000000/power-management@280900000/power-controller@2f0 +/arm-io/pmgr/power-devices/I2C7 0x2809002f8 -> /soc@200000000/power-management@280900000/power-controller@2f8 +/arm-io/pmgr/power-devices/I2C8 0x280900300 -> /soc@200000000/power-management@280900000/power-controller@300 /arm-io/pmgr/power-devices/SPI_P 0x280900308 -> /soc@200000000/power-management@280900000/power-controller@308 -/arm-io/pmgr/power-devices/UART_P 0x280900310 -> MISSING -/arm-io/pmgr/power-devices/AES 0x280900318 -> MISSING +/arm-io/pmgr/power-devices/UART_P 0x280900310 -> /soc@200000000/power-management@280900000/power-controller@310 +/arm-io/pmgr/power-devices/AES 0x280900318 -> /soc@200000000/power-management@280900000/power-controller@318 /arm-io/pmgr/power-devices/SPI0 0x280900320 -> MISSING /arm-io/pmgr/power-devices/SPI1 0x280900328 -> MISSING -/arm-io/pmgr/power-devices/SPI2 0x280900330 -> MISSING -/arm-io/pmgr/power-devices/SPI3 0x280900338 -> MISSING -/arm-io/pmgr/power-devices/SPI4 0x280900340 -> MISSING +/arm-io/pmgr/power-devices/SPI2 0x280900330 -> /soc@200000000/power-management@280900000/power-controller@330 +/arm-io/pmgr/power-devices/SPI3 0x280900338 -> /soc@200000000/power-management@280900000/power-controller@338 +/arm-io/pmgr/power-devices/SPI4 0x280900340 -> /soc@200000000/power-management@280900000/power-controller@340 /arm-io/pmgr/power-devices/SPI5 0x280900348 -> MISSING /arm-io/pmgr/power-devices/QSPI 0x280900350 -> /soc@200000000/power-management@280900000/power-controller@350 /arm-io/pmgr/power-devices/UART_N 0x280900358 -> MISSING -/arm-io/pmgr/power-devices/UART0 0x280900360 -> MISSING +/arm-io/pmgr/power-devices/UART0 0x280900360 -> /soc@200000000/power-management@280900000/power-controller@360 /arm-io/pmgr/power-devices/UART1 0x280900368 -> MISSING /arm-io/pmgr/power-devices/UART2 0x280900370 -> MISSING /arm-io/pmgr/power-devices/UART3 0x280900378 -> MISSING /arm-io/pmgr/power-devices/UART4 0x280900380 -> MISSING /arm-io/pmgr/power-devices/UART5 0x280900388 -> MISSING /arm-io/pmgr/power-devices/UART6 0x280900390 -> MISSING -/arm-io/pmgr/power-devices/FAB9_SOC 0x280900398 -> MISSING -/arm-io/pmgr/power-devices/ISP_SYS 0x2809003a0 -> MISSING +/arm-io/pmgr/power-devices/FAB9_SOC 0x280900398 -> /soc@200000000/power-management@280900000/power-controller@398 +/arm-io/pmgr/power-devices/ISP_SYS 0x2809003a0 -> /soc@200000000/power-management@280900000/power-controller@3a0 /arm-io/pmgr/power-devices/ISP_CPU - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/ISP_FE - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/ANE_MPM 0x2809003c0 -> MISSING -/arm-io/pmgr/power-devices/ANE_CPU 0x2809003c8 -> MISSING +/arm-io/pmgr/power-devices/ANE_CPU 0x2809003c8 -> /soc@200000000/power-management@280900000/power-controller@3c8 /arm-io/pmgr/power-devices/ANE_TDBASE 0x2809003d0 -> MISSING /arm-io/pmgr/power-devices/DPRX - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/ISP_SECURE - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/ISP_BE - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/ISP_CLR - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DPTX_PHY - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. -/arm-io/pmgr/power-devices/DEBUG_GATED 0x288300058 -> MISSING +/arm-io/pmgr/power-devices/DEBUG_GATED 0x288300058 -> /soc@200000000/power-management@288300000/power-controller@58 /arm-io/pmgr/power-devices/NUB_SPMI_A0 0x288300060 -> MISSING /arm-io/pmgr/power-devices/NUB_SPMI_A1 0x288300068 -> MISSING /arm-io/pmgr/power-devices/NUB_SPMI_A2 0x288300070 -> MISSING @@ -767,31 +767,31 @@ /arm-io/pmgr/power-devices/NUB_DOCK_CHANNEL 0x288300080 -> MISSING /arm-io/pmgr/power-devices/NUB_GPIO 0x288300088 -> MISSING /arm-io/pmgr/power-devices/NUB_OCLA - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. -/arm-io/pmgr/power-devices/ATC0_COMMON_DP_0 0x288300098 -> MISSING -/arm-io/pmgr/power-devices/ATC0_COMMON_DP_1 0x2883000a0 -> MISSING -/arm-io/pmgr/power-devices/ATC0_COMMON_DP_2 0x2883000a8 -> MISSING -/arm-io/pmgr/power-devices/ATC0_COMMON_DP_3 0x2883000b0 -> MISSING -/arm-io/pmgr/power-devices/ATC1_COMMON_DP_0 0x2883000b8 -> MISSING -/arm-io/pmgr/power-devices/ATC1_COMMON_DP_1 0x2883000c0 -> MISSING -/arm-io/pmgr/power-devices/ATC1_COMMON_DP_2 0x2883000c8 -> MISSING -/arm-io/pmgr/power-devices/ATC1_COMMON_DP_3 0x2883000d0 -> MISSING -/arm-io/pmgr/power-devices/ATC2_COMMON_DP_0 0x2883000d8 -> MISSING -/arm-io/pmgr/power-devices/ATC2_COMMON_DP_1 0x2883000e0 -> MISSING -/arm-io/pmgr/power-devices/ATC2_COMMON_DP_2 0x2883000e8 -> MISSING -/arm-io/pmgr/power-devices/ATC2_COMMON_DP_3 0x2883000f0 -> MISSING -/arm-io/pmgr/power-devices/ATC3_COMMON_DP_0 0x2883000f8 -> MISSING -/arm-io/pmgr/power-devices/ATC3_COMMON_DP_1 0x288300100 -> MISSING -/arm-io/pmgr/power-devices/ATC3_COMMON_DP_2 0x288300108 -> MISSING -/arm-io/pmgr/power-devices/ATC3_COMMON_DP_3 0x288300110 -> MISSING +/arm-io/pmgr/power-devices/ATC0_COMMON_DP_0 0x288300098 -> /soc@200000000/power-management@288300000/power-controller@98 +/arm-io/pmgr/power-devices/ATC0_COMMON_DP_1 0x2883000a0 -> /soc@200000000/power-management@288300000/power-controller@a0 +/arm-io/pmgr/power-devices/ATC0_COMMON_DP_2 0x2883000a8 -> /soc@200000000/power-management@288300000/power-controller@a8 +/arm-io/pmgr/power-devices/ATC0_COMMON_DP_3 0x2883000b0 -> /soc@200000000/power-management@288300000/power-controller@b0 +/arm-io/pmgr/power-devices/ATC1_COMMON_DP_0 0x2883000b8 -> /soc@200000000/power-management@288300000/power-controller@b8 +/arm-io/pmgr/power-devices/ATC1_COMMON_DP_1 0x2883000c0 -> /soc@200000000/power-management@288300000/power-controller@c0 +/arm-io/pmgr/power-devices/ATC1_COMMON_DP_2 0x2883000c8 -> /soc@200000000/power-management@288300000/power-controller@c8 +/arm-io/pmgr/power-devices/ATC1_COMMON_DP_3 0x2883000d0 -> /soc@200000000/power-management@288300000/power-controller@d0 +/arm-io/pmgr/power-devices/ATC2_COMMON_DP_0 0x2883000d8 -> /soc@200000000/power-management@288300000/power-controller@d8 +/arm-io/pmgr/power-devices/ATC2_COMMON_DP_1 0x2883000e0 -> /soc@200000000/power-management@288300000/power-controller@e0 +/arm-io/pmgr/power-devices/ATC2_COMMON_DP_2 0x2883000e8 -> /soc@200000000/power-management@288300000/power-controller@e8 +/arm-io/pmgr/power-devices/ATC2_COMMON_DP_3 0x2883000f0 -> /soc@200000000/power-management@288300000/power-controller@f0 +/arm-io/pmgr/power-devices/ATC3_COMMON_DP_0 0x2883000f8 -> /soc@200000000/power-management@288300000/power-controller@f8 +/arm-io/pmgr/power-devices/ATC3_COMMON_DP_1 0x288300100 -> /soc@200000000/power-management@288300000/power-controller@100 +/arm-io/pmgr/power-devices/ATC3_COMMON_DP_2 0x288300108 -> /soc@200000000/power-management@288300000/power-controller@108 +/arm-io/pmgr/power-devices/ATC3_COMMON_DP_3 0x288300110 -> /soc@200000000/power-management@288300000/power-controller@110 /arm-io/pmgr/power-devices/NUB_SPMI_AHB 0x288300118 -> MISSING /arm-io/pmgr/power-devices/NUB_SPMI0 0x288300120 -> MISSING /arm-io/pmgr/power-devices/NUB_SPMI1 0x288300128 -> MISSING /arm-io/pmgr/power-devices/NUB_SPMI2 0x288300130 -> MISSING /arm-io/pmgr/power-devices/NUB_SPMI3 0x288300138 -> MISSING /arm-io/pmgr/power-devices/NUB_SPMI4 0x288300140 -> MISSING -/arm-io/pmgr/power-devices/ATC0_USB_AON 0x288300148 -> MISSING -/arm-io/pmgr/power-devices/ATC0_USB 0x288300150 -> MISSING -/arm-io/pmgr/power-devices/ATC0_PHYMXWRAP 0x288300158 -> MISSING +/arm-io/pmgr/power-devices/ATC0_USB_AON 0x288300148 -> /soc@200000000/power-management@288300000/power-controller@148 +/arm-io/pmgr/power-devices/ATC0_USB 0x288300150 -> /soc@200000000/power-management@288300000/power-controller@150 +/arm-io/pmgr/power-devices/ATC0_PHYMXWRAP 0x288300158 -> /soc@200000000/power-management@288300000/power-controller@158 /arm-io/pmgr/power-devices/ATC1_USB_AON 0x288300160 -> /soc@200000000/power-management@288300000/power-controller@160 /arm-io/pmgr/power-devices/ATC1_USB 0x288300168 -> /soc@200000000/power-management@288300000/power-controller@168 /arm-io/pmgr/power-devices/ATC1_PHYMXWRAP 0x288300170 -> /soc@200000000/power-management@288300000/power-controller@170 @@ -888,10 +888,10 @@ /arm-io/pmgr/power-devices/MTP_SCM_QSPI0_S - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/MTP_UART0 - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/MTP_SRAM - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. -/arm-io/pmgr/power-devices/GPX 0x2300e80000 -> MISSING -/arm-io/pmgr/power-devices/AFR 0x2300e80100 -> MISSING +/arm-io/pmgr/power-devices/GPX 0x2300e80000 -> /soc/power-management@2300e80000/power-controller@0 +/arm-io/pmgr/power-devices/AFR 0x2300e80100 -> /soc/power-management@2300e80000/power-controller@100 /arm-io/pmgr/power-devices/CS 0x2300e80108 -> MISSING -/arm-io/pmgr/power-devices/GFX 0x2300e80110 -> MISSING +/arm-io/pmgr/power-devices/GFX 0x2300e80110 -> /soc/power-management@2300e80000/power-controller@110 /arm-io/pmgr/power-devices/PMS_GFX 0x2380600100 -> MISSING /arm-io/pmgr/power-devices/AIC_GFX 0x2380600108 -> MISSING /arm-io/pmgr/power-devices/PMS_GFX_C1PPT 0x2380600110 -> MISSING @@ -912,20 +912,20 @@ /arm-io/pmgr/power-devices/B2BG_AFI_1_DFX 0x2380600188 -> MISSING /arm-io/pmgr/power-devices/FAB1_AFIGW 0x2380600190 -> MISSING /arm-io/pmgr/power-devices/FPPT_GFX 0x2380600198 -> MISSING -/arm-io/pmgr/power-devices/FAB1_PIOGW 0x23806001a0 -> MISSING -/arm-io/pmgr/power-devices/FAB0_SOC 0x23806001a8 -> MISSING -/arm-io/pmgr/power-devices/FAB1_SOC 0x23806001b0 -> MISSING -/arm-io/pmgr/power-devices/FAB2_SOC 0x23806001b8 -> MISSING -/arm-io/pmgr/power-devices/VENC0_SYS 0x23806001c0 -> MISSING -/arm-io/pmgr/power-devices/MSR0 0x23806001c8 -> MISSING -/arm-io/pmgr/power-devices/JPG 0x23806001d0 -> MISSING -/arm-io/pmgr/power-devices/AVD_SYS 0x23806001d8 -> MISSING -/arm-io/pmgr/power-devices/PRORES 0x23806001e0 -> MISSING +/arm-io/pmgr/power-devices/FAB1_PIOGW 0x23806001a0 -> /soc@2308000000/power-management@2380600000/power-controller@1a0 +/arm-io/pmgr/power-devices/FAB0_SOC 0x23806001a8 -> /soc@2308000000/power-management@2380600000/power-controller@1a8 +/arm-io/pmgr/power-devices/FAB1_SOC 0x23806001b0 -> /soc@2308000000/power-management@2380600000/power-controller@1b0 +/arm-io/pmgr/power-devices/FAB2_SOC 0x23806001b8 -> /soc@2308000000/power-management@2380600000/power-controller@1b8 +/arm-io/pmgr/power-devices/VENC0_SYS 0x23806001c0 -> /soc@2308000000/power-management@2380600000/power-controller@1c0 +/arm-io/pmgr/power-devices/MSR0 0x23806001c8 -> /soc@2308000000/power-management@2380600000/power-controller@1c8 +/arm-io/pmgr/power-devices/JPG 0x23806001d0 -> /soc@2308000000/power-management@2380600000/power-controller@1d0 +/arm-io/pmgr/power-devices/AVD_SYS 0x23806001d8 -> /soc@2308000000/power-management@2380600000/power-controller@1d8 +/arm-io/pmgr/power-devices/PRORES 0x23806001e0 -> /soc@2308000000/power-management@2380600000/power-controller@1e0 /arm-io/pmgr/power-devices/SBR_GFX 0x23806001e8 -> MISSING -/arm-io/pmgr/power-devices/VENC1_SYS 0x23806001f0 -> MISSING -/arm-io/pmgr/power-devices/MSR1 0x23806001f8 -> MISSING -/arm-io/pmgr/power-devices/MSR0_ASE_CORE 0x2380600200 -> MISSING -/arm-io/pmgr/power-devices/MSR1_ASE_CORE 0x2380600208 -> MISSING +/arm-io/pmgr/power-devices/VENC1_SYS 0x23806001f0 -> /soc@2308000000/power-management@2380600000/power-controller@1f0 +/arm-io/pmgr/power-devices/MSR1 0x23806001f8 -> /soc@2308000000/power-management@2380600000/power-controller@1f8 +/arm-io/pmgr/power-devices/MSR0_ASE_CORE 0x2380600200 -> /soc@2308000000/power-management@2380600000/power-controller@200 +/arm-io/pmgr/power-devices/MSR1_ASE_CORE 0x2380600208 -> /soc@2308000000/power-management@2380600000/power-controller@208 /arm-io/pmgr/power-devices/FAB_AFI_AMCC_0 0x2380600210 -> MISSING /arm-io/pmgr/power-devices/AMCC0 0x2380600218 -> MISSING /arm-io/pmgr/power-devices/AMCC1 0x2380600220 -> MISSING @@ -1055,16 +1055,16 @@ /arm-io/pmgr/power-devices/B2BD_DBG_2 0x2380600700 -> MISSING /arm-io/pmgr/power-devices/B2BD_DBG_3 0x2380600708 -> MISSING /arm-io/pmgr/power-devices/B2BD_DBG_4 0x2380600710 -> MISSING -/arm-io/pmgr/power-devices/VENC0_DMA 0x2380608000 -> MISSING -/arm-io/pmgr/power-devices/VENC0_PIPE4 0x2380608008 -> MISSING -/arm-io/pmgr/power-devices/VENC0_PIPE5 0x2380608010 -> MISSING -/arm-io/pmgr/power-devices/VENC0_ME0 0x2380608018 -> MISSING -/arm-io/pmgr/power-devices/VENC0_ME1 0x2380608020 -> MISSING -/arm-io/pmgr/power-devices/VENC1_DMA 0x2380608028 -> MISSING -/arm-io/pmgr/power-devices/VENC1_PIPE4 0x2380608030 -> MISSING -/arm-io/pmgr/power-devices/VENC1_PIPE5 0x2380608038 -> MISSING -/arm-io/pmgr/power-devices/VENC1_ME0 0x2380608040 -> MISSING -/arm-io/pmgr/power-devices/VENC1_ME1 0x2380608048 -> MISSING +/arm-io/pmgr/power-devices/VENC0_DMA 0x2380608000 -> /soc@2308000000/power-management@2380600000/power-controller@8000 +/arm-io/pmgr/power-devices/VENC0_PIPE4 0x2380608008 -> /soc@2308000000/power-management@2380600000/power-controller@8008 +/arm-io/pmgr/power-devices/VENC0_PIPE5 0x2380608010 -> /soc@2308000000/power-management@2380600000/power-controller@8010 +/arm-io/pmgr/power-devices/VENC0_ME0 0x2380608018 -> /soc@2308000000/power-management@2380600000/power-controller@8018 +/arm-io/pmgr/power-devices/VENC0_ME1 0x2380608020 -> /soc@2308000000/power-management@2380600000/power-controller@8020 +/arm-io/pmgr/power-devices/VENC1_DMA 0x2380608028 -> /soc@2308000000/power-management@2380600000/power-controller@8028 +/arm-io/pmgr/power-devices/VENC1_PIPE4 0x2380608030 -> /soc@2308000000/power-management@2380600000/power-controller@8030 +/arm-io/pmgr/power-devices/VENC1_PIPE5 0x2380608038 -> /soc@2308000000/power-management@2380600000/power-controller@8038 +/arm-io/pmgr/power-devices/VENC1_ME0 0x2380608040 -> /soc@2308000000/power-management@2380600000/power-controller@8040 +/arm-io/pmgr/power-devices/VENC1_ME1 0x2380608048 -> /soc@2308000000/power-management@2380600000/power-controller@8048 /arm-io/pmgr/power-devices/DEBUG_GFX_GATED 0x2388300058 -> MISSING /arm-io/pmgr/power-devices/NUB_GFX_AON 0x2388300060 -> MISSING /arm-io/pmgr/power-devices/NUB_GFX_GPIO 0x2388300068 -> MISSING @@ -1190,50 +1190,50 @@ /arm-io/pmgr/power-devices/DISPEXT1-M3-V - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DISPEXT2-M3-V - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. /arm-io/pmgr/power-devices/DISPEXT3-M3-V - -> WAIVED: Virtual PMGR vote with no power-state register in the ADT table; not a separate power controller. -/arm-io/event-log-handler 0x280040000 -> MISSING +/arm-io/event-log-handler 0x280040000 -> /soc/event-log@280040000 /arm-io/event-log-handler/:sotra_h17d_76 - -> MISSING /arm-io/event-log-handler/:sotra_h17d_77 - -> MISSING /arm-io/event-log-handler/:sotra_h17d_78 - -> MISSING -/arm-io/sio 0x505e00000 -> MISSING -/arm-io/sio/iop-sio-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. -/arm-io/sio/iop-sio-nub/sio-dma - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/dart-sio 0x505060000 -> MISSING -/arm-io/dart-sio/mapper-sio - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-sio/mapper-aes - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/pmp0 0x284e00000 -> MISSING -/arm-io/pmp0/iop-pmp0-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17s_26 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17c_38 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr1_33 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr2_33 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17d_87 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17c_39 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr1_34 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr2_34 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17s_27 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17s_28 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17c_40 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17d_88 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr1_35 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr2_35 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17s_29 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17c_41 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr1_36 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr2_36 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17d_89 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17s_30 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17c_42 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr1_37 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr2_37 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17d_90 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17s_31 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17c_43 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr1_38 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr2_38 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/pmp0/iop-pmp0-nub/:sotra_h17d_91 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/dart-pmp0 0x2841a0000 -> MISSING -/arm-io/dart-pmp0/mapper-pmp0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-pmp0/mapper-pmp0-ptd-fwd - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. +/arm-io/sio 0x505e00000 -> /soc/dma-controller@505e00000 +/arm-io/sio/iop-sio-nub - -> /soc/dma-controller@505e00000 +/arm-io/sio/iop-sio-nub/sio-dma - -> /soc/dma-controller@505e00000 +/arm-io/dart-sio 0x505060000 -> /soc/iommu@505060000 +/arm-io/dart-sio/mapper-sio - -> /soc/iommu@505060000 +/arm-io/dart-sio/mapper-aes - -> /soc/iommu@505060000 +/arm-io/pmp0 0x284e00000 -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17s_26 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17c_38 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr1_33 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr2_33 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17d_87 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17c_39 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr1_34 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr2_34 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17s_27 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17s_28 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17c_40 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17d_88 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr1_35 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr2_35 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17s_29 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17c_41 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr1_36 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr2_36 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17d_89 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17s_30 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17c_42 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr1_37 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr2_37 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17d_90 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17s_31 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17c_43 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr1_38 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17cr2_38 - -> /soc/pmp@284e00000 +/arm-io/pmp0/iop-pmp0-nub/:sotra_h17d_91 - -> /soc/pmp@284e00000 +/arm-io/dart-pmp0 0x2841a0000 -> /soc/iommu@2841a0000 +/arm-io/dart-pmp0/mapper-pmp0 - -> /soc/iommu@2841a0000 +/arm-io/dart-pmp0/mapper-pmp0-ptd-fwd - -> /soc/iommu@2841a0000 /arm-io/pmp1 - -> MISSING /arm-io/pmp1/iop-pmp1-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. /arm-io/pmp1/iop-pmp1-nub/:sotra_h17s_26 - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. @@ -1268,14 +1268,14 @@ /arm-io/dart-pmp1 - -> MISSING /arm-io/dart-pmp1/mapper-pmp1 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. /arm-io/dart-pmp1/mapper-pmp1-ptd-fwd - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/sep 0x502600000 -> MISSING -/arm-io/sep/iop-sep-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. -/arm-io/sep/iop-sep-nub/Sandcat - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/sep/iop-sep-nub/xART - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/sep/iop-sep-nub/InvalidateHmac - -> WAIVED: Firmware-discovered coprocessor service; no independent MMIO device. -/arm-io/dart-sep 0x500b80000 -> MISSING -/arm-io/dart-sep/mapper-sep - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-sep/mapper-sep-exclave - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. +/arm-io/sep 0x502600000 -> /soc/sep@502600000 +/arm-io/sep/iop-sep-nub - -> /soc/sep@502600000 +/arm-io/sep/iop-sep-nub/Sandcat - -> /soc/sep@502600000 +/arm-io/sep/iop-sep-nub/xART - -> /soc/sep@502600000 +/arm-io/sep/iop-sep-nub/InvalidateHmac - -> /soc/sep@502600000 +/arm-io/dart-sep 0x500b80000 -> /soc/iommu@500b80000 +/arm-io/dart-sep/mapper-sep - -> /soc/iommu@500b80000 +/arm-io/dart-sep/mapper-sep-exclave - -> /soc/iommu@500b80000 /arm-io/esm 0x54267c000 -> MISSING /arm-io/ans 0x419600000 -> /soc@200000000/nvme@45dcc0000 /arm-io/ans/iop-ans-nub - -> /soc@200000000/nvme@45dcc0000 @@ -1288,12 +1288,12 @@ /arm-io/smc/iop-smc-nub/smc-charger-util-1 - -> /soc@200000000/smc@28c600000 /arm-io/smc/iop-smc-nub/smc-charger-util-2 - -> /soc@200000000/smc@28c600000 /arm-io/smc/iop-smc-nub/smc-charger-util - -> /soc@200000000/smc@28c600000 -/arm-io/aon-ptd 0x28cdc0000 -> MISSING -/arm-io/rsm 0x288825000 -> MISSING -/arm-io/dart-rsm 0x2889a0000 -> MISSING -/arm-io/dart-rsm/mapper-rsm - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/uart0 0x505200000 -> MISSING -/arm-io/uart0/debug-console - -> MISSING +/arm-io/aon-ptd 0x28cdc0000 -> /soc/aon-ptd@28cdc0000 +/arm-io/rsm 0x288825000 -> /soc/rsm@288825000 +/arm-io/dart-rsm 0x2889a0000 -> /soc/iommu@2889a0000 +/arm-io/dart-rsm/mapper-rsm - -> /soc/iommu@2889a0000 +/arm-io/uart0 0x505200000 -> /soc/serial@505200000 +/arm-io/uart0/debug-console - -> /soc/serial@505200000 /arm-io/dockchannel-uart 0x288e28000 -> MISSING /arm-io/qspi 0x505118000 -> /soc@200000000/spi@505118000 /arm-io/qspi/spinor /arm-io/qspi@0x0 -> MISSING @@ -1302,11 +1302,11 @@ /arm-io/qspi/spinor/syscfg - -> WAIVED: Firmware configuration partition; parent flash hardware is inventoried separately. /arm-io/dp2hdmi-gpio0 - -> MISSING /arm-io/atc-phy0 0x2a2a90000 -> MISSING -/arm-io/dart-usb0 0x2a2f00000 -> MISSING -/arm-io/dart-usb0/mapper-usb0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/usb-drd0 0x2a2280000 -> MISSING -/arm-io/usb-drd0/usb-drd0-port-hs - -> MISSING -/arm-io/usb-drd0/usb-drd0-port-ss - -> MISSING +/arm-io/dart-usb0 0x2a2f00000 -> /soc/iommu@2a2f00000 +/arm-io/dart-usb0/mapper-usb0 - -> /soc/iommu@2a2f00000 +/arm-io/usb-drd0 0x2a2280000 -> /soc/usb@2a2280000 +/arm-io/usb-drd0/usb-drd0-port-hs - -> /soc/usb@2a2280000 +/arm-io/usb-drd0/usb-drd0-port-ss - -> /soc/usb@2a2280000 /arm-io/atc-phy1 0x2aaa90000 -> /soc@200000000/phy@2ab000000 /arm-io/dart-usb1 0x2aaf00000 -> /soc@200000000/iommu@2aaf00000 /arm-io/dart-usb1/mapper-usb1 - -> /soc@200000000/iommu@2aaf00000 @@ -1320,51 +1320,51 @@ /arm-io/usb-drd2/usb-drd2-port-hs - -> /soc@200000000/usb@382280000 /arm-io/usb-drd2/usb-drd2-port-ss - -> /soc@200000000/usb@382280000 /arm-io/atc-phy3 0x38aa90000 -> /soc@200000000/phy@38b000000 -/arm-io/dart-auss0 0x395d60000 -> MISSING -/arm-io/dart-auss0/mapper-auss0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/usb-auss0 0x3953f0000 -> MISSING +/arm-io/dart-auss0 0x395d60000 -> /soc/iommu@395d60000 +/arm-io/dart-auss0/mapper-auss0 - -> /soc/iommu@395d60000 +/arm-io/usb-auss0 0x3953f0000 -> /soc/usb@3953f0000 /arm-io/nub-spmi0 0x28a014000 -> /soc@200000000/spmi@28a014000 /arm-io/nub-spmi0/spmi-abbeyL1 /arm-io/nub-spmi0@0xe -> /soc@200000000/spmi@28a014000/pmic@e /arm-io/nub-spmi0/spmi-mosquitoM0 /arm-io/nub-spmi0@0x9 -> MISSING /arm-io/nub-spmi0/btm /arm-io/nub-spmi0@0xb -> MISSING -/arm-io/nub-spmi2 0x28a094000 -> MISSING +/arm-io/nub-spmi2 0x28a094000 -> /soc/spmi@28a094000 /arm-io/nub-spmi2/spmi-abbeyF1 /arm-io/nub-spmi2@0xe -> MISSING -/arm-io/nub-spmi3 0x28a0d4000 -> MISSING +/arm-io/nub-spmi3 0x28a0d4000 -> /soc/spmi@28a0d4000 /arm-io/nub-spmi3/spmi-abbeyF2 /arm-io/nub-spmi3@0xe -> MISSING /arm-io/nub-spmi-a0 0x28a188000 -> /soc@200000000/spmi@28a188000 /arm-io/nub-spmi-a0/hpm0 /arm-io/nub-spmi-a0@0xc -> MISSING /arm-io/nub-spmi-a0/hpm1 /arm-io/nub-spmi-a0@0xa -> /soc@200000000/spmi@28a188000/usb-pd@a /arm-io/nub-spmi-a0/hpm5 /arm-io/nub-spmi-a0@0x8 -> MISSING -/arm-io/aop-spmi0 0x290914000 -> MISSING +/arm-io/aop-spmi0 0x290914000 -> /soc/spmi@290914000 /arm-io/aop-spmi0/stockholm-spmi /arm-io/aop-spmi0@0x9 -> MISSING /arm-io/aop-spmi0/stockholm-spmi/stockholm - -> WAIVED: NFC firmware service of the parent SPMI device, not another addressed bus device. /arm-io/aop-spmi0/spmi-wifibt /arm-io/aop-spmi0@0xe -> MISSING -/arm-io/dptx0-aux 0x29c260000 -> MISSING -/arm-io/dptx0-aux/dptx0-aux-core 0x29c260000 -> MISSING +/arm-io/dptx0-aux 0x29c260000 -> /soc/aux@29c260000 +/arm-io/dptx0-aux/dptx0-aux-core 0x29c260000 -> /soc/aux@29c260000 /arm-io/dptx0-aux/dptx0-aux-ufp - -> MISSING -/arm-io/dptx1-aux 0x29c264000 -> MISSING -/arm-io/dptx1-aux/dptx1-aux-core 0x29c264000 -> MISSING +/arm-io/dptx1-aux 0x29c264000 -> /soc/aux@29c264000 +/arm-io/dptx1-aux/dptx1-aux-core 0x29c264000 -> /soc/aux@29c264000 /arm-io/dptx1-aux/dptx1-aux-ufp - -> MISSING -/arm-io/disp0 0x488000000 -> MISSING -/arm-io/dart-disp0 0x48a300000 -> MISSING -/arm-io/dart-disp0/mapper-disp0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-disp0/mapper-disp0-piodma - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-disp0/mapper-disp0-scl - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-disp0/mapper-disp0-sca - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dcp0-expert 0x48a3ac058 -> WAIVED: Coprocessor firmware policy view; hosting coprocessor is inventoried separately. -/arm-io/dcp 0x48ae00000 -> MISSING -/arm-io/dcp/iop-dcp-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. -/arm-io/dart-dcp 0x48a340000 -> MISSING -/arm-io/dart-dcp/mapper-dcp - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-dcp/mapper-dcp-exclave - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. +/arm-io/disp0 0x488000000 -> /soc/dcp@48ae00000 +/arm-io/dart-disp0 0x48a300000 -> /soc/iommu@48a300000 +/arm-io/dart-disp0/mapper-disp0 - -> /soc/iommu@48a300000 +/arm-io/dart-disp0/mapper-disp0-piodma - -> /soc/iommu@48a300000 +/arm-io/dart-disp0/mapper-disp0-scl - -> /soc/iommu@48a300000 +/arm-io/dart-disp0/mapper-disp0-sca - -> /soc/iommu@48a300000 +/arm-io/dcp0-expert 0x48a3ac058 -> /soc/dcp-expert@48a3ac058 +/arm-io/dcp 0x48ae00000 -> /soc/dcp@48ae00000 +/arm-io/dcp/iop-dcp-nub - -> /soc/dcp@48ae00000 +/arm-io/dart-dcp 0x48a340000 -> /soc/iommu@48a340000 +/arm-io/dart-dcp/mapper-dcp - -> /soc/iommu@48a340000 +/arm-io/dart-dcp/mapper-dcp-exclave - -> /soc/iommu@48a340000 /arm-io/dcp0-sac-controller - -> MISSING /arm-io/dp-audio0 - -> WAIVED: Logical display audio DMA endpoint; SIO and display controllers are inventoried separately. -/arm-io/dart-disp0-isoc 0x48a180000 -> MISSING -/arm-io/dart-disp0-isoc/mapper-disp0-dpa - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/admac-disp0 0x48a140000 -> MISSING +/arm-io/dart-disp0-isoc 0x48a180000 -> /soc/iommu@48a180000 +/arm-io/dart-disp0-isoc/mapper-disp0-dpa - -> /soc/iommu@48a180000 +/arm-io/admac-disp0 0x48a140000 -> /soc/dma-controller@48a140000 /arm-io/admac-disp0-ced-ssw 0x48a2f4000 -> MISSING /arm-io/dispext0 0x2b0000000 -> /soc@200000000/dcp@2b2e00000 -/arm-io/dcpext0-expert 0x2b23ac058 -> WAIVED: Coprocessor firmware policy view; hosting coprocessor is inventoried separately. +/arm-io/dcpext0-expert 0x2b23ac058 -> /soc/dcp-expert@2b23ac058 /arm-io/dcpext0 0x2b2e00000 -> /soc@200000000/dcp@2b2e00000 /arm-io/dcpext0/iop-dcpext0-nub - -> /soc@200000000/dcp@2b2e00000 /arm-io/dart-dcpext0 0x2b2340000 -> /soc@200000000/iommu@2b2340000 @@ -1374,102 +1374,102 @@ /arm-io/dart-dispext0/mapper-dispext0 - -> /soc@200000000/iommu@2b2300000 /arm-io/dart-dispext0/mapper-dispext0-piodma - -> /soc@200000000/iommu@2b2300000 /arm-io/dp-audio1 - -> WAIVED: Logical display audio DMA endpoint; SIO and display controllers are inventoried separately. -/arm-io/dart-dispext0-isoc 0x2b2180000 -> MISSING -/arm-io/dart-dispext0-isoc/mapper-dispext0-dpa - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/admac-dispext0 0x2b2140000 -> MISSING +/arm-io/dart-dispext0-isoc 0x2b2180000 -> /soc/iommu@2b2180000 +/arm-io/dart-dispext0-isoc/mapper-dispext0-dpa - -> /soc/iommu@2b2180000 +/arm-io/admac-dispext0 0x2b2140000 -> /soc/dma-controller@2b2140000 /arm-io/admac-dispext0-ced-ssw 0x2b22f4000 -> MISSING -/arm-io/dispext1 0x390000000 -> MISSING -/arm-io/dcpext1-expert 0x3923ac058 -> WAIVED: Coprocessor firmware policy view; hosting coprocessor is inventoried separately. -/arm-io/dcpext1 0x392e00000 -> MISSING -/arm-io/dcpext1/iop-dcpext1-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. -/arm-io/dart-dcpext1 0x392340000 -> MISSING -/arm-io/dart-dcpext1/mapper-dcpext1 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-dcpext1/mapper-dcpext1-exclave - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-dispext1 0x392300000 -> MISSING -/arm-io/dart-dispext1/mapper-dispext1 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-dispext1/mapper-dispext1-piodma - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. +/arm-io/dispext1 0x390000000 -> /soc/dcp@392e00000 +/arm-io/dcpext1-expert 0x3923ac058 -> /soc/dcp-expert@3923ac058 +/arm-io/dcpext1 0x392e00000 -> /soc/dcp@392e00000 +/arm-io/dcpext1/iop-dcpext1-nub - -> /soc/dcp@392e00000 +/arm-io/dart-dcpext1 0x392340000 -> /soc/iommu@392340000 +/arm-io/dart-dcpext1/mapper-dcpext1 - -> /soc/iommu@392340000 +/arm-io/dart-dcpext1/mapper-dcpext1-exclave - -> /soc/iommu@392340000 +/arm-io/dart-dispext1 0x392300000 -> /soc/iommu@392300000 +/arm-io/dart-dispext1/mapper-dispext1 - -> /soc/iommu@392300000 +/arm-io/dart-dispext1/mapper-dispext1-piodma - -> /soc/iommu@392300000 /arm-io/dp-audio2 - -> WAIVED: Logical display audio DMA endpoint; SIO and display controllers are inventoried separately. -/arm-io/dart-dispext1-isoc 0x392180000 -> MISSING -/arm-io/dart-dispext1-isoc/mapper-dispext1-dpa - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/admac-dispext1 0x392140000 -> MISSING +/arm-io/dart-dispext1-isoc 0x392180000 -> /soc/iommu@392180000 +/arm-io/dart-dispext1-isoc/mapper-dispext1-dpa - -> /soc/iommu@392180000 +/arm-io/admac-dispext1 0x392140000 -> /soc/dma-controller@392140000 /arm-io/admac-dispext1-ced-ssw 0x3922f4000 -> MISSING -/arm-io/dispext2 0x300000000 -> MISSING -/arm-io/dcpext2-expert 0x3023ac058 -> WAIVED: Coprocessor firmware policy view; hosting coprocessor is inventoried separately. -/arm-io/dcpext2 0x302e00000 -> MISSING -/arm-io/dcpext2/iop-dcpext2-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. -/arm-io/dart-dcpext2 0x302340000 -> MISSING -/arm-io/dart-dcpext2/mapper-dcpext2 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-dcpext2/mapper-dcpext2-exclave - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-dispext2 0x302300000 -> MISSING -/arm-io/dart-dispext2/mapper-dispext2 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-dispext2/mapper-dispext2-piodma - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. +/arm-io/dispext2 0x300000000 -> /soc/dcp@302e00000 +/arm-io/dcpext2-expert 0x3023ac058 -> /soc/dcp-expert@3023ac058 +/arm-io/dcpext2 0x302e00000 -> /soc/dcp@302e00000 +/arm-io/dcpext2/iop-dcpext2-nub - -> /soc/dcp@302e00000 +/arm-io/dart-dcpext2 0x302340000 -> /soc/iommu@302340000 +/arm-io/dart-dcpext2/mapper-dcpext2 - -> /soc/iommu@302340000 +/arm-io/dart-dcpext2/mapper-dcpext2-exclave - -> /soc/iommu@302340000 +/arm-io/dart-dispext2 0x302300000 -> /soc/iommu@302300000 +/arm-io/dart-dispext2/mapper-dispext2 - -> /soc/iommu@302300000 +/arm-io/dart-dispext2/mapper-dispext2-piodma - -> /soc/iommu@302300000 /arm-io/dp-audio3 - -> WAIVED: Logical display audio DMA endpoint; SIO and display controllers are inventoried separately. -/arm-io/dart-dispext2-isoc 0x302180000 -> MISSING -/arm-io/dart-dispext2-isoc/mapper-dispext2-dpa - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/admac-dispext2 0x302140000 -> MISSING +/arm-io/dart-dispext2-isoc 0x302180000 -> /soc/iommu@302180000 +/arm-io/dart-dispext2-isoc/mapper-dispext2-dpa - -> /soc/iommu@302180000 +/arm-io/admac-dispext2 0x302140000 -> /soc/dma-controller@302140000 /arm-io/admac-dispext2-ced-ssw 0x3022f4000 -> MISSING -/arm-io/dispext3 0x304000000 -> MISSING -/arm-io/dcpext3-expert 0x3063ac058 -> WAIVED: Coprocessor firmware policy view; hosting coprocessor is inventoried separately. -/arm-io/dcpext3 0x306e00000 -> MISSING -/arm-io/dcpext3/iop-dcpext3-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. -/arm-io/dart-dcpext3 0x306340000 -> MISSING -/arm-io/dart-dcpext3/mapper-dcpext3 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-dcpext3/mapper-dcpext3-exclave - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-dispext3 0x306300000 -> MISSING -/arm-io/dart-dispext3/mapper-dispext3 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-dispext3/mapper-dispext3-piodma - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. +/arm-io/dispext3 0x304000000 -> /soc/dcp@306e00000 +/arm-io/dcpext3-expert 0x3063ac058 -> /soc/dcp-expert@3063ac058 +/arm-io/dcpext3 0x306e00000 -> /soc/dcp@306e00000 +/arm-io/dcpext3/iop-dcpext3-nub - -> /soc/dcp@306e00000 +/arm-io/dart-dcpext3 0x306340000 -> /soc/iommu@306340000 +/arm-io/dart-dcpext3/mapper-dcpext3 - -> /soc/iommu@306340000 +/arm-io/dart-dcpext3/mapper-dcpext3-exclave - -> /soc/iommu@306340000 +/arm-io/dart-dispext3 0x306300000 -> /soc/iommu@306300000 +/arm-io/dart-dispext3/mapper-dispext3 - -> /soc/iommu@306300000 +/arm-io/dart-dispext3/mapper-dispext3-piodma - -> /soc/iommu@306300000 /arm-io/dp-audio4 - -> WAIVED: Logical display audio DMA endpoint; SIO and display controllers are inventoried separately. -/arm-io/dart-dispext3-isoc 0x306180000 -> MISSING -/arm-io/dart-dispext3-isoc/mapper-dispext3-dpa - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/admac-dispext3 0x306140000 -> MISSING +/arm-io/dart-dispext3-isoc 0x306180000 -> /soc/iommu@306180000 +/arm-io/dart-dispext3-isoc/mapper-dispext3-dpa - -> /soc/iommu@306180000 +/arm-io/admac-dispext3 0x306140000 -> /soc/dma-controller@306140000 /arm-io/admac-dispext3-ced-ssw 0x3062f4000 -> MISSING -/arm-io/dart-scaler 0x2285260000 -> MISSING +/arm-io/dart-scaler 0x2285260000 -> /soc/iommu@2285260000 /arm-io/dart-scaler/:sotra_h17d_93 - -> MISSING /arm-io/dart-scaler/:sotra_h17c_44 - -> MISSING /arm-io/dart-scaler/:sotra_h17cr1_39 - -> MISSING /arm-io/dart-scaler/:sotra_h17cr2_39 - -> MISSING /arm-io/dart-scaler/:sotra_h17s_32 - -> MISSING -/arm-io/dart-scaler/mapper-scaler - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-scaler/mapper-scaler-piodma - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/scaler0 0x2285000000 -> MISSING +/arm-io/dart-scaler/mapper-scaler - -> /soc/iommu@2285260000 +/arm-io/dart-scaler/mapper-scaler-piodma - -> /soc/iommu@2285260000 +/arm-io/scaler0 0x2285000000 -> /soc/scaler@2285000000 /arm-io/scaler0/:sotra_h17c_0 - -> MISSING /arm-io/scaler0/:sotra_h17d_0 - -> MISSING /arm-io/scaler0/:sotra_h17s_0 - -> MISSING /arm-io/scaler0/:sotra_h17cr1_0 - -> MISSING /arm-io/scaler0/:sotra_h17cr2_0 - -> MISSING -/arm-io/dart-scaler0 0x2285260000 -> MISSING -/arm-io/dart-scaler0/mapper-scaler0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-scaler0/mapper-scaler-piodma0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/scaler1 0x23a1000000 -> MISSING +/arm-io/dart-scaler0 0x2285260000 -> /soc/iommu@2285260000 +/arm-io/dart-scaler0/mapper-scaler0 - -> /soc/iommu@2285260000 +/arm-io/dart-scaler0/mapper-scaler-piodma0 - -> /soc/iommu@2285260000 +/arm-io/scaler1 0x23a1000000 -> /soc/scaler@23a1000000 /arm-io/scaler1/:sotra_h17c_0 - -> MISSING /arm-io/scaler1/:sotra_h17d_0 - -> MISSING /arm-io/scaler1/:sotra_h17s_0 - -> MISSING /arm-io/scaler1/:sotra_h17cr1_0 - -> MISSING /arm-io/scaler1/:sotra_h17cr2_0 - -> MISSING -/arm-io/dart-scaler1 0x23a1260000 -> MISSING -/arm-io/dart-scaler1/mapper-scaler1 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-scaler1/mapper-scaler-piodma1 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/ave0 0x2283100000 -> MISSING +/arm-io/dart-scaler1 0x23a1260000 -> /soc/iommu@23a1260000 +/arm-io/dart-scaler1/mapper-scaler1 - -> /soc/iommu@23a1260000 +/arm-io/dart-scaler1/mapper-scaler-piodma1 - -> /soc/iommu@23a1260000 +/arm-io/ave0 0x2283100000 -> /soc/video-encoder@2283100000 /arm-io/ave0/:sotra_h17c_0 - -> MISSING /arm-io/ave0/:sotra_h17d_0 - -> MISSING /arm-io/ave0/:sotra_h17s_0 - -> MISSING /arm-io/ave0/:sotra_h17cr1_0 - -> MISSING /arm-io/ave0/:sotra_h17cr2_0 - -> MISSING -/arm-io/dart-ave0 0x22830a0000 -> MISSING -/arm-io/dart-ave0/mapper-ave0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/ave1 0x23a3100000 -> MISSING +/arm-io/dart-ave0 0x22830a0000 -> /soc/iommu@22830a0000 +/arm-io/dart-ave0/mapper-ave0 - -> /soc/iommu@22830a0000 +/arm-io/ave1 0x23a3100000 -> /soc/video-encoder@23a3100000 /arm-io/ave1/:sotra_h17c_0 - -> MISSING /arm-io/ave1/:sotra_h17d_0 - -> MISSING /arm-io/ave1/:sotra_h17s_0 - -> MISSING /arm-io/ave1/:sotra_h17cr1_0 - -> MISSING /arm-io/ave1/:sotra_h17cr2_0 - -> MISSING -/arm-io/dart-ave1 0x23a30a0000 -> MISSING -/arm-io/dart-ave1/mapper-ave1 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/apr0 0x48d000000 -> MISSING -/arm-io/dart-apr0 0x48d020000 -> MISSING -/arm-io/dart-apr0/mapper-apr0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-apr1 0x230b020000 -> MISSING -/arm-io/dart-apr1/mapper-apr1 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. +/arm-io/dart-ave1 0x23a30a0000 -> /soc/iommu@23a30a0000 +/arm-io/dart-ave1/mapper-ave1 - -> /soc/iommu@23a30a0000 +/arm-io/apr0 0x48d000000 -> /soc/prores@48d000000 +/arm-io/dart-apr0 0x48d020000 -> /soc/iommu@48d020000 +/arm-io/dart-apr0/mapper-apr0 - -> /soc/iommu@48d020000 +/arm-io/dart-apr1 0x230b020000 -> /soc/iommu@230b020000 +/arm-io/dart-apr1/mapper-apr1 - -> /soc/iommu@230b020000 /arm-io/:sotra_h17cr1_42 - -> MISSING /arm-io/:sotra_h17cr1_42/apr1 - -> MISSING /arm-io/:sotra_h17cr2_42 - -> MISSING @@ -1478,33 +1478,33 @@ /arm-io/:sotra_h17c_48/apr1 - -> MISSING /arm-io/:sotra_h17d_97 - -> MISSING /arm-io/:sotra_h17d_97/apr1 - -> MISSING -/arm-io/jpeg0 0x2281000000 -> MISSING -/arm-io/jpeg1 0x2281060000 -> MISSING -/arm-io/dart-jpeg0 0x2281020000 -> MISSING -/arm-io/dart-jpeg0/mapper-jpeg0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-jpeg0/mapper-jpeg1 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/ane0 0x508000000 -> MISSING -/arm-io/dart-ane0 0x509800000 -> MISSING -/arm-io/dart-ane0/mapper-ane0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-ane0/mapper-ane0-iso1 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-ane0/mapper-ane0-iso2 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-ane0/mapper-ane0-iso3 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-ane0/mapper-ane0-iso4 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-ane0/mapper-ane0-iso5 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-ane0/mapper-ane0-iso6 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-ane0/mapper-ane0-iso7 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-ane0/mapper-ane0-mpm - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/avd0 0x2308000000 -> MISSING +/arm-io/jpeg0 0x2281000000 -> /soc/jpeg@2281000000 +/arm-io/jpeg1 0x2281060000 -> /soc/jpeg@2281060000 +/arm-io/dart-jpeg0 0x2281020000 -> /soc/iommu@2281020000 +/arm-io/dart-jpeg0/mapper-jpeg0 - -> /soc/iommu@2281020000 +/arm-io/dart-jpeg0/mapper-jpeg1 - -> /soc/iommu@2281020000 +/arm-io/ane0 0x508000000 -> /soc/neural-processor@508000000 +/arm-io/dart-ane0 0x509800000 -> /soc/iommu@509800000 +/arm-io/dart-ane0/mapper-ane0 - -> /soc/iommu@509800000 +/arm-io/dart-ane0/mapper-ane0-iso1 - -> /soc/iommu@509800000 +/arm-io/dart-ane0/mapper-ane0-iso2 - -> /soc/iommu@509800000 +/arm-io/dart-ane0/mapper-ane0-iso3 - -> /soc/iommu@509800000 +/arm-io/dart-ane0/mapper-ane0-iso4 - -> /soc/iommu@509800000 +/arm-io/dart-ane0/mapper-ane0-iso5 - -> /soc/iommu@509800000 +/arm-io/dart-ane0/mapper-ane0-iso6 - -> /soc/iommu@509800000 +/arm-io/dart-ane0/mapper-ane0-iso7 - -> /soc/iommu@509800000 +/arm-io/dart-ane0/mapper-ane0-mpm - -> /soc/iommu@509800000 +/arm-io/avd0 0x2308000000 -> /soc/video-decoder@2308000000 /arm-io/avd0/:sotra_h17c_0 - -> MISSING /arm-io/avd0/:sotra_h17d_0 - -> MISSING /arm-io/avd0/:sotra_h17s_0 - -> MISSING /arm-io/avd0/:sotra_h17cr1_0 - -> MISSING /arm-io/avd0/:sotra_h17cr2_0 - -> MISSING -/arm-io/dart-avd0 0x2309020000 -> MISSING -/arm-io/dart-avd0/mapper-avd0 - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-avd0/mapper-avd0-piodma - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/dart-avd0/mapper-avd0-adsbuf - -> WAIVED: IOMMU stream, described by iommus or iommu-map; DART hardware is inventoried separately. -/arm-io/sgx 0x2300000000 -> MISSING +/arm-io/dart-avd0 0x2309020000 -> /soc@2308000000/iommu@2309020000 +/arm-io/dart-avd0/mapper-avd0 - -> /soc@2308000000/iommu@2309020000 +/arm-io/dart-avd0/mapper-avd0-piodma - -> /soc@2308000000/iommu@2309020000 +/arm-io/dart-avd0/mapper-avd0-adsbuf - -> /soc@2308000000/iommu@2309020000 +/arm-io/sgx 0x2300000000 -> /soc/gpu@2300000000 /arm-io/sgx/:sotra_h17c_0 - -> MISSING /arm-io/sgx/:sotra_h17d_0 - -> MISSING /arm-io/sgx/:sotra_h17s_0 - -> MISSING @@ -1512,8 +1512,8 @@ /arm-io/sgx/:sotra_h17cr2_0 - -> MISSING /arm-io/gfx-asc 0x2302600000 -> MISSING /arm-io/gfx-asc/iop-gfx-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. -/arm-io/gfx1-asc 0x2302e00000 -> MISSING -/arm-io/gfx1-asc/iop-gfx1-nub - -> WAIVED: Firmware endpoint container; hosting coprocessor is inventoried separately. +/arm-io/gfx1-asc 0x2302e00000 -> /soc/gpu-coproc@2302e00000 +/arm-io/gfx1-asc/iop-gfx1-nub - -> /soc/gpu-coproc@2302e00000 /arm-io/mapper-gfx-asc - -> WAIVED: GPU firmware IOMMU stream; represented by the GPU IOMMU relationship. /arm-io/sapt - -> WAIVED: Firmware audio performance policy, not an independent hardware block. /arm-io/sapt/:sotra_h17d_92 - -> MISSING @@ -1548,18 +1548,18 @@ /arm-io/admac-base-ns/base-ns-adma-tx-3 - -> /soc@200000000/dma-controller@293800000 /arm-io/admac-base-ns/base-ns-adma-rx-3 - -> /soc@200000000/dma-controller@293800000 /arm-io/admac-base-ns/base-ns-adma-tx-5 - -> /soc@200000000/dma-controller@293800000 -/arm-io/admac-leap-ns 0x293300000 -> MISSING -/arm-io/admac-leap-ns/leap-ns-adma-tx-4 - -> WAIVED: DMA channel of the parent ADMAC controller, described by dmas. -/arm-io/admac-leap-ns/leap-ns-adma-rx-4 - -> WAIVED: DMA channel of the parent ADMAC controller, described by dmas. -/arm-io/admac-leap-ns/leap-ns-adma-tx-5 - -> WAIVED: DMA channel of the parent ADMAC controller, described by dmas. +/arm-io/admac-leap-ns 0x293300000 -> /soc/dma-controller@293300000 +/arm-io/admac-leap-ns/leap-ns-adma-tx-4 - -> /soc/dma-controller@293300000 +/arm-io/admac-leap-ns/leap-ns-adma-rx-4 - -> /soc/dma-controller@293300000 +/arm-io/admac-leap-ns/leap-ns-adma-tx-5 - -> /soc/dma-controller@293300000 /arm-io/admac-aop-ced-ssw 0x293c80000 -> MISSING -/arm-io/admac-leap-s 0x293200000 -> MISSING -/arm-io/admac-leap-s/leap-s-adma-rx-0 - -> WAIVED: DMA channel of the parent ADMAC controller, described by dmas. -/arm-io/admac-leap-s/leap-s-adma-rx-5 - -> WAIVED: DMA channel of the parent ADMAC controller, described by dmas. +/arm-io/admac-leap-s 0x293200000 -> /soc/dma-controller@293200000 +/arm-io/admac-leap-s/leap-s-adma-rx-0 - -> /soc/dma-controller@293200000 +/arm-io/admac-leap-s/leap-s-adma-rx-5 - -> /soc/dma-controller@293200000 /arm-io/audio-shared-dart-proxy - -> MISSING -/arm-io/admac-hp-mic-ec-proxy 0x4d3200000 -> MISSING +/arm-io/admac-hp-mic-ec-proxy 0x4d3200000 -> /soc/dma-controller@4d3200000 /arm-io/audio-hp-mic-proxy - -> MISSING -/arm-io/admac-sllb-ec-proxy 0x4d3200000 -> MISSING +/arm-io/admac-sllb-ec-proxy 0x4d3200000 -> /soc/dma-controller@4d3200000 /arm-io/audio-sllb-proxy - -> MISSING /arm-io/smctempsensor0 - -> /soc@200000000/smc@28c600000/hwmon /arm-io/cpu-debug-interface - -> /cpus @@ -1586,7 +1586,7 @@ /arm-io/timesync - -> WAIVED: Firmware clock synchronization policy, not a separate timer device. /arm-io/fillmore - -> MISSING /arm-io/isp-exclave-s-proxy - -> MISSING -/arm-io/msg 0x29b000000 -> MISSING +/arm-io/msg 0x29b000000 -> /soc/message-controller@29b000000 /arm-io/msghub - -> MISSING /arm-io/:sotra_h17d_5 - -> MISSING /arm-io/:sotra_h17d_6 - -> MISSING @@ -1598,8 +1598,8 @@ /port-usb-c-3 - -> /soc@200000000/spmi@28a1a8000/usb-pd@c/connector /port-hdmi0 - -> WAIVED: Logical DCP output interface; display controllers and their routes are inventoried separately. /port-magsafe3-1 - -> /soc@200000000/smc@28c600000 -/backlight - -> MISSING -/backlight/twodbl - -> MISSING +/backlight - -> /soc/dcp@48ae00000 +/backlight/twodbl - -> /soc/dcp@48ae00000 /pcie-sdreader-helper - -> WAIVED: Firmware SD-card policy helper; PCIe reader hardware is inventoried separately. /sacm - -> WAIVED: Display access-control policy; display hardware is inventoried separately. /exclaves-test - -> MISSING