public inbox for linux-gpio@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/3] SDM670 LPASS LPI pin controller support
@ 2026-02-10  2:11 Richard Acayan
  2026-02-10  2:11 ` [PATCH 1/3] dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl Richard Acayan
                   ` (3 more replies)
  0 siblings, 4 replies; 15+ messages in thread
From: Richard Acayan @ 2026-02-10  2:11 UTC (permalink / raw)
  To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio, linux-arm-msm, linux-gpio,
	devicetree
  Cc: Richard Acayan

This adds support for the LPASS LPI pin controller on SDM670, which
controls some audio pins (e.g. TDM or PDM busses). The ADSP patches are
not sent yet.

Richard Acayan (3):
  dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl
  pinctrl: qcom: add sdm670 lpi tlmm
  arm64: dts: qcom: sdm670: add lpi pinctrl

 .../qcom,sdm670-lpass-lpi-pinctrl.yaml        |  81 ++++++++
 arch/arm64/boot/dts/qcom/sdm670.dtsi          |  74 ++++++++
 drivers/pinctrl/qcom/Kconfig                  |  10 +
 drivers/pinctrl/qcom/Makefile                 |   1 +
 .../pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c   | 174 ++++++++++++++++++
 5 files changed, 340 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml
 create mode 100644 drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c

-- 
2.53.0


^ permalink raw reply	[flat|nested] 15+ messages in thread

* [PATCH 1/3] dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl
  2026-02-10  2:11 [PATCH 0/3] SDM670 LPASS LPI pin controller support Richard Acayan
@ 2026-02-10  2:11 ` Richard Acayan
  2026-02-10  7:41   ` Krzysztof Kozlowski
  2026-02-12  7:28   ` Krzysztof Kozlowski
  2026-02-10  2:11 ` [PATCH 2/3] pinctrl: qcom: add sdm670 lpi tlmm Richard Acayan
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 15+ messages in thread
From: Richard Acayan @ 2026-02-10  2:11 UTC (permalink / raw)
  To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio, linux-arm-msm, linux-gpio,
	devicetree
  Cc: Richard Acayan

Add the pin controller for the audio Low-Power Island (LPI) on SDM670.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
 .../qcom,sdm670-lpass-lpi-pinctrl.yaml        | 81 +++++++++++++++++++
 1 file changed, 81 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml

diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml
new file mode 100644
index 000000000000..125f365d11fa
--- /dev/null
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml
@@ -0,0 +1,81 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Qualcomm SDM670 SoC LPASS LPI TLMM
+
+maintainers:
+  - Richard Acayan <mailingradian@gmail.com>
+
+description:
+  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
+  (LPASS) Low Power Island (LPI) of Qualcomm SDM670 SoC.
+
+properties:
+  compatible:
+    const: qcom,sdm670-lpass-lpi-pinctrl
+
+  reg:
+    items:
+      - description: LPASS LPI TLMM Control and Status registers
+
+patternProperties:
+  "-state$":
+    oneOf:
+      - $ref: "#/$defs/qcom-sdm670-lpass-state"
+      - patternProperties:
+          "-pins$":
+            $ref: "#/$defs/qcom-sdm670-lpass-state"
+        additionalProperties: false
+
+$defs:
+  qcom-sdm670-lpass-state:
+    type: object
+    description:
+      Pinctrl node's client devices use subnodes for desired pin configuration.
+      Client device subnodes use below standard properties.
+    $ref: qcom,lpass-lpi-common.yaml#/$defs/qcom-tlmm-state
+    unevaluatedProperties: false
+
+    properties:
+      pins:
+        description:
+          List of gpio pins affected by the properties specified in this
+          subnode.
+        items:
+          pattern: "^gpio([0-9]|1[0-9]|2[0-9]|3[0-1])$"
+
+      function:
+        enum: [ gpio, comp_rx, dmic1_clk, dmic1_data, dmic2_clk, dmic2_data,
+                lpi_cdc_rst, mclk0, pdm_tx, pdm_clk, pdm_rx, pdm_sync, sec_tdm,
+                sec_tdm_din, sec_tdm_dout ]
+        description:
+          Specify the alternative function to be configured for the specified
+          pins.
+
+allOf:
+  - $ref: qcom,lpass-lpi-common.yaml#
+
+required:
+  - compatible
+  - reg
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    lpi_tlmm: pinctrl@62b40000 {
+        compatible = "qcom,sdm670-lpass-lpi-pinctrl";
+        reg = <0x62b40000 0x20000>;
+        gpio-controller;
+        #gpio-cells = <2>;
+        gpio-ranges = <&lpi_tlmm 0 0 32>;
+
+        cdc_comp_default: cdc-comp-default-state {
+            pins = "gpio22", "gpio24";
+            function = "comp_rx";
+            drive-strength = <4>;
+        };
+    };
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 2/3] pinctrl: qcom: add sdm670 lpi tlmm
  2026-02-10  2:11 [PATCH 0/3] SDM670 LPASS LPI pin controller support Richard Acayan
  2026-02-10  2:11 ` [PATCH 1/3] dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl Richard Acayan
@ 2026-02-10  2:11 ` Richard Acayan
  2026-02-10  9:08   ` Konrad Dybcio
  2026-02-10  2:11 ` [PATCH 3/3] arm64: dts: qcom: sdm670: add lpi pinctrl Richard Acayan
  2026-02-23 10:14 ` [PATCH 0/3] SDM670 LPASS LPI pin controller support Linus Walleij
  3 siblings, 1 reply; 15+ messages in thread
From: Richard Acayan @ 2026-02-10  2:11 UTC (permalink / raw)
  To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio, linux-arm-msm, linux-gpio,
	devicetree
  Cc: Richard Acayan

The Snapdragon 670 has an Low-Power Island (LPI) TLMM for configuring
pins related to audio. Add the driver for this.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
 drivers/pinctrl/qcom/Kconfig                  |  10 +
 drivers/pinctrl/qcom/Makefile                 |   1 +
 .../pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c   | 174 ++++++++++++++++++
 3 files changed, 185 insertions(+)
 create mode 100644 drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c

diff --git a/drivers/pinctrl/qcom/Kconfig b/drivers/pinctrl/qcom/Kconfig
index c480e8b78503..a88f1db96841 100644
--- a/drivers/pinctrl/qcom/Kconfig
+++ b/drivers/pinctrl/qcom/Kconfig
@@ -88,6 +88,16 @@ config PINCTRL_SM4250_LPASS_LPI
 	  Qualcomm Technologies Inc LPASS (Low Power Audio SubSystem) LPI
 	  (Low Power Island) found on the Qualcomm Technologies Inc SM4250 platform.
 
+config PINCTRL_SDM670_LPASS_LPI
+	tristate "Qualcomm Technologies Inc SDM670 LPASS LPI pin controller driver"
+	depends on GPIOLIB
+	depends on ARM64 || COMPILE_TEST
+	depends on PINCTRL_LPASS_LPI
+	help
+	  This is the pinctrl, pinmux, pinconf and gpiolib driver for the
+	  Qualcomm Technologies Inc LPASS (Low Power Audio SubSystem) LPI
+	  (Low Power Island) found on the Qualcomm Technologies Inc SDM670 platform.
+
 config PINCTRL_SM6115_LPASS_LPI
 	tristate "Qualcomm Technologies Inc SM6115 LPASS LPI pin controller driver"
 	depends on ARM64 || COMPILE_TEST
diff --git a/drivers/pinctrl/qcom/Makefile b/drivers/pinctrl/qcom/Makefile
index 748b17a77b2c..a0520e1f8aa0 100644
--- a/drivers/pinctrl/qcom/Makefile
+++ b/drivers/pinctrl/qcom/Makefile
@@ -48,6 +48,7 @@ obj-$(CONFIG_PINCTRL_SC8280XP)	+= pinctrl-sc8280xp.o
 obj-$(CONFIG_PINCTRL_SDM660)   += pinctrl-sdm660.o
 obj-$(CONFIG_PINCTRL_SDM660_LPASS_LPI) += pinctrl-sdm660-lpass-lpi.o
 obj-$(CONFIG_PINCTRL_SDM670) += pinctrl-sdm670.o
+obj-$(CONFIG_PINCTRL_SDM670_LPASS_LPI) += pinctrl-sdm670-lpass-lpi.o
 obj-$(CONFIG_PINCTRL_SDM845) += pinctrl-sdm845.o
 obj-$(CONFIG_PINCTRL_SDX55) += pinctrl-sdx55.o
 obj-$(CONFIG_PINCTRL_SDX65) += pinctrl-sdx65.o
diff --git a/drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c
new file mode 100644
index 000000000000..604a445d4ec5
--- /dev/null
+++ b/drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c
@@ -0,0 +1,174 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) 2023-2026, Richard Acayan. All rights reserved.
+ */
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+#include <linux/pinctrl/pinctrl.h>
+
+#include "pinctrl-lpass-lpi.h"
+
+enum lpass_lpi_functions {
+	LPI_MUX_sec_tdm,
+	LPI_MUX_sec_tdm_din,
+	LPI_MUX_sec_tdm_dout,
+
+	LPI_MUX_comp_rx,
+	LPI_MUX_dmic1_clk,
+	LPI_MUX_dmic1_data,
+	LPI_MUX_dmic2_clk,
+	LPI_MUX_dmic2_data,
+	LPI_MUX_lpi_cdc_rst,
+	LPI_MUX_mclk0,
+	LPI_MUX_pdm_clk,
+	LPI_MUX_pdm_rx,
+	LPI_MUX_pdm_sync,
+	LPI_MUX_pdm_tx,
+
+	LPI_MUX_gpio,
+	LPI_MUX__,
+};
+
+static const struct pinctrl_pin_desc sdm670_lpi_pinctrl_pins[] = {
+	PINCTRL_PIN(0, "gpio0"),
+	PINCTRL_PIN(1, "gpio1"),
+	PINCTRL_PIN(2, "gpio2"),
+	PINCTRL_PIN(3, "gpio3"),
+	PINCTRL_PIN(4, "gpio4"),
+	PINCTRL_PIN(5, "gpio5"),
+	PINCTRL_PIN(6, "gpio6"),
+	PINCTRL_PIN(7, "gpio7"),
+	PINCTRL_PIN(8, "gpio8"),
+	PINCTRL_PIN(9, "gpio9"),
+	PINCTRL_PIN(10, "gpio10"),
+	PINCTRL_PIN(11, "gpio11"),
+	PINCTRL_PIN(12, "gpio12"),
+	PINCTRL_PIN(13, "gpio13"),
+	PINCTRL_PIN(14, "gpio14"),
+	PINCTRL_PIN(15, "gpio15"),
+	PINCTRL_PIN(16, "gpio16"),
+	PINCTRL_PIN(17, "gpio17"),
+	PINCTRL_PIN(18, "gpio18"),
+	PINCTRL_PIN(19, "gpio19"),
+	PINCTRL_PIN(20, "gpio20"),
+	PINCTRL_PIN(21, "gpio21"),
+	PINCTRL_PIN(22, "gpio22"),
+	PINCTRL_PIN(23, "gpio23"),
+	PINCTRL_PIN(24, "gpio24"),
+	PINCTRL_PIN(25, "gpio25"),
+	PINCTRL_PIN(26, "gpio26"),
+	PINCTRL_PIN(27, "gpio27"),
+	PINCTRL_PIN(28, "gpio28"),
+	PINCTRL_PIN(29, "gpio29"),
+	PINCTRL_PIN(30, "gpio30"),
+	PINCTRL_PIN(31, "gpio31"),
+};
+
+static const char * const sec_tdm_groups[] = { "gpio8", "gpio9" };
+static const char * const sec_tdm_din_groups[] = { "gpio10" };
+static const char * const sec_tdm_dout_groups[] = { "gpio11" };
+
+static const char * const comp_rx_groups[] = { "gpio22", "gpio24" };
+static const char * const dmic1_clk_groups[] = { "gpio26" };
+static const char * const dmic1_data_groups[] = { "gpio27" };
+static const char * const dmic2_clk_groups[] = { "gpio28" };
+static const char * const dmic2_data_groups[] = { "gpio29" };
+static const char * const lpi_cdc_rst_groups[] = { "gpio29" };
+static const char * const mclk0_groups[] = { "gpio19" };
+static const char * const pdm_clk_groups[] = { "gpio18" };
+static const char * const pdm_rx_groups[] = { "gpio21", "gpio23", "gpio25" };
+static const char * const pdm_sync_groups[] = { "gpio19" };
+static const char * const pdm_tx_groups[] = { "gpio20" };
+
+const struct lpi_pingroup sdm670_lpi_pinctrl_groups[] = {
+	LPI_PINGROUP(0, LPI_NO_SLEW, _, _, _, _),
+	LPI_PINGROUP(1, LPI_NO_SLEW, _, _, _, _),
+	LPI_PINGROUP(2, LPI_NO_SLEW, _, _, _, _),
+	LPI_PINGROUP(3, LPI_NO_SLEW, _, _, _, _),
+	LPI_PINGROUP(4, LPI_NO_SLEW, _, _, _, _),
+	LPI_PINGROUP(5, LPI_NO_SLEW, _, _, _, _),
+	LPI_PINGROUP(6, LPI_NO_SLEW, _, _, _, _),
+	LPI_PINGROUP(7, LPI_NO_SLEW, _, _, _, _),
+
+	LPI_PINGROUP(8, LPI_NO_SLEW, _, _, sec_tdm, _),
+	LPI_PINGROUP(9, LPI_NO_SLEW, _, _, sec_tdm, _),
+	LPI_PINGROUP(10, LPI_NO_SLEW, _, _, _, sec_tdm_din),
+	LPI_PINGROUP(11, LPI_NO_SLEW, _, sec_tdm_dout, _, _),
+
+	LPI_PINGROUP(12, LPI_NO_SLEW, _, _, _, _),
+	LPI_PINGROUP(13, LPI_NO_SLEW, _, _, _, _),
+	LPI_PINGROUP(14, LPI_NO_SLEW, _, _, _, _),
+	LPI_PINGROUP(15, LPI_NO_SLEW, _, _, _, _),
+	LPI_PINGROUP(16, LPI_NO_SLEW, _, _, _, _),
+	LPI_PINGROUP(17, LPI_NO_SLEW, _, _, _, _),
+
+	LPI_PINGROUP(18, LPI_NO_SLEW, _, pdm_clk, _, _),
+	LPI_PINGROUP(19, LPI_NO_SLEW, mclk0, _, pdm_sync, _),
+	LPI_PINGROUP(20, LPI_NO_SLEW, _, pdm_tx, _, _),
+	LPI_PINGROUP(21, LPI_NO_SLEW, _, pdm_rx, _, _),
+	LPI_PINGROUP(22, LPI_NO_SLEW, _, comp_rx, _, _),
+	LPI_PINGROUP(23, LPI_NO_SLEW, pdm_rx, _, _, _),
+	LPI_PINGROUP(24, LPI_NO_SLEW, comp_rx, _, _, _),
+	LPI_PINGROUP(25, LPI_NO_SLEW, pdm_rx, _, _, _),
+	LPI_PINGROUP(26, LPI_NO_SLEW, dmic1_clk, _, _, _),
+	LPI_PINGROUP(27, LPI_NO_SLEW, dmic1_data, _, _, _),
+	LPI_PINGROUP(28, LPI_NO_SLEW, dmic2_clk, _, _, _),
+	LPI_PINGROUP(29, LPI_NO_SLEW, dmic2_data, lpi_cdc_rst, _, _),
+
+	LPI_PINGROUP(30, LPI_NO_SLEW, _, _, _, _),
+	LPI_PINGROUP(31, LPI_NO_SLEW, _, _, _, _),
+};
+
+const struct lpi_function sdm670_lpi_pinctrl_functions[] = {
+	LPI_FUNCTION(sec_tdm),
+	LPI_FUNCTION(sec_tdm_din),
+	LPI_FUNCTION(sec_tdm_dout),
+
+	LPI_FUNCTION(comp_rx),
+	LPI_FUNCTION(dmic1_clk),
+	LPI_FUNCTION(dmic1_data),
+	LPI_FUNCTION(dmic2_clk),
+	LPI_FUNCTION(dmic2_data),
+	LPI_FUNCTION(lpi_cdc_rst),
+	LPI_FUNCTION(mclk0),
+	LPI_FUNCTION(pdm_tx),
+	LPI_FUNCTION(pdm_clk),
+	LPI_FUNCTION(pdm_rx),
+	LPI_FUNCTION(pdm_sync),
+};
+
+static const struct lpi_pinctrl_variant_data sdm670_lpi_pinctrl_data = {
+	.pins = sdm670_lpi_pinctrl_pins,
+	.npins = ARRAY_SIZE(sdm670_lpi_pinctrl_pins),
+	.groups = sdm670_lpi_pinctrl_groups,
+	.ngroups = ARRAY_SIZE(sdm670_lpi_pinctrl_groups),
+	.functions = sdm670_lpi_pinctrl_functions,
+	.nfunctions = ARRAY_SIZE(sdm670_lpi_pinctrl_functions),
+	.flags = LPI_FLAG_SLEW_RATE_SAME_REG,
+};
+
+static const struct of_device_id sdm670_lpi_pinctrl_of_match[] = {
+	{
+		.compatible = "qcom,sdm670-lpass-lpi-pinctrl",
+		.data = &sdm670_lpi_pinctrl_data,
+	},
+	{ }
+};
+MODULE_DEVICE_TABLE(of, sdm670_lpi_pinctrl_of_match);
+
+static struct platform_driver sdm670_lpi_pinctrl_driver = {
+	.driver = {
+		.name = "qcom-sdm670-lpass-lpi-pinctrl",
+		.of_match_table = sdm670_lpi_pinctrl_of_match,
+	},
+	.probe = lpi_pinctrl_probe,
+	.remove = lpi_pinctrl_remove,
+};
+module_platform_driver(sdm670_lpi_pinctrl_driver);
+
+MODULE_AUTHOR("Richard Acayan <mailingradian@gmail.com>");
+MODULE_DESCRIPTION("QTI SDM670 LPI GPIO pin control driver");
+MODULE_LICENSE("GPL");
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* [PATCH 3/3] arm64: dts: qcom: sdm670: add lpi pinctrl
  2026-02-10  2:11 [PATCH 0/3] SDM670 LPASS LPI pin controller support Richard Acayan
  2026-02-10  2:11 ` [PATCH 1/3] dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl Richard Acayan
  2026-02-10  2:11 ` [PATCH 2/3] pinctrl: qcom: add sdm670 lpi tlmm Richard Acayan
@ 2026-02-10  2:11 ` Richard Acayan
  2026-02-10  7:42   ` Krzysztof Kozlowski
  2026-02-23 10:14 ` [PATCH 0/3] SDM670 LPASS LPI pin controller support Linus Walleij
  3 siblings, 1 reply; 15+ messages in thread
From: Richard Acayan @ 2026-02-10  2:11 UTC (permalink / raw)
  To: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio, linux-arm-msm, linux-gpio,
	devicetree
  Cc: Richard Acayan

The Snapdragon 670 has a separate TLMM for audio pins. Add the device
node for it.

Signed-off-by: Richard Acayan <mailingradian@gmail.com>
---
 arch/arm64/boot/dts/qcom/sdm670.dtsi | 74 ++++++++++++++++++++++++++++
 1 file changed, 74 insertions(+)

diff --git a/arch/arm64/boot/dts/qcom/sdm670.dtsi b/arch/arm64/boot/dts/qcom/sdm670.dtsi
index b8a8dcbdfbe3..0da3e22ce402 100644
--- a/arch/arm64/boot/dts/qcom/sdm670.dtsi
+++ b/arch/arm64/boot/dts/qcom/sdm670.dtsi
@@ -2273,5 +2273,79 @@ cpufreq_hw: cpufreq@17d43000 {
 
 			#freq-domain-cells = <1>;
 		};
+
+		lpi_tlmm: pinctrl@62b40000 {
+			compatible = "qcom,sdm670-lpass-lpi-pinctrl";
+			reg = <0 0x62b40000 0 0x20000>;
+			gpio-controller;
+			#gpio-cells = <2>;
+			gpio-ranges = <&lpi_tlmm 0 0 32>;
+			status = "disabled";
+
+			cdc_pdm_default: cdc-pdm-default-state {
+				clk-pins {
+					pins = "gpio18";
+					function = "pdm_clk";
+					drive-strength = <4>;
+					output-low;
+				};
+
+				sync-pins {
+					pins = "gpio19";
+					function = "pdm_sync";
+					drive-strength = <4>;
+					output-low;
+				};
+
+				tx-pins {
+					pins = "gpio20";
+					function = "pdm_tx";
+					drive-strength = <8>;
+				};
+
+				rx-pins {
+					pins = "gpio21", "gpio23", "gpio25";
+					function = "pdm_rx";
+					drive-strength = <4>;
+					output-low;
+				};
+			};
+
+			cdc_comp_default: cdc-comp-default-state {
+				pins = "gpio22", "gpio24";
+				function = "comp_rx";
+				drive-strength = <4>;
+			};
+
+			cdc_dmic_default: cdc-dmic-default-state {
+				clk1-pins {
+					pins = "gpio26";
+					function = "dmic1_clk";
+					drive-strength = <8>;
+					output-high;
+				};
+
+				clk2-pins {
+					pins = "gpio28";
+					function = "dmic2_clk";
+					drive-strength = <8>;
+					output-high;
+				};
+
+				data1-pins {
+					pins = "gpio27";
+					function = "dmic1_data";
+					drive-strength = <8>;
+					input-enable;
+				};
+
+				data2-pins {
+					pins = "gpio29";
+					function = "dmic2_data";
+					drive-strength = <8>;
+					input-enable;
+				};
+			};
+		};
 	};
 };
-- 
2.53.0


^ permalink raw reply related	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/3] dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl
  2026-02-10  2:11 ` [PATCH 1/3] dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl Richard Acayan
@ 2026-02-10  7:41   ` Krzysztof Kozlowski
  2026-02-11  2:02     ` Richard Acayan
  2026-02-12  7:28   ` Krzysztof Kozlowski
  1 sibling, 1 reply; 15+ messages in thread
From: Krzysztof Kozlowski @ 2026-02-10  7:41 UTC (permalink / raw)
  To: Richard Acayan, Bjorn Andersson, Linus Walleij, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, linux-arm-msm,
	linux-gpio, devicetree

On 10/02/2026 03:11, Richard Acayan wrote:
> Add the pin controller for the audio Low-Power Island (LPI) on SDM670.

Subject: Missing "LPASS" before LPI. I really thought you just add TLMM...

> 
> Signed-off-by: Richard Acayan <mailingradian@gmail.com>
> ---
>  .../qcom,sdm670-lpass-lpi-pinctrl.yaml        | 81 +++++++++++++++++++
>  1 file changed, 81 insertions(+)
>  create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml
> 
> diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml
> new file mode 100644
> index 000000000000..125f365d11fa
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml
> @@ -0,0 +1,81 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Qualcomm SDM670 SoC LPASS LPI TLMM
> +
> +maintainers:
> +  - Richard Acayan <mailingradian@gmail.com>
> +
> +description:
> +  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
> +  (LPASS) Low Power Island (LPI) of Qualcomm SDM670 SoC.
> +
> +properties:
> +  compatible:
> +    const: qcom,sdm670-lpass-lpi-pinctrl
> +
> +  reg:
> +    items:
> +      - description: LPASS LPI TLMM Control and Status registers
> +

Hm, no clocks? In most designs there has to be HW macro or HW codec
vote. I see SDM660 does not have it either, but I think this might be
exactly the same mistake.


> +patternProperties:
> +  "-state$":
> +    oneOf:
> +      - $ref: "#/$defs/qcom-sdm670-lpass-state"
> +      - patternProperties:
> +          "-pins$":
> +            $ref: "#/$defs/qcom-sdm670-lpass-state"
> +        additionalProperties: false
> +



Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/3] arm64: dts: qcom: sdm670: add lpi pinctrl
  2026-02-10  2:11 ` [PATCH 3/3] arm64: dts: qcom: sdm670: add lpi pinctrl Richard Acayan
@ 2026-02-10  7:42   ` Krzysztof Kozlowski
  2026-02-11  0:23     ` Richard Acayan
  0 siblings, 1 reply; 15+ messages in thread
From: Krzysztof Kozlowski @ 2026-02-10  7:42 UTC (permalink / raw)
  To: Richard Acayan, Bjorn Andersson, Linus Walleij, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, linux-arm-msm,
	linux-gpio, devicetree

On 10/02/2026 03:11, Richard Acayan wrote:
> The Snapdragon 670 has a separate TLMM for audio pins. Add the device
> node for it.
> 
> Signed-off-by: Richard Acayan <mailingradian@gmail.com>
> ---
>  arch/arm64/boot/dts/qcom/sdm670.dtsi | 74 ++++++++++++++++++++++++++++
>  1 file changed, 74 insertions(+)
> 
> diff --git a/arch/arm64/boot/dts/qcom/sdm670.dtsi b/arch/arm64/boot/dts/qcom/sdm670.dtsi
> index b8a8dcbdfbe3..0da3e22ce402 100644
> --- a/arch/arm64/boot/dts/qcom/sdm670.dtsi
> +++ b/arch/arm64/boot/dts/qcom/sdm670.dtsi
> @@ -2273,5 +2273,79 @@ cpufreq_hw: cpufreq@17d43000 {
>  
>  			#freq-domain-cells = <1>;
>  		};
> +
> +		lpi_tlmm: pinctrl@62b40000 {
> +			compatible = "qcom,sdm670-lpass-lpi-pinctrl";
> +			reg = <0 0x62b40000 0 0x20000>;
> +			gpio-controller;
> +			#gpio-cells = <2>;
> +			gpio-ranges = <&lpi_tlmm 0 0 32>;
> +			status = "disabled";

Why is this disabled? We disable blocks needing external resources or
being busses/connectors. This is not the case.

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/3] pinctrl: qcom: add sdm670 lpi tlmm
  2026-02-10  2:11 ` [PATCH 2/3] pinctrl: qcom: add sdm670 lpi tlmm Richard Acayan
@ 2026-02-10  9:08   ` Konrad Dybcio
  2026-02-11  0:35     ` Richard Acayan
  0 siblings, 1 reply; 15+ messages in thread
From: Konrad Dybcio @ 2026-02-10  9:08 UTC (permalink / raw)
  To: Richard Acayan, Bjorn Andersson, Linus Walleij, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, linux-arm-msm,
	linux-gpio, devicetree

On 2/10/26 3:11 AM, Richard Acayan wrote:
> The Snapdragon 670 has an Low-Power Island (LPI) TLMM for configuring
> pins related to audio. Add the driver for this.
> 
> Signed-off-by: Richard Acayan <mailingradian@gmail.com>
> ---

[...]

> +const struct lpi_pingroup sdm670_lpi_pinctrl_groups[] = {
> +	LPI_PINGROUP(0, LPI_NO_SLEW, _, _, _, _),
> +	LPI_PINGROUP(1, LPI_NO_SLEW, _, _, _, _),
> +	LPI_PINGROUP(2, LPI_NO_SLEW, _, _, _, _),
> +	LPI_PINGROUP(3, LPI_NO_SLEW, _, _, _, _),
> +	LPI_PINGROUP(4, LPI_NO_SLEW, _, _, _, _),
> +	LPI_PINGROUP(5, LPI_NO_SLEW, _, _, _, _),
> +	LPI_PINGROUP(6, LPI_NO_SLEW, _, _, _, _),
> +	LPI_PINGROUP(7, LPI_NO_SLEW, _, _, _, _),
> +
> +	LPI_PINGROUP(8, LPI_NO_SLEW, _, _, sec_tdm, _),

"i2s1_clk"

> +	LPI_PINGROUP(9, LPI_NO_SLEW, _, _, sec_tdm, _),

"i2s1_ws"

> +	LPI_PINGROUP(10, LPI_NO_SLEW, _, _, _, sec_tdm_din),

"i2s1_data"

> +	LPI_PINGROUP(11, LPI_NO_SLEW, _, sec_tdm_dout, _, _),

"i2s1_data"

> +
> +	LPI_PINGROUP(12, LPI_NO_SLEW, _, _, _, _),
> +	LPI_PINGROUP(13, LPI_NO_SLEW, _, _, _, _),
> +	LPI_PINGROUP(14, LPI_NO_SLEW, _, _, _, _),
> +	LPI_PINGROUP(15, LPI_NO_SLEW, _, _, _, _),
> +	LPI_PINGROUP(16, LPI_NO_SLEW, _, _, _, _),
> +	LPI_PINGROUP(17, LPI_NO_SLEW, _, _, _, _),
> +
> +	LPI_PINGROUP(18, LPI_NO_SLEW, _, pdm_clk, _, _),

"slimbus_clk"

Konrad

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/3] arm64: dts: qcom: sdm670: add lpi pinctrl
  2026-02-10  7:42   ` Krzysztof Kozlowski
@ 2026-02-11  0:23     ` Richard Acayan
  2026-02-12  9:08       ` Konrad Dybcio
  0 siblings, 1 reply; 15+ messages in thread
From: Richard Acayan @ 2026-02-11  0:23 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio, linux-arm-msm, linux-gpio,
	devicetree

On Tue, Feb 10, 2026 at 08:42:59AM +0100, Krzysztof Kozlowski wrote:
> On 10/02/2026 03:11, Richard Acayan wrote:
> > +		lpi_tlmm: pinctrl@62b40000 {
> > +			compatible = "qcom,sdm670-lpass-lpi-pinctrl";
> > +			reg = <0 0x62b40000 0 0x20000>;
> > +			gpio-controller;
> > +			#gpio-cells = <2>;
> > +			gpio-ranges = <&lpi_tlmm 0 0 32>;
> > +			status = "disabled";
> 
> Why is this disabled? We disable blocks needing external resources or
> being busses/connectors. This is not the case.

There are reserved GPIOs on the Pixel 3a. Since commit 4f0d22ec60ce
("pinctrl: lpass-lpi: implement .get_direction() for the GPIO driver"),
this can't be probed when the reserved GPIOs are unspecified.

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/3] pinctrl: qcom: add sdm670 lpi tlmm
  2026-02-10  9:08   ` Konrad Dybcio
@ 2026-02-11  0:35     ` Richard Acayan
  2026-02-12  9:07       ` Konrad Dybcio
  0 siblings, 1 reply; 15+ messages in thread
From: Richard Acayan @ 2026-02-11  0:35 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio, linux-arm-msm, linux-gpio,
	devicetree

On Tue, Feb 10, 2026 at 10:08:19AM +0100, Konrad Dybcio wrote:
> On 2/10/26 3:11 AM, Richard Acayan wrote:
> > The Snapdragon 670 has an Low-Power Island (LPI) TLMM for configuring
> > pins related to audio. Add the driver for this.
> > 
> > Signed-off-by: Richard Acayan <mailingradian@gmail.com>
> > ---
> 
> [...]
> 
> > +const struct lpi_pingroup sdm670_lpi_pinctrl_groups[] = {
> > +	LPI_PINGROUP(0, LPI_NO_SLEW, _, _, _, _),
> > +	LPI_PINGROUP(1, LPI_NO_SLEW, _, _, _, _),
> > +	LPI_PINGROUP(2, LPI_NO_SLEW, _, _, _, _),
> > +	LPI_PINGROUP(3, LPI_NO_SLEW, _, _, _, _),
> > +	LPI_PINGROUP(4, LPI_NO_SLEW, _, _, _, _),
> > +	LPI_PINGROUP(5, LPI_NO_SLEW, _, _, _, _),
> > +	LPI_PINGROUP(6, LPI_NO_SLEW, _, _, _, _),
> > +	LPI_PINGROUP(7, LPI_NO_SLEW, _, _, _, _),
> > +
> > +	LPI_PINGROUP(8, LPI_NO_SLEW, _, _, sec_tdm, _),
> 
> "i2s1_clk"
> 
> > +	LPI_PINGROUP(9, LPI_NO_SLEW, _, _, sec_tdm, _),
> 
> "i2s1_ws"
> 
> > +	LPI_PINGROUP(10, LPI_NO_SLEW, _, _, _, sec_tdm_din),
> 
> "i2s1_data"
> 
> > +	LPI_PINGROUP(11, LPI_NO_SLEW, _, sec_tdm_dout, _, _),
> 
> "i2s1_data"

What are the pinfunc numbers for these? Or are the pinfuncs the same
between I2S and TDM?

> > +
> > +	LPI_PINGROUP(12, LPI_NO_SLEW, _, _, _, _),
> > +	LPI_PINGROUP(13, LPI_NO_SLEW, _, _, _, _),
> > +	LPI_PINGROUP(14, LPI_NO_SLEW, _, _, _, _),
> > +	LPI_PINGROUP(15, LPI_NO_SLEW, _, _, _, _),
> > +	LPI_PINGROUP(16, LPI_NO_SLEW, _, _, _, _),
> > +	LPI_PINGROUP(17, LPI_NO_SLEW, _, _, _, _),
> > +
> > +	LPI_PINGROUP(18, LPI_NO_SLEW, _, pdm_clk, _, _),
> 
> "slimbus_clk"

Again, what pinfunc? Is PDM, the protocol between analog and digital
codec, using the SLIM clock?

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/3] dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl
  2026-02-10  7:41   ` Krzysztof Kozlowski
@ 2026-02-11  2:02     ` Richard Acayan
  0 siblings, 0 replies; 15+ messages in thread
From: Richard Acayan @ 2026-02-11  2:02 UTC (permalink / raw)
  To: Krzysztof Kozlowski
  Cc: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio, linux-arm-msm, linux-gpio,
	devicetree

On Tue, Feb 10, 2026 at 08:41:32AM +0100, Krzysztof Kozlowski wrote:
> On 10/02/2026 03:11, Richard Acayan wrote:
> > Add the pin controller for the audio Low-Power Island (LPI) on SDM670.
> 
> Subject: Missing "LPASS" before LPI. I really thought you just add TLMM...

Added, but does this extend to the other patches as well?

> > 
> > Signed-off-by: Richard Acayan <mailingradian@gmail.com>
> > ---
> >  .../qcom,sdm670-lpass-lpi-pinctrl.yaml        | 81 +++++++++++++++++++
> >  1 file changed, 81 insertions(+)
> >  create mode 100644 Documentation/devicetree/bindings/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml
> > 
> > diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml
> > new file mode 100644
> > index 000000000000..125f365d11fa
> > --- /dev/null
> > +++ b/Documentation/devicetree/bindings/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml
> > @@ -0,0 +1,81 @@
> > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> > +%YAML 1.2
> > +---
> > +$id: http://devicetree.org/schemas/pinctrl/qcom,sdm670-lpass-lpi-pinctrl.yaml#
> > +$schema: http://devicetree.org/meta-schemas/core.yaml#
> > +
> > +title: Qualcomm SDM670 SoC LPASS LPI TLMM
> > +
> > +maintainers:
> > +  - Richard Acayan <mailingradian@gmail.com>
> > +
> > +description:
> > +  Top Level Mode Multiplexer pin controller in the Low Power Audio SubSystem
> > +  (LPASS) Low Power Island (LPI) of Qualcomm SDM670 SoC.
> > +
> > +properties:
> > +  compatible:
> > +    const: qcom,sdm670-lpass-lpi-pinctrl
> > +
> > +  reg:
> > +    items:
> > +      - description: LPASS LPI TLMM Control and Status registers
> > +
> 
> Hm, no clocks? In most designs there has to be HW macro or HW codec
> vote. I see SDM660 does not have it either, but I think this might be
> exactly the same mistake.

No clocks for the pin controller, unless the ADSP enables them on its own.

I see other clocks required for full sound support (including some
board-specific codecs), which are unrelated:
- INT_MCLK_0
- PRI_TDM_IBIT
- SEC_TDM_IBIT
- INT0_MI2S_IBIT
- INT3_MI2S_IBIT

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 1/3] dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl
  2026-02-10  2:11 ` [PATCH 1/3] dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl Richard Acayan
  2026-02-10  7:41   ` Krzysztof Kozlowski
@ 2026-02-12  7:28   ` Krzysztof Kozlowski
  1 sibling, 0 replies; 15+ messages in thread
From: Krzysztof Kozlowski @ 2026-02-12  7:28 UTC (permalink / raw)
  To: Richard Acayan, Bjorn Andersson, Linus Walleij, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, linux-arm-msm,
	linux-gpio, devicetree

On 10/02/2026 03:11, Richard Acayan wrote:
> Add the pin controller for the audio Low-Power Island (LPI) on SDM670.
> 
> Signed-off-by: Richard Acayan <mailingradian@gmail.com>
> ---

Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>

Best regards,
Krzysztof

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 2/3] pinctrl: qcom: add sdm670 lpi tlmm
  2026-02-11  0:35     ` Richard Acayan
@ 2026-02-12  9:07       ` Konrad Dybcio
  0 siblings, 0 replies; 15+ messages in thread
From: Konrad Dybcio @ 2026-02-12  9:07 UTC (permalink / raw)
  To: Richard Acayan
  Cc: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio, linux-arm-msm, linux-gpio,
	devicetree

On 2/11/26 1:35 AM, Richard Acayan wrote:
> On Tue, Feb 10, 2026 at 10:08:19AM +0100, Konrad Dybcio wrote:
>> On 2/10/26 3:11 AM, Richard Acayan wrote:
>>> The Snapdragon 670 has an Low-Power Island (LPI) TLMM for configuring
>>> pins related to audio. Add the driver for this.
>>>
>>> Signed-off-by: Richard Acayan <mailingradian@gmail.com>
>>> ---

[...]

>>> +	LPI_PINGROUP(12, LPI_NO_SLEW, _, _, _, _),
>>> +	LPI_PINGROUP(13, LPI_NO_SLEW, _, _, _, _),
>>> +	LPI_PINGROUP(14, LPI_NO_SLEW, _, _, _, _),
>>> +	LPI_PINGROUP(15, LPI_NO_SLEW, _, _, _, _),
>>> +	LPI_PINGROUP(16, LPI_NO_SLEW, _, _, _, _),
>>> +	LPI_PINGROUP(17, LPI_NO_SLEW, _, _, _, _),
>>> +
>>> +	LPI_PINGROUP(18, LPI_NO_SLEW, _, pdm_clk, _, _),
>>
>> "slimbus_clk"
> 
> Again, what pinfunc? Is PDM, the protocol between analog and digital
> codec, using the SLIM clock?

Where I suggested other names, they're at the same index as the existing
entries, just that they align better with the documentation I have

Konrad

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/3] arm64: dts: qcom: sdm670: add lpi pinctrl
  2026-02-11  0:23     ` Richard Acayan
@ 2026-02-12  9:08       ` Konrad Dybcio
  2026-03-04 23:52         ` Richard Acayan
  0 siblings, 1 reply; 15+ messages in thread
From: Konrad Dybcio @ 2026-02-12  9:08 UTC (permalink / raw)
  To: Richard Acayan, Krzysztof Kozlowski
  Cc: Bjorn Andersson, Linus Walleij, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Konrad Dybcio, linux-arm-msm, linux-gpio,
	devicetree

On 2/11/26 1:23 AM, Richard Acayan wrote:
> On Tue, Feb 10, 2026 at 08:42:59AM +0100, Krzysztof Kozlowski wrote:
>> On 10/02/2026 03:11, Richard Acayan wrote:
>>> +		lpi_tlmm: pinctrl@62b40000 {
>>> +			compatible = "qcom,sdm670-lpass-lpi-pinctrl";
>>> +			reg = <0 0x62b40000 0 0x20000>;
>>> +			gpio-controller;
>>> +			#gpio-cells = <2>;
>>> +			gpio-ranges = <&lpi_tlmm 0 0 32>;
>>> +			status = "disabled";
>>
>> Why is this disabled? We disable blocks needing external resources or
>> being busses/connectors. This is not the case.
> 
> There are reserved GPIOs on the Pixel 3a. Since commit 4f0d22ec60ce
> ("pinctrl: lpass-lpi: implement .get_direction() for the GPIO driver"),
> this can't be probed when the reserved GPIOs are unspecified.

Are all of them reserved?

Does gpio-reserved-ranges help?

Konrad

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 0/3] SDM670 LPASS LPI pin controller support
  2026-02-10  2:11 [PATCH 0/3] SDM670 LPASS LPI pin controller support Richard Acayan
                   ` (2 preceding siblings ...)
  2026-02-10  2:11 ` [PATCH 3/3] arm64: dts: qcom: sdm670: add lpi pinctrl Richard Acayan
@ 2026-02-23 10:14 ` Linus Walleij
  3 siblings, 0 replies; 15+ messages in thread
From: Linus Walleij @ 2026-02-23 10:14 UTC (permalink / raw)
  To: Richard Acayan
  Cc: Bjorn Andersson, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Konrad Dybcio, linux-arm-msm, linux-gpio, devicetree

On Tue, Feb 10, 2026 at 3:10 AM Richard Acayan <mailingradian@gmail.com> wrote:

> This adds support for the LPASS LPI pin controller on SDM670, which
> controls some audio pins (e.g. TDM or PDM busses). The ADSP patches are
> not sent yet.
>
> Richard Acayan (3):
>   dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl
>   pinctrl: qcom: add sdm670 lpi tlmm
>   arm64: dts: qcom: sdm670: add lpi pinctrl

The way I read it there are some review comments on 2/3, so resend this
as soon as you manage to revise it.

Yours,
Linus Walleij

^ permalink raw reply	[flat|nested] 15+ messages in thread

* Re: [PATCH 3/3] arm64: dts: qcom: sdm670: add lpi pinctrl
  2026-02-12  9:08       ` Konrad Dybcio
@ 2026-03-04 23:52         ` Richard Acayan
  0 siblings, 0 replies; 15+ messages in thread
From: Richard Acayan @ 2026-03-04 23:52 UTC (permalink / raw)
  To: Konrad Dybcio
  Cc: Krzysztof Kozlowski, Bjorn Andersson, Linus Walleij, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Konrad Dybcio, linux-arm-msm,
	linux-gpio, devicetree

On Thu, Feb 12, 2026 at 10:08:39AM +0100, Konrad Dybcio wrote:
> On 2/11/26 1:23 AM, Richard Acayan wrote:
> > On Tue, Feb 10, 2026 at 08:42:59AM +0100, Krzysztof Kozlowski wrote:
> >> On 10/02/2026 03:11, Richard Acayan wrote:
> >>> +		lpi_tlmm: pinctrl@62b40000 {
> >>> +			compatible = "qcom,sdm670-lpass-lpi-pinctrl";
> >>> +			reg = <0 0x62b40000 0 0x20000>;
> >>> +			gpio-controller;
> >>> +			#gpio-cells = <2>;
> >>> +			gpio-ranges = <&lpi_tlmm 0 0 32>;
> >>> +			status = "disabled";
> >>
> >> Why is this disabled? We disable blocks needing external resources or
> >> being busses/connectors. This is not the case.
> > 
> > There are reserved GPIOs on the Pixel 3a. Since commit 4f0d22ec60ce
> > ("pinctrl: lpass-lpi: implement .get_direction() for the GPIO driver"),
> > this can't be probed when the reserved GPIOs are unspecified.
> 
> Are all of them reserved?
> 
> Does gpio-reserved-ranges help?

Yes. It would need changes in dt-bindings and in sdm670-google-common.dtsi
(introducing a dependency on Pixel 3a XL support).

^ permalink raw reply	[flat|nested] 15+ messages in thread

end of thread, other threads:[~2026-03-04 23:51 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-02-10  2:11 [PATCH 0/3] SDM670 LPASS LPI pin controller support Richard Acayan
2026-02-10  2:11 ` [PATCH 1/3] dt-bindings: pinctrl: qcom: Add SDM670 LPI pinctrl Richard Acayan
2026-02-10  7:41   ` Krzysztof Kozlowski
2026-02-11  2:02     ` Richard Acayan
2026-02-12  7:28   ` Krzysztof Kozlowski
2026-02-10  2:11 ` [PATCH 2/3] pinctrl: qcom: add sdm670 lpi tlmm Richard Acayan
2026-02-10  9:08   ` Konrad Dybcio
2026-02-11  0:35     ` Richard Acayan
2026-02-12  9:07       ` Konrad Dybcio
2026-02-10  2:11 ` [PATCH 3/3] arm64: dts: qcom: sdm670: add lpi pinctrl Richard Acayan
2026-02-10  7:42   ` Krzysztof Kozlowski
2026-02-11  0:23     ` Richard Acayan
2026-02-12  9:08       ` Konrad Dybcio
2026-03-04 23:52         ` Richard Acayan
2026-02-23 10:14 ` [PATCH 0/3] SDM670 LPASS LPI pin controller support Linus Walleij

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox