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

Merge tag 'qcom-dts-for-6.5-2' of...

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

More Qualcomm ARM32 DeviceTree updates for v6.5

On MSM8960, support for USB is added and the Samsung Galaxy Express is
added.

GPIO keys and on-board LEDs are described for the APQ8074 Dragonboard.

On MSM8226, QFPROM, tsens and thermal zones are defined, and the
description of the clock hierarchy is improved.

The PCIe endpoint controller on SDX55 gains a interconnect path to DDR
defined.

Sony Xperia X2 Tablet and Samsung Galaxy Tab 4 are updated following
changes in the LP855X DeviceTree binding.

* tag 'qcom-dts-for-6.5-2' of https://git.kernel.org/pub/scm/linux/kernel/git/qcom/linux:
  arm: dts: qcom: sdx55: Add interconnect path
  ARM: dts: qcom: msm8226: Add thermal zones node
  ARM: dts: qcom: msm8226: Add tsens node and related nvmem cells
  ARM: dts: qcom: msm8226: Add qfprom node
  ARM: dts: qcom: pm8941: Add thermal zone config
  ARM: dts: qcom: pm8841: Add thermal zone config
  ARM: dts: qcom: pm8226: Add thermal sensor and thermal zone config
  ARM: dts: qcom: msm8974: rename labels for DSI nodes
  ARM: dts: qcom: apq8074-dragonboard: add gpio keys
  ARM: dts: qcom: apq8074-dragonboard: add onboard leds
  ARM: dts: qcom: Add Samsung Galaxy Express support
  ARM: dts: qcom: msm8960: Add USB node
  ARM: dts: qcom: adapt to LP855X bindings changes
  ARM: dts: qcom: msm8226: Provide clocks to mmcc node
  ARM: dts: qcom: msm8226: Use XO from rpmcc where possible

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


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
parents f07c9651 831b802a
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -1083,6 +1083,7 @@ dtb-$(CONFIG_ARCH_QCOM) += \
	qcom-msm8916-samsung-grandmax.dtb \
	qcom-msm8916-samsung-serranove.dtb \
	qcom-msm8960-cdp.dtb \
	qcom-msm8960-samsung-expressatt.dtb \
	qcom-msm8974-lge-nexus5-hammerhead.dtb \
	qcom-msm8974-sony-xperia-rhine-amami.dtb \
	qcom-msm8974-sony-xperia-rhine-honami.dtb \
+0 −1
Original line number Diff line number Diff line
@@ -99,7 +99,6 @@

			dev-ctrl = /bits/ 8 <0x80>;
			init-brt = /bits/ 8 <0x3f>;
			pwm-period = <100000>;

			pwms = <&backlight_pwm 0 100000>;
			pwm-names = "lp8556";
+70 −4
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
#include "qcom-msm8974.dtsi"
#include "qcom-pm8841.dtsi"
#include "qcom-pm8941.dtsi"
@@ -20,6 +23,26 @@
		stdout-path = "serial0:115200n8";
	};

	gpio-keys {
		compatible = "gpio-keys";
		autorepeat;

		pinctrl-0 = <&msm_keys_default>;
		pinctrl-names = "default";

		button-volup {
			label = "Volume Up";
			linux,code = <KEY_VOLUMEUP>;
			gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
		};

		button-general {
			label = "General";
			linux,code = <KEY_PROG1>;
			gpios = <&pm8941_gpios 23 GPIO_ACTIVE_LOW>;
		};
	};

	reserved-memory {
		mpss_region: mpss@ac00000 {
			reg = <0x0ac00000 0x2500000>;
@@ -48,7 +71,15 @@
	};
};

&dsi0 {
&gpu {
	status = "okay";
};

&mdss {
	status = "okay";
};

&mdss_dsi0 {
	vdda-supply = <&pm8941_l2>;
	vdd-supply = <&pm8941_l22>;
	vddio-supply = <&pm8941_l12>;
@@ -65,18 +96,18 @@

		port {
			panel_in: endpoint {
				remote-endpoint = <&dsi0_out>;
				remote-endpoint = <&mdss_dsi0_out>;
			};
		};
	};
};

&dsi0_out {
&mdss_dsi0_out {
	remote-endpoint = <&panel_in>;
	data-lanes = <0 1 2 3>;
};

&dsi0_phy {
&mdss_dsi0_phy {
	status = "okay";

	vddio-supply = <&pm8941_l12>;
@@ -90,6 +121,41 @@
	status = "okay";
};

&pm8941_gpios {
        msm_keys_default: pm8941-gpio-keys-state {
		pins = "gpio5", "gpio23";
		function = "normal";
		input-enable;
		drive-push-pull;
		bias-pull-up;
		qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
		power-source = <PM8941_GPIO_S3>; /* 1.8V */
        };
};

&pm8941_lpg {
	qcom,power-source = <1>;
	status = "okay";

	led@5 {
		reg = <5>;
		color = <LED_COLOR_ID_BLUE>;
		function = LED_FUNCTION_INDICATOR;
	};

	led@6 {
		reg = <6>;
		color = <LED_COLOR_ID_GREEN>;
		function = LED_FUNCTION_INDICATOR;
	};

	led@7 {
		reg = <7>;
		color = <LED_COLOR_ID_RED>;
		function = LED_FUNCTION_INDICATOR;
	};
};

&pm8941_wled {
	qcom,cs-out;
	qcom,switching-freq = <3200>;
+185 −5
Original line number Diff line number Diff line
@@ -182,7 +182,7 @@
			interrupt-names = "hc_irq", "pwr_irq";
			clocks = <&gcc GCC_SDCC1_AHB_CLK>,
				 <&gcc GCC_SDCC1_APPS_CLK>,
				 <&xo_board>;
				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
			clock-names = "iface", "core", "xo";
			pinctrl-names = "default";
			pinctrl-0 = <&sdhc1_default_state>;
@@ -198,7 +198,7 @@
			interrupt-names = "hc_irq", "pwr_irq";
			clocks = <&gcc GCC_SDCC2_AHB_CLK>,
				 <&gcc GCC_SDCC2_APPS_CLK>,
				 <&xo_board>;
				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
			clock-names = "iface", "core", "xo";
			pinctrl-names = "default";
			pinctrl-0 = <&sdhc2_default_state>;
@@ -214,7 +214,7 @@
			interrupt-names = "hc_irq", "pwr_irq";
			clocks = <&gcc GCC_SDCC3_AHB_CLK>,
				 <&gcc GCC_SDCC3_APPS_CLK>,
				 <&xo_board>;
				 <&rpmcc RPM_SMD_XO_CLK_SRC>;
			clock-names = "iface", "core", "xo";
			pinctrl-names = "default";
			pinctrl-0 = <&sdhc3_default_state>;
@@ -368,7 +368,8 @@
					compatible = "qcom,usb-hs-phy-msm8226",
						     "qcom,usb-hs-phy";
					#phy-cells = <0>;
					clocks = <&xo_board>, <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
					clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
						 <&gcc GCC_USB2A_PHY_SLEEP_CLK>;
					clock-names = "ref", "sleep";
					resets = <&gcc GCC_USB2A_PHY_BCR>, <&usb 0>;
					reset-names = "phy", "por";
@@ -397,6 +398,21 @@
			#clock-cells = <1>;
			#reset-cells = <1>;
			#power-domain-cells = <1>;

			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>,
				 <&gcc GCC_MMSS_GPLL0_CLK_SRC>,
				 <&gcc GPLL0_VOTE>,
				 <&gcc GPLL1_VOTE>,
				 <&rpmcc RPM_SMD_GFX3D_CLK_SRC>,
				 <0>,
				 <0>;
			clock-names = "xo",
				      "mmss_gpll0_vote",
				      "gpll0_vote",
				      "gpll1_vote",
				      "gfx3d_clk_src",
				      "dsi0pll",
				      "dsi0pllbyte";
		};

		tlmm: pinctrl@fd510000 {
@@ -512,11 +528,131 @@
			};
		};

		tsens: thermal-sensor@fc4a9000 {
			compatible = "qcom,msm8226-tsens", "qcom,tsens-v0_1";
			reg = <0xfc4a9000 0x1000>, /* TM */
			      <0xfc4a8000 0x1000>; /* SROT */
			nvmem-cells = <&tsens_mode>,
				      <&tsens_base1>, <&tsens_base2>,
				      <&tsens_s0_p1>, <&tsens_s0_p2>,
				      <&tsens_s1_p1>, <&tsens_s1_p2>,
				      <&tsens_s2_p1>, <&tsens_s2_p2>,
				      <&tsens_s3_p1>, <&tsens_s3_p2>,
				      <&tsens_s4_p1>, <&tsens_s4_p2>,
				      <&tsens_s5_p1>, <&tsens_s5_p2>,
				      <&tsens_s6_p1>, <&tsens_s6_p2>;
			nvmem-cell-names = "mode",
					   "base1", "base2",
					   "s0_p1", "s0_p2",
					   "s1_p1", "s1_p2",
					   "s2_p1", "s2_p2",
					   "s3_p1", "s3_p2",
					   "s4_p1", "s4_p2",
					   "s5_p1", "s5_p2",
					   "s6_p1", "s6_p2";
			#qcom,sensors = <6>;
			interrupts = <GIC_SPI 184 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "uplow";
			#thermal-sensor-cells = <1>;
		};

		restart@fc4ab000 {
			compatible = "qcom,pshold";
			reg = <0xfc4ab000 0x4>;
		};

		qfprom: qfprom@fc4bc000 {
			compatible = "qcom,msm8226-qfprom", "qcom,qfprom";
			reg = <0xfc4bc000 0x1000>;
			#address-cells = <1>;
			#size-cells = <1>;

			tsens_base1: base1@1c1 {
				reg = <0x1c1 0x2>;
				bits = <5 8>;
			};

			tsens_s0_p1: s0-p1@1c2 {
				reg = <0x1c2 0x2>;
				bits = <5 6>;
			};

			tsens_s1_p1: s1-p1@1c4 {
				reg = <0x1c4 0x1>;
				bits = <0 6>;
			};

			tsens_s2_p1: s2-p1@1c4 {
				reg = <0x1c4 0x2>;
				bits = <6 6>;
			};

			tsens_s3_p1: s3-p1@1c5 {
				reg = <0x1c5 0x2>;
				bits = <4 6>;
			};

			tsens_s4_p1: s4-p1@1c6 {
				reg = <0x1c6 0x1>;
				bits = <2 6>;
			};

			tsens_s5_p1: s5-p1@1c7 {
				reg = <0x1c7 0x1>;
				bits = <0 6>;
			};

			tsens_s6_p1: s6-p1@1ca {
				reg = <0x1ca 0x2>;
				bits = <4 6>;
			};

			tsens_base2: base2@1cc {
				reg = <0x1cc 0x1>;
				bits = <0 8>;
			};

			tsens_s0_p2: s0-p2@1cd {
				reg = <0x1cd 0x1>;
				bits = <0 6>;
			};

			tsens_s1_p2: s1-p2@1cd {
				reg = <0x1cd 0x2>;
				bits = <6 6>;
			};

			tsens_s2_p2: s2-p2@1ce {
				reg = <0x1ce 0x2>;
				bits = <4 6>;
			};

			tsens_s3_p2: s3-p2@1cf {
				reg = <0x1cf 0x1>;
				bits = <2 6>;
			};

			tsens_s4_p2: s4-p2@446 {
				reg = <0x446 0x2>;
				bits = <4 6>;
			};

			tsens_s5_p2: s5-p2@447 {
				reg = <0x447 0x1>;
				bits = <2 6>;
			};

			tsens_s6_p2: s6-p2@44e {
				reg = <0x44e 0x1>;
				bits = <1 6>;
			};

			tsens_mode: mode@44f {
				reg = <0x44f 0x1>;
				bits = <5 3>;
			};
		};

		spmi_bus: spmi@fc4cf000 {
			compatible = "qcom,spmi-pmic-arb";
			reg-names = "core", "intr", "cnfg";
@@ -628,7 +764,7 @@
			power-domains = <&rpmpd MSM8226_VDDCX>;
			power-domain-names = "cx";

			clocks = <&xo_board>;
			clocks = <&rpmcc RPM_SMD_XO_CLK_SRC>;
			clock-names = "xo";

			memory-region = <&adsp_region>;
@@ -663,6 +799,50 @@
		};
	};

	thermal-zones {
		cpu0-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;

			thermal-sensors = <&tsens 5>;

			trips {
				cpu_alert0: trip0 {
					temperature = <75000>;
					hysteresis = <2000>;
					type = "passive";
				};

				cpu_crit0: trip1 {
					temperature = <110000>;
					hysteresis = <2000>;
					type = "critical";
				};
			};
		};

		cpu1-thermal {
			polling-delay-passive = <250>;
			polling-delay = <1000>;

			thermal-sensors = <&tsens 2>;

			trips {
				cpu_alert1: trip0 {
					temperature = <75000>;
					hysteresis = <2000>;
					type = "passive";
				};

				cpu_crit1: trip1 {
					temperature = <110000>;
					hysteresis = <2000>;
					type = "critical";
				};
			};
		};
	};

	timer {
		compatible = "arm,armv7-timer";
		interrupts = <GIC_PPI 2
+331 −0
Original line number Diff line number Diff line
// SPDX-License-Identifier: GPL-2.0
#include <dt-bindings/input/input.h>

#include "qcom-msm8960.dtsi"
#include <dt-bindings/reset/qcom,gcc-msm8960.h>

/ {
	model = "Samsung Galaxy Express SGH-I437";
	compatible = "samsung,expressatt", "qcom,msm8960";
	chassis-type = "handset";

	aliases {
		serial0 = &gsbi5_serial;
		mmc0 = &sdcc1; /* SDCC1 eMMC slot */
		mmc1 = &sdcc3; /* SDCC3 SD card slot */
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};
};

&gsbi5 {
	qcom,mode = <GSBI_PROT_I2C_UART>;
	status = "okay";
};

&gsbi5_serial {
	status = "okay";
};

&sdcc1 {
	vmmc-supply = <&pm8921_l5>;
	status = "okay";
};

&sdcc3 {
	vmmc-supply = <&pm8921_l6>;
	vqmmc-supply = <&pm8921_l7>;
	status = "okay";
};

&gsbi1 {
	qcom,mode = <GSBI_PROT_SPI>;
	pinctrl-0 = <&spi1_default>;
	pinctrl-names = "default";
	status = "okay";
};

&gsbi1_spi {
	status = "okay";
};

&msmgpio {
	spi1_default: spi1-default-state {
		mosi-pins {
			pins = "gpio6";
			function = "gsbi1";
			drive-strength = <12>;
			bias-disable;
		};

		miso-pins {
			pins = "gpio7";
			function = "gsbi1";
			drive-strength = <12>;
			bias-disable;
		};

		cs-pins {
			pins = "gpio8";
			function = "gsbi1";
			drive-strength = <12>;
			bias-disable;
			output-low;
		};

		clk-pins {
			pins = "gpio9";
			function = "gsbi1";
			drive-strength = <12>;
			bias-disable;
		};
	};
};

&rpm {
	regulators {
		compatible = "qcom,rpm-pm8921-regulators";
		vin_lvs1_3_6-supply = <&pm8921_s4>;
		vin_lvs2-supply = <&pm8921_s4>;
		vin_lvs4_5_7-supply = <&pm8921_s4>;
		vdd_ncp-supply = <&pm8921_l6>;
		vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
		vdd_l21_l23_l29-supply = <&pm8921_s8>;
		vdd_l24-supply = <&pm8921_s1>;
		vdd_l25-supply = <&pm8921_s1>;
		vdd_l27-supply = <&pm8921_s7>;
		vdd_l28-supply = <&pm8921_s7>;

		/* Buck SMPS */
		pm8921_s1: s1 {
			regulator-always-on;
			regulator-min-microvolt = <1225000>;
			regulator-max-microvolt = <1225000>;
			qcom,switch-mode-frequency = <3200000>;
			bias-pull-down;
		};

		pm8921_s2: s2 {
			regulator-min-microvolt = <1300000>;
			regulator-max-microvolt = <1300000>;
			qcom,switch-mode-frequency = <1600000>;
			bias-pull-down;
		};

		pm8921_s3: s3 {
			regulator-min-microvolt = <500000>;
			regulator-max-microvolt = <1150000>;
			qcom,switch-mode-frequency = <4800000>;
			bias-pull-down;
		};

		pm8921_s4: s4 {
			regulator-always-on;
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			qcom,switch-mode-frequency = <1600000>;
			bias-pull-down;
			qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
		};

		pm8921_s7: s7 {
			regulator-min-microvolt = <1150000>;
			regulator-max-microvolt = <1150000>;
			qcom,switch-mode-frequency = <3200000>;
			bias-pull-down;
		};

		pm8921_s8: s8 {
			regulator-always-on;
			regulator-min-microvolt = <2050000>;
			regulator-max-microvolt = <2050000>;
			qcom,switch-mode-frequency = <1600000>;
			bias-pull-down;
		};

		/* PMOS LDO */
		pm8921_l1: l1 {
			regulator-always-on;
			regulator-min-microvolt = <1050000>;
			regulator-max-microvolt = <1050000>;
			bias-pull-down;
		};

		pm8921_l2: l2 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};

		pm8921_l3: l3 {
			regulator-min-microvolt = <3075000>;
			regulator-max-microvolt = <3300000>;
			bias-pull-down;
		};

		pm8921_l4: l4 {
			regulator-always-on;
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			bias-pull-down;
		};

		pm8921_l5: l5 {
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <2950000>;
			bias-pull-down;
		};

		pm8921_l6: l6 {
			regulator-min-microvolt = <2950000>;
			regulator-max-microvolt = <2950000>;
			bias-pull-down;
		};

		pm8921_l7: l7 {
			regulator-always-on;
			regulator-min-microvolt = <1850000>;
			regulator-max-microvolt = <2950000>;
			bias-pull-down;
		};

		pm8921_l8: l8 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3100000>;
			bias-pull-down;
		};

		pm8921_l9: l9 {
			regulator-min-microvolt = <2850000>;
			regulator-max-microvolt = <2850000>;
			bias-pull-down;
		};

		pm8921_l10: l10 {
			regulator-min-microvolt = <3000000>;
			regulator-max-microvolt = <3000000>;
			bias-pull-down;
		};

		pm8921_l11: l11 {
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <3300000>;
			bias-pull-down;
		};

		pm8921_l12: l12 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1200000>;
			bias-pull-down;
		};

		pm8921_l14: l14 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			bias-pull-down;
		};

		pm8921_l15: l15 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2950000>;
			bias-pull-down;
		};

		pm8921_l16: l16 {
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <3000000>;
			bias-pull-down;
		};

		pm8921_l17: l17 {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <3300000>;
			bias-pull-down;
		};

		pm8921_l18: l18 {
			regulator-min-microvolt = <1200000>;
			regulator-max-microvolt = <1500000>;
			bias-pull-down;
		};

		pm8921_l21: l21 {
			regulator-min-microvolt = <1900000>;
			regulator-max-microvolt = <1900000>;
			bias-pull-down;
		};

		pm8921_l22: l22 {
			regulator-min-microvolt = <2750000>;
			regulator-max-microvolt = <2750000>;
			bias-pull-down;
		};

		pm8921_l23: l23 {
			regulator-always-on;
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			bias-pull-down;
		};

		pm8921_l24: l24 {
			regulator-min-microvolt = <750000>;
			regulator-max-microvolt = <1150000>;
			bias-pull-down;
		};

		pm8921_l25: l25 {
			regulator-always-on;
			regulator-min-microvolt = <1225000>;
			regulator-max-microvolt = <1225000>;
			bias-pull-down;
		};

		/* Low Voltage Switch */
		pm8921_lvs1: lvs1 {
			bias-pull-down;
		};

		pm8921_lvs2: lvs2 {
			bias-pull-down;
		};

		pm8921_lvs3: lvs3 {
			bias-pull-down;
		};

		pm8921_lvs4: lvs4 {
			bias-pull-down;
		};

		pm8921_lvs5: lvs5 {
			bias-pull-down;
		};

		pm8921_lvs6: lvs6 {
			bias-pull-down;
		};

		pm8921_lvs7: lvs7 {
			bias-pull-down;
		};

		pm8921_ncp: ncp {
			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <1800000>;
			qcom,switch-mode-frequency = <1600000>;
		};
	};
};

&usb_hs1_phy {
	v3p3-supply = <&pm8921_l3>;
	v1p8-supply = <&pm8921_l4>;
};

&usb1 {
	dr_mode = "otg";
	status = "okay";
};
Loading