Skip to content

Instantly share code, notes, and snippets.

@IntegralPilot
Created January 8, 2026 12:22
Show Gist options
  • Select an option

  • Save IntegralPilot/5a8b20a7e962d19e973eb00121984e73 to your computer and use it in GitHub Desktop.

Select an option

Save IntegralPilot/5a8b20a7e962d19e973eb00121984e73 to your computer and use it in GitHub Desktop.
MTP DT Bindings (draft)
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/input/apple,dockchannel-hid.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Apple DockChannel HID Transport
maintainers:
- Michael Reeves <[email protected]>
description: |
Transport layer for HID devices (keyboard, trackpad) connected via the
DockChannel FIFO interface on Apple Silicon SoCs.
properties:
compatible:
const: apple,dockchannel-hid
reg:
items:
- description: Configuration registers
- description: Data FIFO registers
- description: Remote configuration registers
- description: Remote data FIFO registers
reg-names:
items:
- const: config
- const: data
- const: rmt-config
- const: rmt-data
interrupts:
items:
- description: TX interrupt
- description: RX interrupt
interrupt-names:
items:
- const: tx
- const: rx
mboxes:
maxItems: 1
iommus:
maxItems: 1
apple,mtp:
$ref: /schemas/types.yaml#/definitions/phandle
description: Phandle to the co-processor (MTP) node.
keyboard:
type: object
description: |
Optional properties for the internal keyboard.
properties:
hid-country-code:
$ref: /schemas/types.yaml#/definitions/uint32
description: The USB HID country code for the keyboard layout.
additionalProperties: false
required:
- compatible
- reg
- reg-names
- interrupts
- interrupt-names
- mboxes
- iommus
- apple,mtp
additionalProperties: false
examples:
- |
#include <dt-bindings/interrupt-controller/irq.h>
input@8000 {
compatible = "apple,dockchannel-hid";
reg = <0x8000 0x4000>, <0xc000 0x4000>,
<0x0000 0x4000>, <0x4000 0x4000>;
reg-names = "config", "data", "rmt-config", "rmt-data";
mboxes = <&mtp_mbox>;
iommus = <&mtp_dart 1>;
apple,mtp = <&mtp>;
interrupts = <2 IRQ_TYPE_LEVEL_HIGH>, <3 IRQ_TYPE_LEVEL_HIGH>;
interrupt-names = "tx", "rx";
keyboard {
hid-country-code = <0>;
};
};
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
# Copyright (c) 2025 The Asahi Linux contributors
%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
maintainers:
- Michael Reeves <[email protected]>
description: |
DockChannel is a hardware FIFO and interrupt controller used on Apple SoCs
for low-latency communication with co-processors.
properties:
compatible:
items:
- enum:
- apple,t6020-dockchannel
- apple,t8112-dockchannel
- const: apple,dockchannel
reg:
maxItems: 1
interrupts:
maxItems: 1
interrupt-controller: true
"#interrupt-cells":
const: 2
ranges: true
nonposted-mmio: true
"#address-cells":
const: 1
"#size-cells":
const: 1
required:
- compatible
- reg
- interrupts
- interrupt-controller
- "#interrupt-cells"
- ranges
- "#address-cells"
- "#size-cells"
additionalProperties:
type: object
examples:
- |
#include <dt-bindings/interrupt-controller/apple-aic.h>
#include <dt-bindings/interrupt-controller/irq.h>
mtp_dockchannel: fifo@2a9b14000 {
compatible = "apple,t6020-dockchannel", "apple,dockchannel";
reg = <0x2 0xa9b14000 0x0 0x4000>;
interrupt-parent = <&aic>;
interrupts = <AIC_IRQ 677 IRQ_TYPE_LEVEL_HIGH>;
ranges = <0 0x2 0xa9b28000 0x20000>;
nonposted-mmio;
#address-cells = <1>;
#size-cells = <1>;
interrupt-controller;
#interrupt-cells = <2>;
};
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/soc/apple/apple,mtp.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Apple MTP Co-processor
maintainers:
- Michael Reeves <[email protected]>
description: |
The MTP (Multi-Touch Processor) is an ARM-based co-processor
used for managing internal human interface devices on M2
and later Apple Silicon laptops.
properties:
compatible:
items:
- enum:
- apple,t6020-mtp
- apple,t8112-mtp
- const: apple,mtp
reg:
items:
- description: ASC control registers
- description: SRAM/Shared memory region
reg-names:
items:
- const: asc
- const: sram
required:
- compatible
- reg
- reg-names
additionalProperties: false
examples:
- |
mtp: mtp@2a9400000 {
compatible = "apple,t6020-mtp", "apple,mtp";
reg = <0x2 0xa9400000 0x0 0x4000>,
<0x2 0xa9c00000 0x0 0x100000>;
reg-names = "asc", "sram";
};
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment