forked from grate-driver/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
media: dt-bindings: media: venus: Add sdm660 dt schema
Add a schema description for the Venus video decoder/encoder IP in SDM660. Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> Reviewed-by: Rob Herring <robh@kernel.org> Signed-off-by: Stanimir Varbanov <stanimir.varbanov@linaro.org> Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
- Loading branch information
Showing
1 changed file
with
186 additions
and
0 deletions.
There are no files selected for viewing
186 changes: 186 additions & 0 deletions
186
Documentation/devicetree/bindings/media/qcom,sdm660-venus.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,186 @@ | ||
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) | ||
|
||
%YAML 1.2 | ||
--- | ||
$id: "http://devicetree.org/schemas/media/qcom,sdm660-venus.yaml#" | ||
$schema: "http://devicetree.org/meta-schemas/core.yaml#" | ||
|
||
title: Qualcomm Venus video encode and decode accelerators | ||
|
||
maintainers: | ||
- Stanimir Varbanov <stanimir.varbanov@linaro.org> | ||
- AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com> | ||
|
||
description: | | ||
The Venus IP is a video encode and decode accelerator present | ||
on Qualcomm platforms | ||
properties: | ||
compatible: | ||
const: qcom,sdm660-venus | ||
|
||
reg: | ||
maxItems: 1 | ||
|
||
clocks: | ||
maxItems: 4 | ||
|
||
clock-names: | ||
items: | ||
- const: core | ||
- const: iface | ||
- const: bus | ||
- const: bus_throttle | ||
|
||
interconnects: | ||
maxItems: 2 | ||
|
||
interconnect-names: | ||
items: | ||
- const: cpu-cfg | ||
- const: video-mem | ||
|
||
interrupts: | ||
maxItems: 1 | ||
|
||
iommus: | ||
maxItems: 20 | ||
|
||
memory-region: | ||
maxItems: 1 | ||
|
||
power-domains: | ||
maxItems: 1 | ||
|
||
video-decoder: | ||
type: object | ||
|
||
properties: | ||
compatible: | ||
const: venus-decoder | ||
|
||
clocks: | ||
maxItems: 1 | ||
|
||
clock-names: | ||
items: | ||
- const: vcodec0_core | ||
|
||
power-domains: | ||
maxItems: 1 | ||
|
||
required: | ||
- compatible | ||
- clocks | ||
- clock-names | ||
- power-domains | ||
|
||
additionalProperties: false | ||
|
||
video-encoder: | ||
type: object | ||
|
||
properties: | ||
compatible: | ||
const: venus-encoder | ||
|
||
clocks: | ||
maxItems: 1 | ||
|
||
clock-names: | ||
items: | ||
- const: vcodec0_core | ||
|
||
power-domains: | ||
maxItems: 1 | ||
|
||
required: | ||
- compatible | ||
- clocks | ||
- clock-names | ||
- power-domains | ||
|
||
additionalProperties: false | ||
|
||
video-firmware: | ||
type: object | ||
|
||
description: | | ||
Firmware subnode is needed when the platform does not | ||
have TrustZone. | ||
properties: | ||
iommus: | ||
maxItems: 1 | ||
|
||
required: | ||
- iommus | ||
|
||
required: | ||
- compatible | ||
- reg | ||
- clocks | ||
- clock-names | ||
- interrupts | ||
- iommus | ||
- memory-region | ||
- power-domains | ||
- video-decoder | ||
- video-encoder | ||
|
||
additionalProperties: false | ||
|
||
examples: | ||
- | | ||
#include <dt-bindings/clock/qcom,mmcc-sdm660.h> | ||
#include <dt-bindings/interrupt-controller/arm-gic.h> | ||
video-codec@cc00000 { | ||
compatible = "qcom,sdm660-venus"; | ||
reg = <0x0cc00000 0xff000>; | ||
clocks = <&mmcc VIDEO_CORE_CLK>, | ||
<&mmcc VIDEO_AHB_CLK>, | ||
<&mmcc VIDEO_AXI_CLK>, | ||
<&mmcc THROTTLE_VIDEO_AXI_CLK>; | ||
clock-names = "core", "iface", "bus", "bus_throttle"; | ||
interconnects = <&gnoc 0 &mnoc 13>, | ||
<&mnoc 4 &bimc 5>; | ||
interconnect-names = "cpu-cfg", "video-mem"; | ||
interrupts = <GIC_SPI 287 IRQ_TYPE_LEVEL_HIGH>; | ||
iommus = <&mmss_smmu 0x400>, | ||
<&mmss_smmu 0x401>, | ||
<&mmss_smmu 0x40a>, | ||
<&mmss_smmu 0x407>, | ||
<&mmss_smmu 0x40e>, | ||
<&mmss_smmu 0x40f>, | ||
<&mmss_smmu 0x408>, | ||
<&mmss_smmu 0x409>, | ||
<&mmss_smmu 0x40b>, | ||
<&mmss_smmu 0x40c>, | ||
<&mmss_smmu 0x40d>, | ||
<&mmss_smmu 0x410>, | ||
<&mmss_smmu 0x421>, | ||
<&mmss_smmu 0x428>, | ||
<&mmss_smmu 0x429>, | ||
<&mmss_smmu 0x42b>, | ||
<&mmss_smmu 0x42c>, | ||
<&mmss_smmu 0x42d>, | ||
<&mmss_smmu 0x411>, | ||
<&mmss_smmu 0x431>; | ||
memory-region = <&venus_region>; | ||
power-domains = <&mmcc VENUS_GDSC>; | ||
video-decoder { | ||
compatible = "venus-decoder"; | ||
clocks = <&mmcc VIDEO_SUBCORE0_CLK>; | ||
clock-names = "vcodec0_core"; | ||
power-domains = <&mmcc VENUS_CORE0_GDSC>; | ||
}; | ||
video-encoder { | ||
compatible = "venus-encoder"; | ||
clocks = <&mmcc VIDEO_SUBCORE0_CLK>; | ||
clock-names = "vcodec0_core"; | ||
power-domains = <&mmcc VENUS_CORE0_GDSC>; | ||
}; | ||
}; |