2
0
mirror of https://github.com/edk2-porting/linux-next.git synced 2024-11-23 01:56:43 +08:00

dt-bindings: media: Add sm8550 dt schema

Add a schema description for the iris video encoder/decoder on sm8550.

Signed-off-by: Dikshita Agarwal <quic_dikshita@quicinc.com>
Signed-off-by: Vikash Garodia <quic_vgarodia@quicinc.com>
This commit is contained in:
Dikshita Agarwal 2023-07-25 15:30:01 +05:30 committed by Xilin Wu
parent 48854375e4
commit 08efde2644

View File

@ -0,0 +1,199 @@
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/qcom,sm8550-iris.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
title: Qualcomm SM8550 IRIS video encode and decode accelerators
maintainers:
- Vikash Garodia <quic_vgarodia@quicinc.com>
- Dikshita Agarwal <quic_dikshita@quicinc.com>
description: |
The Iris IP is a video encode and decode accelerator present
on Qualcomm platforms.
properties:
compatible:
const: qcom,sm8550-vidc
"address-cells":
const: 1
"size-cells":
const: 1
reg:
maxItems: 2
interrupts:
maxItems: 1
power-domains:
minItems: 2
maxItems: 4
power-domain-names:
items:
- const: iris-ctl
- const: vcodec
- const: mx
- const: mmcx
operating-points-v2: true
clocks:
maxItems: 3
clock-names:
items:
- const: gcc_video_axi0
- const: core_clk
- const: vcodec_clk
interconnects:
maxItems: 2
interconnect-names:
items:
- const: venus-cnoc
- const: venus-ddr
memory-region:
maxItems: 1
resets:
maxItems: 1
reset-names:
items:
- const: video_axi_reset
non-secure-cb:
type: object
description: |
This non secure context bank is used for managing
buffers for encoder and decoder. This subnode is
needed for a separate probe for this context bank device.
properties:
compatible:
const: "qcom,vidc,cb-ns"
iommus:
maxItems: 2
dma-coherent: true
required:
- compatible
- iommus
additionalProperties: false
opp-table:
type: object
required:
- compatible
- reg
- interrupts
- power-domains
- power-domain-names
- clocks
- clock-names
- interconnects
- interconnect-names
- memory-region
- resets
- reset-names
- non-secure-cb
- opp-table
additionalProperties: false
examples:
- |
#include <dt-bindings/clock/qcom,rpmh.h>
#include <dt-bindings/clock/qcom,sm8550-gcc.h>
#include <dt-bindings/clock/qcom,sm8550-videocc.h>
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/interconnect/qcom,sm8550-rpmh.h>
#include <dt-bindings/power/qcom-rpmpd.h>
venus: video-codec@aa00000 {
compatible = "qcom,sm8550-vidc";
status = "okay";
address-cells = <1>;
size-cells = <1>;
reg = <0 0x0aa00000 0 0xF0000>;
interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;
power-domains = <&videocc VIDEO_CC_MVS0C_GDSC>,
<&videocc VIDEO_CC_MVS0_GDSC>,
<&rpmhpd SM8550_MXC>,
<&rpmhpd SM8550_MMCX>;
power-domain-names = "iris-ctl", "vcodec", "mx", "mmcx";
operating-points-v2 = <&venus_opp_table>;
clocks = <&gcc GCC_VIDEO_AXI0_CLK>,
<&videocc VIDEO_CC_MVS0C_CLK>,
<&videocc VIDEO_CC_MVS0_CLK>;
clock-names = "gcc_video_axi0", "core_clk", "vcodec_clk";
interconnects = <&gem_noc MASTER_APPSS_PROC 0 &config_noc SLAVE_VENUS_CFG 0>,
<&mmss_noc MASTER_VIDEO 0 &mc_virt SLAVE_EBI1 0>;
interconnect-names = "venus-cnoc", "venus-ddr";
/* FW load region */
memory-region = <&video_mem>;
resets = <&gcc GCC_VIDEO_AXI0_CLK_ARES>;
reset-names = "video_axi_reset";
non-secure-cb {
compatible = "qcom,vidc,cb-ns";
iommus = <&apps_smmu 0x1947 0x0000>,
<&apps_smmu 0x1940 0x0000>;
dma-coherent;
};
venus_opp_table: opp-table {
compatible = "operating-points-v2";
opp-240000000 {
opp-hz = /bits/ 64 <240000000>;
required-opps = <&rpmhpd_opp_svs>,
<&rpmhpd_opp_low_svs>;
};
opp-338000000 {
opp-hz = /bits/ 64 <338000000>;
required-opps = <&rpmhpd_opp_svs>,
<&rpmhpd_opp_svs>;
};
opp-366000000 {
opp-hz = /bits/ 64 <366000000>;
required-opps = <&rpmhpd_opp_svs_l1>,
<&rpmhpd_opp_svs_l1>;
};
opp-444000000 {
opp-hz = /bits/ 64 <444000000>;
required-opps = <&rpmhpd_opp_turbo>,
<&rpmhpd_opp_turbo>;
};
opp-481000000 {
opp-hz = /bits/ 64 <481000000>;
required-opps = <&rpmhpd_opp_turbo_l1>,
<&rpmhpd_opp_turbo_l1>;
};
};
};
...