Created
January 8, 2026 12:22
-
-
Save IntegralPilot/5a8b20a7e962d19e973eb00121984e73 to your computer and use it in GitHub Desktop.
MTP DT Bindings (draft)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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>; | |
| }; | |
| }; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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>; | |
| }; |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # 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