Re: [PATCH v1 1/2] dt-bindings: mfd: Add binding for MediaTek MT6363 series SPMI PMIC

AngeloGioacchino Del Regno
2025-06-25T09:12:36Z

Il 25/06/25 02:51, Rob Herring ha scritto:
> On Mon, Jun 23, 2025 at 02:00:37PM +0200, AngeloGioacchino Del Regno wrote:
>> Add a binding for the MediaTek MT6363/6373 (and similar) multi
>> function PMICs connected over SPMI.
>>
>> These PMICs are found on board designs using newer MediaTek SoCs,
>> such as the Dimensity 9400 Smartphone chip, or the Chromebook
>> MT8196 chip.
>>
>> Signed-off-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
>> ---
>> .../bindings/mfd/mediatek,mt6363.yaml | 98 +++++++++++++++++++
>> 1 file changed, 98 insertions(+)
>> create mode 100644 Documentation/devicetree/bindings/mfd/mediatek,mt6363.yaml
>>
>> diff --git a/Documentation/devicetree/bindings/mfd/mediatek,mt6363.yaml b/Documentation/devicetree/bindings/mfd/mediatek,mt6363.yaml
>> new file mode 100644
>> index 000000000000..2ce57e659d12
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/mfd/mediatek,mt6363.yaml
>> @@ -0,0 +1,98 @@
>> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/mfd/mediatek,mt6363.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: MediaTek MT6363 series SPMI PMICs multi-function device
>> +
>> +maintainers:
>> + - AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
>> +
>> +description: |
>> + Some MediaTek Power Management ICs (PMICs) found in board designs with
>> + the Helio, Dimensity and/or Kompanio series of SoCs are interfaced to
>> + the chip via the System Power Management Interface (SPMI) bus.
>> +
>> + These PMICs are multi-function devices with various sub modules.
>> + For example, those may include one, or more of the following:
>> + - Auxiliary ADC Controller
>> + - Clock Controller
>> + - eFuses
>> + - GPIO Controller
>> + - Interrupt Controller
>> + - Keys
>> + - LEDs Controller
>> + - Regulators
>> + - RTC
>> +
>> +properties:
>> + compatible:
>> + items:
>> + - enum:
>> + - mediatek,mt6363
>> + - mediatek,mt6373
>> +
>> + reg:
>> + maxItems: 1
>> +
>> + '#address-cells':
>> + const: 0
>> +
>> + '#size-cells':
>> + const: 0
>> +
>> + interrupts:
>> + maxItems: 1
>> +
>> + interrupt-controller: true
>> +
>> + "#interrupt-cells":
>> + const: 3
>> +
>> + adc:
>> + type: object
>> + $ref: /schemas/iio/adc/mediatek,mt6359-auxadc.yaml#
>> + unevaluatedProperties: false
>> +
>> + regulators:
>> + type: object
>> + oneOf:
>> + - $ref: /schemas/regulator/mediatek,mt6363-regulator.yaml#
>> + - $ref: /schemas/regulator/mediatek,mt6373-regulator.yaml#
>
> This causes the schemas to be applied 4 times (2 each). Better if you
> do:
>
> properties:
> compatible:
> contains:
> enum: [ the compatibles in those schemas ]
>
>

Noted, thanks!

>> + additionalProperties: true
>> +
>> + keys:
>> + type: object
>> + $ref: /schemas/input/mediatek,pmic-keys.yaml
>> + unevaluatedProperties: false
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - '#address-cells'
>> +
>> +additionalProperties: false
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/interrupt-controller/irq.h>
>> + #include <dt-bindings/spmi/spmi.h>
>> +
>> + spmi {
>> + #address-cells = <2>;
>> + #size-cells = <0>;
>> +
>> + pmic@4 {
>> + compatible = "mediatek,mt6363";
>> + reg = <0x4 SPMI_USID>;
>> + interrupts = <4 64 IRQ_TYPE_LEVEL_HIGH>;
>> + interrupt-controller;
>> + #address-cells = <0>;
>> + #interrupt-cells = <3>;
>> +
>> + regulators {
>> + compatible = "mediatek,mt6363-regulator";
>> + };
>
> Make the example complete. with adc and keys nodes.
>

You mean just adding a

adc {
compatible = xyz;
};

keys {
compatible = xyz;
};

right?

I will add the full example in the next version :-)

Thank you!
Angelo

>> + };
>> + };
>> --
>> 2.49.0
>>