mirror of
https://github.com/torvalds/linux.git
synced 2024-12-04 18:13:04 +00:00
5bcecfcaa6
Since MT6359 PMIC has been added as one of the compatibles of "mediatek,mt6397.yaml", the sub-device node of "MT6359 PMIC AUXADC", "MT6359 Audio Codec" and "MT6359 PMIC Regulators" should also be contained in this DT Schema as well. This patch includes: - add 'adc' property and $ref for 'mediatek,mt6359-auxadc'. - add 'mt6359-regulator' to the compatibles of regulators. - add 'mt6359-codec' to the compatibles of audio-codec. Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org> Link: https://lore.kernel.org/r/20241004030148.13366-1-macpaul.lin@mediatek.com Signed-off-by: Lee Jones <lee@kernel.org>
599 lines
16 KiB
YAML
599 lines
16 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/mfd/mediatek,mt6397.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: MediaTek MT6397/MT6323 PMIC
|
|
|
|
maintainers:
|
|
- Sen Chu <sen.chu@mediatek.com>
|
|
- Macpaul Lin <macpaul.lin@mediatek.com>
|
|
|
|
description: |
|
|
MT6397/MT6323 is a power management system chip.
|
|
Please see the sub-modules below for supported features.
|
|
|
|
MT6397/MT6323 is a multifunction device with the following sub modules:
|
|
- Regulators
|
|
- RTC
|
|
- ADC
|
|
- Audio codec
|
|
- GPIO
|
|
- Clock
|
|
- LED
|
|
- Keys
|
|
- Power controller
|
|
|
|
It is interfaced to host controller using SPI interface by a proprietary hardware
|
|
called PMIC wrapper or pwrap. MT6397/MT6323 PMIC is a child device of pwrap.
|
|
See the following for pwrap node definitions:
|
|
Documentation/devicetree/bindings/soc/mediatek/mediatek,pwrap.yaml
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- enum:
|
|
- mediatek,mt6323
|
|
- mediatek,mt6331 # "mediatek,mt6331" for PMIC MT6331 and MT6332.
|
|
- mediatek,mt6358
|
|
- mediatek,mt6359
|
|
- mediatek,mt6397
|
|
- items:
|
|
- enum:
|
|
- mediatek,mt6366
|
|
- const: mediatek,mt6358
|
|
|
|
interrupts:
|
|
maxItems: 1
|
|
|
|
interrupt-controller: true
|
|
|
|
"#interrupt-cells":
|
|
const: 2
|
|
|
|
rtc:
|
|
type: object
|
|
$ref: /schemas/rtc/rtc.yaml#
|
|
unevaluatedProperties: false
|
|
description:
|
|
MT6397 Real Time Clock.
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- enum:
|
|
- mediatek,mt6323-rtc
|
|
- mediatek,mt6331-rtc
|
|
- mediatek,mt6358-rtc
|
|
- mediatek,mt6397-rtc
|
|
- items:
|
|
- enum:
|
|
- mediatek,mt6366-rtc
|
|
- const: mediatek,mt6358-rtc
|
|
|
|
start-year: true
|
|
|
|
required:
|
|
- compatible
|
|
|
|
regulators:
|
|
type: object
|
|
description:
|
|
List of child nodes that specify the regulators.
|
|
additionalProperties: true
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- enum:
|
|
- mediatek,mt6323-regulator
|
|
- mediatek,mt6358-regulator
|
|
- mediatek,mt6359-regulator
|
|
- mediatek,mt6397-regulator
|
|
- items:
|
|
- enum:
|
|
- mediatek,mt6366-regulator
|
|
- const: mediatek,mt6358-regulator
|
|
|
|
required:
|
|
- compatible
|
|
|
|
adc:
|
|
type: object
|
|
$ref: /schemas/iio/adc/mediatek,mt6359-auxadc.yaml#
|
|
unevaluatedProperties: false
|
|
|
|
audio-codec:
|
|
type: object
|
|
description:
|
|
Audio codec support with MT6358 and MT6397.
|
|
additionalProperties: true
|
|
|
|
properties:
|
|
compatible:
|
|
oneOf:
|
|
- enum:
|
|
- mediatek,mt6358-sound
|
|
- mediatek,mt6359-codec
|
|
- mediatek,mt6397-codec
|
|
- items:
|
|
- enum:
|
|
- mediatek,mt6366-sound
|
|
- const: mediatek,mt6358-sound
|
|
|
|
required:
|
|
- compatible
|
|
|
|
clocks:
|
|
type: object
|
|
additionalProperties: false
|
|
description:
|
|
This is a clock buffer node for mt6397. However, there are no sub nodes
|
|
or any public document exposed in public.
|
|
|
|
properties:
|
|
compatible:
|
|
const: mediatek,mt6397-clk
|
|
|
|
'#clock-cells':
|
|
const: 1
|
|
|
|
required:
|
|
- compatible
|
|
|
|
leds:
|
|
type: object
|
|
additionalProperties: false
|
|
description: |
|
|
MT6323 LED controller is subfunction provided by MT6323 PMIC, so the LED
|
|
controllers are defined as the subnode of the function node provided by MT6323
|
|
PMIC controller that is being defined as one kind of Muti-Function Device (MFD)
|
|
using shared bus called PMIC wrapper for each subfunction to access remote
|
|
MT6323 PMIC hardware.
|
|
|
|
Each led is represented as a child node of the mediatek,mt6323-led that
|
|
describes the initial behavior for each LED physically and currently only four
|
|
LED child nodes can be supported.
|
|
|
|
properties:
|
|
compatible:
|
|
enum:
|
|
- mediatek,mt6323-led
|
|
- mediatek,mt6331-led
|
|
- mediatek,mt6332-led
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
"#address-cells":
|
|
const: 1
|
|
|
|
"#size-cells":
|
|
const: 0
|
|
|
|
patternProperties:
|
|
"^led@[0-3]$":
|
|
type: object
|
|
$ref: /schemas/leds/common.yaml#
|
|
unevaluatedProperties: false
|
|
|
|
properties:
|
|
reg:
|
|
description:
|
|
LED channel number (0..3)
|
|
minimum: 0
|
|
maximum: 3
|
|
|
|
required:
|
|
- reg
|
|
|
|
required:
|
|
- compatible
|
|
- "#address-cells"
|
|
- "#size-cells"
|
|
|
|
keys:
|
|
type: object
|
|
$ref: /schemas/input/mediatek,pmic-keys.yaml
|
|
unevaluatedProperties: false
|
|
description:
|
|
Power and Home keys.
|
|
|
|
power-controller:
|
|
type: object
|
|
additionalProperties: false
|
|
description:
|
|
The power controller which could be found on PMIC is responsible for
|
|
externally powering off or on the remote MediaTek SoC through the
|
|
circuit BBPU (baseband power up).
|
|
|
|
properties:
|
|
compatible:
|
|
const: mediatek,mt6323-pwrc
|
|
|
|
'#power-domain-cells':
|
|
const: 0
|
|
|
|
pinctrl:
|
|
type: object
|
|
$ref: /schemas/pinctrl/mediatek,mt65xx-pinctrl.yaml
|
|
unevaluatedProperties: false
|
|
description:
|
|
Pin controller
|
|
|
|
required:
|
|
- compatible
|
|
- regulators
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
#include <dt-bindings/leds/common.h>
|
|
|
|
pmic {
|
|
compatible = "mediatek,mt6323";
|
|
interrupt-parent = <&pio>;
|
|
interrupts = <150 IRQ_TYPE_LEVEL_HIGH>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
|
|
leds {
|
|
compatible = "mediatek,mt6323-led";
|
|
#address-cells = <1>;
|
|
#size-cells = <0>;
|
|
};
|
|
|
|
regulators {
|
|
compatible = "mediatek,mt6323-regulator";
|
|
|
|
buck_vproc {
|
|
regulator-name = "vproc";
|
|
regulator-min-microvolt = < 700000>;
|
|
regulator-max-microvolt = <1350000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
buck_vsys {
|
|
regulator-name = "vsys";
|
|
regulator-min-microvolt = <1400000>;
|
|
regulator-max-microvolt = <2987500>;
|
|
regulator-ramp-delay = <25000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
buck_vpa {
|
|
regulator-name = "vpa";
|
|
regulator-min-microvolt = < 500000>;
|
|
regulator-max-microvolt = <3650000>;
|
|
};
|
|
|
|
ldo_vtcxo {
|
|
regulator-name = "vtcxo";
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
regulator-enable-ramp-delay = <90>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldo_vcn28 {
|
|
regulator-name = "vcn28";
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
regulator-enable-ramp-delay = <185>;
|
|
};
|
|
|
|
ldo_vcn33_bt {
|
|
regulator-name = "vcn33_bt";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3600000>;
|
|
regulator-enable-ramp-delay = <185>;
|
|
};
|
|
|
|
ldo_vcn33_wifi {
|
|
regulator-name = "vcn33_wifi";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3600000>;
|
|
regulator-enable-ramp-delay = <185>;
|
|
};
|
|
|
|
ldo_va {
|
|
regulator-name = "va";
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldo_vcama {
|
|
regulator-name = "vcama";
|
|
regulator-min-microvolt = <1500000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
};
|
|
|
|
ldo_vio28 {
|
|
regulator-name = "vio28";
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldo_vusb {
|
|
regulator-name = "vusb";
|
|
regulator-min-microvolt = <3300000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldo_vmc {
|
|
regulator-name = "vmc";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-enable-ramp-delay = <36>;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldo_vmch {
|
|
regulator-name = "vmch";
|
|
regulator-min-microvolt = <3000000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-enable-ramp-delay = <36>;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldo_vemc3v3 {
|
|
regulator-name = "vemc3v3";
|
|
regulator-min-microvolt = <3000000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-enable-ramp-delay = <36>;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldo_vgp1 {
|
|
regulator-name = "vgp1";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
};
|
|
|
|
ldo_vgp2 {
|
|
regulator-name = "vgp2";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <3000000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
};
|
|
|
|
ldo_vgp3 {
|
|
regulator-name = "vgp3";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
};
|
|
|
|
ldo_vcn18 {
|
|
regulator-name = "vcn18";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
};
|
|
|
|
ldo_vsim1 {
|
|
regulator-name = "vsim1";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3000000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
};
|
|
|
|
ldo_vsim2 {
|
|
regulator-name = "vsim2";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <3000000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
};
|
|
|
|
ldo_vrtc {
|
|
regulator-name = "vrtc";
|
|
regulator-min-microvolt = <2800000>;
|
|
regulator-max-microvolt = <2800000>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldo_vcamaf {
|
|
regulator-name = "vcamaf";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
};
|
|
|
|
ldo_vibr {
|
|
regulator-name = "vibr";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-enable-ramp-delay = <36>;
|
|
};
|
|
|
|
ldo_vrf18 {
|
|
regulator-name = "vrf18";
|
|
regulator-min-microvolt = <1825000>;
|
|
regulator-max-microvolt = <1825000>;
|
|
regulator-enable-ramp-delay = <187>;
|
|
};
|
|
|
|
ldo_vm {
|
|
regulator-name = "vm";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldo_vio18 {
|
|
regulator-name = "vio18";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
regulator-always-on;
|
|
regulator-boot-on;
|
|
};
|
|
|
|
ldo_vcamd {
|
|
regulator-name = "vcamd";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
};
|
|
|
|
ldo_vcamio {
|
|
regulator-name = "vcamio";
|
|
regulator-min-microvolt = <1800000>;
|
|
regulator-max-microvolt = <1800000>;
|
|
regulator-enable-ramp-delay = <216>;
|
|
};
|
|
};
|
|
|
|
keys {
|
|
compatible = "mediatek,mt6323-keys";
|
|
mediatek,long-press-mode = <1>;
|
|
power-off-time-sec = <0>;
|
|
|
|
power {
|
|
linux,keycodes = <116>;
|
|
wakeup-source;
|
|
};
|
|
|
|
home {
|
|
linux,keycodes = <114>;
|
|
};
|
|
};
|
|
|
|
power-controller {
|
|
compatible = "mediatek,mt6323-pwrc";
|
|
#power-domain-cells = <0>;
|
|
};
|
|
|
|
rtc {
|
|
compatible = "mediatek,mt6323-rtc";
|
|
};
|
|
};
|
|
|
|
- |
|
|
#include <dt-bindings/input/input.h>
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
|
pmic {
|
|
compatible = "mediatek,mt6358";
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
|
|
audio-codec {
|
|
compatible = "mediatek,mt6358-sound";
|
|
Avdd-supply = <&mt6358_vaud28_reg>;
|
|
mediatek,dmic-mode = <0>;
|
|
};
|
|
|
|
regulators {
|
|
compatible = "mediatek,mt6358-regulator";
|
|
|
|
buck_vdram1 {
|
|
regulator-name = "vdram1";
|
|
regulator-min-microvolt = <500000>;
|
|
regulator-max-microvolt = <2087500>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-enable-ramp-delay = <0>;
|
|
regulator-always-on;
|
|
regulator-allowed-modes = <0 1>;
|
|
};
|
|
|
|
// ...
|
|
|
|
ldo_vsim2 {
|
|
regulator-name = "vsim2";
|
|
regulator-min-microvolt = <1700000>;
|
|
regulator-max-microvolt = <3100000>;
|
|
regulator-enable-ramp-delay = <540>;
|
|
};
|
|
};
|
|
|
|
rtc {
|
|
compatible = "mediatek,mt6358-rtc";
|
|
};
|
|
|
|
keys {
|
|
compatible = "mediatek,mt6358-keys";
|
|
|
|
power {
|
|
linux,keycodes = <KEY_POWER>;
|
|
wakeup-source;
|
|
};
|
|
|
|
home {
|
|
linux,keycodes = <KEY_HOME>;
|
|
};
|
|
};
|
|
};
|
|
|
|
- |
|
|
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
|
|
|
pmic {
|
|
compatible = "mediatek,mt6397";
|
|
|
|
interrupt-parent = <&pio>;
|
|
interrupts-extended = <&pio 222 IRQ_TYPE_LEVEL_HIGH>;
|
|
interrupt-controller;
|
|
#interrupt-cells = <2>;
|
|
|
|
audio-codec {
|
|
compatible = "mediatek,mt6397-codec";
|
|
};
|
|
|
|
clocks {
|
|
compatible = "mediatek,mt6397-clk";
|
|
#clock-cells = <1>;
|
|
};
|
|
|
|
pinctrl {
|
|
compatible = "mediatek,mt6397-pinctrl";
|
|
gpio-controller;
|
|
#gpio-cells = <2>;
|
|
};
|
|
|
|
regulators {
|
|
compatible = "mediatek,mt6397-regulator";
|
|
|
|
buck_vpca15 {
|
|
regulator-name = "vpca15";
|
|
regulator-min-microvolt = < 850000>;
|
|
regulator-max-microvolt = <1350000>;
|
|
regulator-ramp-delay = <12500>;
|
|
regulator-enable-ramp-delay = <200>;
|
|
};
|
|
|
|
// ...
|
|
|
|
ldo_vibr {
|
|
regulator-name = "vibr";
|
|
regulator-min-microvolt = <1200000>;
|
|
regulator-max-microvolt = <3300000>;
|
|
regulator-enable-ramp-delay = <218>;
|
|
};
|
|
};
|
|
|
|
rtc {
|
|
compatible = "mediatek,mt6397-rtc";
|
|
};
|
|
};
|