On Fri, Mar 14, 2025 at 4:03 PM Lu.Tang <Lu.Tang@xxxxxxxxxxxx> wrote: > > Add new pmic mfd and adc documents for mt8196 > > Signed-off-by: Lu.Tang <Lu.Tang@xxxxxxxxxxxx> > --- > .../iio/adc/mediatek,spmi-pmic-auxadc.yaml | 31 ++++ > .../bindings/input/mediatek,pmic-keys.yaml | 1 + > .../bindings/mfd/mediatek,mt6685.yaml | 50 +++++ > .../bindings/mfd/mediatek,spmi-pmic.yaml | 173 ++++++++++++++++++ > .../pinctrl/mediatek,mt65xx-pinctrl.yaml | 1 + > 5 files changed, 256 insertions(+) > create mode 100644 Documentation/devicetree/bindings/iio/adc/mediatek,spmi-pmic-auxadc.yaml > create mode 100644 Documentation/devicetree/bindings/mfd/mediatek,mt6685.yaml > create mode 100644 Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.yaml > > diff --git a/Documentation/devicetree/bindings/iio/adc/mediatek,spmi-pmic-auxadc.yaml b/Documentation/devicetree/bindings/iio/adc/mediatek,spmi-pmic-auxadc.yaml > new file mode 100644 > index 000000000000..250782ad7d01 > --- /dev/null > +++ b/Documentation/devicetree/bindings/iio/adc/mediatek,spmi-pmic-auxadc.yaml > @@ -0,0 +1,31 @@ > +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/iio/adc/mediatek,spmi-pmic-auxadc.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: MediaTek SPMI PMIC AUXADC > + > +maintainers: > + - Lu Tang <lu.tang@xxxxxxxxxxxx> > + > +description: > + The Auxiliary Analog/Digital Converter (AUXADC) is an ADC found > + in some MediaTek PMICs, performing various PMIC related measurements > + such as battery and PMIC internal voltage regulators temperatures, > + other than voltages for various PMIC internal components. > + > +properties: > + compatible: > + enum: > + - mediatek,mt6363-auxadc > + - mediatek,mt6373-auxadc > + > + "#io-channel-cells": > + const: 1 > + > +required: > + - compatible > + - "#io-channel-cells" > + > +additionalProperties: false This is simply a sub-function of the PMIC, and is really not tied to whatever interface the PMIC uses. Please integrate this into the existing binding: Documentation/devicetree/bindings/iio/adc/mediatek,mt6359-auxadc.yaml > diff --git a/Documentation/devicetree/bindings/input/mediatek,pmic-keys.yaml b/Documentation/devicetree/bindings/input/mediatek,pmic-keys.yaml > index b95435bd6a9b..ce760039d4c2 100644 > --- a/Documentation/devicetree/bindings/input/mediatek,pmic-keys.yaml > +++ b/Documentation/devicetree/bindings/input/mediatek,pmic-keys.yaml > @@ -31,6 +31,7 @@ properties: > - mediatek,mt6358-keys > - mediatek,mt6359-keys > - mediatek,mt6397-keys > + - mediatek,mt6363-keys > > power-off-time-sec: true > > diff --git a/Documentation/devicetree/bindings/mfd/mediatek,mt6685.yaml b/Documentation/devicetree/bindings/mfd/mediatek,mt6685.yaml > new file mode 100644 > index 000000000000..d3276df8952b > --- /dev/null > +++ b/Documentation/devicetree/bindings/mfd/mediatek,mt6685.yaml > @@ -0,0 +1,50 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/mfd/mediatek,mt6685.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: MediaTek MT6685 Clock IC > + > +maintainers: > + - Lu Tang <lu.tang@xxxxxxxxxxxx> > + > +description: | > + MT6685 is a clock IC. > + Please see the sub-modules below for supported features. > + > + MT6685 is a multifunction device with the following sub modules: > + - RTC > + - Clock > + > +properties: > + compatible: > + const: mediatek,mt6685 > + > + interrupts: > + maxItems: 1 > + > + interrupt-controller: true > + > + "#interrupt-cells": > + const: 2 > + > +required: > + - compatible > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/spmi/spmi.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + > + spmi { > + mfd@9 { > + compatible = "mediatek,mt6685"; > + reg = <0x9 SPMI_USID>; > + #address-cells = <1>; > + #size-cells = <0>; > + }; > + }; > diff --git a/Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.yaml b/Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.yaml > new file mode 100644 > index 000000000000..a8f1231623cf > --- /dev/null > +++ b/Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.yaml > @@ -0,0 +1,173 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/mfd/mediatek,spmi-pmic.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: MediaTek SPMI PMICs multi-function device > + > +maintainers: > + - Lu Tang <lu.tang@xxxxxxxxxxxx> > + > +description: | > + Some Mediatek PMICs are interfaced to the chip via the SPMI (System Power > + Management Interface) bus. > + > + The Mediatek SPMI series includes the MT6363, MT6373, MT6316 and other > + PMICs.Please see the sub-modules below for supported features. > + > + MT6363/MT6373 is a multifunction device with the following sub modules: > + - Regulators > + - ADC > + - GPIO > + - Keys > + MT6316 is a multifunction device with the following sub modules: > + - Regulators Then it is not multifunctional. Please move this to the MT6315 binding: Documentation/devicetree/bindings/regulator/mt6315-regulator.yaml Also, you have not covered regulator bindings in this series. ChenYu > +properties: > + compatible: > + oneOf: > + - enum: > + - mediatek,mt6363 > + - mediatek,mt6373 > + - mediatek,mt6316 > + > + interrupts: > + maxItems: 1 > + > + interrupt-controller: true > + > + "#interrupt-cells": > + const: 2 > + > + regulators: > + type: object > + description: > + List of child nodes that specify the regulators. > + additionalProperties: true > + > + properties: > + compatible: > + oneOf: > + - enum: > + - mediatek,mt6363-regulator > + - mediatek,mt6373-regulator > + - mediatek,mt6316-regulator > + > + required: > + - compatible > + > + adc: > + type: object > + $ref: /schemas/iio/adc/mediatek,spmi-pmic-auxadc.yaml# > + unevaluatedProperties: false > + > + keys: > + type: object > + $ref: /schemas/input/mediatek,pmic-keys.yaml > + unevaluatedProperties: false > + description: > + Power and Home keys. > + > + pinctrl: > + type: object > + $ref: /schemas/pinctrl/mediatek,mt65xx-pinctrl.yaml > + unevaluatedProperties: false > + description: > + Pin controller > + > +required: > + - compatible > + - regulators > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/spmi/spmi.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + #include <dt-bindings/interrupt-controller/arm-gic.h> > + > + spmi { > + main_pmic: pmic@4 { > + compatible = "mediatek,mt6363"; > + reg = <0x4 SPMI_USID>; > + interrupts = <0x4 IRQ_TYPE_NONE>; > + #address-cells = <0>; > + interrupt-controller; > + #interrupt-cells = <2>; > + > + mt6363keys: keys { > + compatible = "mediatek,mt6363-keys"; > + mediatek,long-press-mode = <1>; > + power-off-time-sec = <0>; > + > + power { > + linux,keycodes = <116>; > + wakeup-source; > + }; > + > + home { > + linux,keycodes = <115>; > + }; > + }; > + > + mt6363_pio: pinctrl { > + compatible = "mediatek,mt6363-pinctrl"; > + gpio-controller; > + #gpio-cells = <2>; > + }; > + > + mt6363regulator: regulators { > + compatible = "mediatek,mt6363-regulator"; > + > + mt6363_vs2: vs2 { > + regulator-name = "mt6363_vs2"; > + regulator-allowed-modes = <0 1 2>; > + regulator-always-on; > + regulator-allow-set-load; > + }; > + > + mt6363_vbuck1: vbuck1 { > + regulator-name = "mt6363_vbuck1"; > + regulator-allowed-modes = <0 1 2>; > + }; > + > + mt6363_vbuck2: vbuck2 { > + regulator-name = "mt6363_vbuck2"; > + regulator-allowed-modes = <0 1 2>; > + }; > + > + mt6363_vbuck3: vbuck3 { > + regulator-name = "mt6363_vbuck3"; > + regulator-allowed-modes = <0 1 2>; > + }; > + > + mt6363_vbuck4: vbuck4 { > + regulator-name = "mt6363_vbuck4"; > + regulator-allowed-modes = <0 1 2>; > + }; > + > + mt6363_vbuck5: vbuck5 { > + regulator-name = "mt6363_vbuck5"; > + regulator-allowed-modes = <0 1 2>; > + }; > + > + mt6363_vbuck6: vbuck6 { > + regulator-name = "mt6363_vbuck6"; > + regulator-allowed-modes = <0 1 2>; > + }; > + > + mt6363_vbuck7: vbuck7 { > + regulator-name = "mt6363_vbuck7"; > + regulator-allowed-modes = <0 1 2>; > + }; > + > + // ... > + > + mt6363_isink_load: isink-load { > + regulator-name = "mt6363_isink_load"; > + }; > + }; > + }; > + }; > diff --git a/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml > index bccff08a5ba3..bf3ba58a7705 100644 > --- a/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml > +++ b/Documentation/devicetree/bindings/pinctrl/mediatek,mt65xx-pinctrl.yaml > @@ -17,6 +17,7 @@ properties: > enum: > - mediatek,mt2701-pinctrl > - mediatek,mt2712-pinctrl > + - mediatek,mt6363-pinctrl > - mediatek,mt6397-pinctrl > - mediatek,mt7623-pinctrl > - mediatek,mt8127-pinctrl > -- > 2.46.0 > >