Skip to content

Commit

Permalink
WIP: arm64: dts: meson: add audio playback to u200
Browse files Browse the repository at this point in the history
Add initial support limited to HDMI i2s and SPDIF (LPCM).

Signed-off-by: Christian Hewitt <christianshewitt@gmail.com>
  • Loading branch information
chewitt committed May 18, 2020
1 parent f09d346 commit 0a17eb8
Showing 1 changed file with 131 additions and 0 deletions.
131 changes: 131 additions & 0 deletions arch/arm64/boot/dts/amlogic/meson-g12a-u200.dts
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
#include "meson-g12a.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/gpio/meson-g12a-gpio.h>
#include <dt-bindings/sound/meson-g12a-tohdmitx.h>

/ {
compatible = "amlogic,u200", "amlogic,g12a";
Expand All @@ -18,6 +19,13 @@
ethernet0 = &ethmac;
};

spdif_dit: audio-codec-1 {
#sound-dai-cells = <0>;
compatible = "linux,spdif-dit";
status = "okay";
sound-name-prefix = "DIT";
};

chosen {
stdout-path = "serial0:115200n8";
};
Expand Down Expand Up @@ -147,6 +155,91 @@
regulator-boot-on;
regulator-always-on;
};


sound {
compatible = "amlogic,axg-sound-card";
model = "G12A-U200";
audio-aux-devs = <&tdmout_b>;
audio-routing = "TDMOUT_B IN 0", "FRDDR_A OUT 1",
"TDMOUT_B IN 1", "FRDDR_B OUT 1",
"TDMOUT_B IN 2", "FRDDR_C OUT 1",
"TDM_B Playback", "TDMOUT_B OUT",
"SPDIFOUT IN 0", "FRDDR_A OUT 3",
"SPDIFOUT IN 1", "FRDDR_B OUT 3",
"SPDIFOUT IN 2", "FRDDR_C OUT 3";

assigned-clocks = <&clkc CLKID_MPLL2>,
<&clkc CLKID_MPLL0>,
<&clkc CLKID_MPLL1>;
assigned-clock-parents = <0>, <0>, <0>;
assigned-clock-rates = <294912000>,
<270950400>,
<393216000>;
status = "okay";

dai-link-0 {
sound-dai = <&frddr_a>;
};

dai-link-1 {
sound-dai = <&frddr_b>;
};

dai-link-2 {
sound-dai = <&frddr_c>;
};

/* 8ch hdmi interface */
dai-link-3 {
sound-dai = <&tdmif_b>;
dai-format = "i2s";
dai-tdm-slot-tx-mask-0 = <1 1>;
dai-tdm-slot-tx-mask-1 = <1 1>;
dai-tdm-slot-tx-mask-2 = <1 1>;
dai-tdm-slot-tx-mask-3 = <1 1>;
mclk-fs = <256>;

codec {
sound-dai = <&tohdmitx TOHDMITX_I2S_IN_B>;
};
};

/* spdif hdmi or toslink interface */
dai-link-4 {
sound-dai = <&spdifout>;

codec-0 {
sound-dai = <&spdif_dit>;
};

codec-1 {
sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_A>;
};
};

/* spdif hdmi interface */
dai-link-5 {
sound-dai = <&spdifout_b>;

codec {
sound-dai = <&tohdmitx TOHDMITX_SPDIF_IN_B>;
};
};

/* hdmi glue */
dai-link-6 {
sound-dai = <&tohdmitx TOHDMITX_I2S_OUT>;

codec {
sound-dai = <&hdmi_tx>;
};
};
};
};

&arb {
status = "okay";
};

&cec_AO {
Expand All @@ -163,6 +256,10 @@
hdmi-phandle = <&hdmi_tx>;
};

&clkc_audio {
status = "okay";
};

&cpu0 {
cpu-supply = <&vddcpu>;
operating-points-v2 = <&cpu_opp_table>;
Expand Down Expand Up @@ -203,6 +300,18 @@
phy-mode = "rmii";
};

&frddr_a {
status = "okay";
};

&frddr_b {
status = "okay";
};

&frddr_c {
status = "okay";
};

&hdmi_tx {
status = "okay";
pinctrl-0 = <&hdmitx_hpd_pins>, <&hdmitx_ddc_pins>;
Expand Down Expand Up @@ -288,6 +397,28 @@
vqmmc-supply = <&flash_1v8>;
};

&spdifout {
pinctrl-0 = <&spdif_out_h_pins>;
pinctrl-names = "default";
status = "okay";
};

&spdifout_b {
status = "okay";
};

&tdmif_b {
status = "okay";
};

&tdmout_b {
status = "okay";
};

&tohdmitx {
status = "okay";
};

&uart_AO {
status = "okay";
pinctrl-0 = <&uart_ao_a_pins>;
Expand Down

0 comments on commit 0a17eb8

Please sign in to comment.