xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/sound/axentia,tse850-pcm5142.txt (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593SmuzhiyunDevicetree bindings for the Axentia TSE-850 audio complex
2*4882a593Smuzhiyun
3*4882a593SmuzhiyunRequired properties:
4*4882a593Smuzhiyun  - compatible: "axentia,tse850-pcm5142"
5*4882a593Smuzhiyun  - axentia,cpu-dai: The phandle of the cpu dai.
6*4882a593Smuzhiyun  - axentia,audio-codec: The phandle of the PCM5142 codec.
7*4882a593Smuzhiyun  - axentia,add-gpios: gpio specifier that controls the mixer.
8*4882a593Smuzhiyun  - axentia,loop1-gpios: gpio specifier that controls loop relays on channel 1.
9*4882a593Smuzhiyun  - axentia,loop2-gpios: gpio specifier that controls loop relays on channel 2.
10*4882a593Smuzhiyun  - axentia,ana-supply: Regulator that supplies the output amplifier. Must
11*4882a593Smuzhiyun    support voltages in the 2V - 20V range, in 1V steps.
12*4882a593Smuzhiyun
13*4882a593SmuzhiyunThe schematics explaining the gpios are as follows:
14*4882a593Smuzhiyun
15*4882a593Smuzhiyun               loop1 relays
16*4882a593Smuzhiyun   IN1 +---o  +------------+  o---+ OUT1
17*4882a593Smuzhiyun            \                /
18*4882a593Smuzhiyun             +              +
19*4882a593Smuzhiyun             |   /          |
20*4882a593Smuzhiyun             +--o  +--.     |
21*4882a593Smuzhiyun             |  add   |     |
22*4882a593Smuzhiyun             |        V     |
23*4882a593Smuzhiyun             |      .---.   |
24*4882a593Smuzhiyun   DAC +----------->|Sum|---+
25*4882a593Smuzhiyun             |      '---'   |
26*4882a593Smuzhiyun             |              |
27*4882a593Smuzhiyun             +              +
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun   IN2 +---o--+------------+--o---+ OUT2
30*4882a593Smuzhiyun               loop2 relays
31*4882a593Smuzhiyun
32*4882a593SmuzhiyunThe 'loop1' gpio pin controlls two relays, which are either in loop position,
33*4882a593Smuzhiyunmeaning that input and output are directly connected, or they are in mixer
34*4882a593Smuzhiyunposition, meaning that the signal is passed through the 'Sum' mixer. Similarly
35*4882a593Smuzhiyunfor 'loop2'.
36*4882a593Smuzhiyun
37*4882a593SmuzhiyunIn the above, the 'loop1' relays are inactive, thus feeding IN1 to the mixer
38*4882a593Smuzhiyun(if 'add' is active) and feeding the mixer output to OUT1. The 'loop2' relays
39*4882a593Smuzhiyunare active, short-cutting the TSE-850 from channel 2. IN1, IN2, OUT1 and OUT2
40*4882a593Smuzhiyunare TSE-850 connectors and DAC is the PCB name of the (filtered) output from
41*4882a593Smuzhiyunthe PCM5142 codec.
42*4882a593Smuzhiyun
43*4882a593SmuzhiyunExample:
44*4882a593Smuzhiyun
45*4882a593Smuzhiyun	&ssc0 {
46*4882a593Smuzhiyun		#sound-dai-cells = <0>;
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun	};
49*4882a593Smuzhiyun
50*4882a593Smuzhiyun	&i2c {
51*4882a593Smuzhiyun		codec: pcm5142@4c {
52*4882a593Smuzhiyun			compatible = "ti,pcm5142";
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun			reg = <0x4c>;
55*4882a593Smuzhiyun
56*4882a593Smuzhiyun			AVDD-supply = <&reg_3v3>;
57*4882a593Smuzhiyun			DVDD-supply = <&reg_3v3>;
58*4882a593Smuzhiyun			CPVDD-supply = <&reg_3v3>;
59*4882a593Smuzhiyun
60*4882a593Smuzhiyun			clocks = <&sck>;
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun			pll-in = <3>;
63*4882a593Smuzhiyun			pll-out = <6>;
64*4882a593Smuzhiyun		};
65*4882a593Smuzhiyun	};
66*4882a593Smuzhiyun
67*4882a593Smuzhiyun	ana: ana-reg {
68*4882a593Smuzhiyun		compatible = "pwm-regulator";
69*4882a593Smuzhiyun
70*4882a593Smuzhiyun		regulator-name = "ANA";
71*4882a593Smuzhiyun
72*4882a593Smuzhiyun		pwms = <&pwm0 2 1000 PWM_POLARITY_INVERTED>;
73*4882a593Smuzhiyun		pwm-dutycycle-unit = <1000>;
74*4882a593Smuzhiyun		pwm-dutycycle-range = <100 1000>;
75*4882a593Smuzhiyun
76*4882a593Smuzhiyun		regulator-min-microvolt = <2000000>;
77*4882a593Smuzhiyun		regulator-max-microvolt = <20000000>;
78*4882a593Smuzhiyun		regulator-ramp-delay = <1000>;
79*4882a593Smuzhiyun	};
80*4882a593Smuzhiyun
81*4882a593Smuzhiyun	sound {
82*4882a593Smuzhiyun		compatible = "axentia,tse850-pcm5142";
83*4882a593Smuzhiyun
84*4882a593Smuzhiyun		axentia,cpu-dai = <&ssc0>;
85*4882a593Smuzhiyun		axentia,audio-codec = <&codec>;
86*4882a593Smuzhiyun
87*4882a593Smuzhiyun		axentia,add-gpios = <&pioA 8 GPIO_ACTIVE_LOW>;
88*4882a593Smuzhiyun		axentia,loop1-gpios = <&pioA 10 GPIO_ACTIVE_LOW>;
89*4882a593Smuzhiyun		axentia,loop2-gpios = <&pioA 11 GPIO_ACTIVE_LOW>;
90*4882a593Smuzhiyun
91*4882a593Smuzhiyun		axentia,ana-supply = <&ana>;
92*4882a593Smuzhiyun	};
93