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:
parent
48854375e4
commit
08efde2644
199
Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
Normal file
199
Documentation/devicetree/bindings/media/qcom,sm8550-iris.yaml
Normal 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>;
|
||||
};
|
||||
};
|
||||
};
|
||||
...
|
Loading…
Reference in New Issue
Block a user