xref: /freebsd/sys/contrib/device-tree/Bindings/display/ti/ti,am65x-dss.yaml (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
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