Message ID | 20240918064955.6518-1-macpaul.lin@mediatek.com |
---|---|
State | Superseded |
Headers | show |
Series | [v6,1/2] regulator: dt-bindings: mt6323: Convert to DT schema | expand |
On 18/09/2024 13:51:51+0200, Alexandre Belloni wrote: > > 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. Looking at this even more, the driver can probably be simplified by setting start_year in probe and dropping RTC_MIN_YEAR_OFFSET. > > > - 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@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 > > + - 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@mediatek.com> > > M: Sean Wang <sean.wang@mediatek.com> > > +M: Macpaul Lin <macpaul.lin@mediatek.com> > > L: linux-pm@vger.kernel.org > > 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@mediatek.com> > > M: Sean Wang <sean.wang@mediatek.com> > > +M: Macpaul Lin <macpaul.lin@mediatek.com> > > 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 >
Il 18/09/24 08:49, Macpaul Lin ha scritto: > Convert the MT6323 regulator binding from the old text-based format to > the new DT schema style. The property "regulator-name" has been added > as required property to reflect current usage in mt6323.dtsi. > > Examples have been streamlined and relocated to the parent schema file: > mfd/mediatek,mt6397.yaml. > > Update maintainer and submitter information with new entries from MediaTek. > > The reference document cited in "mediatek,mt7530.yaml" has been updated > to point to this new DT schema file > > Signed-off-by: Sen Chu <sen.chu@mediatek.com> > Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com> > Reviewed-by: Krzysztof Kozlowski <krzk@kernel.org> Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
On 9/20/24 21:37, Alexandre Belloni wrote: [snip] >> > > > > - RTC: >> > > > > - Drop "start-year" >> > > > [snip] >> > >> >> Alexandre, I definitely agree with you on the fact that the MTK PMIC RTC driver >> can (and needs to) be improved, and that it can make use of some nice cleanup... >> >> ... but! >> >> This series performs a conversion to schema, and the previous txt file didn't >> say anything about the start-year property - which was not mandatory to support >> at that time (nor now, afaik?), so adding support for that is out of scope for >> this series. > > It is mandatory now. I agree this can be done in a subsequent series. > Thanks you all for helping with the review and kindly understanding the situation. I see that Angelo has already submitted the RTC patch set. I'll check it with the internal driver owner. It seems okay with a quick glance. >> >> Eventually, that can come as a series on top, adding support for that in the >> binding (and, of course, in the driver). >> >> I should be able to tackle that... most probably next week - but still, the >> improvements would come as a series on top of this one. >> >> Cheers, >> Angelo > Thanks Macpaul Lin
diff --git a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml index ea979bc..413db38 100644 --- a/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml +++ b/Documentation/devicetree/bindings/net/dsa/mediatek,mt7530.yaml @@ -129,8 +129,8 @@ properties: io-supply: description: | Phandle to the regulator node necessary for the I/O power. - See Documentation/devicetree/bindings/regulator/mt6323-regulator.txt for - details for the regulator setup on these boards. + See Documentation/devicetree/bindings/regulator/mediatek,mt6323-regulator.yaml + for details for the regulator setup on these boards. mediatek,mcm: type: boolean diff --git a/Documentation/devicetree/bindings/regulator/mediatek,mt6323-regulator.yaml b/Documentation/devicetree/bindings/regulator/mediatek,mt6323-regulator.yaml new file mode 100644 index 0000000..9bc9aa9a --- /dev/null +++ b/Documentation/devicetree/bindings/regulator/mediatek,mt6323-regulator.yaml @@ -0,0 +1,119 @@ +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/regulator/mediatek,mt6323-regulator.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: MediaTek MT6323 Regulator + +maintainers: + - John Crispin <john@phrozen.org> + - Sen Chu <sen.chu@mediatek.com> + - Macpaul Lin <macpaul.lin@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: + items: + - const: mediatek,mt6323-regulator + +patternProperties: + "^buck_v(pa|proc|sys)$": + description: Buck regulators + type: object + $ref: regulator.yaml# + + properties: + regulator-allowed-modes: false + + unevaluatedProperties: false + + required: + - regulator-name + + "^ldo_v(camio|cn18)$": + description: LDO with fixed 1.8V output and 0~100/10mV tuning + type: object + $ref: regulator.yaml# + + properties: + regulator-allowed-modes: false + + unevaluatedProperties: false + + required: + - regulator-name + + "^ldo_v((io|rf)18)$": + description: LDOs with fixed 1.825V output and 0~100/10mV tuning + type: object + $ref: regulator.yaml# + + properties: + regulator-allowed-modes: false + + unevaluatedProperties: false + + required: + - regulator-name + + "^ldo_v(a|rtc|tcxo|(cn|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 + + required: + - regulator-name + + "^ldo_v(usb)$": + description: LDOs with fixed 3.3V output and 0~100/10mV tuning + type: object + $ref: regulator.yaml# + + properties: + regulator-allowed-modes: false + + unevaluatedProperties: false + + required: + - regulator-name + + "^ldo_v(cn33_(bt|wifi))$": + description: LDOs with variable 3.3V output and 0~100/10mV tuning + type: object + $ref: regulator.yaml# + + properties: + regulator-allowed-modes: false + + unevaluatedProperties: false + + required: + - regulator-name + + "^ldo_v(cama|camaf|camd|emc3v3|gp[123]|ibr|m|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: + - regulator-name + +required: + - compatible + +additionalProperties: false diff --git a/Documentation/devicetree/bindings/regulator/mt6323-regulator.txt b/Documentation/devicetree/bindings/regulator/mt6323-regulator.txt deleted file mode 100644 index a48749d..0000000 --- a/Documentation/devicetree/bindings/regulator/mt6323-regulator.txt +++ /dev/null @@ -1,237 +0,0 @@ -Mediatek MT6323 Regulator - -All voltage regulators are defined as subnodes of the regulators node. A list -of regulators provided by this controller are defined as subnodes of the -PMIC's node. Each regulator is named according to its regulator type, -buck_<name> and ldo_<name>. The definition for each of these nodes is defined -using the standard binding for regulators at -Documentation/devicetree/bindings/regulator/regulator.txt. - -The valid names for regulators are:: -BUCK: - buck_vproc, buck_vsys, buck_vpa -LDO: - ldo_vtcxo, ldo_vcn28, ldo_vcn33_bt, ldo_vcn33_wifi, ldo_va, ldo_vcama, - ldo_vio28, ldo_vusb, ldo_vmc, ldo_vmch, ldo_vemc3v3, ldo_vgp1, ldo_vgp2, - ldo_vgp3, ldo_vcn18, ldo_vsim1, ldo_vsim2, ldo_vrtc, ldo_vcamaf, ldo_vibr, - ldo_vrf18, ldo_vm, ldo_vio18, ldo_vcamd, ldo_vcamio - -Example: - - pmic: mt6323 { - mt6323regulator: regulators { - mt6323_vproc_reg: buck_vproc{ - regulator-name = "vproc"; - regulator-min-microvolt = < 700000>; - regulator-max-microvolt = <1350000>; - regulator-ramp-delay = <12500>; - regulator-always-on; - regulator-boot-on; - }; - - mt6323_vsys_reg: buck_vsys{ - regulator-name = "vsys"; - regulator-min-microvolt = <1400000>; - regulator-max-microvolt = <2987500>; - regulator-ramp-delay = <25000>; - regulator-always-on; - regulator-boot-on; - }; - - mt6323_vpa_reg: buck_vpa{ - regulator-name = "vpa"; - regulator-min-microvolt = < 500000>; - regulator-max-microvolt = <3650000>; - }; - - mt6323_vtcxo_reg: ldo_vtcxo{ - regulator-name = "vtcxo"; - regulator-min-microvolt = <2800000>; - regulator-max-microvolt = <2800000>; - regulator-enable-ramp-delay = <90>; - regulator-always-on; - regulator-boot-on; - }; - - mt6323_vcn28_reg: ldo_vcn28{ - regulator-name = "vcn28"; - regulator-min-microvolt = <2800000>; - regulator-max-microvolt = <2800000>; - regulator-enable-ramp-delay = <185>; - }; - - mt6323_vcn33_bt_reg: ldo_vcn33_bt{ - regulator-name = "vcn33_bt"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3600000>; - regulator-enable-ramp-delay = <185>; - }; - - mt6323_vcn33_wifi_reg: ldo_vcn33_wifi{ - regulator-name = "vcn33_wifi"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3600000>; - regulator-enable-ramp-delay = <185>; - }; - - mt6323_va_reg: ldo_va{ - regulator-name = "va"; - regulator-min-microvolt = <2800000>; - regulator-max-microvolt = <2800000>; - regulator-enable-ramp-delay = <216>; - regulator-always-on; - regulator-boot-on; - }; - - mt6323_vcama_reg: ldo_vcama{ - regulator-name = "vcama"; - regulator-min-microvolt = <1500000>; - regulator-max-microvolt = <2800000>; - regulator-enable-ramp-delay = <216>; - }; - - mt6323_vio28_reg: ldo_vio28{ - regulator-name = "vio28"; - regulator-min-microvolt = <2800000>; - regulator-max-microvolt = <2800000>; - regulator-enable-ramp-delay = <216>; - regulator-always-on; - regulator-boot-on; - }; - - mt6323_vusb_reg: ldo_vusb{ - regulator-name = "vusb"; - regulator-min-microvolt = <3300000>; - regulator-max-microvolt = <3300000>; - regulator-enable-ramp-delay = <216>; - regulator-boot-on; - }; - - mt6323_vmc_reg: ldo_vmc{ - regulator-name = "vmc"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3300000>; - regulator-enable-ramp-delay = <36>; - regulator-boot-on; - }; - - mt6323_vmch_reg: ldo_vmch{ - regulator-name = "vmch"; - regulator-min-microvolt = <3000000>; - regulator-max-microvolt = <3300000>; - regulator-enable-ramp-delay = <36>; - regulator-boot-on; - }; - - mt6323_vemc3v3_reg: ldo_vemc3v3{ - regulator-name = "vemc3v3"; - regulator-min-microvolt = <3000000>; - regulator-max-microvolt = <3300000>; - regulator-enable-ramp-delay = <36>; - regulator-boot-on; - }; - - mt6323_vgp1_reg: ldo_vgp1{ - regulator-name = "vgp1"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <3300000>; - regulator-enable-ramp-delay = <216>; - }; - - mt6323_vgp2_reg: ldo_vgp2{ - regulator-name = "vgp2"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <3000000>; - regulator-enable-ramp-delay = <216>; - }; - - mt6323_vgp3_reg: ldo_vgp3{ - regulator-name = "vgp3"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1800000>; - regulator-enable-ramp-delay = <216>; - }; - - mt6323_vcn18_reg: ldo_vcn18{ - regulator-name = "vcn18"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-enable-ramp-delay = <216>; - }; - - mt6323_vsim1_reg: ldo_vsim1{ - regulator-name = "vsim1"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3000000>; - regulator-enable-ramp-delay = <216>; - }; - - mt6323_vsim2_reg: ldo_vsim2{ - regulator-name = "vsim2"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <3000000>; - regulator-enable-ramp-delay = <216>; - }; - - mt6323_vrtc_reg: ldo_vrtc{ - regulator-name = "vrtc"; - regulator-min-microvolt = <2800000>; - regulator-max-microvolt = <2800000>; - regulator-always-on; - regulator-boot-on; - }; - - mt6323_vcamaf_reg: ldo_vcamaf{ - regulator-name = "vcamaf"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <3300000>; - regulator-enable-ramp-delay = <216>; - }; - - mt6323_vibr_reg: ldo_vibr{ - regulator-name = "vibr"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <3300000>; - regulator-enable-ramp-delay = <36>; - }; - - mt6323_vrf18_reg: ldo_vrf18{ - regulator-name = "vrf18"; - regulator-min-microvolt = <1825000>; - regulator-max-microvolt = <1825000>; - regulator-enable-ramp-delay = <187>; - }; - - mt6323_vm_reg: ldo_vm{ - regulator-name = "vm"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1800000>; - regulator-enable-ramp-delay = <216>; - regulator-always-on; - regulator-boot-on; - }; - - mt6323_vio18_reg: ldo_vio18{ - regulator-name = "vio18"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-enable-ramp-delay = <216>; - regulator-always-on; - regulator-boot-on; - }; - - mt6323_vcamd_reg: ldo_vcamd{ - regulator-name = "vcamd"; - regulator-min-microvolt = <1200000>; - regulator-max-microvolt = <1800000>; - regulator-enable-ramp-delay = <216>; - }; - - mt6323_vcamio_reg: ldo_vcamio{ - regulator-name = "vcamio"; - regulator-min-microvolt = <1800000>; - regulator-max-microvolt = <1800000>; - regulator-enable-ramp-delay = <216>; - }; - }; - };