Skip to contentSkip to conversation

arm64: dts: qcom: msm8916-longcheer-l8150: Enable PM8916 vibrator

PATCH Applied [email protected] 3 participants 8 messages Nov 13, 2020 – Nov 24, 2020

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

PATCH 1/6 arm64: dts: qcom: msm8916-longcheer-l8150: Enable PM8916 vibrator

From: Nikita Travkin <[email protected]>

L8150 has a vibrator connected to PM8916. Add it to the device tree.

---
 arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts | 4 ++++
 1 file changed, 4 insertions(+)
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts +4 -0
index 2c204d535d66..d106bdbfda68 100644
@@ -61,6 +61,10 @@ &pm8916_resin {
 	linux,code = <KEY_VOLUMEDOWN>;
 };
 
+&pm8916_vib {
+	status = "okay";
+};
+
 &pronto {
 	status = "okay";
 };
Signature · 1 line
2.25.1
#1 lore raw

PATCH 2/6 arm64: dts: msm8916-longcheer-l8150: Add touchscreen

From: Nikita Travkin <[email protected]>

L8150 has RMI4 compatible Synaptics touchscreen on blsp_i2c5. It is powered by fixed regulator. Add both to the device tree.

---
 .../boot/dts/qcom/msm8916-longcheer-l8150.dts | 63 +++++++++++++++++++
 1 file changed, 63 insertions(+)
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts +63 -0
index d106bdbfda68..21f2e8e0d05e 100644
@@ -5,6 +5,7 @@
 #include "msm8916-pm8916.dtsi"
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
+#include <dt-bindings/interrupt-controller/irq.h>
 
 / {
 	model = "Longcheer L8150";
@@ -50,6 +51,52 @@ volume-up {
 			linux,code = <KEY_VOLUMEUP>;
 		};
 	};
+
+	reg_ctp: regulator-ctp {
+		compatible = "regulator-fixed";
+		regulator-name = "ctp";
+
+		regulator-min-microvolt = <2800000>;
+		regulator-max-microvolt = <2800000>;
+
+		gpio = <&msmgpio 17 GPIO_ACTIVE_HIGH>;
+		enable-active-high;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&ctp_pwr_en_default>;
+	};
+};
+
+&blsp_i2c5 {
+	status = "okay";
+
+	rmi4@20 {
+		compatible = "syna,rmi4-i2c";
+		reg = <0x20>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		interrupt-parent = <&msmgpio>;
+		interrupts = <13 IRQ_TYPE_EDGE_FALLING>;
+
+		vdd-supply = <&reg_ctp>;
+		vio-supply = <&pm8916_l6>;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&tp_int_default>;
+
+		syna,startup-delay-ms = <10>;
+
+		rmi4-f01@1 {
+			reg = <0x1>;
+			syna,nosleep-mode = <1>; // Allow sleeping
+		};
+
+		rmi4-f12@12 {
+			reg = <0x12>;
+			syna,sensor-type = <1>; // Touchscreen
+		};
+	};
 };
 
 &blsp1_uart2 {
@@ -201,6 +248,14 @@ l18 {
 };
 
 &msmgpio {
+	ctp_pwr_en_default: ctp-pwr-en-default {
+		pins = "gpio17";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
 	gpio_keys_default: gpio-keys-default {
 		pins = "gpio107";
 		function = "gpio";
@@ -209,6 +264,14 @@ gpio_keys_default: gpio-keys-default {
 		bias-pull-up;
 	};
 
+	tp_int_default: tp-int-default {
+		pins = "gpio13";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
 	usb_vbus_default: usb-vbus-default {
 		pins = "gpio62";
 		function = "gpio";
Signature · 1 line
2.25.1
#2 lore raw

PATCH 3/6 arm64: dts: msm8916-longcheer-l8150: Add position sensors

In reply to [email protected]

From: Nikita Travkin <[email protected]>

L8150 has:
- BMC156 accelerometer and magnetic sensor
- BMG160 gyroscope sensor
Add them to the device tree.

---
 .../boot/dts/qcom/msm8916-longcheer-l8150.dts | 46 +++++++++++++++++++
 1 file changed, 46 insertions(+)
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts +46 -0
index 21f2e8e0d05e..79a2475e3cd5 100644
@@ -67,6 +67,44 @@ reg_ctp: regulator-ctp {
 	};
 };
 
+&blsp_i2c2 {
+	status = "okay";
+
+	accelerometer@10 {
+		compatible = "bosch,bmc150_accel";
+		reg = <0x10>;
+
+		vdd-supply = <&pm8916_l17>;
+		vddio-supply = <&pm8916_l6>;
+
+		mount-matrix = "0", "1", "0",
+			      "-1", "0", "0",
+			       "0", "0", "1";
+	};
+
+	magnetometer@12 {
+		compatible = "bosch,bmc150_magn";
+		reg = <0x12>;
+
+		vdd-supply = <&pm8916_l17>;
+		vddio-supply = <&pm8916_l6>;
+	};
+
+	gyroscope@68 {
+		compatible = "bosch,bmg160";
+		reg = <0x68>;
+
+		interrupt-parent = <&msmgpio>;
+		interrupts = <23 IRQ_TYPE_EDGE_RISING>;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&gyro_int_default>;
+
+		vdd-supply = <&pm8916_l17>;
+		vddio-supply = <&pm8916_l6>;
+	};
+};
+
 &blsp_i2c5 {
 	status = "okay";
 
@@ -264,6 +302,14 @@ gpio_keys_default: gpio-keys-default {
 		bias-pull-up;
 	};
 
+	gyro_int_default: gyro-int-default {
+		pins = "gpio23";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
 	tp_int_default: tp-int-default {
 		pins = "gpio13";
 		function = "gpio";
Signature · 1 line
2.25.1
#3 lore raw

PATCH 4/6 arm64: dts: qcom: msm8916-longcheer-l8150: Add flash LED

In reply to [email protected]

From: Nikita Travkin <[email protected]>

L8150 uses SGM3785 Flash LED driver. It is similar to SGM3140 but can also be controlled with PWM. Since SoC doesn't have PWM, add led to the device tree using sgm3140 driver.

---
 .../boot/dts/qcom/msm8916-longcheer-l8150.dts | 24 +++++++++++++++++++
 1 file changed, 24 insertions(+)
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts +24 -0
index 79a2475e3cd5..2b8670dd4b71 100644
@@ -6,6 +6,7 @@
 #include <dt-bindings/gpio/gpio.h>
 #include <dt-bindings/input/input.h>
 #include <dt-bindings/interrupt-controller/irq.h>
+#include <dt-bindings/leds/common.h>
 
 / {
 	model = "Longcheer L8150";
@@ -65,6 +66,21 @@ reg_ctp: regulator-ctp {
 		pinctrl-names = "default";
 		pinctrl-0 = <&ctp_pwr_en_default>;
 	};
+
+	flash-led-controller {
+		compatible = "sgmicro,sgm3140";
+		flash-gpios = <&msmgpio 31 GPIO_ACTIVE_HIGH>;
+		enable-gpios = <&msmgpio 32 GPIO_ACTIVE_HIGH>;
+
+		pinctrl-names = "default";
+		pinctrl-0 = <&camera_flash_default>;
+
+		flash_led: led {
+			function = LED_FUNCTION_FLASH;
+			color = <LED_COLOR_ID_WHITE>;
+			flash-max-timeout-us = <250000>;
+		};
+	};
 };
 
 &blsp_i2c2 {
@@ -286,6 +302,14 @@ l18 {
 };
 
 &msmgpio {
+	camera_flash_default: camera-flash-default {
+		pins = "gpio31", "gpio32";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
 	ctp_pwr_en_default: ctp-pwr-en-default {
 		pins = "gpio17";
 		function = "gpio";
Signature · 1 line
2.25.1
#4 lore raw

PATCH 5/6 arm64: dts: qcom: msm8916-longcheer-l8150: Add notification LED

In reply to [email protected]

From: Nikita Travkin <[email protected]>

L8150 uses aw2013 LED contriller for notification LED on the front of the device. Add it to the device tree

---
 .../boot/dts/qcom/msm8916-longcheer-l8150.dts | 34 +++++++++++++++++++
 1 file changed, 34 insertions(+)
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts +34 -0
index 2b8670dd4b71..1e893c0b6fbc 100644
@@ -83,6 +83,40 @@ flash_led: led {
 	};
 };
 
+&blsp_i2c1 {
+	status = "okay";
+
+	led-controller@45 {
+		compatible = "awinic,aw2013";
+		reg = <0x45>;
+		#address-cells = <1>;
+		#size-cells = <0>;
+
+		vcc-supply = <&pm8916_l17>;
+
+		led@0 {
+			reg = <0>;
+			led-max-microamp = <5000>;
+			function = LED_FUNCTION_INDICATOR;
+			color = <LED_COLOR_ID_RED>;
+		};
+
+		led@1 {
+			reg = <1>;
+			led-max-microamp = <5000>;
+			function = LED_FUNCTION_INDICATOR;
+			color = <LED_COLOR_ID_GREEN>;
+		};
+
+		led@2 {
+			reg = <2>;
+			led-max-microamp = <5000>;
+			function = LED_FUNCTION_INDICATOR;
+			color = <LED_COLOR_ID_BLUE>;
+		};
+	};
+};
+
 &blsp_i2c2 {
 	status = "okay";
 
Signature · 1 line
2.25.1
#5 lore raw

PATCH 6/6 arm64: dts: qcom: msm8916-samsung-a2015: Disable muic i2c pin bias

In reply to [email protected]

From: Nikita Travkin <[email protected]>

Some versions of the firmware leave i2c gpios in a wrong state. Add pinctrl that disables pin bias since external pull-up resistors are present.

Fixes 1329c1ab0730 ("arm64: dts: qcom: Add device tree for Samsung Galaxy A3U/A5U")
---
 .../boot/dts/qcom/msm8916-samsung-a2015-common.dtsi   | 11 +++++++++++
 1 file changed, 11 insertions(+)
arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi +11 -0
index 0b0dfd3059de..f91269492d72 100644
@@ -78,6 +78,9 @@ i2c-muic {
 		sda-gpios = <&msmgpio 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
 		scl-gpios = <&msmgpio 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
 
+		pinctrl-names = "default";
+		pinctrl-0 = <&muic_i2c_default>;
+
 		#address-cells = <1>;
 		#size-cells = <0>;
 
@@ -304,6 +307,14 @@ mdss_sleep: mdss-sleep {
 		};
 	};
 
+	muic_i2c_default: muic-i2c-default {
+		pins = "gpio105", "gpio106";
+		function = "gpio";
+
+		drive-strength = <2>;
+		bias-disable;
+	};
+
 	muic_int_default: muic-int-default {
 		pins = "gpio12";
 		function = "gpio";
Signature · 1 line
2.25.1
Reviewed-by on v1 1/6
#6 lore raw
In reply to [email protected]

Hi,

Thanks for sending these!

Quoted 5 lines · On Fri, Nov 13, 2020 at 10:59:12PM +0500, [email protected] wrote:

From: Nikita Travkin <[email protected]>

L8150 has a vibrator connected to PM8916. Add it to the device tree.

For all 6 patches in this series:

Quoted 22 lines
---
 arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts | 4 ++++
 1 file changed, 4 insertions(+)
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts +4 -0
index 2c204d535d66..d106bdbfda68 100644
@@ -61,6 +61,10 @@ &pm8916_resin {
 	linux,code = <KEY_VOLUMEDOWN>;
 };
 
+&pm8916_vib {
+	status = "okay";
+};
+
 &pronto {
 	status = "okay";
 };
Signature · 1 line
2.25.1
#7 lore raw
In reply to [email protected]
This series was applied to qcom/linux.git (refs/heads/for-next):

Hello:

This series was applied to qcom/linux.git (refs/heads/for-next):

Quoted 8 lines · On Fri, 13 Nov 2020 22:59:12 +0500 you wrote:

From: Nikita Travkin <[email protected]>

L8150 has a vibrator connected to PM8916. Add it to the device tree.

---
 arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts | 4 ++++
 1 file changed, 4 insertions(+)

Here is the summary with links:
- [1/6] arm64: dts: qcom: msm8916-longcheer-l8150: Enable PM8916 vibrator

    https://git.kernel.org/qcom/c/0af8bbdb6bb8
  - [2/6] arm64: dts: msm8916-longcheer-l8150: Add touchscreen
    https://git.kernel.org/qcom/c/6eb815289a37
  - [3/6] arm64: dts: msm8916-longcheer-l8150: Add position sensors
    https://git.kernel.org/qcom/c/6bd2cae7ddd6
  - [4/6] arm64: dts: qcom: msm8916-longcheer-l8150: Add flash LED
    https://git.kernel.org/qcom/c/6b4ad4be6469
  - [5/6] arm64: dts: qcom: msm8916-longcheer-l8150: Add notification LED
    https://git.kernel.org/qcom/c/38260b9e6310
  - [6/6] arm64: dts: qcom: msm8916-samsung-a2015: Disable muic i2c pin bias
    https://git.kernel.org/qcom/c/4e8692c2ee3d

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html