Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
a8dd093
drm/asahi: g18: start stage 10 without a G18GFX01 capture
sithglan Oct 31, 2026
09bdc00
drm/asahi: g18: log application remaps only with g18_kick_log
sithglan Oct 31, 2026
c3f7c93
dt-bindings: power: apple,pmc: add T8152
sithglan Oct 31, 2026
6bfbe96
pmdomain/soc: apple: T8152 PMC voters and CLPC
sithglan Oct 31, 2026
403cdc8
arm64: dts: apple: j873: PMC voters and CLPC
sithglan Oct 31, 2026
44632bf
dt-bindings: spi: apple,qspi: add T8152
sithglan Oct 31, 2026
bbab5f6
arm64: dts: apple: t8152-j873: boot NOR with the NVRAM through QSPIMC
sithglan Oct 31, 2026
a3f06f7
soc: apple: describe the J873 display mailbox and SPMI providers
Acelogic Nov 6, 2026
81cba10
drm/apple_dcpib: port the J873 HDMI and USB-C display driver
sithglan Oct 31, 2026
de833a1
drm/apple_dcpib: re-send SET_MODE when the DCPAV video interface starts
sithglan Nov 5, 2026
0a97e05
drm/asahi: use current G18 parameter namespace in capture-free path
Acelogic Nov 6, 2026
04df2c3
drm/asahi: read the G18 stage parameter by value
Acelogic Nov 6, 2026
aedad98
drm/apple-dcpib: retain adopted firmware resources on failed startup
Acelogic Nov 6, 2026
3b25193
drm/apple-dcpib: use current DRM atomic commit callback types
Acelogic Nov 6, 2026
b58ef0f
tests: keep the DART range fixture aligned with gen3 metadata
Acelogic Nov 6, 2026
241cdf6
drm/apple-dcpib: reject an unpowered HDMI PHY before register access
Acelogic Nov 6, 2026
7916972
drm/apple_dcpib: stop advertised live AFK sessions before reinitializing
Acelogic Nov 6, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
249 changes: 249 additions & 0 deletions Documentation/devicetree/bindings/display/apple,t8152-dcp-iboot.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,249 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/apple,t8152-dcp-iboot.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Apple T8152 DCP on the iBoot display interface

maintainers:
- Thomas Glanzmann <thomas@glanzmann.de>

description: |
The Display Coprocessor (DCP) of the Apple T8152 SoC runs RTKit firmware
that offers a small iBoot display interface (disp0-service) next to the
full IOMobileFramebuffer protocol. This binding describes the DCP driven
through that interface, together with the DisplayPort PHY its DPTX port
is routed to. The DCP fetches through its own DART, the display pipe
scans out through another one, which sees each scanout buffer at the same
address.

properties:
compatible:
const: apple,t8152-dcp-iboot

apple,afk-active-endpoints:
$ref: /schemas/types.yaml#/definitions/uint32
maximum: 65535
description:
Runtime handoff from the bootloader. Bit N records that AFK endpoint
0x20 + N is running and must acknowledge shutdown before a new session
starts. A zero bit means stopped. The bootloader inserts this only
for controllers whose complete endpoint state it owns, and reserves
the old session's buffers. The driver refuses takeover if absent.
This property must not be hard-coded in a board device tree.

reg:
minItems: 2
maxItems: 7

reg-names:
oneOf:
- items:
- const: coproc
- const: atc
- const: dp-clock
- const: atc-ps
- const: atc-psd
- const: aux
- const: aux-ps
minItems: 5
description:
DCP coprocessor, ATC DisplayPort PHY (USB-C), the PMGR clock
control of its DisplayPort link, the PMGR power states the PHY
depends on, and optionally the AP DisplayPort AUX controller that
reads the sink's EDID with its PMGR power state
- items:
- const: coproc
- const: phy-core
- const: phy-apb
- const: aux
- const: aux-ps
- const: phy-ps
- const: coproc-ps
description:
DCP coprocessor, the HDMI dptx-phy blocks, the AP
DisplayPort AUX controller that reads the sink's EDID with its
PMGR power state, and the read-only PMGR power states for the
HDMI PHY and DCPEXT CPU. The driver only adopts the bootloader's
powered link and must check these states before accessing the PHY.
- items:
- const: coproc
- const: dp-clock
- const: aux
- const: aux-ps
minItems: 2
description:
DCP coprocessor, the PMGR clock control of the ATC DisplayPort
link (shared by the ports), and optionally the AP DisplayPort AUX
controller with its PMGR power state; the USB-C ports follow as
usb-c child nodes

apple,tunable-pre:
$ref: /schemas/types.yaml#/definitions/uint32-matrix
items:
items:
- description: register offset in the ATC PHY block
- description: mask
- description: value
description:
ATC PHY tunables (ADT ACIOPHY_CMN and CIOPLL_CORE defaults), applied
before the lane crossbar setup when the PHY starts from cold.

apple,tunable-post:
$ref: /schemas/types.yaml#/definitions/uint32-matrix
items:
items:
- description: register offset in the ATC PHY block
- description: mask
- description: value
description:
ATC PHY tunables (ADT ATC_FABRIC, DPPLL and AUX defaults), applied
after the lane crossbar setup.

apple,hdmi:
type: boolean
description:
The DCP drives the HDMI port through the dedicated dptx-phy and an
on-board DisplayPort-to-HDMI converter, instead of an ATC USB-C PHY.

apple,usb-pd:
$ref: /schemas/types.yaml#/definitions/phandle
description:
The USB-C port's PD controller (SPMI), polled for the DisplayPort alt
mode connection and the plug orientation.

hpd-gpios:
maxItems: 1
description:
Hot plug detect line of the connector, if the AP can read it (J873g
HDMI); without it the sink is assumed to stay connected.

mboxes:
maxItems: 1

iommus:
maxItems: 1
description: DCP DART stream

scanout:
type: object
additionalProperties: false
description:
The display pipe's scanout stream. Its DART is locked with its own
root, so it is a separate device that sees each scanout buffer at the
DCP's address.
properties:
iommus:
maxItems: 1
dma-coherent: true
required:
- iommus

dma-coherent: true

apple,die:
$ref: /schemas/types.yaml#/definitions/uint32
description: Die of the DPTX connection target, 0 if absent.

"#address-cells":
const: 2

"#size-cells":
const: 2

ranges: true

patternProperties:
"^usb-c@[0-9a-f]+$":
type: object
additionalProperties: false
description:
A USB-C port whose ATC PHY the DCP can drive. The DCP drives one port
at a time, the one a DisplayPort sink is plugged into.
properties:
reg:
maxItems: 3
reg-names:
items:
- const: atc
- const: atc-ps
- const: atc-psd
description:
ATC DisplayPort PHY, the PMGR power states it depends on (DP_0,
DP_1 and USB_AON) and its common power domain (PSD)
apple,dfp-endpoint:
$ref: /schemas/types.yaml#/definitions/uint32
description: The ATC's display-crossbar0 DFP endpoint (ATC instance).
apple,usb-pd:
$ref: /schemas/types.yaml#/definitions/phandle
description: The port's PD controller (SPMI).
apple,tunable-pre:
$ref: /schemas/types.yaml#/definitions/uint32-matrix
description: As the node's apple,tunable-pre, for this port's PHY.
apple,tunable-post:
$ref: /schemas/types.yaml#/definitions/uint32-matrix
description: As the node's apple,tunable-post, for this port's PHY.
required:
- reg
- reg-names
- apple,dfp-endpoint
- apple,usb-pd

required:
- compatible
- reg
- reg-names
- mboxes
- iommus
- scanout

additionalProperties: false

examples:
- |
soc {
#address-cells = <2>;
#size-cells = <2>;

display@286e00000 {
compatible = "apple,t8152-dcp-iboot";
reg = <0x2 0x86e00000 0x0 0x74000>,
<0x4 0x13000000 0x0 0x84000>,
<0x3 0x0002005c 0x0 0x4>,
<0x3 0x082900c0 0x0 0x104>,
<0x3 0x03a13a00 0x0 0xc0>;
reg-names = "coproc", "atc", "dp-clock", "atc-ps", "atc-psd";
mboxes = <&dcp_mbox>;
iommus = <&dcp_dart 23>;

scanout {
iommus = <&disp0_dart 0>;
};
};

display@296e00000 {
compatible = "apple,t8152-dcp-iboot";
reg = <0x2 0x96e00000 0x0 0x74000>,
<0x3 0x0002005c 0x0 0x4>;
reg-names = "coproc", "dp-clock";
#address-cells = <2>;
#size-cells = <2>;
ranges;
mboxes = <&dcp_mbox>;
iommus = <&dcp_dart 23>;

scanout {
iommus = <&disp0_dart 0>;
};

usb-c@413000000 {
reg = <0x4 0x13000000 0x0 0x84000>,
<0x3 0x082900c0 0x0 0x104>,
<0x3 0x03a13a00 0x0 0xc0>;
reg-names = "atc", "atc-ps", "atc-psd";
apple,dfp-endpoint = <3>;
apple,usb-pd = <&hpm3>;
};
};
};
37 changes: 36 additions & 1 deletion Documentation/devicetree/bindings/iommu/apple,dart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ properties:
- apple,t8103-usb4-dart
- apple,t8110-dart
- apple,t6000-dart
- apple,t8152-dart-gen3
- items:
- const: apple,t8140-ane-dart
- const: apple,t8140-dart
Expand Down Expand Up @@ -66,7 +67,19 @@ properties:
error-mask policy rather than changing it for these streams.

reg:
maxItems: 1
minItems: 1
items:
- description: DART registers
- description:
Gen3 only. The SoC's TLB invalidation aperture window for this
DART (ADT dart-tlbi-aperture plus tlbi-aperture-offset), shared
by all Gen3 DARTs. A stream is invalidated by writing a payload
there and broadcasting a TLBI.

reg-names:
items:
- const: dart
- const: tlbi

interrupts:
maxItems: 1
Expand Down Expand Up @@ -158,6 +171,28 @@ required:
- '#iommu-cells'
- interrupts

allOf:
- if:
properties:
compatible:
contains:
const: apple,t8152-dart-gen3
then:
description:
T8152 Gen3 DARTs are owned by the SPTM. The bootloader hands them
over locked; the operating system only adds page table entries in
root slots that are empty at handoff.
properties:
reg:
minItems: 2
required:
- reg-names
else:
properties:
reg:
maxItems: 1
reg-names: false

additionalProperties: false

examples:
Expand Down
11 changes: 8 additions & 3 deletions Documentation/devicetree/bindings/mailbox/apple,mailbox.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,11 @@ properties:
compatible:
oneOf:
- description:
T8152 SMC post-office mailbox with counted FIFOs and interrupt
T8152 SMC and DCP post-office mailboxes with counted FIFOs and interrupt
masking provided by the interrupt controller.
const: apple,t8152-smc-mailbox
enum:
- apple,t8152-smc-mailbox
- apple,t8152-dcp-mailbox

- description:
ASC mailboxes are the most common variant found on the M1 used
Expand Down Expand Up @@ -135,7 +137,9 @@ allOf:
properties:
compatible:
contains:
const: apple,t8152-smc-mailbox
enum:
- apple,t8152-smc-mailbox
- apple,t8152-dcp-mailbox
then:
properties:
interrupts:
Expand Down Expand Up @@ -195,6 +199,7 @@ allOf:
- apple,t8112-ane-mailbox
- apple,t8140-aop-setup-mailbox
- apple,t8152-smc-mailbox
- apple,t8152-dcp-mailbox
then:
properties:
interrupts:
Expand Down
2 changes: 2 additions & 0 deletions Documentation/devicetree/bindings/power/apple,pmc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ properties:
- apple,t8132-pmc
- apple,t8140-pmc
- apple,t8142-pmc
- apple,t8152-pmc

reg:
minItems: 2
Expand Down Expand Up @@ -191,6 +192,7 @@ patternProperties:
- apple,t8132-clpc
- apple,t8140-clpc
- apple,t8142-clpc
- apple,t8152-clpc

reg:
maxItems: 1
Expand Down
14 changes: 9 additions & 5 deletions Documentation/devicetree/bindings/spi/apple,qspi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -19,11 +19,15 @@ allOf:

properties:
compatible:
enum:
- apple,t8122-qspi
- apple,t8132-qspi
- apple,t6041-qspi
- apple,t8140-qspi
oneOf:
- enum:
- apple,t8122-qspi
- apple,t8132-qspi
- apple,t6041-qspi
- apple,t8140-qspi
- items:
- const: apple,t8152-qspi
- const: apple,t8140-qspi

reg:
maxItems: 1
Expand Down
4 changes: 3 additions & 1 deletion Documentation/devicetree/bindings/spmi/apple,spmi.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,9 @@ properties:
- apple,t6000-spmi
- apple,t8112-spmi
- const: apple,spmi
- const: apple,t8142-spmi
- enum:
- apple,t8142-spmi
- apple,t8152-spmi

reg:
maxItems: 1
Expand Down
Loading