Unverified Commit 1bc44c1e authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'tegra-for-5.19-arm64-dt' of...

Merge tag 'tegra-for-5.19-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux into arm/dt

arm64: tegra: Device tree changes for v5.19-rc1

This adds some improvements on Tegra234 (QSPI, CCPLEX), improves the
SDMMC clock speed on Tegra194 and adds the ASRC audio block on various
chip generations. Memory controller channels are also added on Tegra186
and later and the missing DFLL reset is added for Tegra210.

* tag 'tegra-for-5.19-arm64-dt' of git://git.kernel.org/pub/scm/linux/kernel/git/tegra/linux:
  arm64: tegra: Add missing DFLL reset on Tegra210
  arm64: tegra: Add memory controller channels
  arm64: tegra: Enable ASRC on various platforms
  arm64: tegra: Add ASRC device on Tegra186 and later
  arm64: tegra: Update PWM fan node name
  arm64: tegra: Add node for Tegra234 CCPLEX cluster
  arm64: tegra: Add QSPI controllers on Tegra234
  arm64: tegra: Update SDMMC1/3 clock source for Tegra194

Link: https://lore.kernel.org/r/20220506143005.3916655-5-thierry.reding@gmail.com


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 72a21285 0017f2c8
Loading
Loading
Loading
Loading
+223 −0
Original line number Diff line number Diff line
@@ -811,6 +811,110 @@
						remote-endpoint = <&mixer_out5_ep>;
					};
				};

				xbar_asrc_in1_port: port@63 {
					reg = <0x63>;

					xbar_asrc_in1_ep: endpoint {
						remote-endpoint = <&asrc_in1_ep>;
					};
				};

				port@64 {
					reg = <0x64>;

					xbar_asrc_out1_ep: endpoint {
						remote-endpoint = <&asrc_out1_ep>;
					};
				};

				xbar_asrc_in2_port: port@65 {
					reg = <0x65>;

					xbar_asrc_in2_ep: endpoint {
						remote-endpoint = <&asrc_in2_ep>;
					};
				};

				port@66 {
					reg = <0x66>;

					xbar_asrc_out2_ep: endpoint {
						remote-endpoint = <&asrc_out2_ep>;
					};
				};

				xbar_asrc_in3_port: port@67 {
					reg = <0x67>;

					xbar_asrc_in3_ep: endpoint {
						remote-endpoint = <&asrc_in3_ep>;
					};
				};

				port@68 {
					reg = <0x68>;

					xbar_asrc_out3_ep: endpoint {
						remote-endpoint = <&asrc_out3_ep>;
					};
				};

				xbar_asrc_in4_port: port@69 {
					reg = <0x69>;

					xbar_asrc_in4_ep: endpoint {
						remote-endpoint = <&asrc_in4_ep>;
					};
				};

				port@6a {
					reg = <0x6a>;

					xbar_asrc_out4_ep: endpoint {
						remote-endpoint = <&asrc_out4_ep>;
					};
				};

				xbar_asrc_in5_port: port@6b {
					reg = <0x6b>;

					xbar_asrc_in5_ep: endpoint {
						remote-endpoint = <&asrc_in5_ep>;
					};
				};

				port@6c {
					reg = <0x6c>;

					xbar_asrc_out5_ep: endpoint {
						remote-endpoint = <&asrc_out5_ep>;
					};
				};

				xbar_asrc_in6_port: port@6d {
					reg = <0x6d>;

					xbar_asrc_in6_ep: endpoint {
						remote-endpoint = <&asrc_in6_ep>;
					};
				};

				port@6e {
					reg = <0x6e>;

					xbar_asrc_out6_ep: endpoint {
						remote-endpoint = <&asrc_out6_ep>;
					};
				};

				xbar_asrc_in7_port: port@6f {
					reg = <0x6f>;

					xbar_asrc_in7_ep: endpoint {
						remote-endpoint = <&asrc_in7_ep>;
					};
				};
			};

			admaif@290f000 {
@@ -1935,6 +2039,119 @@
					};
				};
			};

			asrc@2910000 {
				status = "okay";

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

					port@0 {
						reg = <0x0>;

						asrc_in1_ep: endpoint {
							remote-endpoint = <&xbar_asrc_in1_ep>;
						};
					};

					port@1 {
						reg = <0x1>;

						asrc_in2_ep: endpoint {
							remote-endpoint = <&xbar_asrc_in2_ep>;
						};
					};

					port@2 {
						reg = <0x2>;

						asrc_in3_ep: endpoint {
							remote-endpoint = <&xbar_asrc_in3_ep>;
						};
					};

					port@3 {
						reg = <0x3>;

						asrc_in4_ep: endpoint {
							remote-endpoint = <&xbar_asrc_in4_ep>;
						};
					};

					port@4 {
						reg = <0x4>;

						asrc_in5_ep: endpoint {
							remote-endpoint = <&xbar_asrc_in5_ep>;
						};
					};

					port@5 {
						reg = <0x5>;

						asrc_in6_ep: endpoint {
							remote-endpoint = <&xbar_asrc_in6_ep>;
						};
					};

					port@6 {
						reg = <0x6>;

						asrc_in7_ep: endpoint {
							remote-endpoint = <&xbar_asrc_in7_ep>;
						};
					};

					asrc_out1_port: port@7 {
						reg = <0x7>;

						asrc_out1_ep: endpoint {
							remote-endpoint = <&xbar_asrc_out1_ep>;
						};
					};

					asrc_out2_port: port@8 {
						reg = <0x8>;

						asrc_out2_ep: endpoint {
							remote-endpoint = <&xbar_asrc_out2_ep>;
						};
					};

					asrc_out3_port: port@9 {
						reg = <0x9>;

						asrc_out3_ep: endpoint {
							remote-endpoint = <&xbar_asrc_out3_ep>;
						};
					};

					asrc_out4_port: port@a {
						reg = <0xa>;

						asrc_out4_ep: endpoint {
							remote-endpoint = <&xbar_asrc_out4_ep>;
						};
					};

					asrc_out5_port: port@b {
						reg = <0xb>;

						asrc_out5_ep: endpoint {
							remote-endpoint = <&xbar_asrc_out5_ep>;
						};
					};

					asrc_out6_port:	port@c {
						reg = <0xc>;

						asrc_out6_ep: endpoint {
							remote-endpoint = <&xbar_asrc_out6_ep>;
						};
					};
				};
			};
		};
	};

@@ -2331,6 +2548,10 @@
		       <&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_asrc_in1_port>, <&xbar_asrc_in2_port>,
		       <&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>,
		       <&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>,
		       <&xbar_asrc_in7_port>,
		       /* HW accelerators */
		       <&sfc1_out_port>, <&sfc2_out_port>,
		       <&sfc3_out_port>, <&sfc4_out_port>,
@@ -2348,6 +2569,8 @@
		       <&mixer_out1_port>, <&mixer_out2_port>,
		       <&mixer_out3_port>, <&mixer_out4_port>,
		       <&mixer_out5_port>,
		       <&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>,
		       <&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>,
		       /* I/O */
		       <&i2s1_port>, <&i2s2_port>, <&i2s3_port>, <&i2s4_port>,
		       <&i2s5_port>, <&i2s6_port>, <&dmic1_port>, <&dmic2_port>,
+1 −1
Original line number Diff line number Diff line
@@ -349,7 +349,7 @@
		status = "okay";
	};

	fan: fan {
	fan: pwm-fan {
		compatible = "pwm-fan";
		pwms = <&pwm4 0 45334>;

+14 −1
Original line number Diff line number Diff line
@@ -516,12 +516,25 @@
				sound-name-prefix = "MIXER1";
				status = "disabled";
			};

			tegra_asrc: asrc@2910000 {
				compatible = "nvidia,tegra186-asrc";
				reg = <0x2910000 0x2000>;
				sound-name-prefix = "ASRC1";
				status = "disabled";
			};
		};
	};

	mc: memory-controller@2c00000 {
		compatible = "nvidia,tegra186-mc";
		reg = <0x0 0x02c00000 0x0 0xb0000>;
		reg = <0x0 0x02c00000 0x0 0x10000>,    /* MC-SID */
		      <0x0 0x02c10000 0x0 0x10000>,    /* Broadcast channel */
		      <0x0 0x02c20000 0x0 0x10000>,    /* MC0 */
		      <0x0 0x02c30000 0x0 0x10000>,    /* MC1 */
		      <0x0 0x02c40000 0x0 0x10000>,    /* MC2 */
		      <0x0 0x02c50000 0x0 0x10000>;    /* MC3 */
		reg-names = "sid", "broadcast", "ch0", "ch1", "ch2", "ch3";
		interrupts = <GIC_SPI 223 IRQ_TYPE_LEVEL_HIGH>;
		status = "disabled";

+224 −1
Original line number Diff line number Diff line
@@ -764,6 +764,110 @@
							remote-endpoint = <&mixer_out5_ep>;
						};
					};

					xbar_asrc_in1_port: port@63 {
						reg = <0x63>;

						xbar_asrc_in1_ep: endpoint {
							remote-endpoint = <&asrc_in1_ep>;
						};
					};

					port@64 {
						reg = <0x64>;

						xbar_asrc_out1_ep: endpoint {
							remote-endpoint = <&asrc_out1_ep>;
						};
					};

					xbar_asrc_in2_port: port@65 {
						reg = <0x65>;

						xbar_asrc_in2_ep: endpoint {
							remote-endpoint = <&asrc_in2_ep>;
						};
					};

					port@66 {
						reg = <0x66>;

						xbar_asrc_out2_ep: endpoint {
							remote-endpoint = <&asrc_out2_ep>;
						};
					};

					xbar_asrc_in3_port: port@67 {
						reg = <0x67>;

						xbar_asrc_in3_ep: endpoint {
							remote-endpoint = <&asrc_in3_ep>;
						};
					};

					port@68 {
						reg = <0x68>;

						xbar_asrc_out3_ep: endpoint {
							remote-endpoint = <&asrc_out3_ep>;
						};
					};

					xbar_asrc_in4_port: port@69 {
						reg = <0x69>;

						xbar_asrc_in4_ep: endpoint {
							remote-endpoint = <&asrc_in4_ep>;
						};
					};

					port@6a {
						reg = <0x6a>;

						xbar_asrc_out4_ep: endpoint {
							remote-endpoint = <&asrc_out4_ep>;
						};
					};

					xbar_asrc_in5_port: port@6b {
						reg = <0x6b>;

						xbar_asrc_in5_ep: endpoint {
							remote-endpoint = <&asrc_in5_ep>;
						};
					};

					port@6c {
						reg = <0x6c>;

						xbar_asrc_out5_ep: endpoint {
							remote-endpoint = <&asrc_out5_ep>;
						};
					};

					xbar_asrc_in6_port: port@6d {
						reg = <0x6d>;

						xbar_asrc_in6_ep: endpoint {
							remote-endpoint = <&asrc_in6_ep>;
						};
					};

					port@6e {
						reg = <0x6e>;

						xbar_asrc_out6_ep: endpoint {
							remote-endpoint = <&asrc_out6_ep>;
						};
					};

					xbar_asrc_in7_port: port@6f {
						reg = <0x6f>;

						xbar_asrc_in7_ep: endpoint {
							remote-endpoint = <&asrc_in7_ep>;
						};
					};
				};

				admaif@290f000 {
@@ -1734,6 +1838,119 @@
						};
					};
				};

				asrc@2910000 {
					status = "okay";

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

						port@0 {
							reg = <0x0>;

							asrc_in1_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in1_ep>;
							};
						};

						port@1 {
							reg = <0x1>;

							asrc_in2_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in2_ep>;
							};
						};

						port@2 {
							reg = <0x2>;

							asrc_in3_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in3_ep>;
							};
						};

						port@3 {
							reg = <0x3>;

							asrc_in4_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in4_ep>;
							};
						};

						port@4 {
							reg = <0x4>;

							asrc_in5_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in5_ep>;
							};
						};

						port@5 {
							reg = <0x5>;

							asrc_in6_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in6_ep>;
							};
						};

						port@6 {
							reg = <0x6>;

							asrc_in7_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in7_ep>;
							};
						};

						asrc_out1_port: port@7 {
							reg = <0x7>;

							asrc_out1_ep: endpoint {
								remote-endpoint = <&xbar_asrc_out1_ep>;
							};
						};

						asrc_out2_port: port@8 {
							reg = <0x8>;

							asrc_out2_ep: endpoint {
								remote-endpoint = <&xbar_asrc_out2_ep>;
							};
						};

						asrc_out3_port: port@9 {
							reg = <0x9>;

							asrc_out3_ep: endpoint {
								remote-endpoint = <&xbar_asrc_out3_ep>;
							};
						};

						asrc_out4_port: port@a {
							reg = <0xa>;

							asrc_out4_ep: endpoint {
								remote-endpoint = <&xbar_asrc_out4_ep>;
							};
						};

						asrc_out5_port: port@b {
							reg = <0xb>;

							asrc_out5_ep: endpoint {
								remote-endpoint = <&xbar_asrc_out5_ep>;
							};
						};

						asrc_out6_port:	port@c {
							reg = <0xc>;

							asrc_out6_ep: endpoint {
								remote-endpoint = <&xbar_asrc_out6_ep>;
							};
						};
					};
				};
			};
		};

@@ -1989,7 +2206,7 @@
			    "p2u-5", "p2u-6", "p2u-7";
	};

	fan: fan {
	fan: pwm-fan {
		compatible = "pwm-fan";
		pwms = <&pwm4 0 45334>;

@@ -2052,6 +2269,10 @@
		       <&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_asrc_in1_port>, <&xbar_asrc_in2_port>,
		       <&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>,
		       <&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>,
		       <&xbar_asrc_in7_port>,
		       /* HW accelerators */
		       <&sfc1_out_port>, <&sfc2_out_port>,
		       <&sfc3_out_port>, <&sfc4_out_port>,
@@ -2068,6 +2289,8 @@
		       <&adx4_out3_port>, <&adx4_out4_port>,
		       <&mixer_out1_port>, <&mixer_out2_port>, <&mixer_out3_port>,
		       <&mixer_out4_port>, <&mixer_out5_port>,
		       <&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>,
		       <&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>,
		       /* BE I/O Ports */
		       <&i2s1_port>, <&i2s2_port>, <&i2s4_port>, <&i2s6_port>,
		       <&dmic3_port>;
+224 −1
Original line number Diff line number Diff line
@@ -774,6 +774,110 @@
							remote-endpoint = <&mixer_out5_ep>;
						};
					};

					xbar_asrc_in1_port: port@63 {
						reg = <0x63>;

						xbar_asrc_in1_ep: endpoint {
							remote-endpoint = <&asrc_in1_ep>;
						};
					};

					port@64 {
						reg = <0x64>;

						xbar_asrc_out1_ep: endpoint {
							remote-endpoint = <&asrc_out1_ep>;
						};
					};

					xbar_asrc_in2_port: port@65 {
						reg = <0x65>;

						xbar_asrc_in2_ep: endpoint {
							remote-endpoint = <&asrc_in2_ep>;
						};
					};

					port@66 {
						reg = <0x66>;

						xbar_asrc_out2_ep: endpoint {
							remote-endpoint = <&asrc_out2_ep>;
						};
					};

					xbar_asrc_in3_port: port@67 {
						reg = <0x67>;

						xbar_asrc_in3_ep: endpoint {
							remote-endpoint = <&asrc_in3_ep>;
						};
					};

					port@68 {
						reg = <0x68>;

						xbar_asrc_out3_ep: endpoint {
							remote-endpoint = <&asrc_out3_ep>;
						};
					};

					xbar_asrc_in4_port: port@69 {
						reg = <0x69>;

						xbar_asrc_in4_ep: endpoint {
							remote-endpoint = <&asrc_in4_ep>;
						};
					};

					port@6a {
						reg = <0x6a>;

						xbar_asrc_out4_ep: endpoint {
							remote-endpoint = <&asrc_out4_ep>;
						};
					};

					xbar_asrc_in5_port: port@6b {
						reg = <0x6b>;

						xbar_asrc_in5_ep: endpoint {
							remote-endpoint = <&asrc_in5_ep>;
						};
					};

					port@6c {
						reg = <0x6c>;

						xbar_asrc_out5_ep: endpoint {
							remote-endpoint = <&asrc_out5_ep>;
						};
					};

					xbar_asrc_in6_port: port@6d {
						reg = <0x6d>;

						xbar_asrc_in6_ep: endpoint {
							remote-endpoint = <&asrc_in6_ep>;
						};
					};

					port@6e {
						reg = <0x6e>;

						xbar_asrc_out6_ep: endpoint {
							remote-endpoint = <&asrc_out6_ep>;
						};
					};

					xbar_asrc_in7_port: port@6f {
						reg = <0x6f>;

						xbar_asrc_in7_ep: endpoint {
							remote-endpoint = <&asrc_in7_ep>;
						};
					};
				};

				admaif@290f000 {
@@ -1794,6 +1898,119 @@
						};
					};
				};

				asrc@2910000 {
					status = "okay";

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

						port@0 {
							reg = <0x0>;

							asrc_in1_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in1_ep>;
							};
						};

						port@1 {
							reg = <0x1>;

							asrc_in2_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in2_ep>;
							};
						};

						port@2 {
							reg = <0x2>;

							asrc_in3_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in3_ep>;
							};
						};

						port@3 {
							reg = <0x3>;

							asrc_in4_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in4_ep>;
							};
						};

						port@4 {
							reg = <0x4>;

							asrc_in5_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in5_ep>;
							};
						};

						port@5 {
							reg = <0x5>;

							asrc_in6_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in6_ep>;
							};
						};

						port@6 {
							reg = <0x6>;

							asrc_in7_ep: endpoint {
								remote-endpoint = <&xbar_asrc_in7_ep>;
							};
						};

						asrc_out1_port: port@7 {
							reg = <0x7>;

							asrc_out1_ep: endpoint {
								remote-endpoint = <&xbar_asrc_out1_ep>;
							};
						};

						asrc_out2_port: port@8 {
							reg = <0x8>;

							asrc_out2_ep: endpoint {
								remote-endpoint = <&xbar_asrc_out2_ep>;
							};
						};

						asrc_out3_port: port@9 {
							reg = <0x9>;

							asrc_out3_ep: endpoint {
								remote-endpoint = <&xbar_asrc_out3_ep>;
							};
						};

						asrc_out4_port: port@a {
							reg = <0xa>;

							asrc_out4_ep: endpoint {
								remote-endpoint = <&xbar_asrc_out4_ep>;
							};
						};

						asrc_out5_port: port@b {
							reg = <0xb>;

							asrc_out5_ep: endpoint {
								remote-endpoint = <&xbar_asrc_out5_ep>;
							};
						};

						asrc_out6_port:	port@c {
							reg = <0xc>;

							asrc_out6_ep: endpoint {
								remote-endpoint = <&xbar_asrc_out6_ep>;
							};
						};
					};
				};
			};
		};

@@ -1993,7 +2210,7 @@
			    "p2u-5", "p2u-6", "p2u-7";
	};

	fan: fan {
	fan: pwm-fan {
		compatible = "pwm-fan";
		pwms = <&pwm6 0 45334>;

@@ -2102,6 +2319,10 @@
		       <&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_asrc_in1_port>, <&xbar_asrc_in2_port>,
		       <&xbar_asrc_in3_port>, <&xbar_asrc_in4_port>,
		       <&xbar_asrc_in5_port>, <&xbar_asrc_in6_port>,
		       <&xbar_asrc_in7_port>,
		       /* HW accelerators */
		       <&sfc1_out_port>, <&sfc2_out_port>,
		       <&sfc3_out_port>, <&sfc4_out_port>,
@@ -2119,6 +2340,8 @@
		       <&mixer_out1_port>, <&mixer_out2_port>,
		       <&mixer_out3_port>, <&mixer_out4_port>,
		       <&mixer_out5_port>,
		       <&asrc_out1_port>, <&asrc_out2_port>, <&asrc_out3_port>,
		       <&asrc_out4_port>, <&asrc_out5_port>, <&asrc_out6_port>,
		       /* BE I/O Ports */
		       <&i2s3_port>, <&i2s5_port>,
		       <&dmic1_port>, <&dmic2_port>, <&dmic4_port>,
Loading