Skip to content

Commit ed3aad5

Browse files
Peter UjfalusiTero Kristo
authored andcommitted
arm64: dts: ti: j721e-common-proc-board: Analog audio support
The codec is wired in multi DIN/DOUT setup (DIN1/2/3/4/DOUT1/2/3 is connected to McASP serializer). To support wide range of audio features a generic sound card can not be used since we need to use different reference clock source for 44.1 and 48 KHz family of sampling rates. Depending on the sample size we also need to use different slot width to be able to support 16 and 24 bits. There are couple of notable difference compared to DIN1/DOUT1 mode: the channel mapping is 'random' for first look compared to the single serializer setup: _ _ _ |o|c1 |o|p1 |o|p3 _ | | | | | | |o|c3 |o|c2 |o|p4 |o|p2 ------------------------ c1/2/3 - capture jacks (3rd is line) p1/2/3/4 - playback jacks (4th is line) 2 channel audio (stereo): 0 (left): p1/c1 left 1 (right): p1/c1 right 4 channel audio: 0: p1/c1 left 1: p2/c2 left 2: p1/c1 right 3: p2/c2 right 6 channel audio 0: p1/c1 left 1: p2/c2 left 2: p3/c3 left 3: p1/c1 right 4: p2/c2 right 5: p3/c3 right 8 channel audio 0: p1/c1 left 1: p2/c2 left 2: p3/c3 left 3: p4 left 4: p1/c1 right 5: p2/c2 right 6: p3/c3 right 7: p4 right Signed-off-by: Peter Ujfalusi <[email protected]> Signed-off-by: Tero Kristo <[email protected]>
1 parent ebf5ecc commit ed3aad5

File tree

1 file changed

+136
-0
lines changed

1 file changed

+136
-0
lines changed

arch/arm64/boot/dts/ti/k3-j721e-common-proc-board.dts

Lines changed: 136 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,55 @@
3434
gpios = <&wkup_gpio0 7 GPIO_ACTIVE_LOW>;
3535
};
3636
};
37+
38+
evm_12v0: fixedregulator-evm12v0 {
39+
/* main supply */
40+
compatible = "regulator-fixed";
41+
regulator-name = "evm_12v0";
42+
regulator-min-microvolt = <12000000>;
43+
regulator-max-microvolt = <12000000>;
44+
regulator-always-on;
45+
regulator-boot-on;
46+
};
47+
48+
vsys_3v3: fixedregulator-vsys3v3 {
49+
/* Output of LMS140 */
50+
compatible = "regulator-fixed";
51+
regulator-name = "vsys_3v3";
52+
regulator-min-microvolt = <3300000>;
53+
regulator-max-microvolt = <3300000>;
54+
vin-supply = <&evm_12v0>;
55+
regulator-always-on;
56+
regulator-boot-on;
57+
};
58+
59+
vsys_5v0: fixedregulator-vsys5v0 {
60+
/* Output of LM5140 */
61+
compatible = "regulator-fixed";
62+
regulator-name = "vsys_5v0";
63+
regulator-min-microvolt = <5000000>;
64+
regulator-max-microvolt = <5000000>;
65+
vin-supply = <&evm_12v0>;
66+
regulator-always-on;
67+
regulator-boot-on;
68+
};
69+
70+
sound0: sound@0 {
71+
compatible = "ti,j721e-cpb-audio";
72+
model = "j721e-cpb";
73+
74+
ti,cpb-mcasp = <&mcasp10>;
75+
ti,cpb-codec = <&pcm3168a_1>;
76+
77+
clocks = <&k3_clks 184 1>,
78+
<&k3_clks 184 2>, <&k3_clks 184 4>,
79+
<&k3_clks 157 371>,
80+
<&k3_clks 157 400>, <&k3_clks 157 401>;
81+
clock-names = "cpb-mcasp-auxclk",
82+
"cpb-mcasp-auxclk-48000", "cpb-mcasp-auxclk-44100",
83+
"cpb-codec-scki",
84+
"cpb-codec-scki-48000", "cpb-codec-scki-44100";
85+
};
3786
};
3887

3988
&main_pmx0 {
@@ -102,6 +151,26 @@
102151
J721E_IOPAD(0x1e4, PIN_INPUT_PULLUP, 2) /* (Y2) SPI1_D1.I2C6_SDA */
103152
>;
104153
};
154+
155+
mcasp10_pins_default: mcasp10_pins_default {
156+
pinctrl-single,pins = <
157+
J721E_IOPAD(0x158, PIN_OUTPUT_PULLDOWN, 12) /* (U23) RGMII5_TX_CTL.MCASP10_ACLKX */
158+
J721E_IOPAD(0x15c, PIN_OUTPUT_PULLDOWN, 12) /* (U26) RGMII5_RX_CTL.MCASP10_AFSX */
159+
J721E_IOPAD(0x160, PIN_OUTPUT_PULLDOWN, 12) /* (V28) RGMII5_TD3.MCASP10_AXR0 */
160+
J721E_IOPAD(0x164, PIN_OUTPUT_PULLDOWN, 12) /* (V29) RGMII5_TD2.MCASP10_AXR1 */
161+
J721E_IOPAD(0x170, PIN_OUTPUT_PULLDOWN, 12) /* (U29) RGMII5_TXC.MCASP10_AXR2 */
162+
J721E_IOPAD(0x174, PIN_OUTPUT_PULLDOWN, 12) /* (U25) RGMII5_RXC.MCASP10_AXR3 */
163+
J721E_IOPAD(0x198, PIN_INPUT_PULLDOWN, 12) /* (V25) RGMII6_TD1.MCASP10_AXR4 */
164+
J721E_IOPAD(0x19c, PIN_INPUT_PULLDOWN, 12) /* (W27) RGMII6_TD0.MCASP10_AXR5 */
165+
J721E_IOPAD(0x1a0, PIN_INPUT_PULLDOWN, 12) /* (W29) RGMII6_TXC.MCASP10_AXR6 */
166+
>;
167+
};
168+
169+
audi_ext_refclk2_pins_default: audi_ext_refclk2_pins_default {
170+
pinctrl-single,pins = <
171+
J721E_IOPAD(0x1a4, PIN_OUTPUT, 3) /* (W26) RGMII6_RXC.AUDIO_EXT_REFCLK2 */
172+
>;
173+
};
105174
};
106175

107176
&wkup_pmx0 {
@@ -401,6 +470,22 @@
401470
reg = <0x22>;
402471
gpio-controller;
403472
#gpio-cells = <2>;
473+
474+
p09 {
475+
/* P11 - MCASP/TRACE_MUX_S0 */
476+
gpio-hog;
477+
gpios = <9 GPIO_ACTIVE_HIGH>;
478+
output-low;
479+
line-name = "MCASP/TRACE_MUX_S0";
480+
};
481+
482+
p10 {
483+
/* P12 - MCASP/TRACE_MUX_S1 */
484+
gpio-hog;
485+
gpios = <10 GPIO_ACTIVE_HIGH>;
486+
output-high;
487+
line-name = "MCASP/TRACE_MUX_S1";
488+
};
404489
};
405490
};
406491

@@ -423,6 +508,12 @@
423508
};
424509
};
425510

511+
&k3_clks {
512+
/* Confiure AUDIO_EXT_REFCLK2 pin as output */
513+
pinctrl-names = "default";
514+
pinctrl-0 = <&audi_ext_refclk2_pins_default>;
515+
};
516+
426517
&main_i2c3 {
427518
pinctrl-names = "default";
428519
pinctrl-0 = <&main_i2c3_pins_default>;
@@ -434,6 +525,31 @@
434525
gpio-controller;
435526
#gpio-cells = <2>;
436527
};
528+
529+
pcm3168a_1: audio-codec@44 {
530+
compatible = "ti,pcm3168a";
531+
reg = <0x44>;
532+
533+
#sound-dai-cells = <1>;
534+
535+
reset-gpios = <&exp3 0 GPIO_ACTIVE_LOW>;
536+
537+
/* C_AUDIO_REFCLK2 -> RGMII6_RXC (W26) */
538+
clocks = <&k3_clks 157 371>;
539+
clock-names = "scki";
540+
541+
/* HSDIV3_16FFT_MAIN_4_HSDIVOUT2_CLK -> REFCLK2 */
542+
assigned-clocks = <&k3_clks 157 371>;
543+
assigned-clock-parents = <&k3_clks 157 400>;
544+
assigned-clock-rates = <24576000>; /* for 48KHz */
545+
546+
VDD1-supply = <&vsys_3v3>;
547+
VDD2-supply = <&vsys_3v3>;
548+
VCCAD1-supply = <&vsys_5v0>;
549+
VCCAD2-supply = <&vsys_5v0>;
550+
VCCDA1-supply = <&vsys_5v0>;
551+
VCCDA2-supply = <&vsys_5v0>;
552+
};
437553
};
438554

439555
&main_i2c6 {
@@ -486,3 +602,23 @@
486602
<&k3_clks 152 11>, /* PLL18_HSDIV0 */
487603
<&k3_clks 152 18>; /* PLL23_HSDIV0 */
488604
};
605+
606+
&mcasp10 {
607+
#sound-dai-cells = <0>;
608+
609+
pinctrl-names = "default";
610+
pinctrl-0 = <&mcasp10_pins_default>;
611+
612+
op-mode = <0>; /* MCASP_IIS_MODE */
613+
tdm-slots = <2>;
614+
auxclk-fs-ratio = <256>;
615+
616+
serial-dir = < /* 0: INACTIVE, 1: TX, 2: RX */
617+
1 1 1 1
618+
2 2 2 0
619+
>;
620+
tx-num-evt = <0>;
621+
rx-num-evt = <0>;
622+
623+
status = "okay";
624+
};

0 commit comments

Comments
 (0)