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