diff mbox series

[v6,1/2] regulator: dt-bindings: mt6323: Convert to DT schema

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

Commit Message

Macpaul Lin Sept. 18, 2024, 6:49 a.m. UTC
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>
---
 .../bindings/net/dsa/mediatek,mt7530.yaml     |   4 +-
 .../regulator/mediatek,mt6323-regulator.yaml  | 119 +++++++++
 .../bindings/regulator/mt6323-regulator.txt   | 237 ------------------
 3 files changed, 121 insertions(+), 239 deletions(-)
 create mode 100644 Documentation/devicetree/bindings/regulator/mediatek,mt6323-regulator.yaml
 delete mode 100644 Documentation/devicetree/bindings/regulator/mt6323-regulator.txt

Changes for v1 and v2:
 - This is the first version of converting mt6323-regulator.
   This is because converting mt6323-regulator together
   with mfd/mediatek,mt6397.yaml, so we've create a patch set
   instead of single patch for each skydives.
 - This patch has been made base on linux-next/master git repo.

Changes for v3:
 - Rebased on linux-next/master git repo near next-20240906.
 - Added 'regulator-name' to 'requried' property to reflect current usage.
 - replace ^(buck_)? and ^(ldo_)? to ^buck_ and ^ldo_ prefix.
 - Update file name of 'mediatek,mt6323-regulator.yaml' in
   'mediatek,mt7530.yaml'

Changes for v4:
 - No change.

Changes for v5:
 - Add "Reviewed-by" in commit message. Thanks for the review!
 - Remove a blank line at EOF whcih causes whitespace warning
   when 'git am' the patch.

Changes for v6:
 - No change.

Comments

AngeloGioacchino Del Regno Sept. 20, 2024, 7:31 a.m. UTC | #1
Il 18/09/24 16:18, Macpaul Lin ha scritto:
> 
> On 9/18/24 19:56, Alexandre Belloni wrote:
>>
>> 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.
> 
> Thank you for pointing out where and how the driver should be changed.
> However, I'm wondering if this should be a fix with a separated
> patchset (bindings and the driver)? The board or SoC's device trees
> should be reviewed as well. I'll need to get someone's help (permission) inside 
> MediaTek to check those dts and construct the patch for RTC driver.
> That will take sometime.
> 

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.

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
Mark Brown Sept. 20, 2024, 12:08 p.m. UTC | #2
On Wed, Sep 18, 2024 at 02:49:54PM +0800, Macpaul Lin wrote:
> 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.

Acked-by: Mark Brown <broonie@kernel.org>
AngeloGioacchino Del Regno Sept. 23, 2024, 9:53 a.m. UTC | #3
Il 18/09/24 08:49, Macpaul Lin ha scritto:
> 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@mediatek.com>
> Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>

Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Macpaul Lin Sept. 23, 2024, 10:43 a.m. UTC | #4
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
Krzysztof Kozlowski Sept. 27, 2024, 9:44 a.m. UTC | #5
On 20/09/2024 15:07, Krzysztof Kozlowski wrote:
> On 18/09/2024 08:49, 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:
> 
> 
> Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>

Unreviewed. This is incomplete.

Do not send incorrect patches and then followups for them. Just fix the
incorrect patch before it gets applied.

Best regards,
Krzysztof
Krzysztof Kozlowski Sept. 27, 2024, 9:45 a.m. UTC | #6
On 18/09/2024 08:49, 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@mediatek.com>
> Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>

NAK

Follow up patch pointed out this is incorrect. I don't understand this
concept of sending knowingly incorrect code, so please sort it out at v7.

Best regards,
Krzysztof
Macpaul Lin Sept. 27, 2024, 10:41 a.m. UTC | #7
On 9/27/24 17:45, Krzysztof Kozlowski wrote:
> 	
> 
> External email : Please do not click links or open attachments until you 
> have verified the sender or the content.
> 
> On 18/09/2024 08:49, 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@mediatek.com>
>> Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
> 
> NAK
> 
> Follow up patch pointed out this is incorrect. I don't understand this
> concept of sending knowingly incorrect code, so please sort it out at v7.
> 
> Best regards,
> Krzysztof
> 

Sorry I didn't know mt6359-codec and mt6358-sound are similar device
until Sept 26 (just yesterday) when I was reviewing the DT
bindings. Until I've found the previous DT Schema of mt6359-codec 
incorrect.
See [1] 
https://lore.kernel.org/linux-arm-kernel/20240926092519.6556-3-macpaul.lin@mediatek.com/T/
and [2] 
https://lore.kernel.org/all/20240926092519.6556-2-macpaul.lin@mediatek.com/

And.. I don't understand, the origin this patch v6 should be a text file
conversion, shouldn't we keep the origin content just a conversion and
trying not to broken other relate modules?

Please help to indicates what is a better approach here:

Should I merge the properties of mt6359-codec, mt6358-sound, and 
mt6397-codec
together and put them all into to mt6359.yaml and redo the converting of 
mfd/medaitek,mt6397.yaml?

That will be much simpler for the audio-codec node for mediatek,mt6397.yaml.
However there will be a little mismatch from the origin text file.

Thanks
Macpaul Lin
Krzysztof Kozlowski Sept. 27, 2024, 12:10 p.m. UTC | #8
On 27/09/2024 12:41, Macpaul Lin wrote:
> 
> 
> On 9/27/24 17:45, Krzysztof Kozlowski wrote:
>> 	
>>
>> External email : Please do not click links or open attachments until you 
>> have verified the sender or the content.
>>
>> On 18/09/2024 08:49, 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@mediatek.com>
>>> Signed-off-by: Macpaul Lin <macpaul.lin@mediatek.com>
>>
>> NAK
>>
>> Follow up patch pointed out this is incorrect. I don't understand this
>> concept of sending knowingly incorrect code, so please sort it out at v7.
>>
>> Best regards,
>> Krzysztof
>>
> 
> Sorry I didn't know mt6359-codec and mt6358-sound are similar device
> until Sept 26 (just yesterday) when I was reviewing the DT
> bindings. Until I've found the previous DT Schema of mt6359-codec 
> incorrect.
> See [1] 
> https://lore.kernel.org/linux-arm-kernel/20240926092519.6556-3-macpaul.lin@mediatek.com/T/
> and [2] 
> https://lore.kernel.org/all/20240926092519.6556-2-macpaul.lin@mediatek.com/
> 
> And.. I don't understand, the origin this patch v6 should be a text file
> conversion, shouldn't we keep the origin content just a conversion and
> trying not to broken other relate modules?

The conversion should be correct. Correct means each compatible has a
schema ending with additional/unevaluatedProperties: false.

If you need to change this binding to "true", it means above statement
was not fulfilled. You did not write proper conversion.

... or I do not understand what you wanted to achieve with the other patch.

> 
> Please help to indicates what is a better approach here:
> 
> Should I merge the properties of mt6359-codec, mt6358-sound, and 
> mt6397-codec
> together and put them all into to mt6359.yaml and redo the converting of 
> mfd/medaitek,mt6397.yaml?

Not sure, I don't know. Are these different devices? How are they
related? I expect you to know this, not me.

The problem is that you send a patch having a finished schema for child
node and then - in next patch in different patchset (!!!) - immediately
change it to false.

So the first code, which was not even merged, is incorrect. This is
heavily misleading.

> 
> That will be much simpler for the audio-codec node for mediatek,mt6397.yaml.
> However there will be a little mismatch from the origin text file.
> 
> Thanks
> Macpaul Lin

Best regards,
Krzysztof
diff mbox series

Patch

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>;
-			};
-		};
-	};