forked from grate-driver/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'icc-sdm660' into icc-next
This patch series adds the SDM660 interconnect provider driver in order to stop some timeouts and achieve some decent performance by avoiding to be NoC limited. It's also providing some power consumption improvement, but I have only measured that as less heat, which is quite important when working on thermally constrained devices like smartphones. Please note that this driver's yaml binding is referring to a MMCC clock, so this series does depend on the SDM660 MMCC driver that I have sent separately. The multimedia clock is required only for the Multimedia NoC (mnoc). This patch series has been tested against the following devices: - Sony Xperia XA2 Ultra (SDM630 Nile Discovery) - Sony Xperia 10 (SDM630 Ganges Kirin) - Sony Xperia 10 Plus (SDM636 Ganges Mermaid) * icc-sdm660 dt-bindings: interconnect: Add bindings for Qualcomm SDM660 NoC interconnect: qcom: Add SDM660 interconnect provider driver interconnect: qcom: sdm660: Fix kerneldoc warning Link: https://lore.kernel.org/r/20201017133718.31327-1-kholk11@gmail.com Signed-off-by: Georgi Djakov <georgi.djakov@linaro.org>
- Loading branch information
Showing
5 changed files
with
1,197 additions
and
0 deletions.
There are no files selected for viewing
147 changes: 147 additions & 0 deletions
147
Documentation/devicetree/bindings/interconnect/qcom,sdm660.yaml
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,147 @@ | ||
# 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: 3 | ||
|
||
clock-names: | ||
minItems: 1 | ||
maxItems: 3 | ||
|
||
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 | ||
- 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> | ||
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"; | ||
clocks = <&rpmcc RPM_SMD_AGGR2_NOC_CLK>, | ||
<&rpmcc RPM_SMD_AGGR2_NOC_A_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>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.