Commit afcb41e3 authored by Sameer Pujar's avatar Sameer Pujar Committed by Thierry Reding
Browse files

arm64: tegra: Enable OPE on various platforms



Enable OPE module usage on various Jetson platforms. This can be plugged
into an audio path using ALSA mixer controls. Add audio-graph-port binding
to use OPE device with generic audio-graph based sound card.

Signed-off-by: default avatarSameer Pujar <spujar@nvidia.com>
Signed-off-by: default avatarThierry Reding <treding@nvidia.com>
parent 4b6a1b7c
Loading
Loading
Loading
Loading
+43 −0
Original line number Diff line number Diff line
@@ -915,6 +915,22 @@ xbar_asrc_in7_ep: endpoint {
						remote-endpoint = <&asrc_in7_ep>;
					};
				};

				xbar_ope1_in_port: port@70 {
					reg = <0x70>;

					xbar_ope1_in_ep: endpoint {
						remote-endpoint = <&ope1_cif_in_ep>;
					};
				};

				port@71 {
					reg = <0x71>;

					xbar_ope1_out_ep: endpoint {
						remote-endpoint = <&ope1_cif_out_ep>;
					};
				};
			};

			admaif@290f000 {
@@ -1911,6 +1927,31 @@ adx4_out4_ep: endpoint {
				};
			};

			processing-engine@2908000 {
				status = "okay";

				ports {
					#address-cells = <1>;
					#size-cells = <0>;

					port@0 {
						reg = <0x0>;

						ope1_cif_in_ep: endpoint {
							remote-endpoint = <&xbar_ope1_in_ep>;
						};
					};

					ope1_out_port: port@1 {
						reg = <0x1>;

						ope1_cif_out_ep: endpoint {
							remote-endpoint = <&xbar_ope1_out_ep>;
						};
					};
				};
			};

			amixer@290bb00 {
				status = "okay";

@@ -2552,6 +2593,7 @@ sound {
		       <&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>,
		       <&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>,
		       <&xbar_asrc_in7_port>,
		       <&xbar_ope1_in_port>,
		       /* HW accelerators */
		       <&sfc1_out_port>, <&sfc2_out_port>,
		       <&sfc3_out_port>, <&sfc4_out_port>,
@@ -2571,6 +2613,7 @@ sound {
		       <&mixer_out5_port>,
		       <&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>,
		       <&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>,
		       <&ope1_out_port>,
		       /* I/O */
		       <&i2s1_port>, <&i2s2_port>, <&i2s3_port>, <&i2s4_port>,
		       <&i2s5_port>, <&i2s6_port>, <&dmic1_port>, <&dmic2_port>,
+43 −0
Original line number Diff line number Diff line
@@ -868,6 +868,22 @@ xbar_asrc_in7_ep: endpoint {
							remote-endpoint = <&asrc_in7_ep>;
						};
					};

					xbar_ope1_in_port: port@70 {
						reg = <0x70>;

						xbar_ope1_in_ep: endpoint {
							remote-endpoint = <&ope1_cif_in_ep>;
						};
					};

					port@71 {
						reg = <0x71>;

						xbar_ope1_out_ep: endpoint {
							remote-endpoint = <&ope1_cif_out_ep>;
						};
					};
				};

				admaif@290f000 {
@@ -1710,6 +1726,31 @@ adx4_out4_ep: endpoint {
					};
				};

				processing-engine@2908000 {
					status = "okay";

					ports {
						#address-cells = <1>;
						#size-cells = <0>;

						port@0 {
							reg = <0x0>;

							ope1_cif_in_ep: endpoint {
								remote-endpoint = <&xbar_ope1_in_ep>;
							};
						};

						ope1_out_port: port@1 {
							reg = <0x1>;

							ope1_cif_out_ep: endpoint {
								remote-endpoint = <&xbar_ope1_out_ep>;
							};
						};
					};
				};

				amixer@290bb00 {
					status = "okay";

@@ -2273,6 +2314,7 @@ sound {
		       <&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>,
		       <&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>,
		       <&xbar_asrc_in7_port>,
		       <&xbar_ope1_in_port>,
		       /* HW accelerators */
		       <&sfc1_out_port>, <&sfc2_out_port>,
		       <&sfc3_out_port>, <&sfc4_out_port>,
@@ -2291,6 +2333,7 @@ sound {
		       <&mixer_out4_port>, <&mixer_out5_port>,
		       <&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>,
		       <&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>,
		       <&ope1_out_port>,
		       /* BE I/O Ports */
		       <&i2s1_port>, <&i2s2_port>, <&i2s4_port>, <&i2s6_port>,
		       <&dmic3_port>;
+43 −0
Original line number Diff line number Diff line
@@ -878,6 +878,22 @@ xbar_asrc_in7_ep: endpoint {
							remote-endpoint = <&asrc_in7_ep>;
						};
					};

					xbar_ope1_in_port: port@70 {
						reg = <0x70>;

						xbar_ope1_in_ep: endpoint {
							remote-endpoint = <&ope1_cif_in_ep>;
						};
					};

					port@71 {
						reg = <0x71>;

						xbar_ope1_out_ep: endpoint {
							remote-endpoint = <&ope1_cif_out_ep>;
						};
					};
				};

				admaif@290f000 {
@@ -1770,6 +1786,31 @@ adx4_out4_ep: endpoint {
					};
				};

				processing-engine@2908000 {
					status = "okay";

					ports {
						#address-cells = <1>;
						#size-cells = <0>;

						port@0 {
							reg = <0x0>;

							ope1_cif_in_ep: endpoint {
								remote-endpoint = <&xbar_ope1_in_ep>;
							};
						};

						ope1_out_port: port@1 {
							reg = <0x1>;

							ope1_cif_out_ep: endpoint {
								remote-endpoint = <&xbar_ope1_out_ep>;
							};
						};
					};
				};

				amixer@290bb00 {
					status = "okay";

@@ -2323,6 +2364,7 @@ sound {
		       <&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>,
		       <&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>,
		       <&xbar_asrc_in7_port>,
		       <&xbar_ope1_in_port>,
		       /* HW accelerators */
		       <&sfc1_out_port>, <&sfc2_out_port>,
		       <&sfc3_out_port>, <&sfc4_out_port>,
@@ -2342,6 +2384,7 @@ sound {
		       <&mixer_out5_port>,
		       <&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>,
		       <&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>,
		       <&ope1_out_port>,
		       /* BE I/O Ports */
		       <&i2s3_port>, <&i2s5_port>,
		       <&dmic1_port>, <&dmic2_port>, <&dmic4_port>,
+84 −0
Original line number Diff line number Diff line
@@ -682,6 +682,56 @@ adx2_out4_ep: endpoint {
				};
			};

			processing-engine@702d8000 {
				status = "okay";

				ports {
					#address-cells = <1>;
					#size-cells = <0>;

					port@0 {
						reg = <0x0>;

						ope1_cif_in_ep: endpoint {
							remote-endpoint = <&xbar_ope1_in_ep>;
						};
					};

					ope1_out_port: port@1 {
						reg = <0x1>;

						ope1_cif_out_ep: endpoint {
							remote-endpoint = <&xbar_ope1_out_ep>;
						};
					};
				};
			};

			processing-engine@702d8400 {
				status = "okay";

				ports {
					#address-cells = <1>;
					#size-cells = <0>;

					port@0 {
						reg = <0x0>;

						ope2_cif_in_ep: endpoint {
							remote-endpoint = <&xbar_ope2_in_ep>;
						};
					};

					ope2_out_port: port@1 {
						reg = <0x1>;

						ope2_cif_out_ep: endpoint {
							remote-endpoint = <&xbar_ope2_out_ep>;
						};
					};
				};
			};

			amixer@702dbb00 {
				status = "okay";

@@ -1251,6 +1301,38 @@ xbar_mixer_out5_ep: endpoint {
						remote-endpoint = <&mixer_out5_ep>;
					};
				};

				xbar_ope1_in_port: port@41 {
					reg = <0x41>;

					xbar_ope1_in_ep: endpoint {
						remote-endpoint = <&ope1_cif_in_ep>;
					};
				};

				port@42 {
					reg = <0x42>;

					xbar_ope1_out_ep: endpoint {
						remote-endpoint = <&ope1_cif_out_ep>;
					};
				};

				xbar_ope2_in_port: port@43 {
					reg = <0x43>;

					xbar_ope2_in_ep: endpoint {
						remote-endpoint = <&ope2_cif_in_ep>;
					};
				};

				port@44 {
					reg = <0x44>;

					xbar_ope2_out_ep: endpoint {
						remote-endpoint = <&ope2_cif_out_ep>;
					};
				};
			};
		};
	};
@@ -1281,6 +1363,7 @@ sound {
		       <&xbar_mixer_in5_port>, <&xbar_mixer_in6_port>,
		       <&xbar_mixer_in7_port>, <&xbar_mixer_in8_port>,
		       <&xbar_mixer_in9_port>, <&xbar_mixer_in10_port>,
		       <&xbar_ope1_in_port>, <&xbar_ope2_in_port>,
		       /* HW accelerators */
		       <&sfc1_out_port>, <&sfc2_out_port>,
		       <&sfc3_out_port>, <&sfc4_out_port>,
@@ -1293,6 +1376,7 @@ sound {
		       <&mixer_out1_port>, <&mixer_out2_port>,
		       <&mixer_out3_port>, <&mixer_out4_port>,
		       <&mixer_out5_port>,
		       <&ope1_out_port>, <&ope2_out_port>,
		       /* I/O DAP Ports */
		       <&i2s1_port>, <&i2s2_port>, <&i2s3_port>, <&i2s4_port>,
		       <&i2s5_port>, <&dmic1_port>, <&dmic2_port>, <&dmic3_port>;
+84 −0
Original line number Diff line number Diff line
@@ -1074,6 +1074,56 @@ adx2_out4_ep: endpoint {
				};
			};

			processing-engine@702d8000 {
				status = "okay";

				ports {
					#address-cells = <1>;
					#size-cells = <0>;

					port@0 {
						reg = <0x0>;

						ope1_cif_in_ep: endpoint {
							remote-endpoint = <&xbar_ope1_in_ep>;
						};
					};

					ope1_out_port: port@1 {
						reg = <0x1>;

						ope1_cif_out_ep: endpoint {
							remote-endpoint = <&xbar_ope1_out_ep>;
						};
					};
				};
			};

			processing-engine@702d8400 {
				status = "okay";

				ports {
					#address-cells = <1>;
					#size-cells = <0>;

					port@0 {
						reg = <0x0>;

						ope2_cif_in_ep: endpoint {
							remote-endpoint = <&xbar_ope2_in_ep>;
						};
					};

					ope2_out_port: port@1 {
						reg = <0x1>;

						ope2_cif_out_ep: endpoint {
							remote-endpoint = <&xbar_ope2_out_ep>;
						};
					};
				};
			};

			amixer@702dbb00 {
				status = "okay";

@@ -1611,6 +1661,38 @@ xbar_mixer_out5_ep: endpoint {
						remote-endpoint = <&mixer_out5_ep>;
					};
				};

				xbar_ope1_in_port: port@41 {
					reg = <0x41>;

					xbar_ope1_in_ep: endpoint {
						remote-endpoint = <&ope1_cif_in_ep>;
					};
				};

				port@42 {
					reg = <0x42>;

					xbar_ope1_out_ep: endpoint {
						remote-endpoint = <&ope1_cif_out_ep>;
					};
				};

				xbar_ope2_in_port: port@43 {
					reg = <0x43>;

					xbar_ope2_in_ep: endpoint {
						remote-endpoint = <&ope2_cif_in_ep>;
					};
				};

				port@44 {
					reg = <0x44>;

					xbar_ope2_out_ep: endpoint {
						remote-endpoint = <&ope2_cif_out_ep>;
					};
				};
			};
		};
	};
@@ -1884,6 +1966,7 @@ sound {
		       <&xbar_mixer_in5_port>, <&xbar_mixer_in6_port>,
		       <&xbar_mixer_in7_port>, <&xbar_mixer_in8_port>,
		       <&xbar_mixer_in9_port>, <&xbar_mixer_in10_port>,
		       <&xbar_ope1_in_port>, <&xbar_ope2_in_port>,
		       /* HW accelerators */
		       <&sfc1_out_port>, <&sfc2_out_port>,
		       <&sfc3_out_port>, <&sfc4_out_port>,
@@ -1896,6 +1979,7 @@ sound {
		       <&mixer_out1_port>, <&mixer_out2_port>,
		       <&mixer_out3_port>, <&mixer_out4_port>,
		       <&mixer_out5_port>,
		       <&ope1_out_port>, <&ope2_out_port>,
		       /* I/O DAP Ports */
		       <&i2s3_port>, <&i2s4_port>,
		       <&dmic1_port>, <&dmic2_port>;
Loading