1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2# Copyright (C) 2019 Texas Instruments Incorporated
3%YAML 1.2
4---
5$id: http://devicetree.org/schemas/sound/ti,tlv320aic32x4.yaml#
6$schema: http://devicetree.org/meta-schemas/core.yaml#
7
8title: Texas Instruments TLV320AIC32x4 Stereo Audio codec
9
10maintainers:
11  - Alexander Stein <alexander.stein@ew.tq-group.com>
12
13description: |
14  The TLV320AIC32x4 audio codec can be accessed using I2C or SPI
15
16properties:
17  compatible:
18    enum:
19      - ti,tas2505
20      - ti,tlv320aic32x4
21      - ti,tlv320aic32x6
22
23  reg:
24    maxItems: 1
25
26  clocks:
27    items:
28      - description: Master clock
29
30  clock-names:
31    items:
32      - const: mclk
33
34  av-supply:
35    description: Analog core power supply
36
37  dv-supply:
38    description: Digital core power supply
39
40  iov-supply:
41    description: Digital IO power supply
42
43  ldoin-supply:
44    description: LDO power supply
45
46  reset-gpios:
47    maxItems: 1
48
49  '#sound-dai-cells':
50    const: 0
51
52  aic32x4-gpio-func:
53    description: |
54       GPIO function configuration for pins MFP1-MFP5.
55       Types are defined in include/sound/tlv320aic32x4.h
56    $ref: /schemas/types.yaml#/definitions/uint32-array
57    minItems: 5
58    maxItems: 5
59
60required:
61  - compatible
62  - reg
63  - clocks
64  - clock-names
65  - iov-supply
66
67allOf:
68  - $ref: dai-common.yaml#
69  - if:
70      not:
71        required:
72          - ldoin-supply
73    then:
74      required:
75        - av-supply
76        - dv-supply
77
78additionalProperties: false
79
80examples:
81  - |
82    #include <dt-bindings/gpio/gpio.h>
83    i2c {
84      #address-cells = <1>;
85      #size-cells = <0>;
86      audio-codec@18 {
87        compatible = "ti,tlv320aic32x4";
88        reg = <0x18>;
89        iov-supply = <&reg_3v3>;
90        ldoin-supply = <&reg_3v3>;
91        clocks = <&clks 201>;
92        clock-names = "mclk";
93        aic32x4-gpio-func= <
94          0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
95          0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
96          0x04 /* MFP3 AIC32X4_MFP3_GPIO_ENABLED */
97          0xff /* AIC32X4_MFPX_DEFAULT_VALUE */
98          0x08 /* MFP5 AIC32X4_MFP5_GPIO_INPUT */
99        >;
100      };
101    };
102