Unverified Commit b5125e69 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'qcom-arm64-for-6.16-2' of...

Merge tag 'qcom-arm64-for-6.16-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux into soc/dt

More Qualcomm Arm64 DeviceTree updates for v6.16

Support for CPU frequency scaling is enabled on the X Elite platform.
Also on X Elite, support for the HP EliteBook Ultra G1q is introduced.

Support for the QCS6490 RB3gen2 Industrial Mezzanine is also added.

PCIe controllers and PHYs are described and enabled across IPQ5018,
IPQ5332, and IPQ5424. On IPQ9474 the missing MHI register range is
added. The TCSR block is described and used to enable download mode
flags on IPQ5018.

The venus video encoder/decoder is enabled on the MSM8998-based Lenovo
Miix 630 laptop.

The crypto engine is enabled on QCM2290 and QCS615. Bluetooth is enabled
on the QCM2210-based RB1 board.

The Fairphone FP5 gains Displayport sound support.

SAR2130P display nodes are added.

On 8cx Gen3 the sensor remoteproc (SLPI) is introduced and this is
enabled on Lenovo Thinkpad X13s and the CRD.

The SDM845-based Samsung Galaxy S9 gains graphics, modem and initial
sound support.

On SDX75 the QPIC BAM and NAND support is added, and these are enabled
on the IDP board.

LLCC is added for SM8750. SM8550 gains Iris video decoder support.

For X Elite, Lenovo ThinkPad T14s support for the SDX62 modem, as well
as audio headset, is added. ASUS Vivobook S 15 gains Bluetooth support,
Microsoft Surface Laptop 7 models gets support for DP over USB Type-C,
HP Omnibook X 14 gains audio support. The devkit gets the USB multiport
controller and the two USB Type-A ports described.

Additionally a variety of Devicetree fixes are introduced, primarily
identified through binding validation.

* tag 'qcom-arm64-for-6.16-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux: (58 commits)
  arm64: dts: qcom: sm4450: Add RPMh power domains support
  arm64: dts: qcom: x1e80100-lenovo-yoga-slim7x: add retimers, dp altmode support
  arm64: dts: qcom: ipq5424: Enable PCIe PHYs and controllers
  arm64: dts: qcom: ipq5424: Add PCIe PHYs and controller nodes
  arm64: dts: qcom: sc7280: Mark FastRPC context banks as dma-coherent
  arm64: dts: qcom: sdx75-idp: Enable QPIC BAM & QPIC NAND support
  arm64: dts: qcom: sdx75: Add QPIC NAND support
  arm64: dts: qcom: sdx75: Add QPIC BAM support
  arm64: dts: qcom: qcm2290: Add crypto engine
  arm64: dts: qcom: x1e80100-vivobook-s15: Add bluetooth
  arm64: dts: qcom: x1e80100: Add PCIe lane equalization preset properties
  arm64: dts: qcom: qcs615: Fix up UFS clocks
  arm64: dts: qcom: sa8775p: Clean up the PSCI PDs
  arm64: dts: qcom: msm8996-oneplus: Add SLPI VDD_PX
  arm64: dts: qcom: sm6350-pdx213: Wire up USB regulators
  arm64: dts: qcom: msm8998-yoshino: Add QUSB2PHY VDD supply
  arm64: dts: qcom: msm8998-mtp: Add QUSB2PHY VDD supply
  arm64: dts: qcom: msm8998-fxtec: Add QUSB2PHY VDD supply
  arm64: dts: qcom: qcs615: Remove disallowed property from AOSS_QMP node
  arm64: dts: qcom: msm8998: Remove mdss_hdmi_phy phandle argument
  ...

Link: https://lore.kernel.org/r/20250520024248.38904-1-andersson@kernel.org


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents 13649a41 654ac800
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1141,6 +1141,7 @@ properties:
              - asus,vivobook-s15
              - asus,zenbook-a14-ux3407ra
              - dell,xps13-9345
              - hp,elitebook-ultra-g1q
              - hp,omnibook-x14
              - lenovo,yoga-slim7x
              - microsoft,romulus13
+4 −0
Original line number Diff line number Diff line
@@ -118,7 +118,9 @@ dtb-$(CONFIG_ARCH_QCOM) += qcs615-ride.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2.dtb

qcs6490-rb3gen2-vision-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-vision-mezzanine.dtbo
qcs6490-rb3gen2-industrial-mezzanine-dtbs := qcs6490-rb3gen2.dtb qcs6490-rb3gen2-industrial-mezzanine.dtbo

dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-industrial-mezzanine.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= qcs6490-rb3gen2-vision-mezzanine.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= qcs8300-ride.dtb
dtb-$(CONFIG_ARCH_QCOM)	+= qcs8550-aim300-aiot.dtb
@@ -311,6 +313,8 @@ x1e80100-crd-el2-dtbs := x1e80100-crd.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM)	+= x1e80100-crd.dtb x1e80100-crd-el2.dtb
x1e80100-dell-xps13-9345-el2-dtbs	:= x1e80100-dell-xps13-9345.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM)	+= x1e80100-dell-xps13-9345.dtb x1e80100-dell-xps13-9345-el2.dtb
x1e80100-hp-elitebook-ultra-g1q-el2-dtbs := x1e80100-hp-elitebook-ultra-g1q.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM)	+= x1e80100-hp-elitebook-ultra-g1q.dtb x1e80100-hp-elitebook-ultra-g1q-el2.dtb
x1e80100-hp-omnibook-x14-el2-dtbs	:= x1e80100-hp-omnibook-x14.dtb x1-el2.dtbo
dtb-$(CONFIG_ARCH_QCOM)	+= x1e80100-hp-omnibook-x14.dtb x1e80100-hp-omnibook-x14-el2.dtb
x1e80100-lenovo-yoga-slim7x-el2-dtbs	:= x1e80100-lenovo-yoga-slim7x.dtb x1-el2.dtbo
+40 −0
Original line number Diff line number Diff line
@@ -9,6 +9,8 @@

#include "ipq5018.dtsi"

#include <dt-bindings/gpio/gpio.h>

/ {
	model = "Qualcomm Technologies, Inc. IPQ5018/AP-RDP432.1-C2";
	compatible = "qcom,ipq5018-rdp432-c2", "qcom,ipq5018";
@@ -28,6 +30,20 @@ &blsp1_uart1 {
	status = "okay";
};

&pcie0 {
	pinctrl-0 = <&pcie0_default>;
	pinctrl-names = "default";

	perst-gpios = <&tlmm 15 GPIO_ACTIVE_LOW>;
	wake-gpios = <&tlmm 16 GPIO_ACTIVE_LOW>;

	status = "okay";
};

&pcie0_phy {
	status = "okay";
};

&sdhc_1 {
	pinctrl-0 = <&sdc_default_state>;
	pinctrl-names = "default";
@@ -43,6 +59,30 @@ &sleep_clk {
};

&tlmm {
	pcie0_default: pcie0-default-state {
		clkreq-n-pins {
			pins = "gpio14";
			function = "pcie0_clk";
			drive-strength = <8>;
			bias-pull-up;
		};

		perst-n-pins {
			pins = "gpio15";
			function = "gpio";
			drive-strength = <8>;
			bias-pull-up;
			output-low;
		};

		wake-n-pins {
			pins = "gpio16";
			function = "pcie0_wake";
			drive-strength = <8>;
			bias-pull-up;
		};
	};

	sdc_default_state: sdc-default-state {
		clk-pins {
			pins = "gpio9";
+244 −2
Original line number Diff line number Diff line
@@ -79,6 +79,7 @@ opp-1008000000 {
	firmware {
		scm {
			compatible = "qcom,scm-ipq5018", "qcom,scm";
			qcom,dload-mode = <&tcsr 0x6100>;
			qcom,sdi-enabled;
		};
	};
@@ -147,6 +148,40 @@ usbphy0: phy@5b000 {
			status = "disabled";
		};

		pcie1_phy: phy@7e000 {
			compatible = "qcom,ipq5018-uniphy-pcie-phy";
			reg = <0x0007e000 0x800>;

			clocks = <&gcc GCC_PCIE1_PIPE_CLK>;

			resets = <&gcc GCC_PCIE1_PHY_BCR>,
				 <&gcc GCC_PCIE1PHY_PHY_BCR>;

			#clock-cells = <0>;
			#phy-cells = <0>;

			num-lanes = <1>;

			status = "disabled";
		};

		pcie0_phy: phy@86000 {
			compatible = "qcom,ipq5018-uniphy-pcie-phy";
			reg = <0x00086000 0x1000>;

			clocks = <&gcc GCC_PCIE0_PIPE_CLK>;

			resets = <&gcc GCC_PCIE0_PHY_BCR>,
				 <&gcc GCC_PCIE0PHY_PHY_BCR>;

			#clock-cells = <0>;
			#phy-cells = <0>;

			num-lanes = <2>;

			status = "disabled";
		};

		tlmm: pinctrl@1000000 {
			compatible = "qcom,ipq5018-tlmm";
			reg = <0x01000000 0x300000>;
@@ -170,8 +205,8 @@ gcc: clock-controller@1800000 {
			reg = <0x01800000 0x80000>;
			clocks = <&xo_board_clk>,
				 <&sleep_clk>,
				 <0>,
				 <0>,
				 <&pcie0_phy>,
				 <&pcie1_phy>,
				 <0>,
				 <0>,
				 <0>,
@@ -187,6 +222,11 @@ tcsr_mutex: hwlock@1905000 {
			#hwlock-cells = <1>;
		};

		tcsr: syscon@1937000 {
			compatible = "qcom,tcsr-ipq5018", "syscon";
			reg = <0x01937000 0x21000>;
		};

		sdhc_1: mmc@7804000 {
			compatible = "qcom,ipq5018-sdhci", "qcom,sdhci-msm-v5";
			reg = <0x7804000 0x1000>;
@@ -387,6 +427,208 @@ frame@b128000 {
				status = "disabled";
			};
		};

		pcie1: pcie@80000000 {
			compatible = "qcom,pcie-ipq5018";
			reg = <0x80000000 0xf1d>,
			      <0x80000f20 0xa8>,
			      <0x80001000 0x1000>,
			      <0x00078000 0x3000>,
			      <0x80100000 0x1000>,
			      <0x0007b000 0x1000>;
			reg-names = "dbi",
				    "elbi",
				    "atu",
				    "parf",
				    "config",
				    "mhi";
			device_type = "pci";
			linux,pci-domain = <1>;
			bus-range = <0x00 0xff>;
			num-lanes = <1>;
			#address-cells = <3>;
			#size-cells = <2>;

			/* The controller supports Gen3, but the connected PHY is Gen2-capable */
			max-link-speed = <2>;

			phys = <&pcie1_phy>;
			phy-names ="pciephy";

			ranges = <0x01000000 0 0x00000000 0x80200000 0 0x00100000>,
				 <0x02000000 0 0x80300000 0x80300000 0 0x10000000>;

			msi-map = <0x0 &v2m0 0x0 0xff8>;

			interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "msi0",
					  "msi1",
					  "msi2",
					  "msi3",
					  "msi4",
					  "msi5",
					  "msi6",
					  "msi7",
					  "global";

			#interrupt-cells = <1>;
			interrupt-map-mask = <0 0 0 0x7>;
			interrupt-map = <0 0 0 1 &intc 0 0 142 IRQ_TYPE_LEVEL_HIGH>,
					<0 0 0 2 &intc 0 0 143 IRQ_TYPE_LEVEL_HIGH>,
					<0 0 0 3 &intc 0 0 144 IRQ_TYPE_LEVEL_HIGH>,
					<0 0 0 4 &intc 0 0 145 IRQ_TYPE_LEVEL_HIGH>;

			clocks = <&gcc GCC_SYS_NOC_PCIE1_AXI_CLK>,
				 <&gcc GCC_PCIE1_AXI_M_CLK>,
				 <&gcc GCC_PCIE1_AXI_S_CLK>,
				 <&gcc GCC_PCIE1_AHB_CLK>,
				 <&gcc GCC_PCIE1_AUX_CLK>,
				 <&gcc GCC_PCIE1_AXI_S_BRIDGE_CLK>;
			clock-names = "iface",
				      "axi_m",
				      "axi_s",
				      "ahb",
				      "aux",
				      "axi_bridge";

			resets = <&gcc GCC_PCIE1_PIPE_ARES>,
				 <&gcc GCC_PCIE1_SLEEP_ARES>,
				 <&gcc GCC_PCIE1_CORE_STICKY_ARES>,
				 <&gcc GCC_PCIE1_AXI_MASTER_ARES>,
				 <&gcc GCC_PCIE1_AXI_SLAVE_ARES>,
				 <&gcc GCC_PCIE1_AHB_ARES>,
				 <&gcc GCC_PCIE1_AXI_MASTER_STICKY_ARES>,
				 <&gcc GCC_PCIE1_AXI_SLAVE_STICKY_ARES>;
			reset-names = "pipe",
				      "sleep",
				      "sticky",
				      "axi_m",
				      "axi_s",
				      "ahb",
				      "axi_m_sticky",
				      "axi_s_sticky";

			status = "disabled";

			pcie@0 {
				device_type = "pci";
				reg = <0x0 0x0 0x0 0x0 0x0>;
				bus-range = <0x01 0xff>;

				#address-cells = <3>;
				#size-cells = <2>;
				ranges;
			};
		};

		pcie0: pcie@a0000000 {
			compatible = "qcom,pcie-ipq5018";
			reg = <0xa0000000 0xf1d>,
			      <0xa0000f20 0xa8>,
			      <0xa0001000 0x1000>,
			      <0x00080000 0x3000>,
			      <0xa0100000 0x1000>,
			      <0x00083000 0x1000>;
			reg-names = "dbi",
				    "elbi",
				    "atu",
				    "parf",
				    "config",
				    "mhi";
			device_type = "pci";
			linux,pci-domain = <0>;
			bus-range = <0x00 0xff>;
			num-lanes = <2>;
			#address-cells = <3>;
			#size-cells = <2>;

			/* The controller supports Gen3, but the connected PHY is Gen2-capable */
			max-link-speed = <2>;

			phys = <&pcie0_phy>;
			phy-names ="pciephy";

			ranges = <0x01000000 0 0x00000000 0xa0200000 0 0x00100000>,
				 <0x02000000 0 0xa0300000 0xa0300000 0 0x10000000>;

			msi-map = <0x0 &v2m0 0x0 0xff8>;

			interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 57 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>,
				     <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "msi0",
					  "msi1",
					  "msi2",
					  "msi3",
					  "msi4",
					  "msi5",
					  "msi6",
					  "msi7",
					  "global";

			#interrupt-cells = <1>;
			interrupt-map-mask = <0 0 0 0x7>;
			interrupt-map = <0 0 0 1 &intc 0 0 75 IRQ_TYPE_LEVEL_HIGH>,
					<0 0 0 2 &intc 0 0 78 IRQ_TYPE_LEVEL_HIGH>,
					<0 0 0 3 &intc 0 0 79 IRQ_TYPE_LEVEL_HIGH>,
					<0 0 0 4 &intc 0 0 83 IRQ_TYPE_LEVEL_HIGH>;

			clocks = <&gcc GCC_SYS_NOC_PCIE0_AXI_CLK>,
				 <&gcc GCC_PCIE0_AXI_M_CLK>,
				 <&gcc GCC_PCIE0_AXI_S_CLK>,
				 <&gcc GCC_PCIE0_AHB_CLK>,
				 <&gcc GCC_PCIE0_AUX_CLK>,
				 <&gcc GCC_PCIE0_AXI_S_BRIDGE_CLK>;
			clock-names = "iface",
				      "axi_m",
				      "axi_s",
				      "ahb",
				      "aux",
				      "axi_bridge";

			resets = <&gcc GCC_PCIE0_PIPE_ARES>,
				 <&gcc GCC_PCIE0_SLEEP_ARES>,
				 <&gcc GCC_PCIE0_CORE_STICKY_ARES>,
				 <&gcc GCC_PCIE0_AXI_MASTER_ARES>,
				 <&gcc GCC_PCIE0_AXI_SLAVE_ARES>,
				 <&gcc GCC_PCIE0_AHB_ARES>,
				 <&gcc GCC_PCIE0_AXI_MASTER_STICKY_ARES>,
				 <&gcc GCC_PCIE0_AXI_SLAVE_STICKY_ARES>;
			reset-names = "pipe",
				      "sleep",
				      "sticky",
				      "axi_m",
				      "axi_s",
				      "ahb",
				      "axi_m_sticky",
				      "axi_s_sticky";

			status = "disabled";

			pcie@0 {
				device_type = "pci";
				reg = <0x0 0x0 0x0 0x0 0x0>;
				bus-range = <0x01 0xff>;

				#address-cells = <3>;
				#size-cells = <2>;
				ranges;
			};
		};
	};

	timer {
+76 −0
Original line number Diff line number Diff line
@@ -32,6 +32,34 @@ &sdhc {
	status = "okay";
};

&pcie0 {
	pinctrl-0 = <&pcie0_default>;
	pinctrl-names = "default";

	perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
	wake-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>;

	status = "okay";
};

&pcie0_phy {
	status = "okay";
};

&pcie1 {
	pinctrl-0 = <&pcie1_default>;
	pinctrl-names = "default";

	perst-gpios = <&tlmm 47 GPIO_ACTIVE_LOW>;
	wake-gpios = <&tlmm 48 GPIO_ACTIVE_LOW>;

	status = "okay";
};

&pcie1_phy {
	status = "okay";
};

&tlmm {
	i2c_1_pins: i2c-1-state {
		pins = "gpio29", "gpio30";
@@ -40,6 +68,54 @@ i2c_1_pins: i2c-1-state {
		bias-pull-up;
	};

	pcie0_default: pcie0-default-state {
		clkreq-n-pins {
			pins = "gpio37";
			function = "pcie0_clk";
			drive-strength = <8>;
			bias-pull-up;
		};

		perst-n-pins {
			pins = "gpio38";
			function = "gpio";
			drive-strength = <8>;
			bias-pull-up;
			output-low;
		};

		wake-n-pins {
			pins = "gpio39";
			function = "pcie0_wake";
			drive-strength = <8>;
			bias-pull-up;
		};
	};

	pcie1_default: pcie1-default-state {
		clkreq-n-pins {
			pins = "gpio46";
			function = "pcie1_clk";
			drive-strength = <8>;
			bias-pull-up;
		};

		perst-n-pins {
			pins = "gpio47";
			function = "gpio";
			drive-strength = <8>;
			bias-pull-up;
			output-low;
		};

		wake-n-pins {
			pins = "gpio48";
			function = "pcie1_wake";
			drive-strength = <8>;
			bias-pull-up;
		};
	};

	sdc_default_state: sdc-default-state {
		clk-pins {
			pins = "gpio13";
Loading