-
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.
dt-bindings: memory: convert Samsung Exynos DMC to dtschema
Convert Samsung Exynos5422 SoC frequency and voltage scaling for Dynamic Memory Controller to DT schema format using json-schema. Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> Acked-by: Lukasz Luba <lukasz.luba@arm.com> Link: https://lore.kernel.org/r/20210820150353.161161-3-krzysztof.kozlowski@canonical.com Signed-off-by: Rob Herring <robh@kernel.org>
- Loading branch information
Krzysztof Kozlowski
authored and
Rob Herring
committed
Aug 24, 2021
1 parent
c507f15
commit 0b38130
Showing
3 changed files
with
138 additions
and
85 deletions.
There are no files selected for viewing
84 changes: 0 additions & 84 deletions
84
Documentation/devicetree/bindings/memory-controllers/exynos5422-dmc.txt
This file was deleted.
Oops, something went wrong.
137 changes: 137 additions & 0 deletions
137
Documentation/devicetree/bindings/memory-controllers/samsung,exynos5422-dmc.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,137 @@ | ||
# SPDX-License-Identifier: GPL-2.0 | ||
%YAML 1.2 | ||
--- | ||
$id: http://devicetree.org/schemas/memory-controllers/samsung,exynos5422-dmc.yaml# | ||
$schema: http://devicetree.org/meta-schemas/core.yaml# | ||
|
||
title: | | ||
Samsung Exynos5422 SoC frequency and voltage scaling for Dynamic Memory | ||
Controller device | ||
maintainers: | ||
- Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com> | ||
- Lukasz Luba <lukasz.luba@arm.com> | ||
|
||
description: | | ||
The Samsung Exynos5422 SoC has DMC (Dynamic Memory Controller) to which the | ||
DRAM memory chips are connected. The driver is to monitor the controller in | ||
runtime and switch frequency and voltage. To monitor the usage of the | ||
controller in runtime, the driver uses the PPMU (Platform Performance | ||
Monitoring Unit), which is able to measure the current load of the memory. | ||
When 'userspace' governor is used for the driver, an application is able to | ||
switch the DMC and memory frequency. | ||
properties: | ||
compatible: | ||
items: | ||
- const: samsung,exynos5422-dmc | ||
|
||
clock-names: | ||
items: | ||
- const: fout_spll | ||
- const: mout_sclk_spll | ||
- const: ff_dout_spll2 | ||
- const: fout_bpll | ||
- const: mout_bpll | ||
- const: sclk_bpll | ||
- const: mout_mx_mspll_ccore | ||
- const: mout_mclk_cdrex | ||
|
||
clocks: | ||
minItems: 8 | ||
maxItems: 8 | ||
|
||
devfreq-events: | ||
$ref: '/schemas/types.yaml#/definitions/phandle-array' | ||
minItems: 1 | ||
maxItems: 16 | ||
description: phandles of the PPMU events used by the controller. | ||
|
||
device-handle: | ||
$ref: '/schemas/types.yaml#/definitions/phandle' | ||
description: | | ||
phandle of the connected DRAM memory device. For more information please | ||
refer to documentation file: Documentation/devicetree/bindings/ddr/lpddr3.txt | ||
operating-points-v2: true | ||
|
||
interrupts: | ||
items: | ||
- description: DMC internal performance event counters in DREX0 | ||
- description: DMC internal performance event counters in DREX1 | ||
|
||
interrupt-names: | ||
items: | ||
- const: drex_0 | ||
- const: drex_1 | ||
|
||
reg: | ||
items: | ||
- description: registers of DREX0 | ||
- description: registers of DREX1 | ||
|
||
samsung,syscon-clk: | ||
$ref: '/schemas/types.yaml#/definitions/phandle' | ||
description: | | ||
Phandle of the clock register set used by the controller, these registers | ||
are used for enabling a 'pause' feature and are not exposed by clock | ||
framework but they must be used in a safe way. The register offsets are | ||
in the driver code and specyfic for this SoC type. | ||
vdd-supply: true | ||
|
||
required: | ||
- compatible | ||
- clock-names | ||
- clocks | ||
- devfreq-events | ||
- device-handle | ||
- reg | ||
- samsung,syscon-clk | ||
|
||
additionalProperties: false | ||
|
||
examples: | ||
- | | ||
#include <dt-bindings/clock/exynos5420.h> | ||
ppmu_dmc0_0: ppmu@10d00000 { | ||
compatible = "samsung,exynos-ppmu"; | ||
reg = <0x10d00000 0x2000>; | ||
clocks = <&clock CLK_PCLK_PPMU_DREX0_0>; | ||
clock-names = "ppmu"; | ||
events { | ||
ppmu_event_dmc0_0: ppmu-event3-dmc0-0 { | ||
event-name = "ppmu-event3-dmc0_0"; | ||
}; | ||
}; | ||
}; | ||
memory-controller@10c20000 { | ||
compatible = "samsung,exynos5422-dmc"; | ||
reg = <0x10c20000 0x10000>, <0x10c30000 0x10000>; | ||
clocks = <&clock CLK_FOUT_SPLL>, | ||
<&clock CLK_MOUT_SCLK_SPLL>, | ||
<&clock CLK_FF_DOUT_SPLL2>, | ||
<&clock CLK_FOUT_BPLL>, | ||
<&clock CLK_MOUT_BPLL>, | ||
<&clock CLK_SCLK_BPLL>, | ||
<&clock CLK_MOUT_MX_MSPLL_CCORE>, | ||
<&clock CLK_MOUT_MCLK_CDREX>; | ||
clock-names = "fout_spll", | ||
"mout_sclk_spll", | ||
"ff_dout_spll2", | ||
"fout_bpll", | ||
"mout_bpll", | ||
"sclk_bpll", | ||
"mout_mx_mspll_ccore", | ||
"mout_mclk_cdrex"; | ||
operating-points-v2 = <&dmc_opp_table>; | ||
devfreq-events = <&ppmu_event3_dmc0_0>, <&ppmu_event3_dmc0_1>, | ||
<&ppmu_event3_dmc1_0>, <&ppmu_event3_dmc1_1>; | ||
device-handle = <&samsung_K3QF2F20DB>; | ||
vdd-supply = <&buck1_reg>; | ||
samsung,syscon-clk = <&clock>; | ||
interrupt-parent = <&combiner>; | ||
interrupts = <16 0>, <16 1>; | ||
interrupt-names = "drex_0", "drex_1"; | ||
}; |
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