arm64: tegra: Audio graph sound card for Jetson Nano and TX1
Enable support for audio-graph based sound card on Jetson-Nano and Jetson-TX1. Depending on the platform, required I/O interfaces are enabled. * Jetson-Nano: Enable I2S3, I2S4, DMIC1 and DMIC2. * Jetson-TX1: Enable all I2S and DMIC interfaces. Signed-off-by: Sameer Pujar <spujar@nvidia.com> Reviewed-by: Jon Hunter <jonathanh@nvidia.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
This commit is contained in:
parent
f5208672eb
commit
b0b4e286f9
2 changed files with 462 additions and 0 deletions
|
|
@ -126,5 +126,304 @@
|
|||
interrupt-controller@702f9000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ahub@702d0800 {
|
||||
status = "okay";
|
||||
|
||||
admaif@702d0000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2s@702d1000 {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
i2s1_cif_ep: endpoint {
|
||||
remote-endpoint = <&xbar_i2s1_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
i2s1_port: port@1 {
|
||||
reg = <1>;
|
||||
|
||||
i2s1_dap_ep: endpoint {
|
||||
dai-format = "i2s";
|
||||
/* Placeholder for external Codec */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
i2s@702d1100 {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
i2s2_cif_ep: endpoint {
|
||||
remote-endpoint = <&xbar_i2s2_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
i2s2_port: port@1 {
|
||||
reg = <1>;
|
||||
|
||||
i2s2_dap_ep: endpoint {
|
||||
dai-format = "i2s";
|
||||
/* Placeholder for external Codec */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
i2s@702d1200 {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
i2s3_cif_ep: endpoint {
|
||||
remote-endpoint = <&xbar_i2s3_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
i2s3_port: port@1 {
|
||||
reg = <1>;
|
||||
|
||||
i2s3_dap_ep: endpoint {
|
||||
dai-format = "i2s";
|
||||
/* Placeholder for external Codec */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
i2s@702d1300 {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
i2s4_cif_ep: endpoint {
|
||||
remote-endpoint = <&xbar_i2s4_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
i2s4_port: port@1 {
|
||||
reg = <1>;
|
||||
|
||||
i2s4_dap_ep: endpoint {
|
||||
dai-format = "i2s";
|
||||
/* Placeholder for external Codec */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
i2s@702d1400 {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
i2s5_cif_ep: endpoint {
|
||||
remote-endpoint = <&xbar_i2s5_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
i2s5_port: port@1 {
|
||||
reg = <1>;
|
||||
|
||||
i2s5_dap_ep: endpoint {
|
||||
dai-format = "i2s";
|
||||
/* Placeholder for external Codec */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dmic@702d4000 {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
dmic1_cif_ep: endpoint {
|
||||
remote-endpoint = <&xbar_dmic1_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
dmic1_port: port@1 {
|
||||
reg = <1>;
|
||||
|
||||
dmic1_dap_ep: endpoint {
|
||||
/* Placeholder for external Codec */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dmic@702d4100 {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
dmic2_cif_ep: endpoint {
|
||||
remote-endpoint = <&xbar_dmic2_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
dmic2_port: port@1 {
|
||||
reg = <1>;
|
||||
|
||||
dmic2_dap_ep: endpoint {
|
||||
/* Placeholder for external Codec */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dmic@702d4200 {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
dmic3_cif_ep: endpoint {
|
||||
remote-endpoint = <&xbar_dmic3_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
dmic3_port: port@1 {
|
||||
reg = <1>;
|
||||
|
||||
dmic3_dap_ep: endpoint {
|
||||
/* Placeholder for external Codec */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ports {
|
||||
xbar_i2s1_port: port@a {
|
||||
reg = <0xa>;
|
||||
|
||||
xbar_i2s1_ep: endpoint {
|
||||
remote-endpoint = <&i2s1_cif_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
xbar_i2s2_port: port@b {
|
||||
reg = <0xb>;
|
||||
|
||||
xbar_i2s2_ep: endpoint {
|
||||
remote-endpoint = <&i2s2_cif_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
xbar_i2s3_port: port@c {
|
||||
reg = <0xc>;
|
||||
|
||||
xbar_i2s3_ep: endpoint {
|
||||
remote-endpoint = <&i2s3_cif_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
xbar_i2s4_port: port@d {
|
||||
reg = <0xd>;
|
||||
|
||||
xbar_i2s4_ep: endpoint {
|
||||
remote-endpoint = <&i2s4_cif_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
xbar_i2s5_port: port@e {
|
||||
reg = <0xe>;
|
||||
|
||||
xbar_i2s5_ep: endpoint {
|
||||
remote-endpoint = <&i2s5_cif_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
xbar_dmic1_port: port@f {
|
||||
reg = <0xf>;
|
||||
|
||||
xbar_dmic1_ep: endpoint {
|
||||
remote-endpoint = <&dmic1_cif_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
xbar_dmic2_port: port@10 {
|
||||
reg = <0x10>;
|
||||
|
||||
xbar_dmic2_ep: endpoint {
|
||||
remote-endpoint = <&dmic2_cif_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
xbar_dmic3_port: port@11 {
|
||||
reg = <0x11>;
|
||||
|
||||
xbar_dmic3_ep: endpoint {
|
||||
remote-endpoint = <&dmic3_cif_ep>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "nvidia,tegra210-audio-graph-card";
|
||||
status = "okay";
|
||||
|
||||
dais = /* FE */
|
||||
<&admaif1_port>, <&admaif2_port>, <&admaif3_port>,
|
||||
<&admaif4_port>, <&admaif5_port>, <&admaif6_port>,
|
||||
<&admaif7_port>, <&admaif8_port>, <&admaif9_port>,
|
||||
<&admaif10_port>,
|
||||
/* Router */
|
||||
<&xbar_i2s1_port>, <&xbar_i2s2_port>, <&xbar_i2s3_port>,
|
||||
<&xbar_i2s4_port>, <&xbar_i2s5_port>, <&xbar_dmic1_port>,
|
||||
<&xbar_dmic2_port>, <&xbar_dmic3_port>,
|
||||
/* I/O DAP Ports */
|
||||
<&i2s1_port>, <&i2s2_port>, <&i2s3_port>, <&i2s4_port>,
|
||||
<&i2s5_port>, <&dmic1_port>, <&dmic2_port>, <&dmic3_port>;
|
||||
|
||||
label = "jetson-tx1-ape";
|
||||
};
|
||||
};
|
||||
|
|
|
|||
|
|
@ -636,6 +636,150 @@
|
|||
interrupt-controller@702f9000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
ahub@702d0800 {
|
||||
status = "okay";
|
||||
|
||||
admaif@702d0000 {
|
||||
status = "okay";
|
||||
};
|
||||
|
||||
i2s@702d1200 {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
i2s3_cif_ep: endpoint {
|
||||
remote-endpoint = <&xbar_i2s3_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
i2s3_port: port@1 {
|
||||
reg = <1>;
|
||||
|
||||
i2s3_dap_ep: endpoint {
|
||||
dai-format = "i2s";
|
||||
/* Placeholder for external Codec */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
i2s@702d1300 {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
i2s4_cif_ep: endpoint {
|
||||
remote-endpoint = <&xbar_i2s4_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
i2s4_port: port@1 {
|
||||
reg = <1>;
|
||||
|
||||
i2s4_dap_ep: endpoint@0 {
|
||||
dai-format = "i2s";
|
||||
/* Placeholder for external Codec */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dmic@702d4000 {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
dmic1_cif_ep: endpoint@0 {
|
||||
remote-endpoint = <&xbar_dmic1_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
dmic1_port: port@1 {
|
||||
reg = <1>;
|
||||
|
||||
dmic1_dap_ep: endpoint@0 {
|
||||
/* Placeholder for external Codec */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
dmic@702d4100 {
|
||||
status = "okay";
|
||||
|
||||
ports {
|
||||
#address-cells = <1>;
|
||||
#size-cells = <0>;
|
||||
|
||||
port@0 {
|
||||
reg = <0>;
|
||||
|
||||
dmic2_cif_ep: endpoint@0 {
|
||||
remote-endpoint = <&xbar_dmic2_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
dmic2_port: port@1 {
|
||||
reg = <1>;
|
||||
|
||||
dmic2_dap_ep: endpoint@0 {
|
||||
/* Placeholder for external Codec */
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
ports {
|
||||
xbar_i2s3_port: port@c {
|
||||
reg = <0xc>;
|
||||
|
||||
xbar_i2s3_ep: endpoint {
|
||||
remote-endpoint = <&i2s3_cif_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
xbar_i2s4_port: port@d {
|
||||
reg = <0xd>;
|
||||
|
||||
xbar_i2s4_ep: endpoint {
|
||||
remote-endpoint = <&i2s4_cif_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
xbar_dmic1_port: port@f {
|
||||
reg = <0xf>;
|
||||
|
||||
xbar_dmic1_ep: endpoint {
|
||||
remote-endpoint = <&dmic1_cif_ep>;
|
||||
};
|
||||
};
|
||||
|
||||
xbar_dmic2_port: port@10 {
|
||||
reg = <0x10>;
|
||||
|
||||
xbar_dmic2_ep: endpoint {
|
||||
remote-endpoint = <&dmic2_cif_ep>;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
clk32k_in: clock@0 {
|
||||
|
|
@ -870,4 +1014,23 @@
|
|||
|
||||
vin-supply = <&vdd_5v0_sys>;
|
||||
};
|
||||
|
||||
sound {
|
||||
compatible = "nvidia,tegra210-audio-graph-card";
|
||||
status = "okay";
|
||||
|
||||
dais = /* FE */
|
||||
<&admaif1_port>, <&admaif2_port>, <&admaif3_port>,
|
||||
<&admaif4_port>, <&admaif5_port>, <&admaif6_port>,
|
||||
<&admaif7_port>, <&admaif8_port>, <&admaif9_port>,
|
||||
<&admaif10_port>,
|
||||
/* Router */
|
||||
<&xbar_i2s3_port>, <&xbar_i2s4_port>,
|
||||
<&xbar_dmic1_port>, <&xbar_dmic2_port>,
|
||||
/* I/O DAP Ports */
|
||||
<&i2s3_port>, <&i2s4_port>,
|
||||
<&dmic1_port>, <&dmic2_port>;
|
||||
|
||||
label = "jetson-nano-ape";
|
||||
};
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue