Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: interconnect: document the RPMh Network-On-Chip interconnect in Kaanapali SoC

Document the RPMh Network-On-Chip Interconnect of the Kaanapali platform.

Co-developed-by: Odelu Kukatla <odelu.kukatla@oss.qualcomm.com>
Signed-off-by: Odelu Kukatla <odelu.kukatla@oss.qualcomm.com>
Signed-off-by: Raviteja Laggyshetty <raviteja.laggyshetty@oss.qualcomm.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20251031-knp-interconnect-v4-1-568bba2cb3e5@oss.qualcomm.com
Signed-off-by: Georgi Djakov <djakov@kernel.org>

authored by

Raviteja Laggyshetty and committed by
Georgi Djakov
7463f5ad 3a866087

+273
+124
Documentation/devicetree/bindings/interconnect/qcom,kaanapali-rpmh.yaml
··· 1 + # SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/interconnect/qcom,kaanapali-rpmh.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Qualcomm RPMh Network-On-Chip Interconnect on Kaanapali 8 + 9 + maintainers: 10 + - Raviteja Laggyshetty <raviteja.laggyshetty@oss.qualcomm.com> 11 + 12 + description: | 13 + RPMh interconnect providers support system bandwidth requirements through 14 + RPMh hardware accelerators known as Bus Clock Manager (BCM). The provider is 15 + able to communicate with the BCM through the Resource State Coordinator (RSC) 16 + associated with each execution environment. Provider nodes must point to at 17 + least one RPMh device child node pertaining to their RSC and each provider 18 + can map to multiple RPMh resources. 19 + 20 + See also: include/dt-bindings/interconnect/qcom,kaanapali-rpmh.h 21 + 22 + properties: 23 + compatible: 24 + enum: 25 + - qcom,kaanapali-aggre-noc 26 + - qcom,kaanapali-clk-virt 27 + - qcom,kaanapali-cnoc-main 28 + - qcom,kaanapali-cnoc-cfg 29 + - qcom,kaanapali-gem-noc 30 + - qcom,kaanapali-lpass-ag-noc 31 + - qcom,kaanapali-lpass-lpiaon-noc 32 + - qcom,kaanapali-lpass-lpicx-noc 33 + - qcom,kaanapali-mc-virt 34 + - qcom,kaanapali-mmss-noc 35 + - qcom,kaanapali-nsp-noc 36 + - qcom,kaanapali-pcie-anoc 37 + - qcom,kaanapali-system-noc 38 + 39 + reg: 40 + maxItems: 1 41 + 42 + clocks: 43 + minItems: 2 44 + maxItems: 3 45 + 46 + required: 47 + - compatible 48 + 49 + allOf: 50 + - $ref: qcom,rpmh-common.yaml# 51 + - if: 52 + properties: 53 + compatible: 54 + contains: 55 + enum: 56 + - qcom,kaanapali-clk-virt 57 + - qcom,kaanapali-mc-virt 58 + then: 59 + properties: 60 + reg: false 61 + else: 62 + required: 63 + - reg 64 + 65 + - if: 66 + properties: 67 + compatible: 68 + contains: 69 + enum: 70 + - qcom,kaanapali-pcie-anoc 71 + then: 72 + properties: 73 + clocks: 74 + items: 75 + - description: aggre-NOC PCIe AXI clock 76 + - description: cfg-NOC PCIe a-NOC AHB clock 77 + 78 + - if: 79 + properties: 80 + compatible: 81 + contains: 82 + enum: 83 + - qcom,kaanapali-aggre-noc 84 + then: 85 + properties: 86 + clocks: 87 + items: 88 + - description: aggre UFS PHY AXI clock 89 + - description: aggre USB3 PRIM AXI clock 90 + - description: RPMH CC IPA clock 91 + 92 + - if: 93 + properties: 94 + compatible: 95 + contains: 96 + enum: 97 + - qcom,kaanapali-aggre-noc 98 + - qcom,kaanapali-pcie-anoc 99 + then: 100 + required: 101 + - clocks 102 + else: 103 + properties: 104 + clocks: false 105 + 106 + unevaluatedProperties: false 107 + 108 + examples: 109 + - | 110 + clk_virt: interconnect-0 { 111 + compatible = "qcom,kaanapali-clk-virt"; 112 + #interconnect-cells = <2>; 113 + qcom,bcm-voters = <&apps_bcm_voter>; 114 + }; 115 + 116 + aggre_noc: interconnect@16e0000 { 117 + compatible = "qcom,kaanapali-aggre-noc"; 118 + reg = <0x016e0000 0x42400>; 119 + #interconnect-cells = <2>; 120 + clocks = <&gcc_aggre_ufs_phy_axi_clk>, 121 + <&gcc_aggre_usb3_prim_axi_clk>, 122 + <&rpmhcc_ipa_clk>; 123 + qcom,bcm-voters = <&apps_bcm_voter>; 124 + };
+149
include/dt-bindings/interconnect/qcom,kaanapali-rpmh.h
··· 1 + /* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */ 2 + /* 3 + * Copyright (c) Qualcomm Technologies, Inc. and/or its subsidiaries. 4 + */ 5 + 6 + #ifndef __DT_BINDINGS_INTERCONNECT_QCOM_KAANAPALI_H 7 + #define __DT_BINDINGS_INTERCONNECT_QCOM_KAANAPALI_H 8 + 9 + #define MASTER_QSPI_0 0 10 + #define MASTER_CRYPTO 1 11 + #define MASTER_QUP_1 2 12 + #define MASTER_SDCC_4 3 13 + #define MASTER_UFS_MEM 4 14 + #define MASTER_USB3 5 15 + #define MASTER_QUP_2 6 16 + #define MASTER_QUP_3 7 17 + #define MASTER_QUP_4 8 18 + #define MASTER_IPA 9 19 + #define MASTER_SOCCP_PROC 10 20 + #define MASTER_SP 11 21 + #define MASTER_QDSS_ETR 12 22 + #define MASTER_QDSS_ETR_1 13 23 + #define MASTER_SDCC_2 14 24 + #define SLAVE_A1NOC_SNOC 15 25 + #define SLAVE_A2NOC_SNOC 16 26 + 27 + #define MASTER_QUP_CORE_0 0 28 + #define MASTER_QUP_CORE_1 1 29 + #define MASTER_QUP_CORE_2 2 30 + #define MASTER_QUP_CORE_3 3 31 + #define MASTER_QUP_CORE_4 4 32 + #define SLAVE_QUP_CORE_0 5 33 + #define SLAVE_QUP_CORE_1 6 34 + #define SLAVE_QUP_CORE_2 7 35 + #define SLAVE_QUP_CORE_3 8 36 + #define SLAVE_QUP_CORE_4 9 37 + 38 + #define MASTER_CNOC_CFG 0 39 + #define SLAVE_AHB2PHY_SOUTH 1 40 + #define SLAVE_AHB2PHY_NORTH 2 41 + #define SLAVE_CAMERA_CFG 3 42 + #define SLAVE_CLK_CTL 4 43 + #define SLAVE_CRYPTO_0_CFG 5 44 + #define SLAVE_DISPLAY_CFG 6 45 + #define SLAVE_EVA_CFG 7 46 + #define SLAVE_GFX3D_CFG 8 47 + #define SLAVE_I2C 9 48 + #define SLAVE_I3C_IBI0_CFG 10 49 + #define SLAVE_I3C_IBI1_CFG 11 50 + #define SLAVE_IMEM_CFG 12 51 + #define SLAVE_IPC_ROUTER_CFG 13 52 + #define SLAVE_CNOC_MSS 14 53 + #define SLAVE_PCIE_CFG 15 54 + #define SLAVE_PRNG 16 55 + #define SLAVE_QDSS_CFG 17 56 + #define SLAVE_QSPI_0 18 57 + #define SLAVE_QUP_1 19 58 + #define SLAVE_QUP_2 20 59 + #define SLAVE_QUP_3 21 60 + #define SLAVE_QUP_4 22 61 + #define SLAVE_SDCC_2 23 62 + #define SLAVE_SDCC_4 24 63 + #define SLAVE_SPSS_CFG 25 64 + #define SLAVE_TCSR 26 65 + #define SLAVE_TLMM 27 66 + #define SLAVE_UFS_MEM_CFG 28 67 + #define SLAVE_USB3 29 68 + #define SLAVE_VENUS_CFG 30 69 + #define SLAVE_VSENSE_CTRL_CFG 31 70 + #define SLAVE_CNOC_MNOC_CFG 32 71 + #define SLAVE_PCIE_ANOC_CFG 33 72 + #define SLAVE_QDSS_STM 34 73 + #define SLAVE_TCU 35 74 + 75 + #define MASTER_GEM_NOC_CNOC 0 76 + #define MASTER_GEM_NOC_PCIE_SNOC 1 77 + #define SLAVE_AOSS 2 78 + #define SLAVE_IPA_CFG 3 79 + #define SLAVE_IPC_ROUTER_FENCE 4 80 + #define SLAVE_SOCCP 5 81 + #define SLAVE_TME_CFG 6 82 + #define SLAVE_APPSS 7 83 + #define SLAVE_CNOC_CFG 8 84 + #define SLAVE_DDRSS_CFG 9 85 + #define SLAVE_BOOT_IMEM 10 86 + #define SLAVE_IMEM 11 87 + #define SLAVE_PCIE_0 12 88 + 89 + #define MASTER_GPU_TCU 0 90 + #define MASTER_SYS_TCU 1 91 + #define MASTER_APPSS_PROC 2 92 + #define MASTER_GFX3D 3 93 + #define MASTER_LPASS_GEM_NOC 4 94 + #define MASTER_MSS_PROC 5 95 + #define MASTER_MNOC_HF_MEM_NOC 6 96 + #define MASTER_MNOC_SF_MEM_NOC 7 97 + #define MASTER_COMPUTE_NOC 8 98 + #define MASTER_ANOC_PCIE_GEM_NOC 9 99 + #define MASTER_QPACE 10 100 + #define MASTER_SNOC_SF_MEM_NOC 11 101 + #define MASTER_WLAN_Q6 12 102 + #define MASTER_GIC 13 103 + #define SLAVE_GEM_NOC_CNOC 14 104 + #define SLAVE_LLCC 15 105 + #define SLAVE_MEM_NOC_PCIE_SNOC 16 106 + 107 + #define MASTER_LPIAON_NOC 0 108 + #define SLAVE_LPASS_GEM_NOC 1 109 + 110 + #define MASTER_LPASS_LPINOC 0 111 + #define SLAVE_LPIAON_NOC_LPASS_AG_NOC 1 112 + 113 + #define MASTER_LPASS_PROC 0 114 + #define SLAVE_LPICX_NOC_LPIAON_NOC 1 115 + 116 + #define MASTER_LLCC 0 117 + #define SLAVE_EBI1 1 118 + 119 + #define MASTER_CAMNOC_HF 0 120 + #define MASTER_CAMNOC_NRT_ICP_SF 1 121 + #define MASTER_CAMNOC_RT_CDM_SF 2 122 + #define MASTER_CAMNOC_SF 3 123 + #define MASTER_MDP 4 124 + #define MASTER_MDSS_DCP 5 125 + #define MASTER_CDSP_HCP 6 126 + #define MASTER_VIDEO_CV_PROC 7 127 + #define MASTER_VIDEO_EVA 8 128 + #define MASTER_VIDEO_MVP 9 129 + #define MASTER_VIDEO_V_PROC 10 130 + #define MASTER_CNOC_MNOC_CFG 11 131 + #define SLAVE_MNOC_HF_MEM_NOC 12 132 + #define SLAVE_MNOC_SF_MEM_NOC 13 133 + #define SLAVE_SERVICE_MNOC 14 134 + 135 + #define MASTER_CDSP_PROC 0 136 + #define SLAVE_CDSP_MEM_NOC 1 137 + 138 + #define MASTER_PCIE_ANOC_CFG 0 139 + #define MASTER_PCIE_0 1 140 + #define SLAVE_ANOC_PCIE_GEM_NOC 2 141 + #define SLAVE_SERVICE_PCIE_ANOC 3 142 + 143 + #define MASTER_A1NOC_SNOC 0 144 + #define MASTER_A2NOC_SNOC 1 145 + #define MASTER_APSS_NOC 2 146 + #define MASTER_CNOC_SNOC 3 147 + #define SLAVE_SNOC_GEM_NOC_SF 4 148 + 149 + #endif