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 = <®_3v3>; 5762306a36Sopenharmony_ci DVDD-supply = <®_3v3>; 5862306a36Sopenharmony_ci CPVDD-supply = <®_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