1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/sound/ti,ts3a227e.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: Texas Instruments TS3A227E
8  Autonomous Audio Accessory Detection and Configuration Switch
9
10maintainers:
11  - Dylan Reid <dgreid@chromium.org>
12
13description: |
14  The TS3A227E detect headsets of 3-ring and 4-ring standards and
15  switches automatically to route the microphone correctly. It also
16  handles key press detection in accordance with the Android audio
17  headset specification v1.0.
18
19properties:
20  compatible:
21    enum:
22      - ti,ts3a227e
23
24  reg:
25    const: 0x3b
26
27  interrupts:
28    maxItems: 1
29
30  ti,micbias:
31    $ref: /schemas/types.yaml#/definitions/uint32
32    description: Intended MICBIAS voltage (datasheet section 9.6.7).
33    enum:
34      - 0 # 2.1 V
35      - 1 # 2.2 V
36      - 2 # 2.3 V
37      - 3 # 2.4 V
38      - 4 # 2.5 V
39      - 5 # 2.6 V
40      - 6 # 2.7 V
41      - 7 # 2.8 V
42    default: 1
43
44  ti,debounce-release-ms:
45    description: key release debounce time in ms (datasheet section 9.6.7).
46    enum:
47      - 0
48      - 20
49    default: 20
50
51  ti,debounce-press-ms:
52    description: key press debounce time in ms (datasheet section 9.6.7).
53    enum:
54      - 2
55      - 40
56      - 80
57      - 120
58    default: 80
59
60  ti,debounce-insertion-ms:
61    description: headset insertion debounce time in ms (datasheet section 9.6.5).
62    enum:
63      - 2
64      - 30
65      - 60
66      - 90
67      - 120
68      - 150
69      - 1000
70      - 2000
71    default: 90
72
73required:
74  - compatible
75  - reg
76  - interrupts
77
78additionalProperties: false
79
80examples:
81  - |
82    #include <dt-bindings/interrupt-controller/irq.h>
83    i2c {
84        #address-cells = <1>;
85        #size-cells = <0>;
86        codec: audio-controller@3b {
87            compatible = "ti,ts3a227e";
88            reg = <0x3b>;
89            interrupt-parent = <&gpio1>;
90            interrupts = <3 IRQ_TYPE_LEVEL_LOW>;
91        };
92    };
93
94...
95