162306a36Sopenharmony_ciDevicetree bindings for the Axentia TSE-850 audio complex
262306a36Sopenharmony_ci
362306a36Sopenharmony_ciRequired properties:
462306a36Sopenharmony_ci  - compatible: "axentia,tse850-pcm5142"
562306a36Sopenharmony_ci  - axentia,cpu-dai: The phandle of the cpu dai.
662306a36Sopenharmony_ci  - axentia,audio-codec: The phandle of the PCM5142 codec.
762306a36Sopenharmony_ci  - axentia,add-gpios: gpio specifier that controls the mixer.
862306a36Sopenharmony_ci  - axentia,loop1-gpios: gpio specifier that controls loop relays on channel 1.
962306a36Sopenharmony_ci  - axentia,loop2-gpios: gpio specifier that controls loop relays on channel 2.
1062306a36Sopenharmony_ci  - axentia,ana-supply: Regulator that supplies the output amplifier. Must
1162306a36Sopenharmony_ci    support voltages in the 2V - 20V range, in 1V steps.
1262306a36Sopenharmony_ci
1362306a36Sopenharmony_ciThe schematics explaining the gpios are as follows:
1462306a36Sopenharmony_ci
1562306a36Sopenharmony_ci               loop1 relays
1662306a36Sopenharmony_ci   IN1 +---o  +------------+  o---+ OUT1
1762306a36Sopenharmony_ci            \                /
1862306a36Sopenharmony_ci             +              +
1962306a36Sopenharmony_ci             |   /          |
2062306a36Sopenharmony_ci             +--o  +--.     |
2162306a36Sopenharmony_ci             |  add   |     |
2262306a36Sopenharmony_ci             |        V     |
2362306a36Sopenharmony_ci             |      .---.   |
2462306a36Sopenharmony_ci   DAC +----------->|Sum|---+
2562306a36Sopenharmony_ci             |      '---'   |
2662306a36Sopenharmony_ci             |              |
2762306a36Sopenharmony_ci             +              +
2862306a36Sopenharmony_ci
2962306a36Sopenharmony_ci   IN2 +---o--+------------+--o---+ OUT2
3062306a36Sopenharmony_ci               loop2 relays
3162306a36Sopenharmony_ci
3262306a36Sopenharmony_ciThe 'loop1' gpio pin controls two relays, which are either in loop position,
3362306a36Sopenharmony_cimeaning that input and output are directly connected, or they are in mixer
3462306a36Sopenharmony_ciposition, meaning that the signal is passed through the 'Sum' mixer. Similarly
3562306a36Sopenharmony_cifor 'loop2'.
3662306a36Sopenharmony_ci
3762306a36Sopenharmony_ciIn the above, the 'loop1' relays are inactive, thus feeding IN1 to the mixer
3862306a36Sopenharmony_ci(if 'add' is active) and feeding the mixer output to OUT1. The 'loop2' relays
3962306a36Sopenharmony_ciare active, short-cutting the TSE-850 from channel 2. IN1, IN2, OUT1 and OUT2
4062306a36Sopenharmony_ciare TSE-850 connectors and DAC is the PCB name of the (filtered) output from
4162306a36Sopenharmony_cithe PCM5142 codec.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciExample:
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci	&ssc0 {
4662306a36Sopenharmony_ci		#sound-dai-cells = <0>;
4762306a36Sopenharmony_ci
4862306a36Sopenharmony_ci	};
4962306a36Sopenharmony_ci
5062306a36Sopenharmony_ci	&i2c {
5162306a36Sopenharmony_ci		codec: pcm5142@4c {
5262306a36Sopenharmony_ci			compatible = "ti,pcm5142";
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci			reg = <0x4c>;
5562306a36Sopenharmony_ci
5662306a36Sopenharmony_ci			AVDD-supply = <&reg_3v3>;
5762306a36Sopenharmony_ci			DVDD-supply = <&reg_3v3>;
5862306a36Sopenharmony_ci			CPVDD-supply = <&reg_3v3>;
5962306a36Sopenharmony_ci
6062306a36Sopenharmony_ci			clocks = <&sck>;
6162306a36Sopenharmony_ci
6262306a36Sopenharmony_ci			pll-in = <3>;
6362306a36Sopenharmony_ci			pll-out = <6>;
6462306a36Sopenharmony_ci		};
6562306a36Sopenharmony_ci	};
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci	ana: ana-reg {
6862306a36Sopenharmony_ci		compatible = "pwm-regulator";
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci		regulator-name = "ANA";
7162306a36Sopenharmony_ci
7262306a36Sopenharmony_ci		pwms = <&pwm0 2 1000 PWM_POLARITY_INVERTED>;
7362306a36Sopenharmony_ci		pwm-dutycycle-unit = <1000>;
7462306a36Sopenharmony_ci		pwm-dutycycle-range = <100 1000>;
7562306a36Sopenharmony_ci
7662306a36Sopenharmony_ci		regulator-min-microvolt = <2000000>;
7762306a36Sopenharmony_ci		regulator-max-microvolt = <20000000>;
7862306a36Sopenharmony_ci		regulator-ramp-delay = <1000>;
7962306a36Sopenharmony_ci	};
8062306a36Sopenharmony_ci
8162306a36Sopenharmony_ci	sound {
8262306a36Sopenharmony_ci		compatible = "axentia,tse850-pcm5142";
8362306a36Sopenharmony_ci
8462306a36Sopenharmony_ci		axentia,cpu-dai = <&ssc0>;
8562306a36Sopenharmony_ci		axentia,audio-codec = <&codec>;
8662306a36Sopenharmony_ci
8762306a36Sopenharmony_ci		axentia,add-gpios = <&pioA 8 GPIO_ACTIVE_LOW>;
8862306a36Sopenharmony_ci		axentia,loop1-gpios = <&pioA 10 GPIO_ACTIVE_LOW>;
8962306a36Sopenharmony_ci		axentia,loop2-gpios = <&pioA 11 GPIO_ACTIVE_LOW>;
9062306a36Sopenharmony_ci
9162306a36Sopenharmony_ci		axentia,ana-supply = <&ana>;
9262306a36Sopenharmony_ci	};
93