On 18/09/2024 14:49:55+0800, Macpaul Lin wrote:
> Convert the mfd: mediatek: mt6397 binding to DT schema format.
>
> MT6323, MT6358, and MT6397 are PMIC devices with multiple function
> subdevices. They share a common PMIC design but have variations in
> subdevice combinations.
>
> Key updates in this conversion:
>
> 1. RTC:
> - Convert rtc-mt6397.txt and merge into parent MT6397 PMIC DT schema.
>
> 2. Regulators:
> - Align to generic name "regulators".
> - Update references from .txt to .yaml for mt6323, mt6358, and mt6397
> regulators.
> - Simplify regulator name labels in device tree examples.
>
> 3. Audio Codec:
> - Convert sound/mt6358.txt and merge into parent MT6397 PMIC DT schema.
> - Align to generic name "audio-codec" for codec and sound subdevices.
> - Add "mediatek,dmic-mode" and "Avdd-supply" properties.
>
> 4. Clocks:
> - Align to generic name "clocks" for clockbuffer subdevices.
>
> 5. LEDs:
> - Convert leds-mt6323.txt and merge into parent MT6397 PMIC DT schema.
> - Update LED binding.
>
> 6. Keys:
> - Add detailed descriptions for power and home keys.
> - Add compatible: mediatek,mt6358-keys.
>
> 7. Power Controller:
> - Convert mt6323-poweroff.txt and merge into parent MT6397 PMIC DT
> schema.
> - Add #power-domain-cells property to fix dt-binding check error.
> - Clarify "BBPU" as "Baseband power up".
>
> 8. Pinctrl:
> - Align to generic name "pinctrl" instead of "pin-controller".
>
> 9. Compatible:
> - Drop "mediatek,mt6357" since there is a separated DT Schema
> for PMIC MT6357.
>
> 10. Examples:
> - MT6323: Retain complete examples for this PMIC.
> - MT6358 and MT6397: simplify settings in regulators.
> - Preserve "audio-codec", "clocks", "pinctrl", "rtc", and "keys"
> sections as they contain typical settings for different PMICs.
>
> Additional updates:
> - MAINTAINERS: Add co-maintainers and reference to
> mfd/mediatek,mt6397.yaml for LED and power-controller drivers.
> - input/mediatek,pmic-keys.yaml: Update reference to
> mfd/mediatek,mt6397.yaml.
>
> Signed-off-by: Sen Chu <sen.chu@xxxxxxxxxxxx>
> Signed-off-by: Macpaul Lin <macpaul.lin@xxxxxxxxxxxx>
> ---
> .../bindings/input/mediatek,pmic-keys.yaml | 2 +-
> .../devicetree/bindings/leds/leds-mt6323.txt | 63 --
> .../bindings/mfd/mediatek,mt6397.yaml | 601 ++++++++++++++++++
> .../devicetree/bindings/mfd/mt6397.txt | 110 ----
> .../bindings/power/reset/mt6323-poweroff.txt | 20 -
> .../devicetree/bindings/rtc/rtc-mt6397.txt | 31 -
> .../devicetree/bindings/sound/mt6358.txt | 26 -
> MAINTAINERS | 8 +-
> 8 files changed, 608 insertions(+), 253 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/leds/leds-mt6323.txt
> create mode 100644 Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml
> delete mode 100644 Documentation/devicetree/bindings/mfd/mt6397.txt
> delete mode 100644 Documentation/devicetree/bindings/power/reset/mt6323-poweroff.txt
> delete mode 100644 Documentation/devicetree/bindings/rtc/rtc-mt6397.txt
> delete mode 100644 Documentation/devicetree/bindings/sound/mt6358.txt
>
> Changes for v1:
> - This patch depends on conversion of mediatek,mt6397-regulator.yaml
> [1] https://lore.kernel.org/lkml/20240807091738.18387-1-macpaul.lin@xxxxxxxxxxxx/T/
>
> Changes for v2:
> - This patch has been made base on linux-next/master git repo.
> - Keep the parent and child relationship with mediatek,pwrap in description.
> [2] https://lore.kernel.org/all/20240826-slurp-earphone-0d5173923ae8@spud/
> - Keep the $ref for regulators since dt_binding_check didn't report any issue
> based on linux-next/master repo.
> - Fix description of mt6397/mt6323 devices, use "power management chip"
> instead of "multifunction device"
> - Drop unnecessary comments or description according to the review.
> - Convert sub-modules to DT Schema:
> - RTC, LEDs, power-controllers, regulators
> - Drop duplicate sub node name and description for sub-modules
> - RTC, Keys
> - examples:
> - drop parent pwrap node
> - Add examples from mediatek,mt6323-regulator.yaml
> - Add examples from mediatek,mt6358-regulator.yaml
> - Add examples from mediatek,mt6397-regulator.yaml
> - Complete the examples as could as possible.
>
> Changes for v3:
> - Rebased on linux-next/master git repo near next-20240906.
> - Revise commit message.
> - Regulators:
> - Use "additionalProperties: true" and add "contains" for matching
> $ref DT bindings.
> - Simplify regulator name labels in device tree examples.
> - LEDs:
> - Use LED bindings.
> - Squash following patches in v2 for removing old text format DT bindings
> into this patch, includes:
> - leds-mt6323.txt, mt6323-poweroff.txt, rtc-mt6397.txt, sound/mt6358.txt.
> - Fix file format of DT schemas, add blank between properties.
> - Fix 'make checkrefdoc' errors, update reference in mediatek,pmic-keys.yaml.
>
> Changes for v4:
> - Remove "mediatek,mt6357" from PMIC's compatible string since there is a
> seperated DT schema for PMIC mt6357.
>
> Changes for v5:
> - Rebase to next-20240913 (linux-next/master).
> - Fix the "title" (device type) of mfd/mediatek,mt6397.yaml to "PMIC".
> - RTC:
> - Drop "start-year"
Maybe, instead of dropping the property, you should add support in the
driver by setting range_min and range_max.
> - Regulators:
> - Add blank lines between description and properties.
> - Drop allOf for the $ref section on property.
> - clocks:
> - Fix no need '|' in descriptoin.
> - Add blank lines between description and properties.
> - Keys:
> - Drop compatible since these enums are already in $ref.
> - pinctrl:
> - Drop compatible since it is already in $ref.
> - examples:
> - Fix indentations for leds and keys.
>
> Changes for v6:
> - Commit message:
> - Add note for simplifying examples of mt6358 and mt6397.
> - examples:
> - Fix indentations for mt6323-keys.
> - MT6358 and MT6397: simplify settings in regulators.
> - Preserve "audio-codec", "clocks", "pinctrl", "rtc", and "keys"
> sections as they contain typical settings for different PMICs.
>
> diff --git a/Documentation/devicetree/bindings/input/mediatek,pmic-keys.yaml b/Documentation/devicetree/bindings/input/mediatek,pmic-keys.yaml
> index 70567d9..466566a 100644
> --- a/Documentation/devicetree/bindings/input/mediatek,pmic-keys.yaml
> +++ b/Documentation/devicetree/bindings/input/mediatek,pmic-keys.yaml
> @@ -19,7 +19,7 @@ description: |
> by the PMIC that is defined as a Multi-Function Device (MFD).
>
> For MediaTek MT6323/MT6397 PMIC bindings see
> - Documentation/devicetree/bindings/mfd/mt6397.txt
> + Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml
>
> properties:
> compatible:
> diff --git a/Documentation/devicetree/bindings/leds/leds-mt6323.txt b/Documentation/devicetree/bindings/leds/leds-mt6323.txt
> deleted file mode 100644
> index 052dccb8..0000000
> --- a/Documentation/devicetree/bindings/leds/leds-mt6323.txt
> +++ /dev/null
> @@ -1,63 +0,0 @@
> -Device Tree Bindings for LED support on MT6323 PMIC
> -
> -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.
> -
> -For MT6323 MFD bindings see:
> -Documentation/devicetree/bindings/mfd/mt6397.txt
> -For MediaTek PMIC wrapper bindings see:
> -Documentation/devicetree/bindings/soc/mediatek/mediatek,pwrap.yaml
> -
> -Required properties:
> -- compatible : Must be one of
> - - "mediatek,mt6323-led"
> - - "mediatek,mt6331-led"
> - - "mediatek,mt6332-led"
> -- address-cells : Must be 1
> -- size-cells : Must be 0
> -
> -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.
> -
> -Required properties for the LED child node:
> -- reg : LED channel number (0..3)
> -
> -Optional properties for the LED child node:
> -- label : See Documentation/devicetree/bindings/leds/common.txt
> -- linux,default-trigger : See Documentation/devicetree/bindings/leds/common.txt
> -- default-state: See Documentation/devicetree/bindings/leds/common.txt
> -
> -Example:
> -
> - mt6323: pmic {
> - compatible = "mediatek,mt6323";
> -
> - ...
> -
> - mt6323led: leds {
> - compatible = "mediatek,mt6323-led";
> - #address-cells = <1>;
> - #size-cells = <0>;
> -
> - led@0 {
> - reg = <0>;
> - label = "LED0";
> - linux,default-trigger = "timer";
> - default-state = "on";
> - };
> - led@1 {
> - reg = <1>;
> - label = "LED1";
> - default-state = "off";
> - };
> - led@2 {
> - reg = <2>;
> - label = "LED2";
> - default-state = "on";
> - };
> - };
> - };
> diff --git a/Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml b/Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml
> new file mode 100644
> index 0000000..953358b
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml
> @@ -0,0 +1,601 @@
> +# 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@xxxxxxxxxxxx>
> + - Macpaul Lin <macpaul.lin@xxxxxxxxxxxx>
> +
> +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
> + - 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
> +
> + 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,mt6397-regulator
> + - items:
> + - enum:
> + - mediatek,mt6366-regulator
> + - const: mediatek,mt6358-regulator
> +
> + required:
> + - compatible
> +
> + audio-codec:
> + type: object
> + additionalProperties: false
> + description:
> + Audio codec support with MT6397 and MT6358.
> +
> + properties:
> + compatible:
> + oneOf:
> + - enum:
> + - mediatek,mt6397-codec
> + - mediatek,mt6358-sound
> + - items:
> + - enum:
> + - mediatek,mt6366-sound
> + - const: mediatek,mt6358-sound
> +
> + mediatek,dmic-mode:
> + description: |
> + Indicates how many data pins are used to transmit two channels of PDM
> + signal.
> + 0 - two wires;
> + 1 - one wire;
> + Default value is 0.
> + enum: [0, 1]
> + default: 0
> +
> + Avdd-supply:
> + description: Power source of AVDD.
> +
> + 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";
> + };
> + };
> diff --git a/Documentation/devicetree/bindings/mfd/mt6397.txt b/Documentation/devicetree/bindings/mfd/mt6397.txt
> deleted file mode 100644
> index 10540aa..0000000
> --- a/Documentation/devicetree/bindings/mfd/mt6397.txt
> +++ /dev/null
> @@ -1,110 +0,0 @@
> -MediaTek MT6397/MT6323 Multifunction Device Driver
> -
> -MT6397/MT6323 is a multifunction device with the following sub modules:
> -- Regulator
> -- RTC
> -- 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 MFD is a child device of pwrap.
> -See the following for pwarp node definitions:
> -../soc/mediatek/mediatek,pwrap.yaml
> -
> -This document describes the binding for MFD device and its sub module.
> -
> -Required properties:
> -compatible:
> - "mediatek,mt6323" for PMIC MT6323
> - "mediatek,mt6331" for PMIC MT6331 and MT6332
> - "mediatek,mt6357" for PMIC MT6357
> - "mediatek,mt6358" for PMIC MT6358
> - "mediatek,mt6359" for PMIC MT6359
> - "mediatek,mt6366", "mediatek,mt6358" for PMIC MT6366
> - "mediatek,mt6397" for PMIC MT6397
> -
> -Optional subnodes:
> -
> -- rtc
> - Required properties: Should be one of follows
> - - compatible: "mediatek,mt6323-rtc"
> - - compatible: "mediatek,mt6331-rtc"
> - - compatible: "mediatek,mt6358-rtc"
> - - compatible: "mediatek,mt6397-rtc"
> - For details, see ../rtc/rtc-mt6397.txt
> -- regulators
> - Required properties:
> - - compatible: "mediatek,mt6323-regulator"
> - see ../regulator/mt6323-regulator.txt
> - - compatible: "mediatek,mt6358-regulator"
> - - compatible: "mediatek,mt6366-regulator", "mediatek-mt6358-regulator"
> - see ../regulator/mt6358-regulator.txt
> - - compatible: "mediatek,mt6397-regulator"
> - see ../regulator/mt6397-regulator.txt
> -- codec
> - Required properties:
> - - compatible: "mediatek,mt6397-codec" or "mediatek,mt6358-sound"
> -- clk
> - Required properties:
> - - compatible: "mediatek,mt6397-clk"
> -- led
> - Required properties:
> - - compatible: "mediatek,mt6323-led"
> - see ../leds/leds-mt6323.txt
> -
> -- keys
> - Required properties: Should be one of the following
> - - compatible: "mediatek,mt6323-keys"
> - - compatible: "mediatek,mt6331-keys"
> - - compatible: "mediatek,mt6397-keys"
> - see ../input/mtk-pmic-keys.txt
> -
> -- power-controller
> - Required properties:
> - - compatible: "mediatek,mt6323-pwrc"
> - For details, see ../power/reset/mt6323-poweroff.txt
> -
> -- pin-controller
> - Required properties:
> - - compatible: "mediatek,mt6397-pinctrl"
> - For details, see ../pinctrl/pinctrl-mt65xx.txt
> -
> -Example:
> - pwrap: pwrap@1000f000 {
> - compatible = "mediatek,mt8135-pwrap";
> -
> - ...
> -
> - pmic {
> - compatible = "mediatek,mt6397";
> -
> - codec: mt6397codec {
> - compatible = "mediatek,mt6397-codec";
> - };
> -
> - regulators {
> - compatible = "mediatek,mt6397-regulator";
> -
> - mt6397_vpca15_reg: buck_vpca15 {
> - regulator-compatible = "buck_vpca15";
> - regulator-name = "vpca15";
> - regulator-min-microvolt = <850000>;
> - regulator-max-microvolt = <1400000>;
> - regulator-ramp-delay = <12500>;
> - regulator-always-on;
> - };
> -
> - mt6397_vgp4_reg: ldo_vgp4 {
> - regulator-compatible = "ldo_vgp4";
> - regulator-name = "vgp4";
> - regulator-min-microvolt = <1200000>;
> - regulator-max-microvolt = <3300000>;
> - regulator-enable-ramp-delay = <218>;
> - };
> - };
> - };
> - };
> diff --git a/Documentation/devicetree/bindings/power/reset/mt6323-poweroff.txt b/Documentation/devicetree/bindings/power/reset/mt6323-poweroff.txt
> deleted file mode 100644
> index 933f0c4..0000000
> --- a/Documentation/devicetree/bindings/power/reset/mt6323-poweroff.txt
> +++ /dev/null
> @@ -1,20 +0,0 @@
> -Device Tree Bindings for Power Controller on MediaTek PMIC
> -
> -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.
> -
> -Required properties:
> -- compatible: Should be one of follows
> - "mediatek,mt6323-pwrc": for MT6323 PMIC
> -
> -Example:
> -
> - pmic {
> - compatible = "mediatek,mt6323";
> -
> - ...
> -
> - power-controller {
> - compatible = "mediatek,mt6323-pwrc";
> - };
> - }
> diff --git a/Documentation/devicetree/bindings/rtc/rtc-mt6397.txt b/Documentation/devicetree/bindings/rtc/rtc-mt6397.txt
> deleted file mode 100644
> index 7212076..0000000
> --- a/Documentation/devicetree/bindings/rtc/rtc-mt6397.txt
> +++ /dev/null
> @@ -1,31 +0,0 @@
> -Device-Tree bindings for MediaTek PMIC based RTC
> -
> -MediaTek PMIC based RTC is an independent function of MediaTek PMIC that works
> -as a type of multi-function device (MFD). The RTC can be configured and set up
> -with PMIC wrapper bus which is a common resource shared with the other
> -functions found on the same PMIC.
> -
> -For MediaTek PMIC MFD bindings, see:
> -../mfd/mt6397.txt
> -
> -For MediaTek PMIC wrapper bus bindings, see:
> -../soc/mediatek/pwrap.txt
> -
> -Required properties:
> -- compatible: Should be one of follows
> - "mediatek,mt6323-rtc": for MT6323 PMIC
> - "mediatek,mt6358-rtc": for MT6358 PMIC
> - "mediatek,mt6366-rtc", "mediatek,mt6358-rtc": for MT6366 PMIC
> - "mediatek,mt6397-rtc": for MT6397 PMIC
> -
> -Example:
> -
> - pmic {
> - compatible = "mediatek,mt6323";
> -
> - ...
> -
> - rtc {
> - compatible = "mediatek,mt6323-rtc";
> - };
> - };
> diff --git a/Documentation/devicetree/bindings/sound/mt6358.txt b/Documentation/devicetree/bindings/sound/mt6358.txt
> deleted file mode 100644
> index fbe9e55..0000000
> --- a/Documentation/devicetree/bindings/sound/mt6358.txt
> +++ /dev/null
> @@ -1,26 +0,0 @@
> -Mediatek MT6358 Audio Codec
> -
> -The communication between MT6358 and SoC is through Mediatek PMIC wrapper.
> -For more detail, please visit Mediatek PMIC wrapper documentation.
> -
> -Must be a child node of PMIC wrapper.
> -
> -Required properties:
> -
> -- compatible - "string" - One of:
> - "mediatek,mt6358-sound"
> - "mediatek,mt6366-sound"
> -- Avdd-supply : power source of AVDD
> -
> -Optional properties:
> -- mediatek,dmic-mode : Indicates how many data pins are used to transmit two
> - channels of PDM signal. 0 means two wires, 1 means one wire. Default
> - value is 0.
> -
> -Example:
> -
> -mt6358_snd {
> - compatible = "mediatek,mt6358-sound";
> - Avdd-supply = <&mt6358_vaud28_reg>;
> - mediatek,dmic-mode = <0>;
> -};
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 2cdd7ca..e97b5ae 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -14418,10 +14418,12 @@ F: Documentation/devicetree/bindings/net/bluetooth/mediatek,mt7921s-bluetooth.ya
> F: drivers/bluetooth/btmtkuart.c
>
> MEDIATEK BOARD LEVEL SHUTDOWN DRIVERS
> +M: Sen Chu <sen.chu@xxxxxxxxxxxx>
> M: Sean Wang <sean.wang@xxxxxxxxxxxx>
> +M: Macpaul Lin <macpaul.lin@xxxxxxxxxxxx>
> L: linux-pm@xxxxxxxxxxxxxxx
> S: Maintained
> -F: Documentation/devicetree/bindings/power/reset/mt6323-poweroff.txt
> +F: Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml
> F: drivers/power/reset/mt6323-poweroff.c
>
> MEDIATEK CIR DRIVER
> @@ -14582,9 +14584,11 @@ F: Documentation/devicetree/bindings/mtd/mediatek,mtk-nfc.yaml
> F: drivers/mtd/nand/raw/mtk_*
>
> MEDIATEK PMIC LED DRIVER
> +M: Sen Chu <sen.chu@xxxxxxxxxxxx>
> M: Sean Wang <sean.wang@xxxxxxxxxxxx>
> +M: Macpaul Lin <macpaul.lin@xxxxxxxxxxxx>
> S: Maintained
> -F: Documentation/devicetree/bindings/leds/leds-mt6323.txt
> +F: Documentation/devicetree/bindings/mfd/mediatek,mt6397.yaml
> F: drivers/leds/leds-mt6323.c
>
> MEDIATEK RANDOM NUMBER GENERATOR SUPPORT
> --
> 2.45.2
>
>
--
Alexandre Belloni, co-owner and COO, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com
[Index of Archives]
[Pulseaudio]
[Linux Audio Users]
[ALSA Devel]
[Fedora Desktop]
[Fedora SELinux]
[Big List of Linux Books]
[Yosemite News]
[KDE Users]