Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ properties:
- qcom,msm8996-apcs-hmss-global
- qcom,qcm2290-apcs-hmss-global
- qcom,sdm845-apss-shared
- qcom,shikra-apcs-hmss-global

reg:
maxItems: 1
Expand Down Expand Up @@ -239,6 +240,7 @@ allOf:
- qcom,msm8996-apcs-hmss-global
- qcom,qcm2290-apcs-hmss-global
- qcom,sdm845-apss-shared
- qcom,shikra-apcs-hmss-global
then:
properties:
clocks: false
Expand Down
231 changes: 231 additions & 0 deletions Documentation/devicetree/bindings/media/qcom,kaanapali-iris.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,231 @@
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/media/qcom,kaanapali-iris.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Qualcomm Kaanapali Iris video encoder and decoder

maintainers:
- Vikash Garodia <vikash.garodia@oss.qualcomm.com>
- Dikshita Agarwal <dikshita.agarwal@oss.qualcomm.com>

description:
The iris video processing unit is a video encode and decode accelerator
present on Qualcomm Kaanapali SoC.

properties:
compatible:
const: qcom,kaanapali-iris

reg:
maxItems: 1

clocks:
maxItems: 10

clock-names:
items:
- const: iface
- const: core
- const: vcodec0_core
- const: iface1
- const: core_freerun
- const: vcodec0_core_freerun
- const: vcodec_bse
- const: vcodec_vpp0
- const: vcodec_vpp1
- const: vcodec_apv

dma-coherent: true

firmware-name:
maxItems: 1

interconnects:
maxItems: 2

interconnect-names:
items:
- const: cpu-cfg
- const: video-mem

interrupts:
maxItems: 1

iommus:
minItems: 3
maxItems: 8

memory-region:
minItems: 1
maxItems: 2

operating-points-v2: true
opp-table:
type: object

power-domains:
maxItems: 7

power-domain-names:
items:
- const: venus
- const: vcodec0
- const: mxc
- const: mmcx
- const: vpp0
- const: vpp1
- const: apv

resets:
maxItems: 4

reset-names:
items:
- const: bus0
- const: bus1
- const: core_freerun_reset
- const: vcodec0_core_freerun_reset

required:
- compatible
- reg
- clocks
- clock-names
- dma-coherent
- interconnects
- interconnect-names
- interrupts
- iommus
- power-domains
- power-domain-names
- resets
- reset-names

unevaluatedProperties: false

examples:
- |
#include <dt-bindings/interrupt-controller/arm-gic.h>
#include <dt-bindings/power/qcom,rpmhpd.h>

video-codec@2000000 {
compatible = "qcom,kaanapali-iris";
reg = <0x02000000 0xf0000>;

clocks = <&gcc_video_axi0_clk>,
<&video_cc_mvs0c_clk>,
<&video_cc_mvs0_clk>,
<&gcc_video_axi1_clk>,
<&video_cc_mvs0c_freerun_clk>,
<&video_cc_mvs0_freerun_clk>,
<&video_cc_mvs0b_clk>,
<&video_cc_mvs0_vpp0_clk>,
<&video_cc_mvs0_vpp1_clk>,
<&video_cc_mvs0a_clk>;
clock-names = "iface",
"core",
"vcodec0_core",
"iface1",
"core_freerun",
"vcodec0_core_freerun",
"vcodec_bse",
"vcodec_vpp0",
"vcodec_vpp1",
"vcodec_apv";

dma-coherent;

interconnects = <&gem_noc_master_appss_proc &config_noc_slave_venus_cfg>,
<&mmss_noc_master_video_mvp &mc_virt_slave_ebi1>;
interconnect-names = "cpu-cfg",
"video-mem";

interrupts = <GIC_SPI 174 IRQ_TYPE_LEVEL_HIGH>;

iommus = <&apps_smmu 0x1940 0x0>,
<&apps_smmu 0x1944 0x0>,
<&apps_smmu 0x1a20 0x0>,
<&apps_smmu 0x1943 0x0>;

operating-points-v2 = <&iris_opp_table>;

memory-region = <&video_mem>, <&iris_resv>;

power-domains = <&video_cc_mvs0c_gdsc>,
<&video_cc_mvs0_gdsc>,
<&rpmhpd RPMHPD_MXC>,
<&rpmhpd RPMHPD_MMCX>,
<&video_cc_mvs0_vpp0_gdsc>,
<&video_cc_mvs0_vpp1_gdsc>,
<&video_cc_mvs0a_gdsc>;
power-domain-names = "venus",
"vcodec0",
"mxc",
"mmcx",
"vpp0",
"vpp1",
"apv";

resets = <&gcc_video_axi0_clk_ares>,
<&gcc_video_axi1_clk_ares>,
<&video_cc_mvs0c_freerun_clk_ares>,
<&video_cc_mvs0_freerun_clk_ares>;
reset-names = "bus0",
"bus1",
"core_freerun_reset",
"vcodec0_core_freerun_reset";

iris_opp_table: opp-table {
compatible = "operating-points-v2";

opp-240000000 {
opp-hz = /bits/ 64 <240000000 240000000 240000000 360000000>;
required-opps = <&rpmhpd_opp_low_svs_d1>,
<&rpmhpd_opp_low_svs_d1>;
};

opp-338000000 {
opp-hz = /bits/ 64 <338000000 338000000 338000000 507000000>;
required-opps = <&rpmhpd_opp_low_svs>,
<&rpmhpd_opp_low_svs>;
};

opp-420000000 {
opp-hz = /bits/ 64 <420000000 420000000 420000000 630000000>;
required-opps = <&rpmhpd_opp_svs>,
<&rpmhpd_opp_svs>;
};

opp-444000000 {
opp-hz = /bits/ 64 <444000000 444000000 444000000 666000000>;
required-opps = <&rpmhpd_opp_svs_l1>,
<&rpmhpd_opp_svs_l1>;
};

opp-533000000 {
opp-hz = /bits/ 64 <533000000 533000000 533000000 800000000>;
required-opps = <&rpmhpd_opp_nom>,
<&rpmhpd_opp_nom>;
};

opp-630000000 {
opp-hz = /bits/ 64 <630000000 630000000 630000000 1104000000>;
required-opps = <&rpmhpd_opp_turbo>,
<&rpmhpd_opp_turbo>;
};

opp-800000000 {
opp-hz = /bits/ 64 <800000000 630000000 630000000 1260000000>;
required-opps = <&rpmhpd_opp_turbo_l0>,
<&rpmhpd_opp_turbo_l0>;
};

opp-1000000000 {
opp-hz = /bits/ 64 <1000000000 630000000 850000000 1260000000>;
required-opps = <&rpmhpd_opp_turbo_l1>,
<&rpmhpd_opp_turbo_l1>;
};
};
};
11 changes: 11 additions & 0 deletions arch/arm64/boot/dts/qcom/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,17 @@ dtb-$(CONFIG_ARCH_QCOM) += sdm850-huawei-matebook-e-2019.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm850-lenovo-yoga-c630.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdm850-samsung-w737.dtb
dtb-$(CONFIG_ARCH_QCOM) += sdx75-idp.dtb
dtb-$(CONFIG_ARCH_QCOM) += shikra-cqm-evk.dtb
dtb-$(CONFIG_ARCH_QCOM) += shikra-cqs-evk.dtb
dtb-$(CONFIG_ARCH_QCOM) += shikra-iqs-evk.dtb

shikra-cqm-evk-imx577-camera-dtbs := shikra-cqm-evk.dtb shikra-cqm-evk-imx577-camera.dtbo
shikra-cqs-evk-imx577-camera-dtbs := shikra-cqs-evk.dtb shikra-cqm-evk-imx577-camera.dtbo
shikra-iqs-evk-imx577-camera-dtbs := shikra-iqs-evk.dtb shikra-iqs-evk-imx577-camera.dtbo

dtb-$(CONFIG_ARCH_QCOM) += shikra-cqm-evk-imx577-camera.dtb
dtb-$(CONFIG_ARCH_QCOM) += shikra-cqs-evk-imx577-camera.dtb
dtb-$(CONFIG_ARCH_QCOM) += shikra-iqs-evk-imx577-camera.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm4250-oneplus-billie2.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm4450-qrd.dtb
dtb-$(CONFIG_ARCH_QCOM) += sm6115-fxtec-pro1x.dtb
Expand Down
10 changes: 8 additions & 2 deletions arch/arm64/boot/dts/qcom/agatti.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -2137,13 +2137,19 @@
<&gcc GCC_DISP_GPLL0_CLK_SRC>,
<&gcc GCC_DISP_GPLL0_DIV_CLK_SRC>,
<&mdss_dsi0_phy DSI_BYTE_PLL_CLK>,
<&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>;
<&mdss_dsi0_phy DSI_PIXEL_PLL_CLK>,
<0>,
<0>,
<&sleep_clk>;
clock-names = "bi_tcxo",
"bi_tcxo_ao",
"gcc_disp_gpll0_clk_src",
"gcc_disp_gpll0_div_clk_src",
"dsi0_phy_pll_out_byteclk",
"dsi0_phy_pll_out_dsiclk";
"dsi0_phy_pll_out_dsiclk",
"dsi1_phy_pll_out_byteclk",
"dsi1_phy_pll_out_dsiclk",
"sleep_clk";
#power-domain-cells = <1>;
#clock-cells = <1>;
#reset-cells = <1>;
Expand Down
79 changes: 78 additions & 1 deletion arch/arm64/boot/dts/qcom/pm4125.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@
};

pm4125_vbus: usb-vbus-regulator@1100 {
compatible = "qcom,pm4125-vbus-reg", "qcom,pm8150b-vbus-reg";
compatible = "qcom,pm4125-vbus-reg";
reg = <0x1100>;
status = "disabled";
};
Expand Down Expand Up @@ -66,6 +66,83 @@
status = "disabled";
};

pm4125_tz: temp-alarm@2400 {
compatible = "qcom,spmi-temp-alarm";
reg = <0x2400>;
interrupts = <0x0 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
io-channels = <&pm4125_adc ADC5_DIE_TEMP>;
io-channel-names = "thermal";
#thermal-sensor-cells = <0>;
status = "disabled";
};

pm4125_adc: adc@3100 {
compatible = "qcom,spmi-adc5";
reg = <0x3100>;
#address-cells = <1>;
#size-cells = <0>;
#io-channel-cells = <1>;
interrupts = <0x0 0x31 0x0 IRQ_TYPE_EDGE_RISING>;
status = "disabled";

/* Channel nodes */
channel@0 {
reg = <ADC5_REF_GND>;
label = "ref_gnd";
qcom,pre-scaling = <1 1>;
};

channel@1 {
reg = <ADC5_1P25VREF>;
label = "vref_1p25";
qcom,pre-scaling = <1 1>;
};

channel@6 {
reg = <ADC5_DIE_TEMP>;
label = "die_temp";
qcom,pre-scaling = <1 1>;
};

channel@7 {
reg = <ADC5_USB_IN_I>;
label = "usb_in_i_uv";
qcom,pre-scaling = <1 1>;
};

channel@8 {
reg = <ADC5_USB_IN_V_16>;
label = "usb_in_v_div_16";
qcom,pre-scaling = <1 16>;
};

channel@9 {
reg = <ADC5_CHG_TEMP>;
label = "chg_temp";
qcom,pre-scaling = <1 1>;
};

channel@4b {
reg = <ADC5_BAT_ID_100K_PU>;
label = "bat_id";
qcom,ratiometric;
qcom,hw-settle-time = <200>;
qcom,pre-scaling = <1 1>;
};

channel@83 {
reg = <ADC5_VPH_PWR>;
label = "vph_pwr";
qcom,pre-scaling = <1 3>;
};

channel@84 {
reg = <ADC5_VBAT_SNS>;
label = "vbat_sns";
qcom,pre-scaling = <1 3>;
};
};

rtc@6000 {
compatible = "qcom,pm8941-rtc";
reg = <0x6000>, <0x6100>;
Expand Down
7 changes: 7 additions & 0 deletions arch/arm64/boot/dts/qcom/pm8005.dtsi
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,13 @@
#address-cells = <1>;
#size-cells = <0>;

pm8005_tz: temp-alarm@2400 {
compatible = "qcom,spmi-temp-alarm";
reg = <0x2400>;
interrupts = <0x4 0x24 0x0 IRQ_TYPE_EDGE_BOTH>;
#thermal-sensor-cells = <0>;
};

pm8005_gpios: gpio@c000 {
compatible = "qcom,pm8005-gpio", "qcom,spmi-gpio";
reg = <0xc000>;
Expand Down
Loading