1d5b0e70fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2d5b0e70fSEmmanuel Vadot%YAML 1.2 3d5b0e70fSEmmanuel Vadot--- 4d5b0e70fSEmmanuel Vadot$id: http://devicetree.org/schemas/display/arm,komeda.yaml# 5d5b0e70fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6d5b0e70fSEmmanuel Vadot 7d5b0e70fSEmmanuel Vadottitle: Arm Komeda display processor 8d5b0e70fSEmmanuel Vadot 9d5b0e70fSEmmanuel Vadotmaintainers: 10d5b0e70fSEmmanuel Vadot - Liviu Dudau <Liviu.Dudau@arm.com> 11d5b0e70fSEmmanuel Vadot - Andre Przywara <andre.przywara@arm.com> 12d5b0e70fSEmmanuel Vadot 13d5b0e70fSEmmanuel Vadotdescription: 14d5b0e70fSEmmanuel Vadot The Arm Mali D71 display processor supports up to two displays with up 15d5b0e70fSEmmanuel Vadot to a 4K resolution each. Each pipeline can be composed of up to four 16d5b0e70fSEmmanuel Vadot layers. It is typically connected to a digital display connector like HDMI. 17d5b0e70fSEmmanuel Vadot 18d5b0e70fSEmmanuel Vadotproperties: 19d5b0e70fSEmmanuel Vadot compatible: 20d5b0e70fSEmmanuel Vadot oneOf: 21d5b0e70fSEmmanuel Vadot - items: 22d5b0e70fSEmmanuel Vadot - const: arm,mali-d32 23d5b0e70fSEmmanuel Vadot - const: arm,mali-d71 24d5b0e70fSEmmanuel Vadot - const: arm,mali-d71 25d5b0e70fSEmmanuel Vadot 26d5b0e70fSEmmanuel Vadot reg: 27d5b0e70fSEmmanuel Vadot maxItems: 1 28d5b0e70fSEmmanuel Vadot 29d5b0e70fSEmmanuel Vadot interrupts: 30d5b0e70fSEmmanuel Vadot maxItems: 1 31d5b0e70fSEmmanuel Vadot 32d5b0e70fSEmmanuel Vadot clock-names: 33d5b0e70fSEmmanuel Vadot const: aclk 34d5b0e70fSEmmanuel Vadot 35d5b0e70fSEmmanuel Vadot clocks: 36d5b0e70fSEmmanuel Vadot maxItems: 1 37d5b0e70fSEmmanuel Vadot description: The main DPU processor clock 38d5b0e70fSEmmanuel Vadot 39d5b0e70fSEmmanuel Vadot "#address-cells": 40d5b0e70fSEmmanuel Vadot const: 1 41d5b0e70fSEmmanuel Vadot 42d5b0e70fSEmmanuel Vadot "#size-cells": 43d5b0e70fSEmmanuel Vadot const: 0 44d5b0e70fSEmmanuel Vadot 45d5b0e70fSEmmanuel Vadot memory-region: 46d5b0e70fSEmmanuel Vadot maxItems: 1 47d5b0e70fSEmmanuel Vadot description: 48d5b0e70fSEmmanuel Vadot Phandle to a node describing memory to be used for the framebuffer. 49d5b0e70fSEmmanuel Vadot If not present, the framebuffer may be located anywhere in memory. 50d5b0e70fSEmmanuel Vadot 51d5b0e70fSEmmanuel Vadot iommus: 52d5b0e70fSEmmanuel Vadot description: 53d5b0e70fSEmmanuel Vadot The stream IDs for each of the used pipelines, each four IDs for the 54d5b0e70fSEmmanuel Vadot four layers, plus one for the write-back stream. 55d5b0e70fSEmmanuel Vadot minItems: 5 56d5b0e70fSEmmanuel Vadot maxItems: 10 57d5b0e70fSEmmanuel Vadot 58d5b0e70fSEmmanuel VadotpatternProperties: 59d5b0e70fSEmmanuel Vadot '^pipeline@[01]$': 60d5b0e70fSEmmanuel Vadot type: object 61*7ef62cebSEmmanuel Vadot additionalProperties: false 62d5b0e70fSEmmanuel Vadot description: 63d5b0e70fSEmmanuel Vadot clocks 64d5b0e70fSEmmanuel Vadot 65d5b0e70fSEmmanuel Vadot properties: 66d5b0e70fSEmmanuel Vadot reg: 67d5b0e70fSEmmanuel Vadot enum: [ 0, 1 ] 68d5b0e70fSEmmanuel Vadot 69d5b0e70fSEmmanuel Vadot clock-names: 70d5b0e70fSEmmanuel Vadot const: pxclk 71d5b0e70fSEmmanuel Vadot 72d5b0e70fSEmmanuel Vadot clocks: 73d5b0e70fSEmmanuel Vadot maxItems: 1 74d5b0e70fSEmmanuel Vadot description: The input reference for the pixel clock. 75d5b0e70fSEmmanuel Vadot 76d5b0e70fSEmmanuel Vadot port: 77d5b0e70fSEmmanuel Vadot $ref: /schemas/graph.yaml#/$defs/port-base 78d5b0e70fSEmmanuel Vadot unevaluatedProperties: false 79d5b0e70fSEmmanuel Vadot 80d5b0e70fSEmmanuel VadotadditionalProperties: false 81d5b0e70fSEmmanuel Vadot 82d5b0e70fSEmmanuel Vadotrequired: 83d5b0e70fSEmmanuel Vadot - "#address-cells" 84d5b0e70fSEmmanuel Vadot - "#size-cells" 85d5b0e70fSEmmanuel Vadot - compatible 86d5b0e70fSEmmanuel Vadot - reg 87d5b0e70fSEmmanuel Vadot - interrupts 88d5b0e70fSEmmanuel Vadot - clock-names 89d5b0e70fSEmmanuel Vadot - clocks 90d5b0e70fSEmmanuel Vadot - pipeline@0 91d5b0e70fSEmmanuel Vadot 92d5b0e70fSEmmanuel Vadotexamples: 93d5b0e70fSEmmanuel Vadot - | 94d5b0e70fSEmmanuel Vadot display@c00000 { 95d5b0e70fSEmmanuel Vadot #address-cells = <1>; 96d5b0e70fSEmmanuel Vadot #size-cells = <0>; 97d5b0e70fSEmmanuel Vadot compatible = "arm,mali-d71"; 98d5b0e70fSEmmanuel Vadot reg = <0xc00000 0x20000>; 99d5b0e70fSEmmanuel Vadot interrupts = <168>; 100d5b0e70fSEmmanuel Vadot clocks = <&dpu_aclk>; 101d5b0e70fSEmmanuel Vadot clock-names = "aclk"; 102d5b0e70fSEmmanuel Vadot iommus = <&smmu 0>, <&smmu 1>, <&smmu 2>, <&smmu 3>, 103d5b0e70fSEmmanuel Vadot <&smmu 8>, 104d5b0e70fSEmmanuel Vadot <&smmu 4>, <&smmu 5>, <&smmu 6>, <&smmu 7>, 105d5b0e70fSEmmanuel Vadot <&smmu 9>; 106d5b0e70fSEmmanuel Vadot 107d5b0e70fSEmmanuel Vadot dp0_pipe0: pipeline@0 { 108d5b0e70fSEmmanuel Vadot clocks = <&fpgaosc2>; 109d5b0e70fSEmmanuel Vadot clock-names = "pxclk"; 110d5b0e70fSEmmanuel Vadot reg = <0>; 111d5b0e70fSEmmanuel Vadot 112d5b0e70fSEmmanuel Vadot port { 113d5b0e70fSEmmanuel Vadot dp0_pipe0_out: endpoint { 114d5b0e70fSEmmanuel Vadot remote-endpoint = <&db_dvi0_in>; 115d5b0e70fSEmmanuel Vadot }; 116d5b0e70fSEmmanuel Vadot }; 117d5b0e70fSEmmanuel Vadot }; 118d5b0e70fSEmmanuel Vadot 119d5b0e70fSEmmanuel Vadot dp0_pipe1: pipeline@1 { 120d5b0e70fSEmmanuel Vadot clocks = <&fpgaosc2>; 121d5b0e70fSEmmanuel Vadot clock-names = "pxclk"; 122d5b0e70fSEmmanuel Vadot reg = <1>; 123d5b0e70fSEmmanuel Vadot 124d5b0e70fSEmmanuel Vadot port { 125d5b0e70fSEmmanuel Vadot dp0_pipe1_out: endpoint { 126d5b0e70fSEmmanuel Vadot remote-endpoint = <&db_dvi1_in>; 127d5b0e70fSEmmanuel Vadot }; 128d5b0e70fSEmmanuel Vadot }; 129d5b0e70fSEmmanuel Vadot }; 130d5b0e70fSEmmanuel Vadot }; 131d5b0e70fSEmmanuel Vadot... 132