summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2018-03-15 05:43:14 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2018-03-15 05:43:13 -0700
commitb615bd970fe49bb3a52d6ba6f7c007392b60dec7 (patch)
tree2d3d3a9987c3a4f3cf734865c6167178f89bc224
parentc8eb18237515e2eb737f61c33d20f79d568d174d (diff)
parent8304c5cf2f37339222656dd8aec90f5d9e0281a3 (diff)
Merge "ARM: dts: msm: Configure I2C instances for bus recovery"
-rw-r--r--arch/arm/boot/dts/qcom/msm8996-pinctrl.dtsi54
-rw-r--r--arch/arm/boot/dts/qcom/msm8996.dtsi22
-rw-r--r--arch/arm/boot/dts/qcom/msm8998-blsp.dtsi62
-rw-r--r--arch/arm/boot/dts/qcom/msm8998-pinctrl.dtsi146
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-blsp.dtsi42
-rw-r--r--arch/arm/boot/dts/qcom/sdm660-pinctrl.dtsi98
-rw-r--r--arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-blsp.dtsi13
-rw-r--r--arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-pinctrl.dtsi28
8 files changed, 430 insertions, 35 deletions
diff --git a/arch/arm/boot/dts/qcom/msm8996-pinctrl.dtsi b/arch/arm/boot/dts/qcom/msm8996-pinctrl.dtsi
index 50312a57059a..0982ead00f8c 100644
--- a/arch/arm/boot/dts/qcom/msm8996-pinctrl.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8996-pinctrl.dtsi
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2017, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -713,6 +713,19 @@
bias-pull-down;
};
};
+
+ i2c_12_bitbang: i2c_12_bitbang {
+ mux {
+ pins = "gpio87", "gpio88";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio87", "gpio88";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_6 {
@@ -741,6 +754,19 @@
bias-pull-up;
};
};
+
+ i2c_6_bitbang: i2c_6_bitbang {
+ mux {
+ pins = "gpio27", "gpio28";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio27", "gpio28";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_7 {
@@ -769,6 +795,19 @@
bias-pull-up;
};
};
+
+ i2c_7_bitbang: i2c_7_bitbang {
+ mux {
+ pins = "gpio55", "gpio56";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio55", "gpio56";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_8 {
@@ -797,6 +836,19 @@
bias-pull-up;
};
};
+
+ i2c_8_bitbang: i2c_8_bitbang {
+ mux {
+ pins = "gpio6", "gpio7";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio6", "gpio7";
+ drive-strength = <4>;
+ bias-pull-up;
+ };
+ };
};
pmx_fm_int {
diff --git a/arch/arm/boot/dts/qcom/msm8996.dtsi b/arch/arm/boot/dts/qcom/msm8996.dtsi
index 3b067e6090e6..2d30aab29a0e 100644
--- a/arch/arm/boot/dts/qcom/msm8996.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8996.dtsi
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2017, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -405,9 +405,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,
<&clock_gcc clk_gcc_blsp2_qup6_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 87 0x00>;
+ qcom,i2c-clk = <&tlmm 88 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_12_active>;
pinctrl-1 = <&i2c_12_sleep>;
+ pinctrl-2 = <&i2c_12_bitbang>;
};
@@ -444,9 +447,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>,
<&clock_gcc clk_gcc_blsp1_qup6_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 27 0x00>;
+ qcom,i2c-clk = <&tlmm 28 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_6_active>;
pinctrl-1 = <&i2c_6_sleep>;
+ pinctrl-2 = <&i2c_6_bitbang>;
};
i2c_7: i2c@75b5000 { /* BLSP2 QUP1 */
@@ -466,9 +472,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,
<&clock_gcc clk_gcc_blsp2_qup1_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 55 0x00>;
+ qcom,i2c-clk = <&tlmm 56 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_7_active>;
pinctrl-1 = <&i2c_7_sleep>;
+ pinctrl-2 = <&i2c_7_bitbang>;
};
i2c_8: i2c@75b6000 { /* BLSP2 QUP2 */
@@ -488,9 +497,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,
<&clock_gcc clk_gcc_blsp2_qup2_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 6 0x00>;
+ qcom,i2c-clk = <&tlmm 7 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_8_active>;
pinctrl-1 = <&i2c_8_sleep>;
+ pinctrl-2 = <&i2c_8_bitbang>;
};
blsp1_uart2: uart@07570000 { /* BLSP1 UART2 */
diff --git a/arch/arm/boot/dts/qcom/msm8998-blsp.dtsi b/arch/arm/boot/dts/qcom/msm8998-blsp.dtsi
index b9e323d894c3..cc258d15a780 100644
--- a/arch/arm/boot/dts/qcom/msm8998-blsp.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8998-blsp.dtsi
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2015-2016, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2015-2016, 2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -75,9 +75,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>,
<&clock_gcc clk_gcc_blsp1_qup1_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 2 0x00>;
+ qcom,i2c-clk = <&tlmm 3 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_1_active>;
pinctrl-1 = <&i2c_1_sleep>;
+ pinctrl-2 = <&i2c_1_bitbang>;
status = "disabled";
};
@@ -98,9 +101,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>,
<&clock_gcc clk_gcc_blsp1_qup2_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 33 0x00>;
+ qcom,i2c-clk = <&tlmm 32 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_2_active>;
pinctrl-1 = <&i2c_2_sleep>;
+ pinctrl-2 = <&i2c_2_bitbang>;
status = "disabled";
};
@@ -121,9 +127,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>,
<&clock_gcc clk_gcc_blsp1_qup3_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 47 0x00>;
+ qcom,i2c-clk = <&tlmm 48 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_3_active>;
pinctrl-1 = <&i2c_3_sleep>;
+ pinctrl-2 = <&i2c_3_bitbang>;
status = "disabled";
};
@@ -144,9 +153,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>,
<&clock_gcc clk_gcc_blsp1_qup4_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 10 0x00>;
+ qcom,i2c-clk = <&tlmm 11 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_4_active>;
pinctrl-1 = <&i2c_4_sleep>;
+ pinctrl-2 = <&i2c_4_bitbang>;
status = "disabled";
};
@@ -167,9 +179,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>,
<&clock_gcc clk_gcc_blsp1_qup5_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 87 0x00>;
+ qcom,i2c-clk = <&tlmm 88 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_5_active>;
pinctrl-1 = <&i2c_5_sleep>;
+ pinctrl-2 = <&i2c_5_bitbang>;
status = "disabled";
};
@@ -190,9 +205,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp1_ahb_clk>,
<&clock_gcc clk_gcc_blsp1_qup6_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 43 0x00>;
+ qcom,i2c-clk = <&tlmm 44 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_6_active>;
pinctrl-1 = <&i2c_6_sleep>;
+ pinctrl-2 = <&i2c_6_bitbang>;
status = "disabled";
};
@@ -213,9 +231,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,
<&clock_gcc clk_gcc_blsp2_qup1_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 55 0x00>;
+ qcom,i2c-clk = <&tlmm 56 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_7_active>;
pinctrl-1 = <&i2c_7_sleep>;
+ pinctrl-2 = <&i2c_7_bitbang>;
status = "disabled";
};
@@ -236,9 +257,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,
<&clock_gcc clk_gcc_blsp2_qup2_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 6 0x00>;
+ qcom,i2c-clk = <&tlmm 7 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_8_active>;
pinctrl-1 = <&i2c_8_sleep>;
+ pinctrl-2 = <&i2c_8_bitbang>;
status = "disabled";
};
@@ -259,9 +283,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,
<&clock_gcc clk_gcc_blsp2_qup3_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 51 0x00>;
+ qcom,i2c-clk = <&tlmm 52 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_9_active>;
pinctrl-1 = <&i2c_9_sleep>;
+ pinctrl-2 = <&i2c_9_bitbang>;
status = "disabled";
};
@@ -282,9 +309,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,
<&clock_gcc clk_gcc_blsp2_qup4_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 67 0x00>;
+ qcom,i2c-clk = <&tlmm 68 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_10_active>;
pinctrl-1 = <&i2c_10_sleep>;
+ pinctrl-2 = <&i2c_10_bitbang>;
status = "disabled";
};
@@ -305,9 +335,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,
<&clock_gcc clk_gcc_blsp2_qup5_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 60 0x00>;
+ qcom,i2c-clk = <&tlmm 61 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_11_active>;
pinctrl-1 = <&i2c_11_sleep>;
+ pinctrl-2 = <&i2c_11_bitbang>;
status = "disabled";
};
@@ -328,9 +361,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc clk_gcc_blsp2_ahb_clk>,
<&clock_gcc clk_gcc_blsp2_qup6_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 83 0x00>;
+ qcom,i2c-clk = <&tlmm 84 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_12_active>;
pinctrl-1 = <&i2c_12_sleep>;
+ pinctrl-2 = <&i2c_12_bitbang>;
status = "disabled";
};
diff --git a/arch/arm/boot/dts/qcom/msm8998-pinctrl.dtsi b/arch/arm/boot/dts/qcom/msm8998-pinctrl.dtsi
index 1abb28897fbd..e066d483b350 100644
--- a/arch/arm/boot/dts/qcom/msm8998-pinctrl.dtsi
+++ b/arch/arm/boot/dts/qcom/msm8998-pinctrl.dtsi
@@ -1,4 +1,4 @@
-/* Copyright (c) 2015-2017, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2015-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -76,6 +76,18 @@
bias-pull-up;
};
};
+ i2c_1_bitbang: i2c_1_bitbang {
+ mux {
+ pins = "gpio2", "gpio3";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio2", "gpio3";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_2 {
@@ -104,6 +116,18 @@
bias-pull-up;
};
};
+ i2c_2_bitbang: i2c_2_bitbang {
+ mux {
+ pins = "gpio32", "gpio33";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio32", "gpio33";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_3 {
@@ -132,6 +156,18 @@
bias-pull-up;
};
};
+ i2c_3_bitbang: i2c_3_bitbang {
+ mux {
+ pins = "gpio47", "gpio48";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio47", "gpio48";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_4 {
@@ -160,6 +196,18 @@
bias-pull-up;
};
};
+ i2c_4_bitbang: i2c_4_bitbang {
+ mux {
+ pins = "gpio10", "gpio11";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio10", "gpio11";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_5 {
@@ -188,6 +236,18 @@
bias-disable;
};
};
+ i2c_5_bitbang: i2c_5_bitbang {
+ mux {
+ pins = "gpio87", "gpio88";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio87", "gpio88";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_6 {
@@ -216,6 +276,18 @@
bias-pull-up;
};
};
+ i2c_6_bitbang: i2c_6_bitbang {
+ mux {
+ pins = "gpio43", "gpio44";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio43", "gpio44";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
nfc {
@@ -306,6 +378,18 @@
bias-pull-up;
};
};
+ i2c_7_bitbang: i2c_7_bitbang {
+ mux {
+ pins = "gpio55", "gpio56";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio55", "gpio56";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_8 {
@@ -334,6 +418,18 @@
bias-pull-up;
};
};
+ i2c_8_bitbang: i2c_8_bitbang {
+ mux {
+ pins = "gpio6", "gpio7";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio6", "gpio7";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_9 {
@@ -362,6 +458,18 @@
bias-pull-up;
};
};
+ i2c_9_bitbang: i2c_9_bitbang {
+ mux {
+ pins = "gpio51", "gpio52";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio51", "gpio52";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_10 {
@@ -390,6 +498,18 @@
bias-pull-up;
};
};
+ i2c_10_bitbang: i2c_10_bitbang {
+ mux {
+ pins = "gpio67", "gpio68";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio67", "gpio68";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_11 {
@@ -418,6 +538,18 @@
bias-pull-up;
};
};
+ i2c_11_bitbang: i2c_11_bitbang {
+ mux {
+ pins = "gpio60", "gpio61";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio60", "gpio61";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_12 {
@@ -446,6 +578,18 @@
bias-pull-up;
};
};
+ i2c_12_bitbang: i2c_12_bitbang {
+ mux {
+ pins = "gpio83", "gpio84";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio83", "gpio84";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
/* SPI CONFIGURATION */
diff --git a/arch/arm/boot/dts/qcom/sdm660-blsp.dtsi b/arch/arm/boot/dts/qcom/sdm660-blsp.dtsi
index 555d9a285102..f3b9431f39bc 100644
--- a/arch/arm/boot/dts/qcom/sdm660-blsp.dtsi
+++ b/arch/arm/boot/dts/qcom/sdm660-blsp.dtsi
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -52,9 +52,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>,
<&clock_gcc GCC_BLSP1_QUP1_I2C_APPS_CLK>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 2 0x00>;
+ qcom,i2c-clk = <&tlmm 3 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_1_active>;
pinctrl-1 = <&i2c_1_sleep>;
+ pinctrl-2 = <&i2c_1_bitbang>;
status = "disabled";
};
@@ -75,9 +78,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>,
<&clock_gcc GCC_BLSP1_QUP2_I2C_APPS_CLK>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 6 0x00>;
+ qcom,i2c-clk = <&tlmm 7 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_2_active>;
pinctrl-1 = <&i2c_2_sleep>;
+ pinctrl-2 = <&i2c_2_bitbang>;
status = "disabled";
};
@@ -98,9 +104,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>,
<&clock_gcc GCC_BLSP1_QUP3_I2C_APPS_CLK>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 10 0x00>;
+ qcom,i2c-clk = <&tlmm 11 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_3_active>;
pinctrl-1 = <&i2c_3_sleep>;
+ pinctrl-2 = <&i2c_3_bitbang>;
status = "disabled";
};
@@ -121,9 +130,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP1_AHB_CLK>,
<&clock_gcc GCC_BLSP1_QUP4_I2C_APPS_CLK>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 14 0x00>;
+ qcom,i2c-clk = <&tlmm 15 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_4_active>;
pinctrl-1 = <&i2c_4_sleep>;
+ pinctrl-2 = <&i2c_4_bitbang>;
status = "disabled";
};
@@ -144,9 +156,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP2_AHB_CLK>,
<&clock_gcc GCC_BLSP2_QUP1_I2C_APPS_CLK>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 18 0x00>;
+ qcom,i2c-clk = <&tlmm 19 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_5_active>;
pinctrl-1 = <&i2c_5_sleep>;
+ pinctrl-2 = <&i2c_5_bitbang>;
status = "disabled";
};
@@ -167,9 +182,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP2_AHB_CLK>,
<&clock_gcc GCC_BLSP2_QUP2_I2C_APPS_CLK>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 22 0x00>;
+ qcom,i2c-clk = <&tlmm 23 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_6_active>;
pinctrl-1 = <&i2c_6_sleep>;
+ pinctrl-2 = <&i2c_6_bitbang>;
status = "disabled";
};
@@ -190,9 +208,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP2_AHB_CLK>,
<&clock_gcc GCC_BLSP2_QUP3_I2C_APPS_CLK>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 26 0x00>;
+ qcom,i2c-clk = <&tlmm 27 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_7_active>;
pinctrl-1 = <&i2c_7_sleep>;
+ pinctrl-2 = <&i2c_7_bitbang>;
status = "disabled";
};
@@ -213,9 +234,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_gcc GCC_BLSP2_AHB_CLK>,
<&clock_gcc GCC_BLSP2_QUP4_I2C_APPS_CLK>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 30 0x00>;
+ qcom,i2c-clk = <&tlmm 31 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_8_active>;
pinctrl-1 = <&i2c_8_sleep>;
+ pinctrl-2 = <&i2c_8_bitbang>;
status = "disabled";
};
diff --git a/arch/arm/boot/dts/qcom/sdm660-pinctrl.dtsi b/arch/arm/boot/dts/qcom/sdm660-pinctrl.dtsi
index e55a67e68b36..5b97aea1c013 100644
--- a/arch/arm/boot/dts/qcom/sdm660-pinctrl.dtsi
+++ b/arch/arm/boot/dts/qcom/sdm660-pinctrl.dtsi
@@ -1,4 +1,4 @@
-/* Copyright (c) 2016-2017, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2016-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -240,6 +240,18 @@
bias-pull-up;
};
};
+ i2c_1_bitbang: i2c_1_bitbang {
+ mux {
+ pins = "gpio2", "gpio3";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio2", "gpio3";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_2 {
@@ -268,6 +280,18 @@
bias-pull-up;
};
};
+ i2c_2_bitbang: i2c_2_bitbang {
+ mux {
+ pins = "gpio6", "gpio7";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio6", "gpio7";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_3 {
@@ -296,6 +320,18 @@
bias-pull-up;
};
};
+ i2c_3_bitbang: i2c_3_bitbang {
+ mux {
+ pins = "gpio10", "gpio11";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio10", "gpio11";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_4 {
@@ -324,6 +360,18 @@
bias-pull-up;
};
};
+ i2c_4_bitbang: i2c_4_bitbang {
+ mux {
+ pins = "gpio14", "gpio15";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio14", "gpio15";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_5 {
@@ -352,6 +400,18 @@
bias-pull-up;
};
};
+ i2c_5_bitbang: i2c_5_bitbang {
+ mux {
+ pins = "gpio18", "gpio19";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio18", "gpio19";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_6 {
@@ -380,6 +440,18 @@
bias-pull-up;
};
};
+ i2c_6_bitbang: i2c_6_bitbang {
+ mux {
+ pins = "gpio22", "gpio23";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio22", "gpio23";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
nfc {
@@ -472,6 +544,18 @@
bias-pull-up;
};
};
+ i2c_7_bitbang: i2c_7_bitbang {
+ mux {
+ pins = "gpio26", "gpio27";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio26", "gpio27";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_8 {
@@ -500,6 +584,18 @@
bias-pull-up;
};
};
+ i2c_8_bitbang: i2c_8_bitbang {
+ mux {
+ pins = "gpio30", "gpio31";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio30", "gpio31";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
/* SPI CONFIGURATION */
diff --git a/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-blsp.dtsi b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-blsp.dtsi
index eb78cfd8b133..61b48802540a 100644
--- a/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-blsp.dtsi
+++ b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-blsp.dtsi
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2017, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2017-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -56,9 +56,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_virt clk_gcc_blsp1_ahb_clk>,
<&clock_virt clk_gcc_blsp1_qup6_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 27 0x00>;
+ qcom,i2c-clk = <&tlmm 28 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_6_active>;
pinctrl-1 = <&i2c_6_sleep>;
+ pinctrl-2 = <&i2c_6_bitbang>;
status = "disabled";
};
@@ -77,10 +80,12 @@
clock-names = "iface_clk", "core_clk";
clocks = <&clock_virt clk_gcc_blsp2_ahb_clk>,
<&clock_virt clk_gcc_blsp2_qup2_i2c_apps_clk>;
- pinctrl-names = "i2c_active", "i2c_sleep";
+ qcom,i2c-dat = <&tlmm 6 0x00>;
+ qcom,i2c-clk = <&tlmm 7 0x00>;
+ pinctrl-names = "i2c_active", "i2c_sleep", "i2c_bitbang";
pinctrl-0 = <&i2c_8_active>;
pinctrl-1 = <&i2c_8_sleep>;
- status = "disabled";
+ pinctrl-2 = <&i2c_8_bitbang>;
};
blsp1_uart2: uart@07570000 { /* BLSP1 UART2 */
diff --git a/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-pinctrl.dtsi b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-pinctrl.dtsi
index 02162e64e35f..f1aa0ce19cfb 100644
--- a/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-pinctrl.dtsi
+++ b/arch/arm/boot/dts/qcom/vplatform-lfv-msm8996-pinctrl.dtsi
@@ -1,4 +1,4 @@
-/* Copyright (c) 2014-2017, The Linux Foundation. All rights reserved.
+/* Copyright (c) 2014-2018, The Linux Foundation. All rights reserved.
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 and
@@ -89,6 +89,19 @@
bias-pull-up;
};
};
+
+ i2c_6_bitbang: i2c_6_bitbang {
+ mux {
+ pins = "gpio27", "gpio28";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio27", "gpio28";
+ drive-strength = <2>;
+ bias-pull-up;
+ };
+ };
};
i2c_8 {
@@ -117,6 +130,19 @@
bias-pull-up;
};
};
+
+ i2c_8_bitbang: i2c_8_bitbang {
+ mux {
+ pins = "gpio6", "gpio7";
+ function = "gpio";
+ };
+
+ config {
+ pins = "gpio6", "gpio7";
+ drive-strength = <4>;
+ bias-pull-up;
+ };
+ };
};
spi_9 {