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