18c2ecf20Sopenharmony_ciDevicetree bindings for the Axentia TSE-850 audio complex 28c2ecf20Sopenharmony_ci 38c2ecf20Sopenharmony_ciRequired properties: 48c2ecf20Sopenharmony_ci - compatible: "axentia,tse850-pcm5142" 58c2ecf20Sopenharmony_ci - axentia,cpu-dai: The phandle of the cpu dai. 68c2ecf20Sopenharmony_ci - axentia,audio-codec: The phandle of the PCM5142 codec. 78c2ecf20Sopenharmony_ci - axentia,add-gpios: gpio specifier that controls the mixer. 88c2ecf20Sopenharmony_ci - axentia,loop1-gpios: gpio specifier that controls loop relays on channel 1. 98c2ecf20Sopenharmony_ci - axentia,loop2-gpios: gpio specifier that controls loop relays on channel 2. 108c2ecf20Sopenharmony_ci - axentia,ana-supply: Regulator that supplies the output amplifier. Must 118c2ecf20Sopenharmony_ci support voltages in the 2V - 20V range, in 1V steps. 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_ciThe schematics explaining the gpios are as follows: 148c2ecf20Sopenharmony_ci 158c2ecf20Sopenharmony_ci loop1 relays 168c2ecf20Sopenharmony_ci IN1 +---o +------------+ o---+ OUT1 178c2ecf20Sopenharmony_ci \ / 188c2ecf20Sopenharmony_ci + + 198c2ecf20Sopenharmony_ci | / | 208c2ecf20Sopenharmony_ci +--o +--. | 218c2ecf20Sopenharmony_ci | add | | 228c2ecf20Sopenharmony_ci | V | 238c2ecf20Sopenharmony_ci | .---. | 248c2ecf20Sopenharmony_ci DAC +----------->|Sum|---+ 258c2ecf20Sopenharmony_ci | '---' | 268c2ecf20Sopenharmony_ci | | 278c2ecf20Sopenharmony_ci + + 288c2ecf20Sopenharmony_ci 298c2ecf20Sopenharmony_ci IN2 +---o--+------------+--o---+ OUT2 308c2ecf20Sopenharmony_ci loop2 relays 318c2ecf20Sopenharmony_ci 328c2ecf20Sopenharmony_ciThe 'loop1' gpio pin controlls two relays, which are either in loop position, 338c2ecf20Sopenharmony_cimeaning that input and output are directly connected, or they are in mixer 348c2ecf20Sopenharmony_ciposition, meaning that the signal is passed through the 'Sum' mixer. Similarly 358c2ecf20Sopenharmony_cifor 'loop2'. 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ciIn the above, the 'loop1' relays are inactive, thus feeding IN1 to the mixer 388c2ecf20Sopenharmony_ci(if 'add' is active) and feeding the mixer output to OUT1. The 'loop2' relays 398c2ecf20Sopenharmony_ciare active, short-cutting the TSE-850 from channel 2. IN1, IN2, OUT1 and OUT2 408c2ecf20Sopenharmony_ciare TSE-850 connectors and DAC is the PCB name of the (filtered) output from 418c2ecf20Sopenharmony_cithe PCM5142 codec. 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ciExample: 448c2ecf20Sopenharmony_ci 458c2ecf20Sopenharmony_ci &ssc0 { 468c2ecf20Sopenharmony_ci #sound-dai-cells = <0>; 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci }; 498c2ecf20Sopenharmony_ci 508c2ecf20Sopenharmony_ci &i2c { 518c2ecf20Sopenharmony_ci codec: pcm5142@4c { 528c2ecf20Sopenharmony_ci compatible = "ti,pcm5142"; 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci reg = <0x4c>; 558c2ecf20Sopenharmony_ci 568c2ecf20Sopenharmony_ci AVDD-supply = <®_3v3>; 578c2ecf20Sopenharmony_ci DVDD-supply = <®_3v3>; 588c2ecf20Sopenharmony_ci CPVDD-supply = <®_3v3>; 598c2ecf20Sopenharmony_ci 608c2ecf20Sopenharmony_ci clocks = <&sck>; 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci pll-in = <3>; 638c2ecf20Sopenharmony_ci pll-out = <6>; 648c2ecf20Sopenharmony_ci }; 658c2ecf20Sopenharmony_ci }; 668c2ecf20Sopenharmony_ci 678c2ecf20Sopenharmony_ci ana: ana-reg { 688c2ecf20Sopenharmony_ci compatible = "pwm-regulator"; 698c2ecf20Sopenharmony_ci 708c2ecf20Sopenharmony_ci regulator-name = "ANA"; 718c2ecf20Sopenharmony_ci 728c2ecf20Sopenharmony_ci pwms = <&pwm0 2 1000 PWM_POLARITY_INVERTED>; 738c2ecf20Sopenharmony_ci pwm-dutycycle-unit = <1000>; 748c2ecf20Sopenharmony_ci pwm-dutycycle-range = <100 1000>; 758c2ecf20Sopenharmony_ci 768c2ecf20Sopenharmony_ci regulator-min-microvolt = <2000000>; 778c2ecf20Sopenharmony_ci regulator-max-microvolt = <20000000>; 788c2ecf20Sopenharmony_ci regulator-ramp-delay = <1000>; 798c2ecf20Sopenharmony_ci }; 808c2ecf20Sopenharmony_ci 818c2ecf20Sopenharmony_ci sound { 828c2ecf20Sopenharmony_ci compatible = "axentia,tse850-pcm5142"; 838c2ecf20Sopenharmony_ci 848c2ecf20Sopenharmony_ci axentia,cpu-dai = <&ssc0>; 858c2ecf20Sopenharmony_ci axentia,audio-codec = <&codec>; 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci axentia,add-gpios = <&pioA 8 GPIO_ACTIVE_LOW>; 888c2ecf20Sopenharmony_ci axentia,loop1-gpios = <&pioA 10 GPIO_ACTIVE_LOW>; 898c2ecf20Sopenharmony_ci axentia,loop2-gpios = <&pioA 11 GPIO_ACTIVE_LOW>; 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci axentia,ana-supply = <&ana>; 928c2ecf20Sopenharmony_ci }; 93