mfd: dt-bindings: ti,twl6040: convert to DT schema
Subsystems (2)
PATCH 1/1 mfd: dt-bindings: ti,twl6040: convert to DT schema
Convert the legacy TXT binding for the TWL6040 MFD to the modern YAML DT schema format. This adds formal validation and improves documentation for the TWL6040/TWL6041 audio codec, which provides audio, vibra, and GPO functionality on OMAP4+ platforms.
The unused 'twl6040,audpwron-gpio' property has been dropped from the schema as it is not used by the driver.
--- .../devicetree/bindings/mfd/ti,twl6040.yaml | 149 ++++++++++++++++++ .../devicetree/bindings/mfd/twl6040.txt | 67 -------- 2 files changed, 149 insertions(+), 67 deletions(-) create mode 100644 Documentation/devicetree/bindings/mfd/ti,twl6040.yaml delete mode 100644 Documentation/devicetree/bindings/mfd/twl6040.txt
Documentation/devicetree/bindings/mfd/ti,twl6040.yaml new file +149 -0
@@ -0,0 +1,149 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mfd/ti,twl6040.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Texas Instruments TWL6040/TWL6041 Audio Codec + +maintainers: + - Peter Ujfalusi <[email protected]> + +description: + The TWL6040s are 8-channel high quality low-power audio codecs providing + audio, vibra and GPO functionality on OMAP4+ platforms. + They are connected to the host processor via i2c for commands, McPDM for + audio data and commands. + +properties: + compatible: + enum: + - ti,twl6040 + - ti,twl6041 + + reg: + const: 0x4b + + interrupts: + maxItems: 1 + + gpio-controller: true + + '#gpio-cells': + const: 1 + + '#clock-cells': + description: TWL6040 is a provider of PDMCLK which is used by McPDM. + const: 0 + + vio-supply: + description: Regulator for the VIO supply. + + v2v1-supply: + description: Regulator for the V2V1 supply. + + enable-active-high: + type: boolean + description: If present, powers on the device during boot. + + clocks: + minItems: 1 + maxItems: 2 + + clock-names: + minItems: 1 + maxItems: 2 + items: + enum: [clk32k, mclk] + + # Vibra functionality : + + vddvibl-supply: + description: Regulator for the left vibra motor supply. + + vddvibr-supply: + description: Regulator for the right vibra motor supply. + + vibra: + type: object + description: Node for vibra motor configuration parameters. + properties: + ti,vibldrv-res: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Resistance parameter for the left driver. + + ti,vibrdrv-res: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Resistance parameter for the right driver. + + ti,viblmotor-res: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Resistance parameter for the left motor. + + ti,vibrmotor-res: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Resistance parameter for the right motor. + + vddvibl_uV: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Optional override for the VDDVIBL default voltage (in uV). + + vddvibr_uV: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Optional override for the VDDVIBR default voltage (in uV). + required: + - ti,vibldrv-res + - ti,vibrdrv-res + - ti,viblmotor-res + - ti,vibrmotor-res + additionalProperties: false + +required: + - compatible + - reg + - interrupts + - gpio-controller + - '#gpio-cells' + - '#clock-cells' + - vio-supply + - v2v1-supply + - vddvibl-supply + - vddvibr-supply + - vibra + +additionalProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + twl6040: twl@4b { + compatible = "ti,twl6040"; + reg = <0x4b>; + + interrupts = <0 119 4>; + interrupt-parent = <&gic>; + + gpio-controller; + #gpio-cells = <1>; + #clock-cells = <0>; + + vio-supply = <&v1v8>; + v2v1-supply = <&v2v1>; + enable-active-high; + + /* regulators for vibra motor */ + vddvibl-supply = <&vbat>; + vddvibr-supply = <&vbat>; + + vibra { + /* Vibra driver, motor resistance parameters */ + ti,vibldrv-res = <8>; + ti,vibrdrv-res = <3>; + ti,viblmotor-res = <10>; + ti,vibrmotor-res = <10>; + }; + }; + };
Documentation/devicetree/bindings/mfd/twl6040.txt deleted +0 -67
67 lines not on this page · raw message
Signature · 1 line
2.39.5
Quoted 5 lines · Jihed Chaibi
Convert the legacy TXT binding for the TWL6040 MFD to the modern YAML DT schema format. This adds formal validation and improves documentation for the TWL6040/TWL6041 audio codec, which provides audio, vibra, and GPO functionality on OMAP4+ platforms.
Quoted 7 lines
The unused 'twl6040,audpwron-gpio' property has been dropped from the schema as it is not used by the driver.
Signed-off-by Jihed Chaibi <[email protected]>--- .../devicetree/bindings/mfd/ti,twl6040.yaml | 149 ++++++++++++++++++ .../devicetree/bindings/mfd/twl6040.txt | 67 --------
That's a v3? Where is the changelog and rest of the patches?
You need to keep versioning and explain what was happening with the patch (and why).
Quoted 51 lines
2 files changed, 149 insertions(+), 67 deletions(-) create mode 100644 Documentation/devicetree/bindings/mfd/ti,twl6040.yaml delete mode 100644 Documentation/devicetree/bindings/mfd/twl6040.txtDocumentation/devicetree/bindings/mfd/ti,twl6040.yaml new file +41
-0@@ -0,0 +1,149 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/mfd/ti,twl6040.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Texas Instruments TWL6040/TWL6041 Audio Codec + +maintainers: + - Peter Ujfalusi <[email protected]> + +description: + The TWL6040s are 8-channel high quality low-power audio codecs providing + audio, vibra and GPO functionality on OMAP4+ platforms. + They are connected to the host processor via i2c for commands, McPDM for + audio data and commands. + +properties: + compatible: + enum: + - ti,twl6040 + - ti,twl6041 + + reg: + const: 0x4b + + interrupts: + maxItems: 1 + + gpio-controller: true + + '#gpio-cells': + const: 1 + + '#clock-cells': + description: TWL6040 is a provider of PDMCLK which is used by McPDM. + const: 0 + + vio-supply: + description: Regulator for the VIO supply. +
Documentation/devicetree/bindings/mfd/ti,twl6040.yaml line 51
Quoted 10 lines
Documentation/devicetree/bindings/mfd/ti,twl6040.yaml new file +10
-0+ v2v1-supply: + description: Regulator for the V2V1 supply. + + enable-active-high: + type: boolean + description: If present, powers on the device during boot. + + clocks: + minItems: 1 + maxItems: 2
Why flexible size? Old binding did not suggest that. Any differences should be explained in commit msg.
Documentation/devicetree/bindings/mfd/ti,twl6040.yaml line 57
Quoted 6 lines
Documentation/devicetree/bindings/mfd/ti,twl6040.yaml new file +6
-0+ + clock-names: + minItems: 1 + maxItems: 2 + items: + enum: [clk32k, mclk]
Why is this flexible instead of list of items?
Quoted 55 lines
Documentation/devicetree/bindings/mfd/ti,twl6040.yaml new file +55
-0+ + # Vibra functionality : + + vddvibl-supply: + description: Regulator for the left vibra motor supply. + + vddvibr-supply: + description: Regulator for the right vibra motor supply. + + vibra: + type: object + description: Node for vibra motor configuration parameters. + properties: + ti,vibldrv-res: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Resistance parameter for the left driver. + + ti,vibrdrv-res: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Resistance parameter for the right driver. + + ti,viblmotor-res: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Resistance parameter for the left motor. + + ti,vibrmotor-res: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Resistance parameter for the right motor. + + vddvibl_uV: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Optional override for the VDDVIBL default voltage (in uV). + + vddvibr_uV: + $ref: /schemas/types.yaml#/definitions/uint32 + description: Optional override for the VDDVIBR default voltage (in uV). + required: + - ti,vibldrv-res + - ti,vibrdrv-res + - ti,viblmotor-res + - ti,vibrmotor-res + additionalProperties: false + +required: + - compatible + - reg + - interrupts + - gpio-controller + - '#gpio-cells' + - '#clock-cells' + - vio-supply + - v2v1-supply + - vddvibl-supply + - vddvibr-supply + - vibra
Documentation/devicetree/bindings/mfd/ti,twl6040.yaml line 122
Quoted 10 lines
Documentation/devicetree/bindings/mfd/ti,twl6040.yaml new file +10
-0+ +additionalProperties: false + +examples: + - | + i2c { + #address-cells = <1>; + #size-cells = <0>; + + twl6040: twl@4b {
Node names should be generic. See also an explanation and list of examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation
audio-codec?
Documentation/devicetree/bindings/mfd/ti,twl6040.yaml line 126
Quoted 4 lines
Documentation/devicetree/bindings/mfd/ti,twl6040.yaml new file +4
-0+ compatible = "ti,twl6040"; + reg = <0x4b>; + + interrupts = <0 119 4>;
Use standard defines. <0> also feels wrong here, that's I2C.
Documentation/devicetree/bindings/mfd/ti,twl6040.yaml line 132
Quoted 6 lines
Documentation/devicetree/bindings/mfd/ti,twl6040.yaml new file +6
-0+ interrupt-parent = <&gic>; + + gpio-controller; + #gpio-cells = <1>; + #clock-cells = <0>; +
Best regards,
Krzysztof