mirror of
https://github.com/torvalds/linux.git
synced 2026-04-18 06:44:00 -04:00
Pull MFD updates from Lee Jones:
"Core Frameworks:
- Fix 'mfd_of_node_list' OF node entry resource leak
New Drivers:
- Add support for Ocelot VSC7512 Networking Chip
- Add support for MediaTek MT6370 subPMIC
- Add support for Richtek RT5120 (I2C) PMIC
New Device Support:
- Add support for Rockchip RV1126 and RK3588 to Syscon
- Add support for Rockchip RK817 Battery Charger to RK808
- Add support for Silergy SY7636a Voltage Regulator to Simple MFD
- Add support for Qualcomm PMP8074 PMIC to QCOM SPMI
- Add support for Secure Update to Intel M10 BMC
New Functionality:
- Provide SSP type to Intel's LPSS (PCI) SPI driver
Fix-ups:
- Remove legacy / unused code; stmpe, intel_soc_pmic_crc, syscon
- Unify / simplify; intel_soc_pmic_crc
- Trivial reordering / spelling, etc; Makefile, twl-core
- Convert to managed resources; intel_soc_pmic_crc
- Use appropriate APIs; intel_soc_pmic_crc
- strscpy() conversion; htc-i2cpld, lpc_ich, mfd-core
- GPIOD conversion; htc-i2cpld, stmpe
- Add missing header file includes; twl4030-irq
- DT goodies; stmpe, mediatek,mt6370, x-powers,axp152,
aspeed,ast2x00-scu, mediatek,mt8195-scpsys, qcom,spmi-pmic, syscon,
qcom,tcsr, rockchip,rk817, sprd,ums512-glbreg, dlg,da9063
Bug Fixes:
- Properly check return values; sm501, htc-i2cpld
- Repair Two-Wire Bus Mode; da9062-core
- Fix error handling; intel_soc_pmic_core, fsl-imx25-tsadc, lp8788,
lp8788-irq"
* tag 'mfd-next-6.1' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd: (60 commits)
mfd: syscon: Remove repetition of the regmap_get_val_endian()
mfd: ocelot-spi: Add missing MODULE_DEVICE_TABLE
power: supply: Add charger driver for Rockchip RK817
dt-bindings: mfd: mt6370: Fix the indentation in the example
mfd: da9061: Fix Failed to set Two-Wire Bus Mode.
mfd: htc-i2cpld: Fix an IS_ERR() vs NULL bug in htcpld_core_probe()
dt-bindings: mfd: qcom,tcsr: Drop simple-mfd from IPQ6018
mfd: sm501: Add check for platform_driver_register()
dt-bindings: mfd: mediatek: Add scpsys compatible for mt8186
mfd: twl4030: Add missed linux/device.h header
dt-bindings: mfd: dlg,da9063: Add missing regulator patterns
dt-bindings: mfd: sprd: Add bindings for ums512 global registers
mfd: intel_soc_pmic_chtdc_ti: Switch from __maybe_unused to pm_sleep_ptr() etc
dt-bindings: mfd: syscon: Add rk3588 QoS register compatible
mfd: stmpe: Switch to using gpiod API
mfd: qcom-spmi-pmic: Add pm7250b compatible
dt-bindings: mfd: Add missing (unevaluated|additional)Properties on child nodes
mfd/omap1: htc-i2cpld: Convert to a pure GPIO driver
mfd: intel-m10-bmc: Add d5005 bmc secure update driver
dt-bindings: mfd: syscon: Drop ref from reg-io-width
...
213 lines
7.4 KiB
YAML
213 lines
7.4 KiB
YAML
# 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:
|
|
- MandyJH Liu <mandyjh.liu@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:
|
|
pattern: '^power-controller(@[0-9a-f]+)?$'
|
|
|
|
compatible:
|
|
enum:
|
|
- mediatek,mt6795-power-controller
|
|
- mediatek,mt8167-power-controller
|
|
- mediatek,mt8173-power-controller
|
|
- mediatek,mt8183-power-controller
|
|
- mediatek,mt8186-power-controller
|
|
- mediatek,mt8192-power-controller
|
|
- mediatek,mt8195-power-controller
|
|
|
|
'#power-domain-cells':
|
|
const: 1
|
|
|
|
'#address-cells':
|
|
const: 1
|
|
|
|
'#size-cells':
|
|
const: 0
|
|
|
|
patternProperties:
|
|
"^power-domain@[0-9a-f]+$":
|
|
$ref: "#/$defs/power-domain-node"
|
|
patternProperties:
|
|
"^power-domain@[0-9a-f]+$":
|
|
$ref: "#/$defs/power-domain-node"
|
|
patternProperties:
|
|
"^power-domain@[0-9a-f]+$":
|
|
$ref: "#/$defs/power-domain-node"
|
|
patternProperties:
|
|
"^power-domain@[0-9a-f]+$":
|
|
$ref: "#/$defs/power-domain-node"
|
|
unevaluatedProperties: false
|
|
unevaluatedProperties: false
|
|
unevaluatedProperties: false
|
|
unevaluatedProperties: false
|
|
|
|
$defs:
|
|
power-domain-node:
|
|
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/mt6795-power.h" - for MT8167 type power domain.
|
|
"include/dt-bindings/power/mt8167-power.h" - for MT8167 type power domain.
|
|
"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.
|
|
"include/dt-bindings/power/mt8195-power.h" - for MT8195 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.
|
|
|
|
domain-supply:
|
|
description: domain regulator supply.
|
|
|
|
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
|
|
|
|
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 = "mediatek,mt8173-scpsys", "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>;
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|
|
};
|