pinctrl: qcom: milos-lpass-lpi: Add Eliza LPASS LPI TLMM

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>
Link: https://patch.msgid.link/20260715132150.1322663-3-ravi.hothi@oss.qualcomm.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@oss.qualcomm.com>
This commit is contained in:
Ravi Hothi
2026-07-16 16:00:07 +02:00
committed by Bartosz Golaszewski
parent f81bcaae1e
commit 82c3edf870
@@ -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,
},