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