Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost
[cris-mirror.git] / Documentation / devicetree / bindings / sound / axentia,tse850-pcm5142.txt
blob9d049d4bfd58f5ab6d1d56cf19956f7615668b6b
1 Devicetree bindings for the Axentia TSE-850 audio complex
3 Required properties:
4   - compatible: "axentia,tse850-pcm5142"
5   - axentia,cpu-dai: The phandle of the cpu dai.
6   - axentia,audio-codec: The phandle of the PCM5142 codec.
7   - axentia,add-gpios: gpio specifier that controls the mixer.
8   - axentia,loop1-gpios: gpio specifier that controls loop relays on channel 1.
9   - axentia,loop2-gpios: gpio specifier that controls loop relays on channel 2.
10   - axentia,ana-supply: Regulator that supplies the output amplifier. Must
11     support voltages in the 2V - 20V range, in 1V steps.
13 The schematics explaining the gpios are as follows:
15                loop1 relays
16    IN1 +---o  +------------+  o---+ OUT1
17             \                /
18              +              +
19              |   /          |
20              +--o  +--.     |
21              |  add   |     |
22              |        V     |
23              |      .---.   |
24    DAC +----------->|Sum|---+
25              |      '---'   |
26              |              |
27              +              +
29    IN2 +---o--+------------+--o---+ OUT2
30                loop2 relays
32 The 'loop1' gpio pin controlls two relays, which are either in loop position,
33 meaning that input and output are directly connected, or they are in mixer
34 position, meaning that the signal is passed through the 'Sum' mixer. Similarly
35 for 'loop2'.
37 In the above, the 'loop1' relays are inactive, thus feeding IN1 to the mixer
38 (if 'add' is active) and feeding the mixer output to OUT1. The 'loop2' relays
39 are active, short-cutting the TSE-850 from channel 2. IN1, IN2, OUT1 and OUT2
40 are TSE-850 connectors and DAC is the PCB name of the (filtered) output from
41 the PCM5142 codec.
43 Example:
45         &ssc0 {
46                 #sound-dai-cells = <0>;
48         };
50         &i2c {
51                 codec: pcm5142@4c {
52                         compatible = "ti,pcm5142";
54                         reg = <0x4c>;
56                         AVDD-supply = <&reg_3v3>;
57                         DVDD-supply = <&reg_3v3>;
58                         CPVDD-supply = <&reg_3v3>;
60                         clocks = <&sck>;
62                         pll-in = <3>;
63                         pll-out = <6>;
64                 };
65         };
67         ana: ana-reg {
68                 compatible = "pwm-regulator";
70                 regulator-name = "ANA";
72                 pwms = <&pwm0 2 1000 PWM_POLARITY_INVERTED>;
73                 pwm-dutycycle-unit = <1000>;
74                 pwm-dutycycle-range = <100 1000>;
76                 regulator-min-microvolt = <2000000>;
77                 regulator-max-microvolt = <20000000>;
78                 regulator-ramp-delay = <1000>;
79         };
81         sound {
82                 compatible = "axentia,tse850-pcm5142";
84                 axentia,cpu-dai = <&ssc0>;
85                 axentia,audio-codec = <&codec>;
87                 axentia,add-gpios = <&pioA 8 GPIO_ACTIVE_LOW>;
88                 axentia,loop1-gpios = <&pioA 10 GPIO_ACTIVE_LOW>;
89                 axentia,loop2-gpios = <&pioA 11 GPIO_ACTIVE_LOW>;
91                 axentia,ana-supply = <&ana>;
92         };