Tom Rini | 53633a8 | 2024-02-29 12:33:36 -0500 | [diff] [blame] | 1 | Devicetree bindings for the Axentia TSE-850 audio complex |
| 2 | |
| 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. |
| 12 | |
| 13 | The schematics explaining the gpios are as follows: |
| 14 | |
| 15 | loop1 relays |
| 16 | IN1 +---o +------------+ o---+ OUT1 |
| 17 | \ / |
| 18 | + + |
| 19 | | / | |
| 20 | +--o +--. | |
| 21 | | add | | |
| 22 | | V | |
| 23 | | .---. | |
| 24 | DAC +----------->|Sum|---+ |
| 25 | | '---' | |
| 26 | | | |
| 27 | + + |
| 28 | |
| 29 | IN2 +---o--+------------+--o---+ OUT2 |
| 30 | loop2 relays |
| 31 | |
| 32 | The 'loop1' gpio pin controls 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'. |
| 36 | |
| 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. |
| 42 | |
| 43 | Example: |
| 44 | |
| 45 | &ssc0 { |
| 46 | #sound-dai-cells = <0>; |
| 47 | |
| 48 | }; |
| 49 | |
| 50 | &i2c { |
| 51 | codec: pcm5142@4c { |
| 52 | compatible = "ti,pcm5142"; |
| 53 | |
| 54 | reg = <0x4c>; |
| 55 | |
| 56 | AVDD-supply = <®_3v3>; |
| 57 | DVDD-supply = <®_3v3>; |
| 58 | CPVDD-supply = <®_3v3>; |
| 59 | |
| 60 | clocks = <&sck>; |
| 61 | |
| 62 | pll-in = <3>; |
| 63 | pll-out = <6>; |
| 64 | }; |
| 65 | }; |
| 66 | |
| 67 | ana: ana-reg { |
| 68 | compatible = "pwm-regulator"; |
| 69 | |
| 70 | regulator-name = "ANA"; |
| 71 | |
| 72 | pwms = <&pwm0 2 1000 PWM_POLARITY_INVERTED>; |
| 73 | pwm-dutycycle-unit = <1000>; |
| 74 | pwm-dutycycle-range = <100 1000>; |
| 75 | |
| 76 | regulator-min-microvolt = <2000000>; |
| 77 | regulator-max-microvolt = <20000000>; |
| 78 | regulator-ramp-delay = <1000>; |
| 79 | }; |
| 80 | |
| 81 | sound { |
| 82 | compatible = "axentia,tse850-pcm5142"; |
| 83 | |
| 84 | axentia,cpu-dai = <&ssc0>; |
| 85 | axentia,audio-codec = <&codec>; |
| 86 | |
| 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>; |
| 90 | |
| 91 | axentia,ana-supply = <&ana>; |
| 92 | }; |