xref: /openbmc/linux/Documentation/devicetree/bindings/media/qcom,sdm845-venus.yaml (revision 1ac731c529cd4d6adbce134754b51ff7d822b145)
149a3797aSStanimir Varbanov# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
249a3797aSStanimir Varbanov%YAML 1.2
349a3797aSStanimir Varbanov---
4af2270e0SKrzysztof Kozlowski$id: http://devicetree.org/schemas/media/qcom,sdm845-venus.yaml#
5af2270e0SKrzysztof Kozlowski$schema: http://devicetree.org/meta-schemas/core.yaml#
649a3797aSStanimir Varbanov
7af2270e0SKrzysztof Kozlowskititle: Qualcomm SDM845 Venus video encode and decode accelerators
849a3797aSStanimir Varbanov
949a3797aSStanimir Varbanovmaintainers:
1049a3797aSStanimir Varbanov  - Stanimir Varbanov <stanimir.varbanov@linaro.org>
1149a3797aSStanimir Varbanov
1249a3797aSStanimir Varbanovdescription: |
1349a3797aSStanimir Varbanov  The Venus IP is a video encode and decode accelerator present
1449a3797aSStanimir Varbanov  on Qualcomm platforms
1549a3797aSStanimir Varbanov
16*f8cc21d4SKrzysztof KozlowskiallOf:
17*f8cc21d4SKrzysztof Kozlowski  - $ref: qcom,venus-common.yaml#
18*f8cc21d4SKrzysztof Kozlowski
1949a3797aSStanimir Varbanovproperties:
2049a3797aSStanimir Varbanov  compatible:
2149a3797aSStanimir Varbanov    const: qcom,sdm845-venus
2249a3797aSStanimir Varbanov
2349a3797aSStanimir Varbanov  power-domains:
2449a3797aSStanimir Varbanov    maxItems: 1
2549a3797aSStanimir Varbanov
2649a3797aSStanimir Varbanov  clocks:
2749a3797aSStanimir Varbanov    maxItems: 3
2849a3797aSStanimir Varbanov
2949a3797aSStanimir Varbanov  clock-names:
3049a3797aSStanimir Varbanov    items:
3149a3797aSStanimir Varbanov      - const: core
3249a3797aSStanimir Varbanov      - const: iface
3349a3797aSStanimir Varbanov      - const: bus
3449a3797aSStanimir Varbanov
3549a3797aSStanimir Varbanov  iommus:
3649a3797aSStanimir Varbanov    maxItems: 2
3749a3797aSStanimir Varbanov
3849a3797aSStanimir Varbanov  video-core0:
3949a3797aSStanimir Varbanov    type: object
4049a3797aSStanimir Varbanov
4149a3797aSStanimir Varbanov    properties:
4249a3797aSStanimir Varbanov      compatible:
4349a3797aSStanimir Varbanov        const: venus-decoder
4449a3797aSStanimir Varbanov
4549a3797aSStanimir Varbanov      clocks:
4649a3797aSStanimir Varbanov        maxItems: 2
4749a3797aSStanimir Varbanov
4849a3797aSStanimir Varbanov      clock-names:
4949a3797aSStanimir Varbanov        items:
5049a3797aSStanimir Varbanov          - const: core
5149a3797aSStanimir Varbanov          - const: bus
5249a3797aSStanimir Varbanov
5349a3797aSStanimir Varbanov      power-domains:
5449a3797aSStanimir Varbanov        maxItems: 1
5549a3797aSStanimir Varbanov
5649a3797aSStanimir Varbanov    required:
5749a3797aSStanimir Varbanov      - compatible
5849a3797aSStanimir Varbanov      - clocks
5949a3797aSStanimir Varbanov      - clock-names
6049a3797aSStanimir Varbanov      - power-domains
6149a3797aSStanimir Varbanov
6249a3797aSStanimir Varbanov    additionalProperties: false
6349a3797aSStanimir Varbanov
6449a3797aSStanimir Varbanov  video-core1:
6549a3797aSStanimir Varbanov    type: object
6649a3797aSStanimir Varbanov
6749a3797aSStanimir Varbanov    properties:
6849a3797aSStanimir Varbanov      compatible:
6949a3797aSStanimir Varbanov        const: venus-encoder
7049a3797aSStanimir Varbanov
7149a3797aSStanimir Varbanov      clocks:
7249a3797aSStanimir Varbanov        maxItems: 2
7349a3797aSStanimir Varbanov
7449a3797aSStanimir Varbanov      clock-names:
7549a3797aSStanimir Varbanov        items:
7649a3797aSStanimir Varbanov          - const: core
7749a3797aSStanimir Varbanov          - const: bus
7849a3797aSStanimir Varbanov
7949a3797aSStanimir Varbanov      power-domains:
8049a3797aSStanimir Varbanov        maxItems: 1
8149a3797aSStanimir Varbanov
8249a3797aSStanimir Varbanov    required:
8349a3797aSStanimir Varbanov      - compatible
8449a3797aSStanimir Varbanov      - clocks
8549a3797aSStanimir Varbanov      - clock-names
8649a3797aSStanimir Varbanov      - power-domains
8749a3797aSStanimir Varbanov
8849a3797aSStanimir Varbanov    additionalProperties: false
8949a3797aSStanimir Varbanov
9049a3797aSStanimir Varbanovrequired:
9149a3797aSStanimir Varbanov  - compatible
9249a3797aSStanimir Varbanov  - iommus
9349a3797aSStanimir Varbanov  - video-core0
9449a3797aSStanimir Varbanov  - video-core1
9549a3797aSStanimir Varbanov
96*f8cc21d4SKrzysztof KozlowskiunevaluatedProperties: false
975be478f9SRob Herring
9849a3797aSStanimir Varbanovexamples:
9949a3797aSStanimir Varbanov  - |
10049a3797aSStanimir Varbanov    #include <dt-bindings/interrupt-controller/arm-gic.h>
10149a3797aSStanimir Varbanov    #include <dt-bindings/clock/qcom,videocc-sdm845.h>
10249a3797aSStanimir Varbanov
10349a3797aSStanimir Varbanov    video-codec@aa00000 {
10449a3797aSStanimir Varbanov        compatible = "qcom,sdm845-venus";
105fba56184SRob Herring        reg = <0x0aa00000 0xff000>;
10649a3797aSStanimir Varbanov        interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
10749a3797aSStanimir Varbanov        clocks = <&videocc VIDEO_CC_VENUS_CTL_CORE_CLK>,
10849a3797aSStanimir Varbanov                 <&videocc VIDEO_CC_VENUS_AHB_CLK>,
10949a3797aSStanimir Varbanov                 <&videocc VIDEO_CC_VENUS_CTL_AXI_CLK>;
11049a3797aSStanimir Varbanov        clock-names = "core", "iface", "bus";
11149a3797aSStanimir Varbanov        power-domains = <&videocc VENUS_GDSC>;
11249a3797aSStanimir Varbanov        iommus = <&apps_smmu 0x10a0 0x8>,
11349a3797aSStanimir Varbanov                 <&apps_smmu 0x10b0 0x0>;
11449a3797aSStanimir Varbanov        memory-region = <&venus_mem>;
11549a3797aSStanimir Varbanov
11649a3797aSStanimir Varbanov        video-core0 {
11749a3797aSStanimir Varbanov            compatible = "venus-decoder";
11849a3797aSStanimir Varbanov            clocks = <&videocc VIDEO_CC_VCODEC0_CORE_CLK>,
11949a3797aSStanimir Varbanov                     <&videocc VIDEO_CC_VCODEC0_AXI_CLK>;
12049a3797aSStanimir Varbanov            clock-names = "core", "bus";
12149a3797aSStanimir Varbanov            power-domains = <&videocc VCODEC0_GDSC>;
12249a3797aSStanimir Varbanov        };
12349a3797aSStanimir Varbanov
12449a3797aSStanimir Varbanov        video-core1 {
12549a3797aSStanimir Varbanov            compatible = "venus-encoder";
12649a3797aSStanimir Varbanov            clocks = <&videocc VIDEO_CC_VCODEC1_CORE_CLK>,
12749a3797aSStanimir Varbanov                     <&videocc VIDEO_CC_VCODEC1_AXI_CLK>;
12849a3797aSStanimir Varbanov            clock-names = "core", "bus";
12949a3797aSStanimir Varbanov            power-domains = <&videocc VCODEC1_GDSC>;
13049a3797aSStanimir Varbanov        };
13149a3797aSStanimir Varbanov    };
132