186 lines
5.1 KiB
YAML
186 lines
5.1 KiB
YAML
|
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
||
|
%YAML 1.2
|
||
|
---
|
||
|
$id: http://devicetree.org/schemas/interconnect/qcom,sdm660.yaml#
|
||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
|
||
|
title: Qualcomm SDM660 Network-On-Chip interconnect
|
||
|
|
||
|
maintainers:
|
||
|
- AngeloGioacchino Del Regno <kholk11@gmail.com>
|
||
|
|
||
|
description: |
|
||
|
The Qualcomm SDM660 interconnect providers support adjusting the
|
||
|
bandwidth requirements between the various NoC fabrics.
|
||
|
|
||
|
properties:
|
||
|
reg:
|
||
|
maxItems: 1
|
||
|
|
||
|
compatible:
|
||
|
enum:
|
||
|
- qcom,sdm660-a2noc
|
||
|
- qcom,sdm660-bimc
|
||
|
- qcom,sdm660-cnoc
|
||
|
- qcom,sdm660-gnoc
|
||
|
- qcom,sdm660-mnoc
|
||
|
- qcom,sdm660-snoc
|
||
|
|
||
|
'#interconnect-cells':
|
||
|
const: 1
|
||
|
|
||
|
clocks:
|
||
|
minItems: 1
|
||
|
maxItems: 7
|
||
|
|
||
|
clock-names:
|
||
|
minItems: 1
|
||
|
maxItems: 7
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- reg
|
||
|
- '#interconnect-cells'
|
||
|
- clock-names
|
||
|
- clocks
|
||
|
|
||
|
additionalProperties: false
|
||
|
|
||
|
allOf:
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
enum:
|
||
|
- qcom,sdm660-mnoc
|
||
|
then:
|
||
|
properties:
|
||
|
clocks:
|
||
|
items:
|
||
|
- description: Bus Clock.
|
||
|
- description: Bus A Clock.
|
||
|
- description: CPU-NoC High-performance Bus Clock.
|
||
|
clock-names:
|
||
|
items:
|
||
|
- const: bus
|
||
|
- const: bus_a
|
||
|
- const: iface
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
enum:
|
||
|
- qcom,sdm660-a2noc
|
||
|
then:
|
||
|
properties:
|
||
|
clocks:
|
||
|
items:
|
||
|
- description: Bus Clock.
|
||
|
- description: Bus A Clock.
|
||
|
- description: IPA Clock.
|
||
|
- description: UFS AXI Clock.
|
||
|
- description: Aggregate2 UFS AXI Clock.
|
||
|
- description: Aggregate2 USB3 AXI Clock.
|
||
|
- description: Config NoC USB2 AXI Clock.
|
||
|
clock-names:
|
||
|
items:
|
||
|
- const: bus
|
||
|
- const: bus_a
|
||
|
- const: ipa
|
||
|
- const: ufs_axi
|
||
|
- const: aggre2_ufs_axi
|
||
|
- const: aggre2_usb3_axi
|
||
|
- const: cfg_noc_usb2_axi
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
enum:
|
||
|
- qcom,sdm660-bimc
|
||
|
- qcom,sdm660-cnoc
|
||
|
- qcom,sdm660-gnoc
|
||
|
- qcom,sdm660-snoc
|
||
|
then:
|
||
|
properties:
|
||
|
clocks:
|
||
|
items:
|
||
|
- description: Bus Clock.
|
||
|
- description: Bus A Clock.
|
||
|
clock-names:
|
||
|
items:
|
||
|
- const: bus
|
||
|
- const: bus_a
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
#include <dt-bindings/clock/qcom,rpmcc.h>
|
||
|
#include <dt-bindings/clock/qcom,mmcc-sdm660.h>
|
||
|
#include <dt-bindings/clock/qcom,gcc-sdm660.h>
|
||
|
|
||
|
bimc: interconnect@1008000 {
|
||
|
compatible = "qcom,sdm660-bimc";
|
||
|
reg = <0x01008000 0x78000>;
|
||
|
#interconnect-cells = <1>;
|
||
|
clock-names = "bus", "bus_a";
|
||
|
clocks = <&rpmcc RPM_SMD_BIMC_CLK>,
|
||
|
<&rpmcc RPM_SMD_BIMC_A_CLK>;
|
||
|
};
|
||
|
|
||
|
cnoc: interconnect@1500000 {
|
||
|
compatible = "qcom,sdm660-cnoc";
|
||
|
reg = <0x01500000 0x10000>;
|
||
|
#interconnect-cells = <1>;
|
||
|
clock-names = "bus", "bus_a";
|
||
|
clocks = <&rpmcc RPM_SMD_CNOC_CLK>,
|
||
|
<&rpmcc RPM_SMD_CNOC_A_CLK>;
|
||
|
};
|
||
|
|
||
|
snoc: interconnect@1626000 {
|
||
|
compatible = "qcom,sdm660-snoc";
|
||
|
reg = <0x01626000 0x7090>;
|
||
|
#interconnect-cells = <1>;
|
||
|
clock-names = "bus", "bus_a";
|
||
|
clocks = <&rpmcc RPM_SMD_SNOC_CLK>,
|
||
|
<&rpmcc RPM_SMD_SNOC_A_CLK>;
|
||
|
};
|
||
|
|
||
|
a2noc: interconnect@1704000 {
|
||
|
compatible = "qcom,sdm660-a2noc";
|
||
|
reg = <0x01704000 0xc100>;
|
||
|
#interconnect-cells = <1>;
|
||
|
clock-names = "bus",
|
||
|
"bus_a",
|
||
|
"ipa",
|
||
|
"ufs_axi",
|
||
|
"aggre2_ufs_axi",
|
||
|
"aggre2_usb3_axi",
|
||
|
"cfg_noc_usb2_axi";
|
||
|
clocks = <&rpmcc RPM_SMD_AGGR2_NOC_CLK>,
|
||
|
<&rpmcc RPM_SMD_AGGR2_NOC_A_CLK>,
|
||
|
<&rpmcc RPM_SMD_IPA_CLK>,
|
||
|
<&gcc GCC_UFS_AXI_CLK>,
|
||
|
<&gcc GCC_AGGRE2_UFS_AXI_CLK>,
|
||
|
<&gcc GCC_AGGRE2_USB3_AXI_CLK>,
|
||
|
<&gcc GCC_CFG_NOC_USB2_AXI_CLK>;
|
||
|
};
|
||
|
|
||
|
mnoc: interconnect@1745000 {
|
||
|
compatible = "qcom,sdm660-mnoc";
|
||
|
reg = <0x01745000 0xa010>;
|
||
|
#interconnect-cells = <1>;
|
||
|
clock-names = "bus", "bus_a", "iface";
|
||
|
clocks = <&rpmcc RPM_SMD_MMSSNOC_AXI_CLK>,
|
||
|
<&rpmcc RPM_SMD_MMSSNOC_AXI_CLK_A>,
|
||
|
<&mmcc AHB_CLK_SRC>;
|
||
|
};
|
||
|
|
||
|
gnoc: interconnect@17900000 {
|
||
|
compatible = "qcom,sdm660-gnoc";
|
||
|
reg = <0x17900000 0xe000>;
|
||
|
#interconnect-cells = <1>;
|
||
|
clock-names = "bus", "bus_a";
|
||
|
clocks = <&xo_board>, <&xo_board>;
|
||
|
};
|