xref: /linux/Documentation/devicetree/bindings/media/qcom,qcm2290-venus.yaml (revision bfe62a454542cfad3379f6ef5680b125f41e20f4)
1c3290555SJorge Ramirez-Ortiz# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
2c3290555SJorge Ramirez-Ortiz%YAML 1.2
3c3290555SJorge Ramirez-Ortiz---
4c3290555SJorge Ramirez-Ortiz$id: http://devicetree.org/schemas/media/qcom,qcm2290-venus.yaml#
5c3290555SJorge Ramirez-Ortiz$schema: http://devicetree.org/meta-schemas/core.yaml#
6c3290555SJorge Ramirez-Ortiz
7c3290555SJorge Ramirez-Ortiztitle: Qualcomm QCM2290 Venus video encode and decode accelerators
8c3290555SJorge Ramirez-Ortiz
9c3290555SJorge Ramirez-Ortizmaintainers:
10c3290555SJorge Ramirez-Ortiz  - Jorge Ramirez-Ortiz <jorge.ramirez@oss.qualcomm.com>
11c3290555SJorge Ramirez-Ortiz
12c3290555SJorge Ramirez-Ortizdescription:
13c3290555SJorge Ramirez-Ortiz  The Venus AR50_LITE IP is a video encode and decode accelerator present
14c3290555SJorge Ramirez-Ortiz  on Qualcomm platforms.
15c3290555SJorge Ramirez-Ortiz
16c3290555SJorge Ramirez-OrtizallOf:
17c3290555SJorge Ramirez-Ortiz  - $ref: qcom,venus-common.yaml#
18c3290555SJorge Ramirez-Ortiz
19c3290555SJorge Ramirez-Ortizproperties:
20c3290555SJorge Ramirez-Ortiz  compatible:
21c3290555SJorge Ramirez-Ortiz    const: qcom,qcm2290-venus
22c3290555SJorge Ramirez-Ortiz
23c3290555SJorge Ramirez-Ortiz  power-domains:
24c3290555SJorge Ramirez-Ortiz    maxItems: 3
25c3290555SJorge Ramirez-Ortiz
26c3290555SJorge Ramirez-Ortiz  power-domain-names:
27c3290555SJorge Ramirez-Ortiz    items:
28c3290555SJorge Ramirez-Ortiz      - const: venus
29c3290555SJorge Ramirez-Ortiz      - const: vcodec0
30c3290555SJorge Ramirez-Ortiz      - const: cx
31c3290555SJorge Ramirez-Ortiz
32c3290555SJorge Ramirez-Ortiz  clocks:
33c3290555SJorge Ramirez-Ortiz    maxItems: 6
34c3290555SJorge Ramirez-Ortiz
35c3290555SJorge Ramirez-Ortiz  clock-names:
36c3290555SJorge Ramirez-Ortiz    items:
37c3290555SJorge Ramirez-Ortiz      - const: core
38c3290555SJorge Ramirez-Ortiz      - const: iface
39c3290555SJorge Ramirez-Ortiz      - const: bus
40c3290555SJorge Ramirez-Ortiz      - const: throttle
41c3290555SJorge Ramirez-Ortiz      - const: vcodec0_core
42c3290555SJorge Ramirez-Ortiz      - const: vcodec0_bus
43c3290555SJorge Ramirez-Ortiz
44c3290555SJorge Ramirez-Ortiz  iommus:
45*7e59cd4aSSumit Garg    maxItems: 2
46c3290555SJorge Ramirez-Ortiz
47c3290555SJorge Ramirez-Ortiz  interconnects:
48c3290555SJorge Ramirez-Ortiz    maxItems: 2
49c3290555SJorge Ramirez-Ortiz
50c3290555SJorge Ramirez-Ortiz  interconnect-names:
51c3290555SJorge Ramirez-Ortiz    items:
52c3290555SJorge Ramirez-Ortiz      - const: video-mem
53c3290555SJorge Ramirez-Ortiz      - const: cpu-cfg
54c3290555SJorge Ramirez-Ortiz
55c3290555SJorge Ramirez-Ortiz  operating-points-v2: true
56c3290555SJorge Ramirez-Ortiz  opp-table:
57c3290555SJorge Ramirez-Ortiz    type: object
58c3290555SJorge Ramirez-Ortiz
59c3290555SJorge Ramirez-Ortizrequired:
60c3290555SJorge Ramirez-Ortiz  - compatible
61c3290555SJorge Ramirez-Ortiz  - power-domain-names
62c3290555SJorge Ramirez-Ortiz  - iommus
63c3290555SJorge Ramirez-Ortiz
64c3290555SJorge Ramirez-OrtizunevaluatedProperties: false
65c3290555SJorge Ramirez-Ortiz
66c3290555SJorge Ramirez-Ortizexamples:
67c3290555SJorge Ramirez-Ortiz  - |
68c3290555SJorge Ramirez-Ortiz    #include <dt-bindings/clock/qcom,gcc-qcm2290.h>
69c3290555SJorge Ramirez-Ortiz    #include <dt-bindings/interconnect/qcom,qcm2290.h>
70c3290555SJorge Ramirez-Ortiz    #include <dt-bindings/interconnect/qcom,rpm-icc.h>
71c3290555SJorge Ramirez-Ortiz    #include <dt-bindings/interrupt-controller/arm-gic.h>
72c3290555SJorge Ramirez-Ortiz    #include <dt-bindings/power/qcom-rpmpd.h>
73c3290555SJorge Ramirez-Ortiz
74c3290555SJorge Ramirez-Ortiz    venus: video-codec@5a00000 {
75c3290555SJorge Ramirez-Ortiz        compatible = "qcom,qcm2290-venus";
76c3290555SJorge Ramirez-Ortiz        reg = <0x5a00000 0xf0000>;
77c3290555SJorge Ramirez-Ortiz
78c3290555SJorge Ramirez-Ortiz        interrupts = <GIC_SPI 225 IRQ_TYPE_LEVEL_HIGH>;
79c3290555SJorge Ramirez-Ortiz
80c3290555SJorge Ramirez-Ortiz        power-domains = <&gcc GCC_VENUS_GDSC>,
81c3290555SJorge Ramirez-Ortiz                        <&gcc GCC_VCODEC0_GDSC>,
82c3290555SJorge Ramirez-Ortiz                        <&rpmpd QCM2290_VDDCX>;
83c3290555SJorge Ramirez-Ortiz        power-domain-names = "venus",
84c3290555SJorge Ramirez-Ortiz                             "vcodec0",
85c3290555SJorge Ramirez-Ortiz                             "cx";
86c3290555SJorge Ramirez-Ortiz
87c3290555SJorge Ramirez-Ortiz        operating-points-v2 = <&venus_opp_table>;
88c3290555SJorge Ramirez-Ortiz
89c3290555SJorge Ramirez-Ortiz        clocks = <&gcc GCC_VIDEO_VENUS_CTL_CLK>,
90c3290555SJorge Ramirez-Ortiz                 <&gcc GCC_VIDEO_AHB_CLK>,
91c3290555SJorge Ramirez-Ortiz                 <&gcc GCC_VENUS_CTL_AXI_CLK>,
92c3290555SJorge Ramirez-Ortiz                 <&gcc GCC_VIDEO_THROTTLE_CORE_CLK>,
93c3290555SJorge Ramirez-Ortiz                 <&gcc GCC_VIDEO_VCODEC0_SYS_CLK>,
94c3290555SJorge Ramirez-Ortiz                 <&gcc GCC_VCODEC0_AXI_CLK>;
95c3290555SJorge Ramirez-Ortiz        clock-names = "core",
96c3290555SJorge Ramirez-Ortiz                       "iface",
97c3290555SJorge Ramirez-Ortiz                       "bus",
98c3290555SJorge Ramirez-Ortiz                       "throttle",
99c3290555SJorge Ramirez-Ortiz                       "vcodec0_core",
100c3290555SJorge Ramirez-Ortiz                       "vcodec0_bus";
101c3290555SJorge Ramirez-Ortiz
102c3290555SJorge Ramirez-Ortiz        memory-region = <&pil_video_mem>;
103c3290555SJorge Ramirez-Ortiz
104c3290555SJorge Ramirez-Ortiz        iommus = <&apps_smmu 0x860 0x0>,
105*7e59cd4aSSumit Garg                 <&apps_smmu 0x880 0x0>;
106c3290555SJorge Ramirez-Ortiz
107c3290555SJorge Ramirez-Ortiz        interconnects = <&mmnrt_virt MASTER_VIDEO_P0 RPM_ALWAYS_TAG
108c3290555SJorge Ramirez-Ortiz                         &bimc SLAVE_EBI1 RPM_ALWAYS_TAG>,
109c3290555SJorge Ramirez-Ortiz                        <&bimc MASTER_APPSS_PROC RPM_ACTIVE_TAG
110c3290555SJorge Ramirez-Ortiz                         &config_noc SLAVE_VENUS_CFG RPM_ACTIVE_TAG>;
111c3290555SJorge Ramirez-Ortiz        interconnect-names = "video-mem",
112c3290555SJorge Ramirez-Ortiz                             "cpu-cfg";
113c3290555SJorge Ramirez-Ortiz
114c3290555SJorge Ramirez-Ortiz        venus_opp_table: opp-table {
115c3290555SJorge Ramirez-Ortiz            compatible = "operating-points-v2";
116c3290555SJorge Ramirez-Ortiz
117c3290555SJorge Ramirez-Ortiz            opp-133333333 {
118c3290555SJorge Ramirez-Ortiz                opp-hz = /bits/ 64 <133333333>;
119c3290555SJorge Ramirez-Ortiz                required-opps = <&rpmpd_opp_low_svs>;
120c3290555SJorge Ramirez-Ortiz            };
121c3290555SJorge Ramirez-Ortiz
122c3290555SJorge Ramirez-Ortiz            opp-240000000 {
123c3290555SJorge Ramirez-Ortiz                opp-hz = /bits/ 64 <240000000>;
124c3290555SJorge Ramirez-Ortiz                required-opps = <&rpmpd_opp_svs>;
125c3290555SJorge Ramirez-Ortiz            };
126c3290555SJorge Ramirez-Ortiz        };
127c3290555SJorge Ramirez-Ortiz    };
128