2020-11-13 18:01:50

by Nikita Travkin

[permalink] [raw]
Subject: [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.

Signed-off-by: Nikita Travkin <[email protected]>
---
arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts | 4 ++++
1 file changed, 4 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts b/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
index 2c204d535d66..d106bdbfda68 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
+++ b/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
@@ -61,6 +61,10 @@ &pm8916_resin {
linux,code = <KEY_VOLUMEDOWN>;
};

+&pm8916_vib {
+ status = "okay";
+};
+
&pronto {
status = "okay";
};
--
2.25.1


2020-11-13 18:01:51

by Nikita Travkin

[permalink] [raw]
Subject: [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.

Signed-off-by: Nikita Travkin <[email protected]>
---
.../boot/dts/qcom/msm8916-longcheer-l8150.dts | 63 +++++++++++++++++++
1 file changed, 63 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts b/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
index d106bdbfda68..21f2e8e0d05e 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
+++ b/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
@@ -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";
--
2.25.1

2020-11-13 18:01:54

by Nikita Travkin

[permalink] [raw]
Subject: [PATCH 6/6] arm64: dts: qcom: msm8916-samsung-a2015: Disable muic i2c pin bias

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")
Signed-off-by: Nikita Travkin <[email protected]>
---
.../boot/dts/qcom/msm8916-samsung-a2015-common.dtsi | 11 +++++++++++
1 file changed, 11 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi b/arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi
index 0b0dfd3059de..f91269492d72 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi
+++ b/arch/arm64/boot/dts/qcom/msm8916-samsung-a2015-common.dtsi
@@ -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";
--
2.25.1

2020-11-13 18:02:19

by Nikita Travkin

[permalink] [raw]
Subject: [PATCH 3/6] arm64: dts: msm8916-longcheer-l8150: Add position sensors

From: Nikita Travkin <[email protected]>

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

Signed-off-by: Nikita Travkin <[email protected]>
---
.../boot/dts/qcom/msm8916-longcheer-l8150.dts | 46 +++++++++++++++++++
1 file changed, 46 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts b/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
index 21f2e8e0d05e..79a2475e3cd5 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
+++ b/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
@@ -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";
--
2.25.1

2020-11-13 18:02:56

by Nikita Travkin

[permalink] [raw]
Subject: [PATCH 5/6] arm64: dts: qcom: msm8916-longcheer-l8150: Add notification LED

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

Signed-off-by: Nikita Travkin <[email protected]>
---
.../boot/dts/qcom/msm8916-longcheer-l8150.dts | 34 +++++++++++++++++++
1 file changed, 34 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts b/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
index 2b8670dd4b71..1e893c0b6fbc 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
+++ b/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
@@ -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";

--
2.25.1

2020-11-13 18:03:00

by Nikita Travkin

[permalink] [raw]
Subject: [PATCH 4/6] arm64: dts: qcom: msm8916-longcheer-l8150: Add flash LED

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.

Signed-off-by: Nikita Travkin <[email protected]>
---
.../boot/dts/qcom/msm8916-longcheer-l8150.dts | 24 +++++++++++++++++++
1 file changed, 24 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts b/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
index 79a2475e3cd5..2b8670dd4b71 100644
--- a/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
+++ b/arch/arm64/boot/dts/qcom/msm8916-longcheer-l8150.dts
@@ -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";
--
2.25.1

2020-11-14 14:01:18

by Stephan Gerhold

[permalink] [raw]
Subject: Re: [PATCH 1/6] arm64: dts: qcom: msm8916-longcheer-l8150: Enable PM8916 vibrator

Hi,

Thanks for sending these!

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.
>
> Signed-off-by: Nikita Travkin <[email protected]>

For all 6 patches in this series:

Reviewed-by: Stephan Gerhold <[email protected]>

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