Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63b5e000 authored by Arnd Bergmann's avatar Arnd Bergmann
Browse files

Merge tag 'qcom-arm64-for-4.14' of...

Merge tag 'qcom-arm64-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux into next/dt64

Pull "Qualcomm ARM64 Updates for v4.14" from Andy Gross:

* Force USB host mode on APQ8016
* Update coresight nodes on MSM8916
* Add MSM8996 support for USB, PCIE phy, RPM/GLink, and modem SMP2P
* Add db820c PM8994 regulator node
* Add PMI8994 gpios
* Add assorted MSM8916 nodes including GPU, IOMMU, Venus, and CEC clock.

* tag 'qcom-arm64-for-4.14' of git://git.kernel.org/pub/scm/linux/kernel/git/agross/linux:
  arm64: dts: qcom: msm8916: Add IOMMU support
  arm64: dts: qcom: msm8916: Add Venus video codec support
  arm64: dts: qcom: msm8916: Add gpu support
  arm64: dts: qcom: msm8996: Specify smd-edge for ADSP
  arm64: dts: msm8996: Add modem smp2p nodes
  arm64: dts: qcom: db820c: Add pm8994 regulator node
  arm64: dts: qcom: Add RPM glink nodes to msm8996
  arm64: dts: msm8996: Add device node for qcom,dwc3
  arm64: dts: msm8996: Add device node for qcom qmp-phy for pcie
  arm64: dts: msm8996: Add device node for qcom qmp-phy for usb
  arm64: dts: msm8996: Add device node for qcom qusb2 phy
  arm64: dts: qcom: add cec clock for apq8016 board
  arm64: dts: pmi8994: Add device node for pmi8994 gpios
  arm64: dts: qcom-msm8916: dts: Update coresight replicator
  arm64: dts: qcom: Force host mode for USB on apq8016-sbc
parents dbc1c5fc 6a6729f3
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
			function = PMIC_GPIO_FUNC_NORMAL;
			power-source = <PM8916_GPIO_VPH>;
			input-disable;
			output-high;
		};
	};

+7 −10
Original line number Diff line number Diff line
@@ -88,6 +88,8 @@
				interrupts = <31 2>;

				adi,dsi-lanes = <4>;
				clocks = <&rpmcc RPM_SMD_BB_CLK2>;
				clock-names = "cec";

				pd-gpios = <&msmgpio 32 0>;

@@ -213,11 +215,14 @@
		};

		usb@78d9000 {
			extcon = <&usb_id>, <&usb_id>;
			extcon = <&usb_id>;
			status = "okay";
			adp-disable;
			hnp-disable;
			srp-disable;
			dr_mode = "host";
			pinctrl-names = "default";
			pinctrl-0 = <&usb_sw_sel_pm>;
			ulpi {
				phy {
					v1p8-supply = <&pm8916_l7>;
@@ -337,19 +342,11 @@

	usb_id: usb-id {
		compatible = "linux,extcon-usb-gpio";
		id-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
		vbus-gpio = <&msmgpio 121 GPIO_ACTIVE_HIGH>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb_id_default>;
	};

	usb-switch {
		compatible = "toshiba,tc7usb40mu";
		switch-gpios = <&pm8916_gpios 4 GPIO_ACTIVE_HIGH>;
		extcon = <&usb_id>;
		pinctrl-names = "default";
		pinctrl-0 = <&usb_sw_sel_pm>;
	};

	hdmi-out {
		compatible = "hdmi-connector";
		type = "a";
+24 −0
Original line number Diff line number Diff line
@@ -24,4 +24,28 @@
			power-source = <PM8994_GPIO_S4>; // 1.8V
		};
	};

	usb3_vbus_det_gpio: pm8996_gpio22 {
		pinconf {
			pins = "gpio22";
			function = PMIC_GPIO_FUNC_NORMAL;
			input-enable;
			bias-pull-down;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
			power-source = <PM8994_GPIO_S4>; // 1.8V
		};
	};
};

&pmi8994_gpios {
	usb2_vbus_det_gpio: pmi8996_gpio6 {
		pinconf {
			pins = "gpio6";
			function = PMIC_GPIO_FUNC_NORMAL;
			input-enable;
			bias-pull-down;
			qcom,drive-strength = <PMIC_GPIO_STRENGTH_NO>;
			power-source = <PM8994_GPIO_S4>; // 1.8V
		};
	};
};
+198 −0
Original line number Diff line number Diff line
@@ -13,6 +13,7 @@

#include "msm8996.dtsi"
#include "pm8994.dtsi"
#include "pmi8994.dtsi"
#include "apq8096-db820c-pins.dtsi"
#include "apq8096-db820c-pmic-pins.dtsi"
#include <dt-bindings/input/input.h>
@@ -88,6 +89,55 @@
			cd-gpios = <&msmgpio 38 0x1>;
			status = "okay";
		};

		phy@34000 {
			status = "okay";
		};

		phy@7410000 {
			status = "okay";
		};

		phy@7411000 {
			status = "okay";
		};

		phy@7412000 {
			status = "okay";
		};

		usb@6a00000 {
			status = "okay";

			dwc3@6a00000 {
				extcon = <&usb3_id>;
				dr_mode = "otg";
			};
		};

		usb3_id: usb3-id {
			compatible = "linux,extcon-usb-gpio";
			id-gpio = <&pm8994_gpios 22 GPIO_ACTIVE_HIGH>;
			pinctrl-names = "default";
			pinctrl-0 = <&usb3_vbus_det_gpio>;
		};

		usb@7600000 {
			status = "okay";

			dwc3@7600000 {
				extcon = <&usb2_id>;
				dr_mode = "otg";
				maximum-speed = "high-speed";
			};
		};

		usb2_id: usb2-id {
			compatible = "linux,extcon-usb-gpio";
			id-gpio = <&pmi8994_gpios 6 GPIO_ACTIVE_HIGH>;
			pinctrl-names = "default";
			pinctrl-0 = <&usb2_vbus_det_gpio>;
		};
	};


@@ -106,4 +156,152 @@
			gpios = <&pm8994_gpios 2 GPIO_ACTIVE_LOW>;
		};
	};

	rpm-glink {
		rpm_requests {
			pm8994-regulators {
				vdd_l1-supply = <&pm8994_s3>;
				vdd_l2_l26_l28-supply = <&pm8994_s3>;
				vdd_l3_l11-supply = <&pm8994_s3>;
				vdd_l4_l27_l31-supply = <&pm8994_s3>;
				vdd_l5_l7-supply = <&pm8994_s5>;
				vdd_l14_l15-supply = <&pm8994_s5>;
				vdd_l20_l21-supply = <&pm8994_s5>;
				vdd_l25-supply = <&pm8994_s3>;

				s3 {
					regulator-min-microvolt = <1300000>;
					regulator-max-microvolt = <1300000>;
				};
				s4 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				s5 {
					regulator-min-microvolt = <2150000>;
					regulator-max-microvolt = <2150000>;
				};
				s7 {
					regulator-min-microvolt = <800000>;
					regulator-max-microvolt = <800000>;
				};

				l1 {
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1000000>;
				};
				l2 {
					regulator-min-microvolt = <1250000>;
					regulator-max-microvolt = <1250000>;
				};
				l3 {
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <850000>;
				};
				l4 {
					regulator-min-microvolt = <1225000>;
					regulator-max-microvolt = <1225000>;
				};
				l6 {
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
				};
				l8 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l9 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l10 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l11 {
					regulator-min-microvolt = <1150000>;
					regulator-max-microvolt = <1150000>;
				};
				l12 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l13 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <2950000>;
				};
				l14 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l15 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l16 {
					regulator-min-microvolt = <2700000>;
					regulator-max-microvolt = <2700000>;
				};
				l17 {
					regulator-min-microvolt = <2500000>;
					regulator-max-microvolt = <2500000>;
				};
				l18 {
					regulator-min-microvolt = <2700000>;
					regulator-max-microvolt = <2900000>;
				};
				l19 {
					regulator-min-microvolt = <3000000>;
					regulator-max-microvolt = <3000000>;
				};
				l20 {
					regulator-min-microvolt = <2950000>;
					regulator-max-microvolt = <2950000>;
					regulator-allow-set-load;
				};
				l21 {
					regulator-min-microvolt = <2950000>;
					regulator-max-microvolt = <2950000>;
				};
				l22 {
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
				};
				l23 {
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
				};
				l24 {
					regulator-min-microvolt = <3075000>;
					regulator-max-microvolt = <3075000>;
				};
				l25 {
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
					regulator-allow-set-load;
				};
				l27 {
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1000000>;
				};
				l28 {
					regulator-min-microvolt = <925000>;
					regulator-max-microvolt = <925000>;
					regulator-allow-set-load;
				};
				l29 {
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
				};
				l30 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
				l32 {
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
				};
			};
		};
	};
};
+119 −1
Original line number Diff line number Diff line
@@ -88,6 +88,11 @@
			no-map;
		};

		venus_mem: venus@89900000 {
			reg = <0x0 0x89900000 0x0 0x600000>;
			no-map;
		};

		mba_mem: mba@8ea00000 {
			no-map;
			reg = <0 0x8ea00000 0 0x100000>;
@@ -204,6 +209,17 @@

	};

	gpu_opp_table: opp_table {
		compatible = "operating-points-v2";

		opp-400000000 {
			opp-hz = /bits/ 64 <400000000>;
		};
		opp-19200000 {
			opp-hz = /bits/ 64 <19200000>;
		};
	};

	timer {
		compatible = "arm,armv8-timer";
		interrupts = <GIC_PPI 2 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
@@ -694,6 +710,84 @@
			#thermal-sensor-cells = <1>;
		};

		apps_iommu: iommu@1ef0000 {
			#address-cells = <1>;
			#size-cells = <1>;
			#iommu-cells = <1>;
			compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
			ranges = <0 0x1e20000 0x40000>;
			reg = <0x1ef0000 0x3000>;
			clocks = <&gcc GCC_SMMU_CFG_CLK>,
				 <&gcc GCC_APSS_TCU_CLK>;
			clock-names = "iface", "bus";
			qcom,iommu-secure-id = <17>;

			// mdp_0:
			iommu-ctx@4000 {
				compatible = "qcom,msm-iommu-v1-ns";
				reg = <0x4000 0x1000>;
				interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
			};

			// venus_ns:
			iommu-ctx@5000 {
				compatible = "qcom,msm-iommu-v1-sec";
				reg = <0x5000 0x1000>;
				interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
			};
		};

		gpu_iommu: iommu@1f08000 {
			#address-cells = <1>;
			#size-cells = <1>;
			#iommu-cells = <1>;
			compatible = "qcom,msm8916-iommu", "qcom,msm-iommu-v1";
			ranges = <0 0x1f08000 0x10000>;
			clocks = <&gcc GCC_SMMU_CFG_CLK>,
				 <&gcc GCC_GFX_TCU_CLK>;
			clock-names = "iface", "bus";
			qcom,iommu-secure-id = <18>;

			// gfx3d_user:
			iommu-ctx@1000 {
				compatible = "qcom,msm-iommu-v1-ns";
				reg = <0x1000 0x1000>;
				interrupts = <GIC_SPI 241 IRQ_TYPE_LEVEL_HIGH>;
			};

			// gfx3d_priv:
			iommu-ctx@2000 {
				compatible = "qcom,msm-iommu-v1-ns";
				reg = <0x2000 0x1000>;
				interrupts = <GIC_SPI 242 0>;
			};
		};

		gpu@1c00000 {
			compatible = "qcom,adreno-306.0", "qcom,adreno";
			reg = <0x01c00000 0x20000>;
			reg-names = "kgsl_3d0_reg_memory";
			interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
			interrupt-names = "kgsl_3d0_irq";
			clock-names =
			    "core",
			    "iface",
			    "mem",
			    "mem_iface",
			    "alt_mem_iface",
			    "gfx3d";
			clocks =
			    <&gcc GCC_OXILI_GFX3D_CLK>,
			    <&gcc GCC_OXILI_AHB_CLK>,
			    <&gcc GCC_OXILI_GMEM_CLK>,
			    <&gcc GCC_BIMC_GFX_CLK>,
			    <&gcc GCC_BIMC_GPU_CLK>,
			    <&gcc GFX3D_CLK_SRC>;
			power-domains = <&gcc OXILI_GDSC>;
			operating-points-v2 = <&gpu_opp_table>;
			iommus = <&gpu_iommu 1>, <&gpu_iommu 2>;
		};

		mdss: mdss@1a00000 {
			compatible = "qcom,mdss";
			reg = <0x1a00000 0x1000>,
@@ -735,6 +829,8 @@
					      "core_clk",
					      "vsync_clk";

				iommus = <&apps_iommu 4>;

				ports {
					#address-cells = <1>;
					#size-cells = <0>;
@@ -990,7 +1086,7 @@
		};

		replicator@824000 {
			compatible = "qcom,coresight-replicator1x", "arm,primecell";
			compatible = "arm,coresight-dynamic-replicator", "arm,primecell";
			reg = <0x824000 0x1000>;

			clocks = <&rpmcc RPM_QDSS_CLK>, <&rpmcc RPM_QDSS_A_CLK>;
@@ -1207,6 +1303,28 @@
				};
			};
		};

		venus: video-codec@1d00000 {
			compatible = "qcom,msm8916-venus";
			reg = <0x01d00000 0xff000>;
			interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
			power-domains = <&gcc VENUS_GDSC>;
			clocks = <&gcc GCC_VENUS0_VCODEC0_CLK>,
				 <&gcc GCC_VENUS0_AHB_CLK>,
				 <&gcc GCC_VENUS0_AXI_CLK>;
			clock-names = "core", "iface", "bus";
			iommus = <&apps_iommu 5>;
			memory-region = <&venus_mem>;
			status = "okay";

			video-decoder {
				compatible = "venus-decoder";
			};

			video-encoder {
				compatible = "venus-encoder";
			};
		};
	};

	smd {
Loading