Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
linux
Commits
2676a72a
Commit
2676a72a
authored
Nov 27, 2020
by
Matthias Brugger
Browse files
Options
Browse Files
Download
Plain Diff
Merge tag 'v5.10-next-pm-domains-stable' into HEAD
parents
63e5dcc0
343106d9
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
351 additions
and
0 deletions
+351
-0
Documentation/devicetree/bindings/power/mediatek,power-controller.yaml
.../devicetree/bindings/power/mediatek,power-controller.yaml
+293
-0
include/dt-bindings/power/mt8183-power.h
include/dt-bindings/power/mt8183-power.h
+26
-0
include/dt-bindings/power/mt8192-power.h
include/dt-bindings/power/mt8192-power.h
+32
-0
No files found.
Documentation/devicetree/bindings/power/mediatek,power-controller.yaml
0 → 100644
View file @
2676a72a
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML
1.2
---
$id
:
http://devicetree.org/schemas/power/mediatek,power-controller.yaml#
$schema
:
http://devicetree.org/meta-schemas/core.yaml#
title
:
Mediatek Power Domains Controller
maintainers
:
-
Weiyi Lu <weiyi.lu@mediatek.com>
-
Matthias Brugger <mbrugger@suse.com>
description
:
|
Mediatek processors include support for multiple power domains which can be
powered up/down by software based on different application scenes to save power.
IP cores belonging to a power domain should contain a 'power-domains'
property that is a phandle for SCPSYS node representing the domain.
properties
:
$nodename
:
const
:
power-controller
compatible
:
enum
:
-
mediatek,mt8173-power-controller
-
mediatek,mt8183-power-controller
-
mediatek,mt8192-power-controller
'
#power-domain-cells'
:
const
:
1
'
#address-cells'
:
const
:
1
'
#size-cells'
:
const
:
0
patternProperties
:
"
^power-domain@[0-9a-f]+$"
:
type
:
object
description
:
|
Represents the power domains within the power controller node as documented
in Documentation/devicetree/bindings/power/power-domain.yaml.
properties
:
'
#power-domain-cells'
:
description
:
Must be 0 for nodes representing a single PM domain and 1 for nodes
providing multiple PM domains.
'
#address-cells'
:
const
:
1
'
#size-cells'
:
const
:
0
reg
:
description
:
|
Power domain index. Valid values are defined in:
"include/dt-bindings/power/mt8173-power.h" - for MT8173 type power domain.
"include/dt-bindings/power/mt8183-power.h" - for MT8183 type power domain.
"include/dt-bindings/power/mt8192-power.h" - for MT8192 type power domain.
maxItems
:
1
clocks
:
description
:
|
A number of phandles to clocks that need to be enabled during domain
power-up sequencing.
clock-names
:
description
:
|
List of names of clocks, in order to match the power-up sequencing
for each power domain we need to group the clocks by name. BASIC
clocks need to be enabled before enabling the corresponding power
domain, and should not have a '-' in their name (i.e mm, mfg, venc).
SUSBYS clocks need to be enabled before releasing the bus protection,
and should contain a '-' in their name (i.e mm-0, isp-0, cam-0).
In order to follow properly the power-up sequencing, the clocks must
be specified by order, adding first the BASIC clocks followed by the
SUSBSYS clocks.
mediatek,infracfg
:
$ref
:
/schemas/types.yaml#definitions/phandle
description
:
phandle to the device containing the INFRACFG register range.
mediatek,smi
:
$ref
:
/schemas/types.yaml#definitions/phandle
description
:
phandle to the device containing the SMI register range.
patternProperties
:
"
^power-domain@[0-9a-f]+$"
:
type
:
object
description
:
|
Represents a power domain child within a power domain parent node.
properties
:
'
#power-domain-cells'
:
description
:
Must be 0 for nodes representing a single PM domain and 1 for nodes
providing multiple PM domains.
'
#address-cells'
:
const
:
1
'
#size-cells'
:
const
:
0
reg
:
maxItems
:
1
clocks
:
description
:
|
A number of phandles to clocks that need to be enabled during domain
power-up sequencing.
clock-names
:
description
:
|
List of names of clocks, in order to match the power-up sequencing
for each power domain we need to group the clocks by name. BASIC
clocks need to be enabled before enabling the corresponding power
domain, and should not have a '-' in their name (i.e mm, mfg, venc).
SUSBYS clocks need to be enabled before releasing the bus protection,
and should contain a '-' in their name (i.e mm-0, isp-0, cam-0).
In order to follow properly the power-up sequencing, the clocks must
be specified by order, adding first the BASIC clocks followed by the
SUSBSYS clocks.
mediatek,infracfg
:
$ref
:
/schemas/types.yaml#definitions/phandle
description
:
phandle to the device containing the INFRACFG register range.
mediatek,smi
:
$ref
:
/schemas/types.yaml#definitions/phandle
description
:
phandle to the device containing the SMI register range.
patternProperties
:
"
^power-domain@[0-9a-f]+$"
:
type
:
object
description
:
|
Represents a power domain child within a power domain parent node.
properties
:
'
#power-domain-cells'
:
description
:
Must be 0 for nodes representing a single PM domain and 1 for nodes
providing multiple PM domains.
'
#address-cells'
:
const
:
1
'
#size-cells'
:
const
:
0
reg
:
maxItems
:
1
clocks
:
description
:
|
A number of phandles to clocks that need to be enabled during domain
power-up sequencing.
clock-names
:
description
:
|
List of names of clocks, in order to match the power-up sequencing
for each power domain we need to group the clocks by name. BASIC
clocks need to be enabled before enabling the corresponding power
domain, and should not have a '-' in their name (i.e mm, mfg, venc).
SUSBYS clocks need to be enabled before releasing the bus protection,
and should contain a '-' in their name (i.e mm-0, isp-0, cam-0).
In order to follow properly the power-up sequencing, the clocks must
be specified by order, adding first the BASIC clocks followed by the
SUSBSYS clocks.
mediatek,infracfg
:
$ref
:
/schemas/types.yaml#definitions/phandle
description
:
phandle to the device containing the INFRACFG register range.
mediatek,smi
:
$ref
:
/schemas/types.yaml#definitions/phandle
description
:
phandle to the device containing the SMI register range.
required
:
-
reg
additionalProperties
:
false
required
:
-
reg
additionalProperties
:
false
required
:
-
reg
additionalProperties
:
false
required
:
-
compatible
additionalProperties
:
false
examples
:
-
|
#include <dt-bindings/clock/mt8173-clk.h>
#include <dt-bindings/power/mt8173-power.h>
soc {
#address-cells = <2>;
#size-cells = <2>;
scpsys: syscon@10006000 {
compatible = "syscon", "simple-mfd";
reg = <0 0x10006000 0 0x1000>;
spm: power-controller {
compatible = "mediatek,mt8173-power-controller";
#address-cells = <1>;
#size-cells = <0>;
#power-domain-cells = <1>;
/* power domains of the SoC */
power-domain@MT8173_POWER_DOMAIN_VDEC {
reg = <MT8173_POWER_DOMAIN_VDEC>;
clocks = <&topckgen CLK_TOP_MM_SEL>;
clock-names = "mm";
#power-domain-cells = <0>;
};
power-domain@MT8173_POWER_DOMAIN_VENC {
reg = <MT8173_POWER_DOMAIN_VENC>;
clocks = <&topckgen CLK_TOP_MM_SEL>,
<&topckgen CLK_TOP_VENC_SEL>;
clock-names = "mm", "venc";
#power-domain-cells = <0>;
};
power-domain@MT8173_POWER_DOMAIN_ISP {
reg = <MT8173_POWER_DOMAIN_ISP>;
clocks = <&topckgen CLK_TOP_MM_SEL>;
clock-names = "mm";
#power-domain-cells = <0>;
};
power-domain@MT8173_POWER_DOMAIN_MM {
reg = <MT8173_POWER_DOMAIN_MM>;
clocks = <&topckgen CLK_TOP_MM_SEL>;
clock-names = "mm";
#power-domain-cells = <0>;
mediatek,infracfg = <&infracfg>;
};
power-domain@MT8173_POWER_DOMAIN_VENC_LT {
reg = <MT8173_POWER_DOMAIN_VENC_LT>;
clocks = <&topckgen CLK_TOP_MM_SEL>,
<&topckgen CLK_TOP_VENC_LT_SEL>;
clock-names = "mm", "venclt";
#power-domain-cells = <0>;
};
power-domain@MT8173_POWER_DOMAIN_AUDIO {
reg = <MT8173_POWER_DOMAIN_AUDIO>;
#power-domain-cells = <0>;
};
power-domain@MT8173_POWER_DOMAIN_USB {
reg = <MT8173_POWER_DOMAIN_USB>;
#power-domain-cells = <0>;
};
power-domain@MT8173_POWER_DOMAIN_MFG_ASYNC {
reg = <MT8173_POWER_DOMAIN_MFG_ASYNC>;
clocks = <&clk26m>;
clock-names = "mfg";
#address-cells = <1>;
#size-cells = <0>;
#power-domain-cells = <1>;
power-domain@MT8173_POWER_DOMAIN_MFG_2D {
reg = <MT8173_POWER_DOMAIN_MFG_2D>;
#address-cells = <1>;
#size-cells = <0>;
#power-domain-cells = <1>;
power-domain@MT8173_POWER_DOMAIN_MFG {
reg = <MT8173_POWER_DOMAIN_MFG>;
#power-domain-cells = <0>;
mediatek,infracfg = <&infracfg>;
};
};
};
};
};
};
include/dt-bindings/power/mt8183-power.h
0 → 100644
View file @
2676a72a
/* SPDX-License-Identifier: GPL-2.0 */
/*
* Copyright (c) 2020 MediaTek Inc.
* Author: Weiyi Lu <weiyi.lu@mediatek.com>
*/
#ifndef _DT_BINDINGS_POWER_MT8183_POWER_H
#define _DT_BINDINGS_POWER_MT8183_POWER_H
#define MT8183_POWER_DOMAIN_AUDIO 0
#define MT8183_POWER_DOMAIN_CONN 1
#define MT8183_POWER_DOMAIN_MFG_ASYNC 2
#define MT8183_POWER_DOMAIN_MFG 3
#define MT8183_POWER_DOMAIN_MFG_CORE0 4
#define MT8183_POWER_DOMAIN_MFG_CORE1 5
#define MT8183_POWER_DOMAIN_MFG_2D 6
#define MT8183_POWER_DOMAIN_DISP 7
#define MT8183_POWER_DOMAIN_CAM 8
#define MT8183_POWER_DOMAIN_ISP 9
#define MT8183_POWER_DOMAIN_VDEC 10
#define MT8183_POWER_DOMAIN_VENC 11
#define MT8183_POWER_DOMAIN_VPU_TOP 12
#define MT8183_POWER_DOMAIN_VPU_CORE0 13
#define MT8183_POWER_DOMAIN_VPU_CORE1 14
#endif
/* _DT_BINDINGS_POWER_MT8183_POWER_H */
include/dt-bindings/power/mt8192-power.h
0 → 100644
View file @
2676a72a
/* SPDX-License-Identifier: GPL-2.0
*
* Copyright (c) 2020 MediaTek Inc.
* Author: Weiyi Lu <weiyi.lu@mediatek.com>
*/
#ifndef _DT_BINDINGS_POWER_MT8192_POWER_H
#define _DT_BINDINGS_POWER_MT8192_POWER_H
#define MT8192_POWER_DOMAIN_AUDIO 0
#define MT8192_POWER_DOMAIN_CONN 1
#define MT8192_POWER_DOMAIN_MFG0 2
#define MT8192_POWER_DOMAIN_MFG1 3
#define MT8192_POWER_DOMAIN_MFG2 4
#define MT8192_POWER_DOMAIN_MFG3 5
#define MT8192_POWER_DOMAIN_MFG4 6
#define MT8192_POWER_DOMAIN_MFG5 7
#define MT8192_POWER_DOMAIN_MFG6 8
#define MT8192_POWER_DOMAIN_DISP 9
#define MT8192_POWER_DOMAIN_IPE 10
#define MT8192_POWER_DOMAIN_ISP 11
#define MT8192_POWER_DOMAIN_ISP2 12
#define MT8192_POWER_DOMAIN_MDP 13
#define MT8192_POWER_DOMAIN_VENC 14
#define MT8192_POWER_DOMAIN_VDEC 15
#define MT8192_POWER_DOMAIN_VDEC2 16
#define MT8192_POWER_DOMAIN_CAM 17
#define MT8192_POWER_DOMAIN_CAM_RAWA 18
#define MT8192_POWER_DOMAIN_CAM_RAWB 19
#define MT8192_POWER_DOMAIN_CAM_RAWC 20
#endif
/* _DT_BINDINGS_POWER_MT8192_POWER_H */
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment