M7350/kernel/arch/arm/boot/dts/qcom/msm8937-vidc.dtsi
2024-09-09 08:57:42 +00:00

144 lines
4.3 KiB
Plaintext

/* Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
* only version 2 as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*/
&soc {
qcom,vidc@1d00000 {
compatible = "qcom,msm-vidc";
reg = <0x01d00000 0xff000>;
interrupts = <0 44 0>;
qcom,hfi-version = "3xx";
venus-supply = <&gdsc_venus>;
venus-core0-supply = <&gdsc_venus_core0>;
clocks = <&clock_gcc clk_gcc_venus0_vcodec0_clk>,
<&clock_gcc clk_gcc_venus0_core0_vcodec0_clk>,
<&clock_gcc clk_gcc_venus0_ahb_clk>,
<&clock_gcc clk_gcc_venus0_axi_clk>;
clock-names = "core_clk", "core0_clk", "iface_clk", "bus_clk";
qcom,clock-configs = <0x1 0x0 0x0 0x0>;
qcom,sw-power-collapse;
qcom,slave-side-cp;
qcom,dcvs-tbl =
<108000 108000 244800 0x00000004>, /* Encoder */
<108000 108000 244800 0x0f00000c>; /* Decoder */
qcom,dcvs-limit =
<8160 30>, /* Encoder */
<8160 30>; /* Decoder */
qcom,hfi = "venus";
qcom,reg-presets = <0xe0020 0x05555556>,
<0xe0024 0x05555556>,
<0x80124 0x00000003>;
qcom,qdss-presets = <0x826000 0x1000>,
<0x827000 0x1000>,
<0x822000 0x1000>,
<0x803000 0x1000>,
<0x9180000 0x1000>,
<0x9181000 0x1000>;
qcom,max-hw-load = <244800>; /* 1080p@30 */
qcom,firmware-name = "venus";
qcom,allowed-clock-rates = <360000000 320000000
308570000 240000000 166150000>;
qcom,clock-freq-tbl {
qcom,profile-enc {
qcom,codec-mask = <0x55555555>;
qcom,cycles-per-mb = <2316>;
qcom,low-power-mode-factor = <32768>;
};
qcom,profile-dec {
qcom,codec-mask = <0xf3ffffff>;
qcom,cycles-per-mb = <684>;
};
qcom,profile-hevcdec {
qcom,codec-mask = <0x0c000000>;
qcom,cycles-per-mb = <1015>;
};
};
qcom,vidc-iommu-domains {
qcom,domain-ns {
qcom,vidc-domain-phandle = <&venus_domain_ns>;
qcom,vidc-buffer-types = <0xfff>;
};
qcom,domain-sec-bs {
qcom,vidc-domain-phandle =
<&venus_domain_sec_bitstream>;
qcom,vidc-buffer-types = <0x241>;
};
qcom,domain-sec-px {
qcom,vidc-domain-phandle =
<&venus_domain_sec_pixel>;
qcom,vidc-buffer-types = <0x106>;
};
qcom,domain-sec-np {
qcom,vidc-domain-phandle =
<&venus_domain_sec_non_pixel>;
qcom,vidc-buffer-types = <0x480>;
};
};
venus_bus_ddr {
compatible = "qcom,msm-vidc,bus";
label = "venus-ddr";
qcom,bus-master = <MSM_BUS_MASTER_VIDEO_P0>;
qcom,bus-slave = <MSM_BUS_SLAVE_EBI_CH0>;
qcom,bus-governor = "venus-ddr-gov";
qcom,bus-range-kbps = <1000 917000>;
};
arm9_bus_ddr {
compatible = "qcom,msm-vidc,bus";
label = "venus-arm9-ddr";
qcom,bus-master = <MSM_BUS_MASTER_VIDEO_P0>;
qcom,bus-slave = <MSM_BUS_SLAVE_EBI_CH0>;
qcom,bus-governor = "performance";
qcom,bus-range-kbps = <1 1>;
};
};
venus-ddr-gov {
compatible = "qcom,msm-vidc,governor,table";
name = "venus-ddr-gov";
status = "ok";
qcom,bus-freq-table {
qcom,profile-enc {
qcom,codec-mask = <0x55555555>;
qcom,load-busfreq-tbl =
<244800 698000>, /* 1080p30E */
<216000 624000>, /* 720p60E */
<194400 556000>, /* FWVGA120E */
<144000 412000>, /* VGA120E */
<108000 353000>, /* 720p30E */
<97200 316000>, /* FWVGA60E */
<48600 158000>, /* FWVGA30E */
<72000 234000>, /* VGA60E */
<36000 117000>, /* VGA30E */
<18000 60000>, /* QVGA60E */
<9000 30000>, /* QVGA30E */
<0 0>;
};
qcom,profile-dec {
qcom,codec-mask = <0xffffffff>;
qcom,load-busfreq-tbl =
<244800 605000>, /* 1080p30D */
<216000 540000>, /* 720p60D */
<194400 484000>, /* FWVGA120D */
<144000 360000>, /* VGA120D */
<108000 270000>, /* 720p30D */
<97200 242000>, /* FWVGA60D */
<48600 121000>, /* FWVGA30D */
<72000 180000>, /* VGA60D */
<36000 90000>, /* VGA30D */
<18000 45000>, /* HVGA30D */
<0 0>;
};
};
};
};