mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-09-16 14:19:28 -05:00
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:
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,
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user