1# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2# Copyright 2019 Texas Instruments Incorporated 3%YAML 1.2 4--- 5$id: http://devicetree.org/schemas/display/ti/ti,am65x-dss.yaml# 6$schema: http://devicetree.org/meta-schemas/core.yaml# 7 8title: Texas Instruments AM65x Display Subsystem 9 10maintainers: 11 - Jyri Sarha <jsarha@ti.com> 12 - Tomi Valkeinen <tomi.valkeinen@ti.com> 13 14description: | 15 The AM625 and AM65x TI Keystone Display SubSystem with two output 16 ports and two video planes. In AM65x DSS, the first video port 17 supports 1 OLDI TX and in AM625 DSS, the first video port output is 18 internally routed to 2 OLDI TXes. The second video port supports DPI 19 format. The first plane is full video plane with all features and the 20 second is a "lite plane" without scaling support. 21 22properties: 23 compatible: 24 enum: 25 - ti,am625-dss 26 - ti,am62a7,dss 27 - ti,am65x-dss 28 29 reg: 30 description: 31 Addresses to each DSS memory region described in the SoC's TRM. 32 items: 33 - description: common DSS register area 34 - description: VIDL1 light video plane 35 - description: VID video plane 36 - description: OVR1 overlay manager for vp1 37 - description: OVR2 overlay manager for vp2 38 - description: VP1 video port 1 39 - description: VP2 video port 2 40 41 reg-names: 42 items: 43 - const: common 44 - const: vidl1 45 - const: vid 46 - const: ovr1 47 - const: ovr2 48 - const: vp1 49 - const: vp2 50 51 clocks: 52 items: 53 - description: fck DSS functional clock 54 - description: vp1 Video Port 1 pixel clock 55 - description: vp2 Video Port 2 pixel clock 56 57 clock-names: 58 items: 59 - const: fck 60 - const: vp1 61 - const: vp2 62 63 assigned-clocks: 64 minItems: 1 65 maxItems: 3 66 67 assigned-clock-parents: 68 minItems: 1 69 maxItems: 3 70 71 interrupts: 72 maxItems: 1 73 74 power-domains: 75 maxItems: 1 76 description: phandle to the associated power domain 77 78 dma-coherent: 79 type: boolean 80 81 ports: 82 $ref: /schemas/graph.yaml#/properties/ports 83 84 properties: 85 port@0: 86 $ref: /schemas/graph.yaml#/properties/port 87 description: 88 For AM65x DSS, the OLDI output port node from video port 1. 89 For AM625 DSS, the internal DPI output port node from video 90 port 1. 91 For AM62A7 DSS, the port is tied off inside the SoC. 92 93 port@1: 94 $ref: /schemas/graph.yaml#/properties/port 95 description: 96 The DSS DPI output port node from video port 2 97 98 ti,am65x-oldi-io-ctrl: 99 $ref: /schemas/types.yaml#/definitions/phandle 100 description: 101 phandle to syscon device node mapping OLDI IO_CTRL registers. 102 The mapped range should point to OLDI_DAT0_IO_CTRL, map it and 103 following OLDI_DAT1_IO_CTRL, OLDI_DAT2_IO_CTRL, OLDI_DAT3_IO_CTRL, 104 and OLDI_CLK_IO_CTRL registers. This property is needed for OLDI 105 interface to work. 106 107 max-memory-bandwidth: 108 $ref: /schemas/types.yaml#/definitions/uint32 109 description: 110 Input memory (from main memory to dispc) bandwidth limit in 111 bytes per second 112 113allOf: 114 - if: 115 properties: 116 compatible: 117 contains: 118 const: ti,am62a7-dss 119 then: 120 properties: 121 ports: 122 properties: 123 port@0: false 124 125required: 126 - compatible 127 - reg 128 - reg-names 129 - clocks 130 - clock-names 131 - interrupts 132 - ports 133 134additionalProperties: false 135 136examples: 137 - | 138 #include <dt-bindings/interrupt-controller/arm-gic.h> 139 #include <dt-bindings/interrupt-controller/irq.h> 140 #include <dt-bindings/soc/ti,sci_pm_domain.h> 141 142 dss: dss@4a00000 { 143 compatible = "ti,am65x-dss"; 144 reg = <0x04a00000 0x1000>, /* common */ 145 <0x04a02000 0x1000>, /* vidl1 */ 146 <0x04a06000 0x1000>, /* vid */ 147 <0x04a07000 0x1000>, /* ovr1 */ 148 <0x04a08000 0x1000>, /* ovr2 */ 149 <0x04a0a000 0x1000>, /* vp1 */ 150 <0x04a0b000 0x1000>; /* vp2 */ 151 reg-names = "common", "vidl1", "vid", 152 "ovr1", "ovr2", "vp1", "vp2"; 153 ti,am65x-oldi-io-ctrl = <&dss_oldi_io_ctrl>; 154 power-domains = <&k3_pds 67 TI_SCI_PD_EXCLUSIVE>; 155 clocks = <&k3_clks 67 1>, 156 <&k3_clks 216 1>, 157 <&k3_clks 67 2>; 158 clock-names = "fck", "vp1", "vp2"; 159 interrupts = <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>; 160 ports { 161 #address-cells = <1>; 162 #size-cells = <0>; 163 port@0 { 164 reg = <0>; 165 oldi_out0: endpoint { 166 remote-endpoint = <&lcd_in0>; 167 }; 168 }; 169 }; 170 }; 171