xref: /freebsd/sys/contrib/device-tree/Bindings/media/qcom,sdm845-venus.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
1c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c66ec88fSEmmanuel Vadot%YAML 1.2
3c66ec88fSEmmanuel Vadot---
4*fac71e4eSEmmanuel Vadot$id: http://devicetree.org/schemas/media/qcom,sdm845-venus.yaml#
5*fac71e4eSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
6c66ec88fSEmmanuel Vadot
7*fac71e4eSEmmanuel Vadottitle: Qualcomm SDM845 Venus video encode and decode accelerators
8c66ec88fSEmmanuel Vadot
9c66ec88fSEmmanuel Vadotmaintainers:
10c66ec88fSEmmanuel Vadot  - Stanimir Varbanov <stanimir.varbanov@linaro.org>
11c66ec88fSEmmanuel Vadot
12c66ec88fSEmmanuel Vadotdescription: |
13c66ec88fSEmmanuel Vadot  The Venus IP is a video encode and decode accelerator present
14c66ec88fSEmmanuel Vadot  on Qualcomm platforms
15c66ec88fSEmmanuel Vadot
16*fac71e4eSEmmanuel VadotallOf:
17*fac71e4eSEmmanuel Vadot  - $ref: qcom,venus-common.yaml#
18*fac71e4eSEmmanuel Vadot
19c66ec88fSEmmanuel Vadotproperties:
20c66ec88fSEmmanuel Vadot  compatible:
21c66ec88fSEmmanuel Vadot    const: qcom,sdm845-venus
22c66ec88fSEmmanuel Vadot
23c66ec88fSEmmanuel Vadot  power-domains:
24c66ec88fSEmmanuel Vadot    maxItems: 1
25c66ec88fSEmmanuel Vadot
26c66ec88fSEmmanuel Vadot  clocks:
27c66ec88fSEmmanuel Vadot    maxItems: 3
28c66ec88fSEmmanuel Vadot
29c66ec88fSEmmanuel Vadot  clock-names:
30c66ec88fSEmmanuel Vadot    items:
31c66ec88fSEmmanuel Vadot      - const: core
32c66ec88fSEmmanuel Vadot      - const: iface
33c66ec88fSEmmanuel Vadot      - const: bus
34c66ec88fSEmmanuel Vadot
35c66ec88fSEmmanuel Vadot  iommus:
36c66ec88fSEmmanuel Vadot    maxItems: 2
37c66ec88fSEmmanuel Vadot
38c66ec88fSEmmanuel Vadot  video-core0:
39c66ec88fSEmmanuel Vadot    type: object
40c66ec88fSEmmanuel Vadot
41c66ec88fSEmmanuel Vadot    properties:
42c66ec88fSEmmanuel Vadot      compatible:
43c66ec88fSEmmanuel Vadot        const: venus-decoder
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot      clocks:
46c66ec88fSEmmanuel Vadot        maxItems: 2
47c66ec88fSEmmanuel Vadot
48c66ec88fSEmmanuel Vadot      clock-names:
49c66ec88fSEmmanuel Vadot        items:
50c66ec88fSEmmanuel Vadot          - const: core
51c66ec88fSEmmanuel Vadot          - const: bus
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot      power-domains:
54c66ec88fSEmmanuel Vadot        maxItems: 1
55c66ec88fSEmmanuel Vadot
56c66ec88fSEmmanuel Vadot    required:
57c66ec88fSEmmanuel Vadot      - compatible
58c66ec88fSEmmanuel Vadot      - clocks
59c66ec88fSEmmanuel Vadot      - clock-names
60c66ec88fSEmmanuel Vadot      - power-domains
61c66ec88fSEmmanuel Vadot
62c66ec88fSEmmanuel Vadot    additionalProperties: false
63c66ec88fSEmmanuel Vadot
64c66ec88fSEmmanuel Vadot  video-core1:
65c66ec88fSEmmanuel Vadot    type: object
66c66ec88fSEmmanuel Vadot
67c66ec88fSEmmanuel Vadot    properties:
68c66ec88fSEmmanuel Vadot      compatible:
69c66ec88fSEmmanuel Vadot        const: venus-encoder
70c66ec88fSEmmanuel Vadot
71c66ec88fSEmmanuel Vadot      clocks:
72c66ec88fSEmmanuel Vadot        maxItems: 2
73c66ec88fSEmmanuel Vadot
74c66ec88fSEmmanuel Vadot      clock-names:
75c66ec88fSEmmanuel Vadot        items:
76c66ec88fSEmmanuel Vadot          - const: core
77c66ec88fSEmmanuel Vadot          - const: bus
78c66ec88fSEmmanuel Vadot
79c66ec88fSEmmanuel Vadot      power-domains:
80c66ec88fSEmmanuel Vadot        maxItems: 1
81c66ec88fSEmmanuel Vadot
82c66ec88fSEmmanuel Vadot    required:
83c66ec88fSEmmanuel Vadot      - compatible
84c66ec88fSEmmanuel Vadot      - clocks
85c66ec88fSEmmanuel Vadot      - clock-names
86c66ec88fSEmmanuel Vadot      - power-domains
87c66ec88fSEmmanuel Vadot
88c66ec88fSEmmanuel Vadot    additionalProperties: false
89c66ec88fSEmmanuel Vadot
90c66ec88fSEmmanuel Vadotrequired:
91c66ec88fSEmmanuel Vadot  - compatible
92c66ec88fSEmmanuel Vadot  - iommus
93c66ec88fSEmmanuel Vadot  - video-core0
94c66ec88fSEmmanuel Vadot  - video-core1
95c66ec88fSEmmanuel Vadot
96*fac71e4eSEmmanuel VadotunevaluatedProperties: false
976be33864SEmmanuel Vadot
98c66ec88fSEmmanuel Vadotexamples:
99c66ec88fSEmmanuel Vadot  - |
100c66ec88fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
101c66ec88fSEmmanuel Vadot    #include <dt-bindings/clock/qcom,videocc-sdm845.h>
102c66ec88fSEmmanuel Vadot
103c66ec88fSEmmanuel Vadot    video-codec@aa00000 {
104c66ec88fSEmmanuel Vadot        compatible = "qcom,sdm845-venus";
105c66ec88fSEmmanuel Vadot        reg = <0x0aa00000 0xff000>;
106c66ec88fSEmmanuel Vadot        interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
107c66ec88fSEmmanuel Vadot        clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
108c66ec88fSEmmanuel Vadot                 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
109c66ec88fSEmmanuel Vadot                 <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>;
110c66ec88fSEmmanuel Vadot        clock-names = "core", "iface", "bus";
111c66ec88fSEmmanuel Vadot        power-domains = <&videocc VENUS_GDSC>;
112c66ec88fSEmmanuel Vadot        iommus = <&apps_smmu 0x10a0 0x8>,
113c66ec88fSEmmanuel Vadot                 <&apps_smmu 0x10b0 0x0>;
114c66ec88fSEmmanuel Vadot        memory-region = <&venus_mem>;
115c66ec88fSEmmanuel Vadot
116c66ec88fSEmmanuel Vadot        video-core0 {
117c66ec88fSEmmanuel Vadot            compatible = "venus-decoder";
118c66ec88fSEmmanuel Vadot            clocks = <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
119c66ec88fSEmmanuel Vadot                     <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
120c66ec88fSEmmanuel Vadot            clock-names = "core", "bus";
121c66ec88fSEmmanuel Vadot            power-domains = <&videocc VCODEC0_GDSC>;
122c66ec88fSEmmanuel Vadot        };
123c66ec88fSEmmanuel Vadot
124c66ec88fSEmmanuel Vadot        video-core1 {
125c66ec88fSEmmanuel Vadot            compatible = "venus-encoder";
126c66ec88fSEmmanuel Vadot            clocks = <&videocc VIDEO_CC_VCODEC1_CORE_CLK>,
127c66ec88fSEmmanuel Vadot                     <&videocc VIDEO_CC_VCODEC1_AXI_CLK>;
128c66ec88fSEmmanuel Vadot            clock-names = "core", "bus";
129c66ec88fSEmmanuel Vadot            power-domains = <&videocc VCODEC1_GDSC>;
130c66ec88fSEmmanuel Vadot        };
131c66ec88fSEmmanuel Vadot    };
132