# 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 family audio codec maintainers: - Eduard Bostina 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": const: 0 ti,audpwron-gpio: maxItems: 1 description: Power on GPIO line for the twl6040 vio-supply: description: Regulator for the twl6040 VIO supply v2v1-supply: description: Regulator for the twl6040 V2V1 supply enable-active-high: type: boolean description: To power on the twl6040 during boot. clocks: minItems: 1 maxItems: 2 clock-names: minItems: 1 maxItems: 2 items: enum: - clk32k - mclk vddvibl-supply: description: Regulator for the left vibra motor vddvibr-supply: description: Regulator for the right vibra motor vibra: type: object additionalProperties: false properties: ti,vibldrv-res: $ref: /schemas/types.yaml#/definitions/uint32 description: Resistance parameter for left driver ti,vibrdrv-res: $ref: /schemas/types.yaml#/definitions/uint32 description: Resistance parameter for right driver ti,viblmotor-res: $ref: /schemas/types.yaml#/definitions/uint32 description: Resistance parameter for left motor ti,vibrmotor-res: $ref: /schemas/types.yaml#/definitions/uint32 description: Resistance parameter for right motor ti,vddvibl-uV: $ref: /schemas/types.yaml#/definitions/uint32 description: vddvibl default voltage if it needs to be changed ti,vddvibr-uV: $ref: /schemas/types.yaml#/definitions/uint32 description: vddvibr default voltage if it needs to be changed required: - ti,vibldrv-res - ti,vibrdrv-res - ti,viblmotor-res - ti,vibrmotor-res required: - compatible - reg - interrupts - "#clock-cells" - vio-supply - v2v1-supply allOf: - if: required: - vibra then: required: - vddvibl-supply - vddvibr-supply additionalProperties: false examples: - | #include i2c { #address-cells = <1>; #size-cells = <0>; audio-codec@4b { compatible = "ti,twl6040"; reg = <0x4b>; interrupts = <0 119 IRQ_TYPE_LEVEL_HIGH>; interrupt-parent = <&gic>; gpio-controller; #gpio-cells = <1>; #clock-cells = <0>; ti,audpwron-gpio = <&gpio4 31 0>; vio-supply = <&v1v8>; v2v1-supply = <&v2v1>; enable-active-high; /* regulators for vibra motor */ vddvibl-supply = <&vbat>; vddvibr-supply = <&vbat>; vibra { ti,vibldrv-res = <8>; ti,vibrdrv-res = <3>; ti,viblmotor-res = <10>; ti,vibrmotor-res = <10>; }; }; };