* [PATCH v3 0/2] pinctrl: qcom: Add Eliza LPASS LPI support
@ 2026-07-15 13:21 Ravi Hothi
2026-07-15 13:21 ` [PATCH v3 1/2] dt-bindings: pinctrl: qcom,milos-lpass-lpi-pinctrl: Add Eliza pinctrl Ravi Hothi
` (2 more replies)
0 siblings, 3 replies; 4+ messages in thread
From: Ravi Hothi @ 2026-07-15 13:21 UTC (permalink / raw)
To: Bjorn Andersson, Bartosz Golaszewski, Linus Walleij, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Luca Weiss
Cc: linux-arm-msm, linux-gpio, devicetree, linux-kernel,
mohammad.rafi.shaik, ajay.nandam
Eliza is a Qualcomm SoC that uses the same LPASS LPI pin mux
functions as Milos. The key difference is the slew rate register
layout — on Eliza the slew rate field lives in the same GPIO config
register rather than a separate dedicated register.
This series adds support for the Eliza LPASS LPI pin controller by
extending the existing Milos driver with a new variant data struct
that uses the correct slew offsets and sets LPI_FLAG_SLEW_RATE_SAME_REG.
The pin descriptors and function table are shared with Milos since
they are identical.
Patch 1 updates the binding to document the new compatible and the
single reg entry used by Eliza.
Patch 2 adds the driver support.
Changes in v3:
- Fix enum compatible list to alphabetical order
(qcom,eliza before qcom,milos)
(Suggested-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>)
- Drop incorrect Reported-by/Closes tags
- Link to v2: https://lore.kernel.org/all/20260713121518.2724474-1-ravi.hothi@oss.qualcomm.com/
Changes in v2:
- Use 'enum' instead of 'oneOf' + 'const' for compatible property
(Reported-by: Rob Herring (Arm) <robh@kernel.org>,
kernel test robot <lkp@intel.com>)
- Restore 'items' descriptions for reg property, drop redundant maxItems
(Reported-by: Sashiko AI review)
- Link to v1: https://lore.kernel.org/all/20260703073029.2588960-1-ravi.hothi@oss.qualcomm.com/
Ravi Hothi (2):
dt-bindings: pinctrl: qcom,milos-lpass-lpi-pinctrl: Add Eliza pinctrl
pinctrl: qcom: milos-lpass-lpi: Add Eliza LPASS LPI TLMM
.../pinctrl/qcom,milos-lpass-lpi-pinctrl.yaml | 18 ++++++++-
.../pinctrl/qcom/pinctrl-milos-lpass-lpi.c | 40 +++++++++++++++++++
2 files changed, 57 insertions(+), 1 deletion(-)
base-commit: cc2b5f627e8ccbae1188ef2d8be3e451d7f933a5
--
2.34.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3 1/2] dt-bindings: pinctrl: qcom,milos-lpass-lpi-pinctrl: Add Eliza pinctrl
2026-07-15 13:21 [PATCH v3 0/2] pinctrl: qcom: Add Eliza LPASS LPI support Ravi Hothi
@ 2026-07-15 13:21 ` Ravi Hothi
2026-07-15 13:21 ` [PATCH v3 2/2] pinctrl: qcom: milos-lpass-lpi: Add Eliza LPASS LPI TLMM Ravi Hothi
2026-07-16 14:00 ` [PATCH v3 0/2] pinctrl: qcom: Add Eliza LPASS LPI support Bartosz Golaszewski
2 siblings, 0 replies; 4+ messages in thread
From: Ravi Hothi @ 2026-07-15 13:21 UTC (permalink / raw)
To: Bjorn Andersson, Bartosz Golaszewski, Linus Walleij, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Luca Weiss
Cc: linux-arm-msm, linux-gpio, devicetree, linux-kernel,
mohammad.rafi.shaik, ajay.nandam, Krzysztof Kozlowski
Document compatible for Qualcomm Eliza SoC LPASS LPI pin controller.
Eliza has the same pin mux functions as Milos but uses a different
slew rate register layout where the slew rate field is in the same
GPIO config register rather than a separate dedicated register. As a
result, Eliza only has a single reg entry instead of two.
Signed-off-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@oss.qualcomm.com>
---
.../pinctrl/qcom,milos-lpass-lpi-pinctrl.yaml | 18 +++++++++++++++++-
1 file changed, 17 insertions(+), 1 deletion(-)
diff --git a/Documentation/devicetree/bindings/pinctrl/qcom,milos-lpass-lpi-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/qcom,milos-lpass-lpi-pinctrl.yaml
index 73e84f188591..86c1da0f577c 100644
--- a/Documentation/devicetree/bindings/pinctrl/qcom,milos-lpass-lpi-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/qcom,milos-lpass-lpi-pinctrl.yaml
@@ -15,9 +15,12 @@ description:
properties:
compatible:
- const: qcom,milos-lpass-lpi-pinctrl
+ enum:
+ - qcom,eliza-lpass-lpi-pinctrl
+ - qcom,milos-lpass-lpi-pinctrl
reg:
+ minItems: 1
items:
- description: LPASS LPI TLMM Control and Status registers
- description: LPASS LPI MCC registers
@@ -74,6 +77,19 @@ $defs:
allOf:
- $ref: qcom,lpass-lpi-common.yaml#
+ - if:
+ properties:
+ compatible:
+ const: qcom,eliza-lpass-lpi-pinctrl
+ then:
+ properties:
+ reg:
+ maxItems: 1
+ else:
+ properties:
+ reg:
+ minItems: 2
+
required:
- compatible
- reg
--
2.34.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH v3 2/2] pinctrl: qcom: milos-lpass-lpi: Add Eliza LPASS LPI TLMM
2026-07-15 13:21 [PATCH v3 0/2] pinctrl: qcom: Add Eliza LPASS LPI support Ravi Hothi
2026-07-15 13:21 ` [PATCH v3 1/2] dt-bindings: pinctrl: qcom,milos-lpass-lpi-pinctrl: Add Eliza pinctrl Ravi Hothi
@ 2026-07-15 13:21 ` Ravi Hothi
2026-07-16 14:00 ` [PATCH v3 0/2] pinctrl: qcom: Add Eliza LPASS LPI support Bartosz Golaszewski
2 siblings, 0 replies; 4+ messages in thread
From: Ravi Hothi @ 2026-07-15 13:21 UTC (permalink / raw)
To: Bjorn Andersson, Bartosz Golaszewski, Linus Walleij, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Luca Weiss
Cc: linux-arm-msm, linux-gpio, devicetree, linux-kernel,
mohammad.rafi.shaik, ajay.nandam, Konrad Dybcio
Eliza SoC has the same LPASS LPI pin mux functions as Milos but the
slew rate control is in the same GPIO config register rather than a
separate register. Add a new variant data struct with updated slew
offsets and LPI_FLAG_SLEW_RATE_SAME_REG flag, reusing the existing
pin descriptors and function table from Milos.
Signed-off-by: Ravi Hothi <ravi.hothi@oss.qualcomm.com>
Reviewed-by: Konrad Dybcio <konrad.dybcio@oss.qualcomm.com>
---
.../pinctrl/qcom/pinctrl-milos-lpass-lpi.c | 40 +++++++++++++++++++
1 file changed, 40 insertions(+)
diff --git a/drivers/pinctrl/qcom/pinctrl-milos-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-milos-lpass-lpi.c
index 72b8ffd97860..cb4934cd6f75 100644
--- a/drivers/pinctrl/qcom/pinctrl-milos-lpass-lpi.c
+++ b/drivers/pinctrl/qcom/pinctrl-milos-lpass-lpi.c
@@ -148,6 +148,33 @@ static const struct lpi_pingroup milos_groups[] = {
LPI_PINGROUP(22, LPI_NO_SLEW, i2s3_data, dmic4_data, ext_mclk1_e, _),
};
+static const struct lpi_pingroup eliza_groups[] = {
+ LPI_PINGROUP(0, 11, swr_tx_clk, i2s0_clk, _, _),
+ LPI_PINGROUP(1, 11, swr_tx_data, i2s0_ws, _, _),
+ LPI_PINGROUP(2, 11, swr_tx_data, i2s0_data, _, _),
+ LPI_PINGROUP(3, 11, swr_rx_clk, i2s0_data, _, _),
+ LPI_PINGROUP(4, 11, swr_rx_data, i2s0_data, _, _),
+ LPI_PINGROUP(5, 11, swr_rx_data, ext_mclk1_c, i2s0_data, _),
+ LPI_PINGROUP(6, LPI_NO_SLEW, dmic1_clk, i2s1_clk, _, _),
+ LPI_PINGROUP(7, LPI_NO_SLEW, dmic1_data, i2s1_ws, _, _),
+ LPI_PINGROUP(8, LPI_NO_SLEW, dmic2_clk, i2s1_data, _, _),
+ LPI_PINGROUP(9, LPI_NO_SLEW, dmic2_data, i2s1_data, ext_mclk1_b, _),
+ LPI_PINGROUP(10, 11, wsa_swr_clk, i2s2_clk, _, _),
+ LPI_PINGROUP(11, 11, wsa_swr_data, i2s2_ws, _, _),
+ LPI_PINGROUP(12, LPI_NO_SLEW, dmic3_clk, i2s2_data, _, _),
+ LPI_PINGROUP(13, LPI_NO_SLEW, dmic3_data, i2s2_data, ext_mclk1_a, _),
+ LPI_PINGROUP(14, 11, swr_tx_data, ext_mclk1_d, _, _),
+ /* gpio15 - gpio18 do not really exist */
+ LPI_PINGROUP(15, 11, _, _, _, _),
+ LPI_PINGROUP(16, 11, _, _, _, _),
+ LPI_PINGROUP(17, LPI_NO_SLEW, _, _, _, _),
+ LPI_PINGROUP(18, LPI_NO_SLEW, _, _, _, _),
+ LPI_PINGROUP(19, LPI_NO_SLEW, i2s3_clk, slimbus_clk, qca_swr_clk, _),
+ LPI_PINGROUP(20, LPI_NO_SLEW, i2s3_ws, slimbus_data, qca_swr_data, _),
+ LPI_PINGROUP(21, LPI_NO_SLEW, i2s3_data, dmic4_clk, _, _),
+ LPI_PINGROUP(22, LPI_NO_SLEW, i2s3_data, dmic4_data, ext_mclk1_e, _),
+};
+
static const struct lpi_function milos_functions[] = {
LPI_FUNCTION(gpio),
LPI_FUNCTION(dmic1_clk),
@@ -196,8 +223,21 @@ static const struct lpi_pinctrl_variant_data milos_lpi_data = {
.nfunctions = ARRAY_SIZE(milos_functions),
};
+static const struct lpi_pinctrl_variant_data eliza_lpi_data = {
+ .pins = milos_lpi_pins,
+ .npins = ARRAY_SIZE(milos_lpi_pins),
+ .groups = eliza_groups,
+ .ngroups = ARRAY_SIZE(eliza_groups),
+ .functions = milos_functions,
+ .nfunctions = ARRAY_SIZE(milos_functions),
+ .flags = LPI_FLAG_SLEW_RATE_SAME_REG,
+};
+
static const struct of_device_id lpi_pinctrl_of_match[] = {
{
+ .compatible = "qcom,eliza-lpass-lpi-pinctrl",
+ .data = &eliza_lpi_data,
+ }, {
.compatible = "qcom,milos-lpass-lpi-pinctrl",
.data = &milos_lpi_data,
},
--
2.34.1
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH v3 0/2] pinctrl: qcom: Add Eliza LPASS LPI support
2026-07-15 13:21 [PATCH v3 0/2] pinctrl: qcom: Add Eliza LPASS LPI support Ravi Hothi
2026-07-15 13:21 ` [PATCH v3 1/2] dt-bindings: pinctrl: qcom,milos-lpass-lpi-pinctrl: Add Eliza pinctrl Ravi Hothi
2026-07-15 13:21 ` [PATCH v3 2/2] pinctrl: qcom: milos-lpass-lpi: Add Eliza LPASS LPI TLMM Ravi Hothi
@ 2026-07-16 14:00 ` Bartosz Golaszewski
2 siblings, 0 replies; 4+ messages in thread
From: Bartosz Golaszewski @ 2026-07-16 14:00 UTC (permalink / raw)
To: Bjorn Andersson, Bartosz Golaszewski, Linus Walleij, Rob Herring,
Krzysztof Kozlowski, Conor Dooley, Luca Weiss, Ravi Hothi
Cc: Bartosz Golaszewski, linux-arm-msm, linux-gpio, devicetree,
linux-kernel, mohammad.rafi.shaik, ajay.nandam
On Wed, 15 Jul 2026 18:51:48 +0530, Ravi Hothi wrote:
> Eliza is a Qualcomm SoC that uses the same LPASS LPI pin mux
> functions as Milos. The key difference is the slew rate register
> layout — on Eliza the slew rate field lives in the same GPIO config
> register rather than a separate dedicated register.
>
> This series adds support for the Eliza LPASS LPI pin controller by
> extending the existing Milos driver with a new variant data struct
> that uses the correct slew offsets and sets LPI_FLAG_SLEW_RATE_SAME_REG.
> The pin descriptors and function table are shared with Milos since
> they are identical.
>
> [...]
Applied, thanks!
[1/2] dt-bindings: pinctrl: qcom,milos-lpass-lpi-pinctrl: Add Eliza pinctrl
https://git.kernel.org/brgl/c/f81bcaae1edde95c684436310edad8cf849f1f1f
[2/2] pinctrl: qcom: milos-lpass-lpi: Add Eliza LPASS LPI TLMM
https://git.kernel.org/brgl/c/82c3edf8701154e2768973ebd4c0d2f3bd29621e
Best regards,
--
Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-16 14:00 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2026-07-15 13:21 [PATCH v3 0/2] pinctrl: qcom: Add Eliza LPASS LPI support Ravi Hothi
2026-07-15 13:21 ` [PATCH v3 1/2] dt-bindings: pinctrl: qcom,milos-lpass-lpi-pinctrl: Add Eliza pinctrl Ravi Hothi
2026-07-15 13:21 ` [PATCH v3 2/2] pinctrl: qcom: milos-lpass-lpi: Add Eliza LPASS LPI TLMM Ravi Hothi
2026-07-16 14:00 ` [PATCH v3 0/2] pinctrl: qcom: Add Eliza LPASS LPI support Bartosz Golaszewski
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox