mirror of
git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-09-18 22:14:16 +00:00

The MT6358 PMIC allows changing operating modes for the buck regulators, but not the LDOs. Existing device trees and the Linux implementation already utilize this through the standard regulator-allowed-modes property. The values currently used in existing device trees are simply raw numbers. The values in the Linux driver are matching numbers defined with macros denoting the two supported modes. Turns out these two modes are common across parts of the larger MT63xx PMIC family. The MT6397 regulator binding already has macros for the two modes, with matching numbers. Codify the supported values for regulator-allowed-modes for the MT6358 in the device tree binding: 0 and 1 are supported for buck regulators, and the property should not be present for LDO regulators. Users should use the dt-bindings/regulator/mediatek,mt6397-regulator.h header for the macros, instead of using raw numbers. Signed-off-by: Chen-Yu Tsai <wenst@chromium.org> Reviewed-by: Rob Herring <robh@kernel.org> Link: https://lore.kernel.org/r/20230928085537.3246669-4-wenst@chromium.org Signed-off-by: Mark Brown <broonie@kernel.org>
125 lines
3.5 KiB
YAML
125 lines
3.5 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/regulator/mediatek,mt6358-regulator.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: MediaTek MT6358 Regulator
|
|
|
|
maintainers:
|
|
- Zhiyong Tao <zhiyong.tao@mediatek.com>
|
|
|
|
description:
|
|
Regulator node of the PMIC. This node should under the PMIC's device node.
|
|
All voltage regulators provided by the PMIC are described as sub-nodes of
|
|
this node.
|
|
|
|
properties:
|
|
compatible:
|
|
const: mediatek,mt6358-regulator
|
|
|
|
ldo_vxo22:
|
|
description: LDOs with fixed 2.2V output and 0~100/10mV tuning
|
|
type: object
|
|
$ref: regulator.yaml#
|
|
properties:
|
|
regulator-allowed-modes: false
|
|
unevaluatedProperties: false
|
|
|
|
ldo_vusb:
|
|
description: LDOs with fixed 3.0V output and 0~100/10mV tuning
|
|
type: object
|
|
$ref: regulator.yaml#
|
|
properties:
|
|
regulator-allowed-modes: false
|
|
unevaluatedProperties: false
|
|
|
|
|
|
patternProperties:
|
|
"^buck_v(core|dram1|gpu|modem|pa|proc1[12]|s[12])$":
|
|
description: Buck regulators
|
|
type: object
|
|
$ref: regulator.yaml#
|
|
properties:
|
|
regulator-allowed-modes:
|
|
description: |
|
|
Buck regulatpr operating modes allowed. Valid values below.
|
|
Users should use the macros from dt-bindings/regulator/mediatek,mt6397-regulator.h
|
|
0 (MT6397_BUCK_MODE_AUTO): Auto PFM/PWM mode
|
|
1 (MT6397_BUCK_MODE_FORCE_PWM): Forced PWM mode
|
|
items:
|
|
enum: [0, 1]
|
|
unevaluatedProperties: false
|
|
|
|
"^ldo_v(a|rf)12$":
|
|
description: LDOs with fixed 1.2V output and 0~100/10mV tuning
|
|
type: object
|
|
$ref: regulator.yaml#
|
|
properties:
|
|
regulator-allowed-modes: false
|
|
unevaluatedProperties: false
|
|
|
|
"^ldo_v((aux|cn|io|rf)18|camio)$":
|
|
description: LDOs with fixed 1.8V output and 0~100/10mV tuning
|
|
type: object
|
|
$ref: regulator.yaml#
|
|
properties:
|
|
regulator-allowed-modes: false
|
|
unevaluatedProperties: false
|
|
|
|
"^ldo_v(aud|bif|cn|fe|io)28$":
|
|
description: LDOs with fixed 2.8V output and 0~100/10mV tuning
|
|
type: object
|
|
$ref: regulator.yaml#
|
|
properties:
|
|
regulator-allowed-modes: false
|
|
unevaluatedProperties: false
|
|
|
|
"^ldo_vsram_(gpu|others|proc1[12])$":
|
|
description: LDOs with variable output
|
|
type: object
|
|
$ref: regulator.yaml#
|
|
properties:
|
|
regulator-allowed-modes: false
|
|
unevaluatedProperties: false
|
|
|
|
"^ldo_v(cama[12]|camd|cn33|dram2|efuse|emc|ibr|ldo28|mc|mch|sim[12])$":
|
|
description: LDOs with variable output and 0~100/10mV tuning
|
|
type: object
|
|
$ref: regulator.yaml#
|
|
properties:
|
|
regulator-allowed-modes: false
|
|
unevaluatedProperties: false
|
|
|
|
required:
|
|
- compatible
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/regulator/mediatek,mt6397-regulator.h>
|
|
|
|
regulator {
|
|
compatible = "mediatek,mt6358-regulator";
|
|
|
|
buck_vgpu {
|
|
regulator-name = "vgpu";
|
|
regulator-min-microvolt = <625000>;
|
|
regulator-max-microvolt = <900000>;
|
|
regulator-ramp-delay = <6250>;
|
|
regulator-enable-ramp-delay = <200>;
|
|
regulator-allowed-modes = <MT6397_BUCK_MODE_AUTO
|
|
MT6397_BUCK_MODE_FORCE_PWM>;
|
|
};
|
|
|
|
ldo_vsram_gpu {
|
|
regulator-name = "vsram_gpu";
|
|
regulator-min-microvolt = <850000>;
|
|
regulator-max-microvolt = <1000000>;
|
|
regulator-ramp-delay = <6250>;
|
|
regulator-enable-ramp-delay = <240>;
|
|
};
|
|
};
|
|
|
|
...
|