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

Commit 8f90490a authored by Kiran Gunda's avatar Kiran Gunda
Browse files

ARM: dts: msm: Add PM8008 OCP interrupt support for lito/bengal

Add PM8008 OCP interrupt support for lito. The OCP interrupt is
delivered to the SoC from the MISC module of the PM8008 through
the TLMM GPIO45. Add the necessary configuration for TLMM GPIO45
and MISC peripheral. Also configure the "qcom-i2c-pmic" module as
an interrupt controller.

Change-Id: I46274e65d37ce2d7377bd8041f93a5fc3abb3923
parent ededd958
Loading
Loading
Loading
Loading
+27 −0
Original line number Diff line number Diff line
@@ -1115,5 +1115,32 @@
				};
			};
		};

		pm8008_active: pm8008_active {
			mux {
				pins = "gpio26";
				function = "gpio";
			};

			config {
				pins = "gpio26";
				bias-pull-up;
				output-high;
				drive-strength = <2>;
			};
		};

		pm8008_interrupt: pm8008_interrupt {
			mux {
				pins = "gpior25";
				function = "gpio";
			};

			config {
				pins = "gpio25";
				bias-disable;
				input-enable;
			};
		};
	};
};
+5 −17
Original line number Diff line number Diff line
@@ -2646,25 +2646,13 @@
	#include "pm8008.dtsi"
};

&tlmm {
	pm8008_active: pm8008_active {
		mux {
			pins = "gpio26";
			function = "gpio";
		};

		config {
			pins = "gpio26";
			bias-pull-up;
			output-high;
			drive-strength = <2>;
		};
	};
};
&pm8008_8 {
	/* PM8008 IRQ STAT */
	interrupt-parent = <&tlmm>;
	interrupts = <25 IRQ_TYPE_EDGE_RISING>;

&pm8008_chip {
	pinctrl-names = "default";
	pinctrl-0 = <&pm8008_active>;
	pinctrl-0 = <&pm8008_active &pm8008_interrupt>;
};

&pm8008_regulators {
+27 −0
Original line number Diff line number Diff line
@@ -1842,5 +1842,32 @@
				drive-strenght = <16>;
			};
		};

		pm8008_interrupt: pm8008_interrupt {
			mux {
				pins = "gpio45";
				function = "gpio";
			};

			config {
				pins = "gpio45";
				bias-disable;
				input-enable;
			};
		};

		pm8008_active: pm8008_active {
			mux {
				pins = "gpio44";
				function = "gpio";
			};

			config {
				pins = "gpio44";
				bias-pull-up;
				output-high;
				drive-strength = <2>;
			};
		};
	};
};
+5 −17
Original line number Diff line number Diff line
@@ -3938,25 +3938,13 @@
	status = "ok";
};

&tlmm {
	pm8008_active: pm8008_active {
		mux {
			pins = "gpio44";
			function = "gpio";
		};

		config {
			pins = "gpio44";
			bias-pull-up;
			output-high;
			drive-strength = <2>;
		};
	};
};
&pm8008_8 {
	/* PM8008 IRQ STAT */
	interrupt-parent = <&tlmm>;
	interrupts = <45 IRQ_TYPE_EDGE_RISING>;

&pm8008_chip {
	pinctrl-names = "default";
	pinctrl-0 = <&pm8008_active>;
	pinctrl-0 = <&pm8008_active &pm8008_interrupt>;
};

&pm8008_regulators {
+32 −0
Original line number Diff line number Diff line
@@ -5,10 +5,18 @@ pm8008_8: qcom,pm8008@8 {
	reg = <0x8>;
	#address-cells = <1>;
	#size-cells = <0>;
	interrupt-controller;
	#interrupt-cells = <3>;

	interrupt-names = "pm8008";
	qcom,periph-map = <0x09 0x24 0xc0 0xc1>;

	pm8008_chip: qcom,pm8008-chip@900 {
		compatible = "qcom,pm8008-chip";
		reg = <0x900>;
		interrupts = <0x09 4 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "ocp";

		PM8008_EN: qcom,pm8008-chip-en {
			regulator-name = "pm8008-chip-en";
		};
@@ -18,6 +26,25 @@ pm8008_8: qcom,pm8008@8 {
		compatible = "qcom,qpnp-revid";
		reg = <0x100>;
	};

	pm8008_gpios: pinctrl@c000 {
		compatible = "qcom,spmi-gpio";
		reg = <0xc000 0x200>;
		interrupts = <0xc0 0 IRQ_TYPE_EDGE_RISING>,
				<0xc1 0 IRQ_TYPE_EDGE_RISING>;
		interrupt-names = "pm8008_gpio1", "pm8008_gpio2";
		gpio-controller;
		#gpio-cells = <2>;

		pm8008_gpio1_active: pm8008_gpio1_active {
			pins = "gpio1";
			function = "func1";
			power-source = <1>;
			output-enable;
			input-disable;
			bias-disable;
		};
	};
};

pm8008_9: qcom,pm8008@9 {
@@ -26,9 +53,14 @@ pm8008_9: qcom,pm8008@9 {
	#address-cells = <1>;
	#size-cells = <0>;

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

	pm8008_regulators: qcom,pm8008-regulator {
		compatible = "qcom,pm8008-regulator";
		pm8008_en-supply = <&PM8008_EN>;
		qcom,enable-ocp-broadcast;

		L1P: qcom,pm8008-l1@4000 {
			reg = /bits/ 16 <0x4000>;
			regulator-name = "pm8008_l1";