Message ID | 20250314073307.25092-6-Lu.Tang@mediatek.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | Add PMIC and SPMI driver for mt8196 | expand |
On Fri, 14 Mar 2025 15:32:31 +0800, Lu.Tang wrote: > Add new pmic mfd and adc documents for mt8196 > > Signed-off-by: Lu.Tang <Lu.Tang@mediatek.com> > --- > .../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 > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: Documentation/devicetree/bindings/mfd/mediatek,mt6685.example.dts:25.17-31: Warning (reg_format): /example-0/spmi/mfd@9:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1) Documentation/devicetree/bindings/mfd/mediatek,mt6685.example.dtb: Warning (pci_device_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/mfd/mediatek,mt6685.example.dtb: Warning (pci_device_bus_num): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/mfd/mediatek,mt6685.example.dtb: Warning (simple_bus_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/mfd/mediatek,mt6685.example.dtb: Warning (i2c_bus_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/mfd/mediatek,mt6685.example.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/mfd/mediatek,mt6685.example.dts:23.19-28.15: Warning (avoid_default_addr_size): /example-0/spmi/mfd@9: Relying on default #address-cells value Documentation/devicetree/bindings/mfd/mediatek,mt6685.example.dts:23.19-28.15: Warning (avoid_default_addr_size): /example-0/spmi/mfd@9: Relying on default #size-cells value Documentation/devicetree/bindings/mfd/mediatek,mt6685.example.dtb: Warning (unique_unit_address_if_enabled): Failed prerequisite 'avoid_default_addr_size' /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mfd/mediatek,mt6685.example.dtb: mfd@9: '#address-cells', '#size-cells', 'reg' do not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/mfd/mediatek,mt6685.yaml# Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.example.dts:31.17-31: Warning (reg_format): /example-0/spmi/pmic@4:reg: property has invalid length (8 bytes) (#address-cells == 2, #size-cells == 1) Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.example.dtb: Warning (pci_device_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.example.dtb: Warning (pci_device_bus_num): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.example.dtb: Warning (simple_bus_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.example.dtb: Warning (i2c_bus_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.example.dtb: Warning (spi_bus_reg): Failed prerequisite 'reg_format' Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.example.dts:29.31-109.15: Warning (avoid_default_addr_size): /example-0/spmi/pmic@4: Relying on default #address-cells value Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.example.dts:29.31-109.15: Warning (avoid_default_addr_size): /example-0/spmi/pmic@4: Relying on default #size-cells value Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.example.dtb: Warning (unique_unit_address_if_enabled): Failed prerequisite 'avoid_default_addr_size' /builds/robherring/dt-review-ci/linux/Documentation/devicetree/bindings/mfd/mediatek,spmi-pmic.example.dtb: pmic@4: '#address-cells', 'reg' do not match any of the regexes: 'pinctrl-[0-9]+' from schema $id: http://devicetree.org/schemas/mfd/mediatek,spmi-pmic.yaml# doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250314073307.25092-6-Lu.Tang@mediatek.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
On Fri, Mar 14, 2025 at 4:03 PM Lu.Tang <Lu.Tang@mediatek.com> wrote: > > Add new pmic mfd and adc documents for mt8196 > > Signed-off-by: Lu.Tang <Lu.Tang@mediatek.com> > --- > .../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@mediatek.com> > + > +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@mediatek.com> > + > +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@mediatek.com> > + > +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 > >
On 14/03/2025 08:32, Lu.Tang wrote: Please use subject prefixes matching the subsystem. You can get them for example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory your patch is touching. For bindings, the preferred subjects are explained here: https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html#i-for-patch-submitters There is no subsystem "pmic". > Add new pmic mfd and adc documents for mt8196 > > Signed-off-by: Lu.Tang <Lu.Tang@mediatek.com> Are you sure Latin transcription of your name includes '.' or you just copy-paste email address? ... > + - Lu Tang <lu.tang@mediatek.com> > + > +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 Just fold the device to the parent node. .. > 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 Filename matching one of the compatibles, e.g. the oldest one. > @@ -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@mediatek.com> > + > +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 I don't get why they are in the same schema. It would result in unnecessary big if:then with half of children not applicable for other variants. > + > +properties: > + compatible: > + oneOf: > + - enum: > + - mediatek,mt6363 > + - mediatek,mt6373 > + - mediatek,mt6316 Sort these with alphanumeric order. Best regards, Krzysztof
Il 14/03/25 11:32, Krzysztof Kozlowski ha scritto: > On 14/03/2025 08:32, Lu.Tang wrote: > > Please use subject prefixes matching the subsystem. You can get them for > example with `git log --oneline -- DIRECTORY_OR_FILE` on the directory > your patch is touching. For bindings, the preferred subjects are > explained here: > https://www.kernel.org/doc/html/latest/devicetree/bindings/submitting-patches.html#i-for-patch-submitters > > There is no subsystem "pmic". > >> Add new pmic mfd and adc documents for mt8196 >> >> Signed-off-by: Lu.Tang <Lu.Tang@mediatek.com> > > Are you sure Latin transcription of your name includes '.' or you just > copy-paste email address? > > > ... > >> + - Lu Tang <lu.tang@mediatek.com> >> + >> +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 > > Just fold the device to the parent node. > > > > .. > > > >> 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 > > Filename matching one of the compatibles, e.g. the oldest one. > Yeah but besides that I don't see valid reasons why this should be a different binding (and also why this should use a different driver, fwiw) - when it can most probably just extend the current PMIC MFD driver... and the same goes for the PMIC AUXADC: there's a mt6359-auxadc binding and driver that can be extended to 6363 and 6373 rather easily. There's nothing "really special" about those..... Cheers >> @@ -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@mediatek.com> >> + >> +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 > > I don't get why they are in the same schema. It would result in > unnecessary big if:then with half of children not applicable for other > variants. > >> + >> +properties: >> + compatible: >> + oneOf: >> + - enum: >> + - mediatek,mt6363 >> + - mediatek,mt6373 >> + - mediatek,mt6316 > Sort these with alphanumeric order. > > Best regards, > Krzysztof
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@mediatek.com> + +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 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@mediatek.com> + +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@mediatek.com> + +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 + +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
Add new pmic mfd and adc documents for mt8196 Signed-off-by: Lu.Tang <Lu.Tang@mediatek.com> --- .../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