xref: /freebsd/sys/contrib/device-tree/Bindings/display/ti/ti,am65x-dss.yaml (revision aa1a8ff2d6dbc51ef058f46f3db5a8bb77967145)
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: |
15*aa1a8ff2SEmmanuel Vadot  The AM625 and AM65x TI Keystone Display SubSystem with two output
16*aa1a8ff2SEmmanuel Vadot  ports and two video planes. In AM65x DSS, the first video port
17*aa1a8ff2SEmmanuel Vadot  supports 1 OLDI TX and in AM625 DSS, the first video port output is
18*aa1a8ff2SEmmanuel Vadot  internally routed to 2 OLDI TXes. The second video port supports DPI
19*aa1a8ff2SEmmanuel Vadot  format. The first plane is full video plane with all features and the
20*aa1a8ff2SEmmanuel Vadot  second is a "lite plane" without scaling support.
21c66ec88fSEmmanuel Vadot
22c66ec88fSEmmanuel Vadotproperties:
23c66ec88fSEmmanuel Vadot  compatible:
24*aa1a8ff2SEmmanuel Vadot    enum:
25*aa1a8ff2SEmmanuel Vadot      - ti,am625-dss
26*aa1a8ff2SEmmanuel Vadot      - ti,am65x-dss
27c66ec88fSEmmanuel Vadot
28c66ec88fSEmmanuel Vadot  reg:
29c66ec88fSEmmanuel Vadot    description:
30c66ec88fSEmmanuel Vadot      Addresses to each DSS memory region described in the SoC's TRM.
31c66ec88fSEmmanuel Vadot    items:
32c66ec88fSEmmanuel Vadot      - description: common DSS register area
33c66ec88fSEmmanuel Vadot      - description: VIDL1 light video plane
34c66ec88fSEmmanuel Vadot      - description: VID video plane
35c66ec88fSEmmanuel Vadot      - description: OVR1 overlay manager for vp1
36c66ec88fSEmmanuel Vadot      - description: OVR2 overlay manager for vp2
37c66ec88fSEmmanuel Vadot      - description: VP1 video port 1
38c66ec88fSEmmanuel Vadot      - description: VP2 video port 2
39c66ec88fSEmmanuel Vadot
40c66ec88fSEmmanuel Vadot  reg-names:
41c66ec88fSEmmanuel Vadot    items:
42c66ec88fSEmmanuel Vadot      - const: common
43c66ec88fSEmmanuel Vadot      - const: vidl1
44c66ec88fSEmmanuel Vadot      - const: vid
45c66ec88fSEmmanuel Vadot      - const: ovr1
46c66ec88fSEmmanuel Vadot      - const: ovr2
47c66ec88fSEmmanuel Vadot      - const: vp1
48c66ec88fSEmmanuel Vadot      - const: vp2
49c66ec88fSEmmanuel Vadot
50c66ec88fSEmmanuel Vadot  clocks:
51c66ec88fSEmmanuel Vadot    items:
52c66ec88fSEmmanuel Vadot      - description: fck DSS functional clock
53c66ec88fSEmmanuel Vadot      - description: vp1 Video Port 1 pixel clock
54c66ec88fSEmmanuel Vadot      - description: vp2 Video Port 2 pixel clock
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadot  clock-names:
57c66ec88fSEmmanuel Vadot    items:
58c66ec88fSEmmanuel Vadot      - const: fck
59c66ec88fSEmmanuel Vadot      - const: vp1
60c66ec88fSEmmanuel Vadot      - const: vp2
61c66ec88fSEmmanuel Vadot
625def4c47SEmmanuel Vadot  assigned-clocks:
635def4c47SEmmanuel Vadot    minItems: 1
645def4c47SEmmanuel Vadot    maxItems: 3
655def4c47SEmmanuel Vadot
665def4c47SEmmanuel Vadot  assigned-clock-parents:
675def4c47SEmmanuel Vadot    minItems: 1
685def4c47SEmmanuel Vadot    maxItems: 3
695def4c47SEmmanuel Vadot
70c66ec88fSEmmanuel Vadot  interrupts:
71c66ec88fSEmmanuel Vadot    maxItems: 1
72c66ec88fSEmmanuel Vadot
73c66ec88fSEmmanuel Vadot  power-domains:
74c66ec88fSEmmanuel Vadot    maxItems: 1
75c66ec88fSEmmanuel Vadot    description: phandle to the associated power domain
76c66ec88fSEmmanuel Vadot
775def4c47SEmmanuel Vadot  dma-coherent:
785def4c47SEmmanuel Vadot    type: boolean
795def4c47SEmmanuel Vadot
80c66ec88fSEmmanuel Vadot  ports:
815def4c47SEmmanuel Vadot    $ref: /schemas/graph.yaml#/properties/ports
825def4c47SEmmanuel Vadot
83c66ec88fSEmmanuel Vadot    properties:
84c66ec88fSEmmanuel Vadot      port@0:
855def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
86c66ec88fSEmmanuel Vadot        description:
87*aa1a8ff2SEmmanuel Vadot          For AM65x DSS, the OLDI output port node from video port 1.
88*aa1a8ff2SEmmanuel Vadot          For AM625 DSS, the internal DPI output port node from video
89*aa1a8ff2SEmmanuel Vadot          port 1.
90c66ec88fSEmmanuel Vadot
91c66ec88fSEmmanuel Vadot      port@1:
925def4c47SEmmanuel Vadot        $ref: /schemas/graph.yaml#/properties/port
93c66ec88fSEmmanuel Vadot        description:
94c66ec88fSEmmanuel Vadot          The DSS DPI output port node from video port 2
95c66ec88fSEmmanuel Vadot
96c66ec88fSEmmanuel Vadot  ti,am65x-oldi-io-ctrl:
97fac71e4eSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/phandle
98c66ec88fSEmmanuel Vadot    description:
99c66ec88fSEmmanuel Vadot      phandle to syscon device node mapping OLDI IO_CTRL registers.
100c66ec88fSEmmanuel Vadot      The mapped range should point to OLDI_DAT0_IO_CTRL, map it and
101c66ec88fSEmmanuel Vadot      following OLDI_DAT1_IO_CTRL, OLDI_DAT2_IO_CTRL, OLDI_DAT3_IO_CTRL,
102c66ec88fSEmmanuel Vadot      and OLDI_CLK_IO_CTRL registers. This property is needed for OLDI
103c66ec88fSEmmanuel Vadot      interface to work.
104c66ec88fSEmmanuel Vadot
105c66ec88fSEmmanuel Vadot  max-memory-bandwidth:
106c66ec88fSEmmanuel Vadot    $ref: /schemas/types.yaml#/definitions/uint32
107c66ec88fSEmmanuel Vadot    description:
108c66ec88fSEmmanuel Vadot      Input memory (from main memory to dispc) bandwidth limit in
109c66ec88fSEmmanuel Vadot      bytes per second
110c66ec88fSEmmanuel Vadot
111c66ec88fSEmmanuel Vadotrequired:
112c66ec88fSEmmanuel Vadot  - compatible
113c66ec88fSEmmanuel Vadot  - reg
114c66ec88fSEmmanuel Vadot  - reg-names
115c66ec88fSEmmanuel Vadot  - clocks
116c66ec88fSEmmanuel Vadot  - clock-names
117c66ec88fSEmmanuel Vadot  - interrupts
118c66ec88fSEmmanuel Vadot  - ports
119c66ec88fSEmmanuel Vadot
120c66ec88fSEmmanuel VadotadditionalProperties: false
121c66ec88fSEmmanuel Vadot
122c66ec88fSEmmanuel Vadotexamples:
123c66ec88fSEmmanuel Vadot  - |
124c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
125c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/irq.h>
126c66ec88fSEmmanuel Vadot    #include <dt-bindings/soc/ti,sci_pm_domain.h>
127c66ec88fSEmmanuel Vadot
128c66ec88fSEmmanuel Vadot    dss: dss@4a00000 {
129c66ec88fSEmmanuel Vadot            compatible = "ti,am65x-dss";
130c66ec88fSEmmanuel Vadot            reg =   <0x04a00000 0x1000>, /* common */
131c66ec88fSEmmanuel Vadot                    <0x04a02000 0x1000>, /* vidl1 */
132c66ec88fSEmmanuel Vadot                    <0x04a06000 0x1000>, /* vid */
133c66ec88fSEmmanuel Vadot                    <0x04a07000 0x1000>, /* ovr1 */
134c66ec88fSEmmanuel Vadot                    <0x04a08000 0x1000>, /* ovr2 */
135c66ec88fSEmmanuel Vadot                    <0x04a0a000 0x1000>, /* vp1 */
136c66ec88fSEmmanuel Vadot                    <0x04a0b000 0x1000>; /* vp2 */
137c66ec88fSEmmanuel Vadot            reg-names = "common", "vidl1", "vid",
138c66ec88fSEmmanuel Vadot                    "ovr1", "ovr2", "vp1", "vp2";
139c66ec88fSEmmanuel Vadot            ti,am65x-oldi-io-ctrl = <&dss_oldi_io_ctrl>;
140c66ec88fSEmmanuel Vadot            power-domains = <&k3_pds 67 TI_SCI_PD_EXCLUSIVE>;
141c66ec88fSEmmanuel Vadot            clocks =        <&k3_clks 67 1>,
142c66ec88fSEmmanuel Vadot                            <&k3_clks 216 1>,
143c66ec88fSEmmanuel Vadot                            <&k3_clks 67 2>;
144c66ec88fSEmmanuel Vadot            clock-names = "fck", "vp1", "vp2";
145c66ec88fSEmmanuel Vadot            interrupts = <GIC_SPI 166 IRQ_TYPE_EDGE_RISING>;
146c66ec88fSEmmanuel Vadot            ports {
147c66ec88fSEmmanuel Vadot                    #address-cells = <1>;
148c66ec88fSEmmanuel Vadot                    #size-cells = <0>;
149c66ec88fSEmmanuel Vadot                    port@0 {
150c66ec88fSEmmanuel Vadot                            reg = <0>;
151c66ec88fSEmmanuel Vadot                            oldi_out0: endpoint {
152c66ec88fSEmmanuel Vadot                                    remote-endpoint = <&lcd_in0>;
153c66ec88fSEmmanuel Vadot                            };
154c66ec88fSEmmanuel Vadot                    };
155c66ec88fSEmmanuel Vadot            };
156c66ec88fSEmmanuel Vadot    };
157