Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: display: Add Apple pre-DCP display controller

Add bindings for a secondary display controller present on certain
Apple laptops.

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Reviewed-by: Neal Gompa <neal@gompa.dev>
Signed-off-by: Sasha Finkelstein <fnkl.kernel@gmail.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20250224-adpdrm-v8-1-cccf96710f0f@gmail.com
Signed-off-by: Alyssa Rosenzweig <alyssa@rosenzweig.io>

authored by

Sasha Finkelstein and committed by
Alyssa Rosenzweig
7a108b93 0670c2f5

+229
+83
Documentation/devicetree/bindings/display/apple,h7-display-pipe-mipi.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/display/apple,h7-display-pipe-mipi.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Apple pre-DCP display controller MIPI interface 8 + 9 + maintainers: 10 + - Sasha Finkelstein <fnkl.kernel@gmail.com> 11 + 12 + description: 13 + The MIPI controller part of the pre-DCP Apple display controller 14 + 15 + allOf: 16 + - $ref: dsi-controller.yaml# 17 + 18 + properties: 19 + compatible: 20 + items: 21 + - enum: 22 + - apple,t8112-display-pipe-mipi 23 + - apple,t8103-display-pipe-mipi 24 + - const: apple,h7-display-pipe-mipi 25 + 26 + reg: 27 + maxItems: 1 28 + 29 + power-domains: 30 + maxItems: 1 31 + 32 + ports: 33 + $ref: /schemas/graph.yaml#/properties/ports 34 + 35 + properties: 36 + port@0: 37 + $ref: /schemas/graph.yaml#/properties/port 38 + description: Input port. Always connected to the primary controller 39 + 40 + port@1: 41 + $ref: /schemas/graph.yaml#/properties/port 42 + description: Output MIPI DSI port to the panel 43 + 44 + required: 45 + - port@0 46 + - port@1 47 + 48 + required: 49 + - compatible 50 + - reg 51 + - ports 52 + 53 + unevaluatedProperties: false 54 + 55 + examples: 56 + - | 57 + dsi@28200000 { 58 + compatible = "apple,t8103-display-pipe-mipi", "apple,h7-display-pipe-mipi"; 59 + reg = <0x28200000 0xc000>; 60 + power-domains = <&ps_dispdfr_mipi>; 61 + 62 + ports { 63 + #address-cells = <1>; 64 + #size-cells = <0>; 65 + 66 + port@0 { 67 + reg = <0>; 68 + 69 + dfr_adp_out_mipi: endpoint { 70 + remote-endpoint = <&dfr_adp_out_mipi>; 71 + }; 72 + }; 73 + 74 + port@1 { 75 + reg = <1>; 76 + 77 + dfr_panel_in: endpoint { 78 + remote-endpoint = <&dfr_mipi_out_panel>; 79 + }; 80 + }; 81 + }; 82 + }; 83 + ...
+88
Documentation/devicetree/bindings/display/apple,h7-display-pipe.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/display/apple,h7-display-pipe.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Apple pre-DCP display controller 8 + 9 + maintainers: 10 + - Sasha Finkelstein <fnkl.kernel@gmail.com> 11 + 12 + description: 13 + A secondary display controller used to drive the "touchbar" on 14 + certain Apple laptops. 15 + 16 + properties: 17 + compatible: 18 + items: 19 + - enum: 20 + - apple,t8112-display-pipe 21 + - apple,t8103-display-pipe 22 + - const: apple,h7-display-pipe 23 + 24 + reg: 25 + items: 26 + - description: Primary register block, controls planes and blending 27 + - description: 28 + Contains other configuration registers like interrupt 29 + and FIFO control 30 + 31 + reg-names: 32 + items: 33 + - const: be 34 + - const: fe 35 + 36 + power-domains: 37 + description: 38 + Phandles to pmgr entries that are needed for this controller to turn on. 39 + Aside from that, their specific functions are unknown 40 + maxItems: 2 41 + 42 + interrupts: 43 + items: 44 + - description: Unknown function 45 + - description: Primary interrupt. Vsync events are reported via it 46 + 47 + interrupt-names: 48 + items: 49 + - const: be 50 + - const: fe 51 + 52 + iommus: 53 + maxItems: 1 54 + 55 + port: 56 + $ref: /schemas/graph.yaml#/properties/port 57 + description: Output port. Always connected to apple,h7-display-pipe-mipi 58 + 59 + required: 60 + - compatible 61 + - reg 62 + - interrupts 63 + - port 64 + 65 + additionalProperties: false 66 + 67 + examples: 68 + - | 69 + #include <dt-bindings/interrupt-controller/apple-aic.h> 70 + display-pipe@28200000 { 71 + compatible = "apple,t8103-display-pipe", "apple,h7-display-pipe"; 72 + reg = <0x28200000 0xc000>, 73 + <0x28400000 0x4000>; 74 + reg-names = "be", "fe"; 75 + power-domains = <&ps_dispdfr_fe>, <&ps_dispdfr_be>; 76 + interrupt-parent = <&aic>; 77 + interrupts = <AIC_IRQ 502 IRQ_TYPE_LEVEL_HIGH>, 78 + <AIC_IRQ 506 IRQ_TYPE_LEVEL_HIGH>; 79 + interrupt-names = "be", "fe"; 80 + iommus = <&displaydfr_dart 0>; 81 + 82 + port { 83 + dfr_adp_out_mipi: endpoint { 84 + remote-endpoint = <&dfr_mipi_in_adp>; 85 + }; 86 + }; 87 + }; 88 + ...
+58
Documentation/devicetree/bindings/display/panel/apple,summit.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/display/panel/apple,summit.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Apple "Summit" display panel 8 + 9 + maintainers: 10 + - Sasha Finkelstein <fnkl.kernel@gmail.com> 11 + 12 + description: 13 + An OLED panel used as a touchbar on certain Apple laptops. 14 + Contains a backlight device, which controls brightness of the panel itself. 15 + The backlight common properties are included for this reason 16 + 17 + allOf: 18 + - $ref: panel-common.yaml# 19 + - $ref: /schemas/leds/backlight/common.yaml# 20 + 21 + properties: 22 + compatible: 23 + items: 24 + - enum: 25 + - apple,j293-summit 26 + - apple,j493-summit 27 + - const: apple,summit 28 + 29 + reg: 30 + maxItems: 1 31 + 32 + required: 33 + - compatible 34 + - reg 35 + - max-brightness 36 + - port 37 + 38 + unevaluatedProperties: false 39 + 40 + examples: 41 + - | 42 + dsi { 43 + #address-cells = <1>; 44 + #size-cells = <0>; 45 + 46 + panel@0 { 47 + compatible = "apple,j293-summit", "apple,summit"; 48 + reg = <0>; 49 + max-brightness = <255>; 50 + 51 + port { 52 + endpoint { 53 + remote-endpoint = <&dfr_bridge_out>; 54 + }; 55 + }; 56 + }; 57 + }; 58 + ...