From: Sasha Levin <sashal@kernel.org>
To: patches@lists.linux.dev
Cc: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>,
Venkata Prasad Potturu <quic_potturu@quicinc.com>,
Matthias Kaehlcke <mka@chromium.org>,
Linus Walleij <linus.walleij@linaro.org>,
Sasha Levin <sashal@kernel.org>
Subject: [PATCH 5.15 148/164] pinctrl: qcom: Extract chip specific LPASS LPI code
Date: Sat, 28 Feb 2026 13:14:47 -0500 [thread overview]
Message-ID: <20260228181505.1600663-148-sashal@kernel.org> (raw)
In-Reply-To: <20260228181505.1600663-1-sashal@kernel.org>
From: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
[ Upstream commit 9ce49018c6928263d41b783c9e4928c6af05db43 ]
Extract the chip specific SM8250 data from the LPASS LPI pinctrl driver
to allow reusing the common code in the addition of subsequent
platforms.
Signed-off-by: Srinivasa Rao Mandadapu <quic_srivasam@quicinc.com>
Co-developed-by: Venkata Prasad Potturu <quic_potturu@quicinc.com>
Signed-off-by: Venkata Prasad Potturu <quic_potturu@quicinc.com>
Reviewed-by: Matthias Kaehlcke <mka@chromium.org>
Link: https://lore.kernel.org/r/1650285427-19752-6-git-send-email-quic_srivasam@quicinc.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Stable-dep-of: eabf273c8466 ("pinctrl: qcom: sm8250-lpass-lpi: Fix i2s2_data_groups definition")
Signed-off-by: Sasha Levin <sashal@kernel.org>
---
drivers/pinctrl/qcom/Kconfig | 9 +
drivers/pinctrl/qcom/Makefile | 1 +
drivers/pinctrl/qcom/pinctrl-lpass-lpi.c | 233 +-----------------
drivers/pinctrl/qcom/pinctrl-lpass-lpi.h | 85 +++++++
.../pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c | 163 ++++++++++++
5 files changed, 263 insertions(+), 228 deletions(-)
create mode 100644 drivers/pinctrl/qcom/pinctrl-lpass-lpi.h
create mode 100644 drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c
diff --git a/drivers/pinctrl/qcom/Kconfig b/drivers/pinctrl/qcom/Kconfig
index 254018c5b3bcc..7d70a7854a403 100644
--- a/drivers/pinctrl/qcom/Kconfig
+++ b/drivers/pinctrl/qcom/Kconfig
@@ -303,6 +303,15 @@ config PINCTRL_SM8250
Qualcomm Technologies Inc TLMM block found on the Qualcomm
Technologies Inc SM8250 platform.
+config PINCTRL_SM8250_LPASS_LPI
+ tristate "Qualcomm Technologies Inc SM8250 LPASS LPI pin controller driver"
+ depends on GPIOLIB
+ 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 SM8250 platform.
+
config PINCTRL_SM8350
tristate "Qualcomm Technologies Inc SM8350 pin controller driver"
depends on PINCTRL_MSM
diff --git a/drivers/pinctrl/qcom/Makefile b/drivers/pinctrl/qcom/Makefile
index 7a12e8cd2fbac..6dcee8eed1d23 100644
--- a/drivers/pinctrl/qcom/Makefile
+++ b/drivers/pinctrl/qcom/Makefile
@@ -35,5 +35,6 @@ obj-$(CONFIG_PINCTRL_SM6115) += pinctrl-sm6115.o
obj-$(CONFIG_PINCTRL_SM6125) += pinctrl-sm6125.o
obj-$(CONFIG_PINCTRL_SM8150) += pinctrl-sm8150.o
obj-$(CONFIG_PINCTRL_SM8250) += pinctrl-sm8250.o
+obj-$(CONFIG_PINCTRL_SM8250_LPASS_LPI) += pinctrl-sm8250-lpass-lpi.o
obj-$(CONFIG_PINCTRL_SM8350) += pinctrl-sm8350.o
obj-$(CONFIG_PINCTRL_LPASS_LPI) += pinctrl-lpass-lpi.o
diff --git a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c
index d253787f09f1d..60a84a757ac33 100644
--- a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c
+++ b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.c
@@ -4,91 +4,15 @@
* Copyright (c) 2020 Linaro Ltd.
*/
-#include <linux/bitops.h>
-#include <linux/bitfield.h>
#include <linux/clk.h>
#include <linux/gpio/driver.h>
-#include <linux/io.h>
#include <linux/module.h>
#include <linux/of_device.h>
-#include <linux/of.h>
#include <linux/pinctrl/pinconf-generic.h>
#include <linux/pinctrl/pinconf.h>
#include <linux/pinctrl/pinmux.h>
-#include <linux/platform_device.h>
-#include <linux/slab.h>
-#include <linux/types.h>
-#include "../core.h"
#include "../pinctrl-utils.h"
-
-#define LPI_SLEW_RATE_CTL_REG 0xa000
-#define LPI_TLMM_REG_OFFSET 0x1000
-#define LPI_SLEW_RATE_MAX 0x03
-#define LPI_SLEW_BITS_SIZE 0x02
-#define LPI_SLEW_RATE_MASK GENMASK(1, 0)
-#define LPI_GPIO_CFG_REG 0x00
-#define LPI_GPIO_PULL_MASK GENMASK(1, 0)
-#define LPI_GPIO_FUNCTION_MASK GENMASK(5, 2)
-#define LPI_GPIO_OUT_STRENGTH_MASK GENMASK(8, 6)
-#define LPI_GPIO_OE_MASK BIT(9)
-#define LPI_GPIO_VALUE_REG 0x04
-#define LPI_GPIO_VALUE_IN_MASK BIT(0)
-#define LPI_GPIO_VALUE_OUT_MASK BIT(1)
-
-#define LPI_GPIO_BIAS_DISABLE 0x0
-#define LPI_GPIO_PULL_DOWN 0x1
-#define LPI_GPIO_KEEPER 0x2
-#define LPI_GPIO_PULL_UP 0x3
-#define LPI_GPIO_DS_TO_VAL(v) (v / 2 - 1)
-#define LPI_NO_SLEW -1
-
-#define LPI_FUNCTION(fname) \
- [LPI_MUX_##fname] = { \
- .name = #fname, \
- .groups = fname##_groups, \
- .ngroups = ARRAY_SIZE(fname##_groups), \
- }
-
-#define LPI_PINGROUP(id, soff, f1, f2, f3, f4) \
- { \
- .group.name = "gpio" #id, \
- .group.pins = gpio##id##_pins, \
- .pin = id, \
- .slew_offset = soff, \
- .group.num_pins = ARRAY_SIZE(gpio##id##_pins), \
- .funcs = (int[]){ \
- LPI_MUX_gpio, \
- LPI_MUX_##f1, \
- LPI_MUX_##f2, \
- LPI_MUX_##f3, \
- LPI_MUX_##f4, \
- }, \
- .nfuncs = 5, \
- }
-
-struct lpi_pingroup {
- struct group_desc group;
- unsigned int pin;
- /* Bit offset in slew register for SoundWire pins only */
- int slew_offset;
- unsigned int *funcs;
- unsigned int nfuncs;
-};
-
-struct lpi_function {
- const char *name;
- const char * const *groups;
- unsigned int ngroups;
-};
-
-struct lpi_pinctrl_variant_data {
- const struct pinctrl_pin_desc *pins;
- int npins;
- const struct lpi_pingroup *groups;
- int ngroups;
- const struct lpi_function *functions;
- int nfunctions;
-};
+#include "pinctrl-lpass-lpi.h"
#define MAX_LPI_NUM_CLKS 2
@@ -105,136 +29,6 @@ struct lpi_pinctrl {
const struct lpi_pinctrl_variant_data *data;
};
-/* sm8250 variant specific data */
-static const struct pinctrl_pin_desc sm8250_lpi_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"),
-};
-
-enum sm8250_lpi_functions {
- LPI_MUX_dmic1_clk,
- LPI_MUX_dmic1_data,
- LPI_MUX_dmic2_clk,
- LPI_MUX_dmic2_data,
- LPI_MUX_dmic3_clk,
- LPI_MUX_dmic3_data,
- LPI_MUX_i2s1_clk,
- LPI_MUX_i2s1_data,
- LPI_MUX_i2s1_ws,
- LPI_MUX_i2s2_clk,
- LPI_MUX_i2s2_data,
- LPI_MUX_i2s2_ws,
- LPI_MUX_qua_mi2s_data,
- LPI_MUX_qua_mi2s_sclk,
- LPI_MUX_qua_mi2s_ws,
- LPI_MUX_swr_rx_clk,
- LPI_MUX_swr_rx_data,
- LPI_MUX_swr_tx_clk,
- LPI_MUX_swr_tx_data,
- LPI_MUX_wsa_swr_clk,
- LPI_MUX_wsa_swr_data,
- LPI_MUX_gpio,
- LPI_MUX__,
-};
-
-static int gpio0_pins[] = { 0 };
-static int gpio1_pins[] = { 1 };
-static int gpio2_pins[] = { 2 };
-static int gpio3_pins[] = { 3 };
-static int gpio4_pins[] = { 4 };
-static int gpio5_pins[] = { 5 };
-static int gpio6_pins[] = { 6 };
-static int gpio7_pins[] = { 7 };
-static int gpio8_pins[] = { 8 };
-static int gpio9_pins[] = { 9 };
-static int gpio10_pins[] = { 10 };
-static int gpio11_pins[] = { 11 };
-static int gpio12_pins[] = { 12 };
-static int gpio13_pins[] = { 13 };
-static const char * const swr_tx_clk_groups[] = { "gpio0" };
-static const char * const swr_tx_data_groups[] = { "gpio1", "gpio2", "gpio5" };
-static const char * const swr_rx_clk_groups[] = { "gpio3" };
-static const char * const swr_rx_data_groups[] = { "gpio4", "gpio5" };
-static const char * const dmic1_clk_groups[] = { "gpio6" };
-static const char * const dmic1_data_groups[] = { "gpio7" };
-static const char * const dmic2_clk_groups[] = { "gpio8" };
-static const char * const dmic2_data_groups[] = { "gpio9" };
-static const char * const i2s2_clk_groups[] = { "gpio10" };
-static const char * const i2s2_ws_groups[] = { "gpio11" };
-static const char * const dmic3_clk_groups[] = { "gpio12" };
-static const char * const dmic3_data_groups[] = { "gpio13" };
-static const char * const qua_mi2s_sclk_groups[] = { "gpio0" };
-static const char * const qua_mi2s_ws_groups[] = { "gpio1" };
-static const char * const qua_mi2s_data_groups[] = { "gpio2", "gpio3", "gpio4" };
-static const char * const i2s1_clk_groups[] = { "gpio6" };
-static const char * const i2s1_ws_groups[] = { "gpio7" };
-static const char * const i2s1_data_groups[] = { "gpio8", "gpio9" };
-static const char * const wsa_swr_clk_groups[] = { "gpio10" };
-static const char * const wsa_swr_data_groups[] = { "gpio11" };
-static const char * const i2s2_data_groups[] = { "gpio12", "gpio12" };
-
-static const struct lpi_pingroup sm8250_groups[] = {
- LPI_PINGROUP(0, 0, swr_tx_clk, qua_mi2s_sclk, _, _),
- LPI_PINGROUP(1, 2, swr_tx_data, qua_mi2s_ws, _, _),
- LPI_PINGROUP(2, 4, swr_tx_data, qua_mi2s_data, _, _),
- LPI_PINGROUP(3, 8, swr_rx_clk, qua_mi2s_data, _, _),
- LPI_PINGROUP(4, 10, swr_rx_data, qua_mi2s_data, _, _),
- LPI_PINGROUP(5, 12, swr_tx_data, swr_rx_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, _, _),
- LPI_PINGROUP(10, 16, i2s2_clk, wsa_swr_clk, _, _),
- LPI_PINGROUP(11, 18, i2s2_ws, wsa_swr_data, _, _),
- LPI_PINGROUP(12, LPI_NO_SLEW, dmic3_clk, i2s2_data, _, _),
- LPI_PINGROUP(13, LPI_NO_SLEW, dmic3_data, i2s2_data, _, _),
-};
-
-static const struct lpi_function sm8250_functions[] = {
- LPI_FUNCTION(dmic1_clk),
- LPI_FUNCTION(dmic1_data),
- LPI_FUNCTION(dmic2_clk),
- LPI_FUNCTION(dmic2_data),
- LPI_FUNCTION(dmic3_clk),
- LPI_FUNCTION(dmic3_data),
- LPI_FUNCTION(i2s1_clk),
- LPI_FUNCTION(i2s1_data),
- LPI_FUNCTION(i2s1_ws),
- LPI_FUNCTION(i2s2_clk),
- LPI_FUNCTION(i2s2_data),
- LPI_FUNCTION(i2s2_ws),
- LPI_FUNCTION(qua_mi2s_data),
- LPI_FUNCTION(qua_mi2s_sclk),
- LPI_FUNCTION(qua_mi2s_ws),
- LPI_FUNCTION(swr_rx_clk),
- LPI_FUNCTION(swr_rx_data),
- LPI_FUNCTION(swr_tx_clk),
- LPI_FUNCTION(swr_tx_data),
- LPI_FUNCTION(wsa_swr_clk),
- LPI_FUNCTION(wsa_swr_data),
-};
-
-static struct lpi_pinctrl_variant_data sm8250_lpi_data = {
- .pins = sm8250_lpi_pins,
- .npins = ARRAY_SIZE(sm8250_lpi_pins),
- .groups = sm8250_groups,
- .ngroups = ARRAY_SIZE(sm8250_groups),
- .functions = sm8250_functions,
- .nfunctions = ARRAY_SIZE(sm8250_functions),
-};
-
static int lpi_gpio_read(struct lpi_pinctrl *state, unsigned int pin,
unsigned int addr)
{
@@ -600,7 +394,7 @@ static int lpi_build_pin_desc_groups(struct lpi_pinctrl *pctrl)
return ret;
}
-static int lpi_pinctrl_probe(struct platform_device *pdev)
+int lpi_pinctrl_probe(struct platform_device *pdev)
{
const struct lpi_pinctrl_variant_data *data;
struct device *dev = &pdev->dev;
@@ -682,8 +476,9 @@ static int lpi_pinctrl_probe(struct platform_device *pdev)
return ret;
}
+EXPORT_SYMBOL_GPL(lpi_pinctrl_probe);
-static int lpi_pinctrl_remove(struct platform_device *pdev)
+int lpi_pinctrl_remove(struct platform_device *pdev)
{
struct lpi_pinctrl *pctrl = platform_get_drvdata(pdev);
int i;
@@ -696,25 +491,7 @@ static int lpi_pinctrl_remove(struct platform_device *pdev)
return 0;
}
+EXPORT_SYMBOL_GPL(lpi_pinctrl_remove);
-static const struct of_device_id lpi_pinctrl_of_match[] = {
- {
- .compatible = "qcom,sm8250-lpass-lpi-pinctrl",
- .data = &sm8250_lpi_data,
- },
- { }
-};
-MODULE_DEVICE_TABLE(of, lpi_pinctrl_of_match);
-
-static struct platform_driver lpi_pinctrl_driver = {
- .driver = {
- .name = "qcom-lpass-lpi-pinctrl",
- .of_match_table = lpi_pinctrl_of_match,
- },
- .probe = lpi_pinctrl_probe,
- .remove = lpi_pinctrl_remove,
-};
-
-module_platform_driver(lpi_pinctrl_driver);
MODULE_DESCRIPTION("QTI LPI GPIO pin control driver");
MODULE_LICENSE("GPL");
diff --git a/drivers/pinctrl/qcom/pinctrl-lpass-lpi.h b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.h
new file mode 100644
index 0000000000000..afbac2a6c82ca
--- /dev/null
+++ b/drivers/pinctrl/qcom/pinctrl-lpass-lpi.h
@@ -0,0 +1,85 @@
+/* SPDX-License-Identifier: GPL-2.0-only */
+/*
+ * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2020 Linaro Ltd.
+ */
+#ifndef __PINCTRL_LPASS_LPI_H__
+#define __PINCTRL_LPASS_LPI_H__
+
+#include <linux/bitops.h>
+#include <linux/bitfield.h>
+#include "../core.h"
+
+#define LPI_SLEW_RATE_CTL_REG 0xa000
+#define LPI_TLMM_REG_OFFSET 0x1000
+#define LPI_SLEW_RATE_MAX 0x03
+#define LPI_SLEW_BITS_SIZE 0x02
+#define LPI_SLEW_RATE_MASK GENMASK(1, 0)
+#define LPI_GPIO_CFG_REG 0x00
+#define LPI_GPIO_PULL_MASK GENMASK(1, 0)
+#define LPI_GPIO_FUNCTION_MASK GENMASK(5, 2)
+#define LPI_GPIO_OUT_STRENGTH_MASK GENMASK(8, 6)
+#define LPI_GPIO_OE_MASK BIT(9)
+#define LPI_GPIO_VALUE_REG 0x04
+#define LPI_GPIO_VALUE_IN_MASK BIT(0)
+#define LPI_GPIO_VALUE_OUT_MASK BIT(1)
+
+#define LPI_GPIO_BIAS_DISABLE 0x0
+#define LPI_GPIO_PULL_DOWN 0x1
+#define LPI_GPIO_KEEPER 0x2
+#define LPI_GPIO_PULL_UP 0x3
+#define LPI_GPIO_DS_TO_VAL(v) (v / 2 - 1)
+#define LPI_NO_SLEW -1
+
+#define LPI_FUNCTION(fname) \
+ [LPI_MUX_##fname] = { \
+ .name = #fname, \
+ .groups = fname##_groups, \
+ .ngroups = ARRAY_SIZE(fname##_groups), \
+ }
+
+#define LPI_PINGROUP(id, soff, f1, f2, f3, f4) \
+ { \
+ .group.name = "gpio" #id, \
+ .group.pins = gpio##id##_pins, \
+ .pin = id, \
+ .slew_offset = soff, \
+ .group.num_pins = ARRAY_SIZE(gpio##id##_pins), \
+ .funcs = (int[]){ \
+ LPI_MUX_gpio, \
+ LPI_MUX_##f1, \
+ LPI_MUX_##f2, \
+ LPI_MUX_##f3, \
+ LPI_MUX_##f4, \
+ }, \
+ .nfuncs = 5, \
+ }
+
+struct lpi_pingroup {
+ struct group_desc group;
+ unsigned int pin;
+ /* Bit offset in slew register for SoundWire pins only */
+ int slew_offset;
+ unsigned int *funcs;
+ unsigned int nfuncs;
+};
+
+struct lpi_function {
+ const char *name;
+ const char * const *groups;
+ unsigned int ngroups;
+};
+
+struct lpi_pinctrl_variant_data {
+ const struct pinctrl_pin_desc *pins;
+ int npins;
+ const struct lpi_pingroup *groups;
+ int ngroups;
+ const struct lpi_function *functions;
+ int nfunctions;
+};
+
+int lpi_pinctrl_probe(struct platform_device *pdev);
+int lpi_pinctrl_remove(struct platform_device *pdev);
+
+#endif /*__PINCTRL_LPASS_LPI_H__*/
diff --git a/drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c b/drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c
new file mode 100644
index 0000000000000..ddbc6317f2a74
--- /dev/null
+++ b/drivers/pinctrl/qcom/pinctrl-sm8250-lpass-lpi.c
@@ -0,0 +1,163 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Copyright (c) 2016-2019, The Linux Foundation. All rights reserved.
+ * Copyright (c) 2020 Linaro Ltd.
+ */
+
+#include <linux/gpio/driver.h>
+#include <linux/module.h>
+#include <linux/platform_device.h>
+
+#include "pinctrl-lpass-lpi.h"
+
+enum lpass_lpi_functions {
+ LPI_MUX_dmic1_clk,
+ LPI_MUX_dmic1_data,
+ LPI_MUX_dmic2_clk,
+ LPI_MUX_dmic2_data,
+ LPI_MUX_dmic3_clk,
+ LPI_MUX_dmic3_data,
+ LPI_MUX_i2s1_clk,
+ LPI_MUX_i2s1_data,
+ LPI_MUX_i2s1_ws,
+ LPI_MUX_i2s2_clk,
+ LPI_MUX_i2s2_data,
+ LPI_MUX_i2s2_ws,
+ LPI_MUX_qua_mi2s_data,
+ LPI_MUX_qua_mi2s_sclk,
+ LPI_MUX_qua_mi2s_ws,
+ LPI_MUX_swr_rx_clk,
+ LPI_MUX_swr_rx_data,
+ LPI_MUX_swr_tx_clk,
+ LPI_MUX_swr_tx_data,
+ LPI_MUX_wsa_swr_clk,
+ LPI_MUX_wsa_swr_data,
+ LPI_MUX_gpio,
+ LPI_MUX__,
+};
+
+static int gpio0_pins[] = { 0 };
+static int gpio1_pins[] = { 1 };
+static int gpio2_pins[] = { 2 };
+static int gpio3_pins[] = { 3 };
+static int gpio4_pins[] = { 4 };
+static int gpio5_pins[] = { 5 };
+static int gpio6_pins[] = { 6 };
+static int gpio7_pins[] = { 7 };
+static int gpio8_pins[] = { 8 };
+static int gpio9_pins[] = { 9 };
+static int gpio10_pins[] = { 10 };
+static int gpio11_pins[] = { 11 };
+static int gpio12_pins[] = { 12 };
+static int gpio13_pins[] = { 13 };
+
+static const struct pinctrl_pin_desc sm8250_lpi_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"),
+};
+
+static const char * const swr_tx_clk_groups[] = { "gpio0" };
+static const char * const swr_tx_data_groups[] = { "gpio1", "gpio2", "gpio5" };
+static const char * const swr_rx_clk_groups[] = { "gpio3" };
+static const char * const swr_rx_data_groups[] = { "gpio4", "gpio5" };
+static const char * const dmic1_clk_groups[] = { "gpio6" };
+static const char * const dmic1_data_groups[] = { "gpio7" };
+static const char * const dmic2_clk_groups[] = { "gpio8" };
+static const char * const dmic2_data_groups[] = { "gpio9" };
+static const char * const i2s2_clk_groups[] = { "gpio10" };
+static const char * const i2s2_ws_groups[] = { "gpio11" };
+static const char * const dmic3_clk_groups[] = { "gpio12" };
+static const char * const dmic3_data_groups[] = { "gpio13" };
+static const char * const qua_mi2s_sclk_groups[] = { "gpio0" };
+static const char * const qua_mi2s_ws_groups[] = { "gpio1" };
+static const char * const qua_mi2s_data_groups[] = { "gpio2", "gpio3", "gpio4" };
+static const char * const i2s1_clk_groups[] = { "gpio6" };
+static const char * const i2s1_ws_groups[] = { "gpio7" };
+static const char * const i2s1_data_groups[] = { "gpio8", "gpio9" };
+static const char * const wsa_swr_clk_groups[] = { "gpio10" };
+static const char * const wsa_swr_data_groups[] = { "gpio11" };
+static const char * const i2s2_data_groups[] = { "gpio12", "gpio12" };
+
+static const struct lpi_pingroup sm8250_groups[] = {
+ LPI_PINGROUP(0, 0, swr_tx_clk, qua_mi2s_sclk, _, _),
+ LPI_PINGROUP(1, 2, swr_tx_data, qua_mi2s_ws, _, _),
+ LPI_PINGROUP(2, 4, swr_tx_data, qua_mi2s_data, _, _),
+ LPI_PINGROUP(3, 8, swr_rx_clk, qua_mi2s_data, _, _),
+ LPI_PINGROUP(4, 10, swr_rx_data, qua_mi2s_data, _, _),
+ LPI_PINGROUP(5, 12, swr_tx_data, swr_rx_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, _, _),
+ LPI_PINGROUP(10, 16, i2s2_clk, wsa_swr_clk, _, _),
+ LPI_PINGROUP(11, 18, i2s2_ws, wsa_swr_data, _, _),
+ LPI_PINGROUP(12, LPI_NO_SLEW, dmic3_clk, i2s2_data, _, _),
+ LPI_PINGROUP(13, LPI_NO_SLEW, dmic3_data, i2s2_data, _, _),
+};
+
+static const struct lpi_function sm8250_functions[] = {
+ LPI_FUNCTION(dmic1_clk),
+ LPI_FUNCTION(dmic1_data),
+ LPI_FUNCTION(dmic2_clk),
+ LPI_FUNCTION(dmic2_data),
+ LPI_FUNCTION(dmic3_clk),
+ LPI_FUNCTION(dmic3_data),
+ LPI_FUNCTION(i2s1_clk),
+ LPI_FUNCTION(i2s1_data),
+ LPI_FUNCTION(i2s1_ws),
+ LPI_FUNCTION(i2s2_clk),
+ LPI_FUNCTION(i2s2_data),
+ LPI_FUNCTION(i2s2_ws),
+ LPI_FUNCTION(qua_mi2s_data),
+ LPI_FUNCTION(qua_mi2s_sclk),
+ LPI_FUNCTION(qua_mi2s_ws),
+ LPI_FUNCTION(swr_rx_clk),
+ LPI_FUNCTION(swr_rx_data),
+ LPI_FUNCTION(swr_tx_clk),
+ LPI_FUNCTION(swr_tx_data),
+ LPI_FUNCTION(wsa_swr_clk),
+ LPI_FUNCTION(wsa_swr_data),
+};
+
+static const struct lpi_pinctrl_variant_data sm8250_lpi_data = {
+ .pins = sm8250_lpi_pins,
+ .npins = ARRAY_SIZE(sm8250_lpi_pins),
+ .groups = sm8250_groups,
+ .ngroups = ARRAY_SIZE(sm8250_groups),
+ .functions = sm8250_functions,
+ .nfunctions = ARRAY_SIZE(sm8250_functions),
+};
+
+static const struct of_device_id lpi_pinctrl_of_match[] = {
+ {
+ .compatible = "qcom,sm8250-lpass-lpi-pinctrl",
+ .data = &sm8250_lpi_data,
+ },
+ { }
+};
+MODULE_DEVICE_TABLE(of, lpi_pinctrl_of_match);
+
+static struct platform_driver lpi_pinctrl_driver = {
+ .driver = {
+ .name = "qcom-sm8250-lpass-lpi-pinctrl",
+ .of_match_table = lpi_pinctrl_of_match,
+ },
+ .probe = lpi_pinctrl_probe,
+ .remove = lpi_pinctrl_remove,
+};
+
+module_platform_driver(lpi_pinctrl_driver);
+MODULE_DESCRIPTION("QTI SM8250 LPI GPIO pin control driver");
+MODULE_LICENSE("GPL");
--
2.51.0
next prev parent reply other threads:[~2026-02-28 18:17 UTC|newest]
Thread overview: 165+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-28 18:12 [PATCH 5.15 001/164] RDMA/siw: Fix potential NULL pointer dereference in header processing Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 002/164] RDMA/umad: Reject negative data_len in ib_umad_write Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 003/164] auxdisplay: arm-charlcd: fix release_mem_region() size Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 004/164] hfsplus: return error when node already exists in hfs_bnode_create Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 005/164] i3c: remove i2c board info from i2c_dev_desc Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 006/164] i3c: Move device name assignment after i3c_bus_init Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 007/164] fs: add <linux/init_task.h> for 'init_fs' Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 008/164] gfs2: Add metapath_dibh helper Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 009/164] gfs2: Fix use-after-free in iomap inline data write path Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 010/164] tpm: tpm_i2c_infineon: Fix locality leak on get_burstcount() failure Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 011/164] tpm: st33zp24: Fix missing cleanup on get_burstcount() error Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 012/164] btrfs: qgroup: return correct error when deleting qgroup relation item Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 013/164] md/raid10: fix any_working flag handling in raid10_sync_request Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 014/164] iomap: fix submission side handling of completion side errors Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 015/164] PM: wakeup: Handle empty list in wakeup_sources_walk_start() Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 016/164] PM: sleep: wakeirq: harden dev_pm_clear_wake_irq() against races Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 017/164] s390/cio: Fix device lifecycle handling in css_alloc_subchannel() Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 018/164] libbpf: Fix dumping big-endian bitfields Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 019/164] libbpf: Fix OOB read in btf_dump_get_bitfield_value Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 020/164] ARM: VDSO: Patch out __vdso_clock_getres() if unavailable Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 021/164] crypto: cavium - fix dma_free_coherent() size Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 022/164] crypto: octeontx " Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 023/164] hrtimer: Fix trace oddity Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 024/164] crypto: hisilicon/trng - modifying the order of header files Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 025/164] crypto: hisilicon/trng - support tfms sharing the device Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 026/164] scsi: efct: Use IRQF_ONESHOT and default primary handler Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 027/164] EDAC/altera: Remove IRQF_ONESHOT Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 028/164] mfd: wm8350-core: Use IRQF_ONESHOT Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 029/164] sched/rt: Skip currently executing CPU in rto_next_cpu() Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 030/164] pstore/ram: fix buffer overflow in persistent_ram_save_old() Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 031/164] EDAC/i5000: Fix snprintf() size calculation in calculate_dimm_size() Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 032/164] EDAC/i5400: Fix snprintf() limit " Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 033/164] clk: qcom: Return correct error code in qcom_cc_probe_by_index() Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 034/164] arm64: dts: qcom: sdm630: correct QFPROM byte offsets Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 035/164] arm64: dts: qcom: sdm630: fix gpu_speed_bin size Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 036/164] arm64: dts: qcom: sdm845-oneplus: Don't mark ts supply boot-on Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 037/164] arm64: dts: qcom: sdm845-oneplus: Don't keep panel regulator always on Sasha Levin
2026-02-28 18:26 ` David Heidelberg
2026-02-28 18:12 ` [PATCH 5.15 038/164] arm64: dts: qcom: sdm845-oneplus: Mark l14a regulator as boot-on Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 039/164] ARM: dts: allwinner: sun5i-a13-utoo-p66: delete "power-gpios" property Sasha Levin
2026-02-28 18:12 ` [PATCH 5.15 040/164] powerpc/uaccess: Move barrier_nospec() out of allow_read_{from/write}_user() Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 041/164] soc: qcom: cmd-db: Use devm_memremap() to fix memory leak in cmd_db_dev_probe Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 042/164] powerpc/eeh: fix recursive pci_lock_rescan_remove locking in EEH event handling Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 043/164] ARM: dts: lpc32xx: Set motor PWM #pwm-cells property value to 3 cells Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 044/164] arm: dts: lpc32xx: add clocks property to Motor Control PWM device tree node Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 045/164] arm64: dts: amlogic: axg: assign the MMC signal clocks Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 046/164] arm64: dts: amlogic: gx: " Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 047/164] arm64: dts: amlogic: g12: assign the MMC B and C " Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 048/164] arm64: dts: amlogic: g12: assign the MMC A signal clock Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 049/164] arm64: dts: qcom: sdm845-db845c: specify power for WiFi CH1 Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 050/164] smack: /smack/doi must be > 0 Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 051/164] smack: /smack/doi: accept previously used values Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 052/164] drm/amdgpu: Use explicit VCN instance 0 in SR-IOV init Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 053/164] regulator: core: move supply check earlier in set_machine_constraints() Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 054/164] HID: playstation: Add missing check for input_ff_create_memless Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 055/164] media: ccs: Accommodate C-PHY into the calculation Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 056/164] media: uvcvideo: Fix allocation for small frame sizes Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 057/164] platform/chrome: cros_ec_lightbar: Fix response size initialization Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 058/164] spi: tools: Add include folder to .gitignore Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 059/164] PCI: mediatek: Fix IRQ domain leak when MSI allocation fails Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 060/164] PCI: Do not attempt to set ExtTag for VFs Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 061/164] PCI/portdrv: Fix potential resource leak Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 062/164] wifi: cfg80211: stop NAN and P2P in cfg80211_leave Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 063/164] netfilter: nf_conncount: make nf_conncount_gc_list() to disable BH Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 064/164] netfilter: nf_conncount: increase the connection clean up limit to 64 Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 065/164] netfilter: nf_conncount: fix tracking of connections from localhost Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 066/164] PCI: Mark 3ware-9650SA Root Port Extended Tags as broken Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 067/164] iommu/vt-d: Flush cache for PASID table before using it Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 068/164] nfsd: never defer requests during idmap lookup Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 069/164] fat: avoid parent link count underflow in rmdir Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 070/164] tcp: tcp_tx_timestamp() must look at the rtx queue Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 071/164] wifi: ath10k: sdio: add missing lock protection in ath10k_sdio_fw_crashed_dump() Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 072/164] PCI: Initialize RCB from pci_configure_device() Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 073/164] ucount: check for CAP_SYS_RESOURCE using ns_capable_noaudit() Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 074/164] octeontx2-af: Fix PF driver crash with kexec kernel booting Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 075/164] bonding: only set speed/duplex to unknown, if getting speed failed Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 076/164] timers: Replace in_irq() with in_hardirq() Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 077/164] nfc: hci: shdlc: Stop timers and work before freeing context Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 078/164] netfilter: nft_set_hash: fix get operation on big endian Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 079/164] netfilter: nft_set_rbtree: check for partial overlaps in anonymous sets Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 080/164] ethtool: add support to set/get tx copybreak buf size via ethtool Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 081/164] net: hns3: add support to set/get tx copybreak buf size via ethtool for hns3 driver Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 082/164] net: hns3: remove the way to set tx spare buf via module parameter Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 083/164] net: hns3: fix ethtool tx copybreak buf size indicating not aligned issue Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 084/164] net: hns3: add max order judgement for tx spare buffer Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 085/164] net: hns3: fix double free issue " Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 086/164] procfs: fix missing RCU protection when reading real_parent in do_task_stat() Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 087/164] net: atm: fix crash due to unvalidated vcc pointer in sigd_send() Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 088/164] serial: caif: fix use-after-free in caif_serial ldisc_close() Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 089/164] ionic: Rate limit unknown xcvr type messages Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 090/164] octeontx2-pf: Unregister devlink on probe failure Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 091/164] RDMA/rtrs: server: remove dead code Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 092/164] IB/cache: update gid cache on client reregister event Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 093/164] RDMA/hns: Notify ULP of remaining soft-WCs during reset Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 094/164] power: supply: ab8500_bmdata: Use standard phandle Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 095/164] power: supply: ab8500: Use core battery parser Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 096/164] power: supply: ab8500: Fix use-after-free in power_supply_changed() Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 097/164] power: supply: act8945a: " Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 098/164] power: supply: bq256xx: " Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 099/164] power: supply: bq25980: " Sasha Levin
2026-02-28 18:13 ` [PATCH 5.15 100/164] power: supply: cpcap-battery: " Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 101/164] power: supply: goldfish: " Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 102/164] power: supply: rt9455: " Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 103/164] power: supply: sbs-battery: " Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 104/164] power: reset: nvmem-reboot-mode: respect cell size for nvmem_cell_write Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 105/164] power: supply: bq27xxx: fix wrong errno when bus ops are unsupported Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 106/164] power: supply: wm97xx: Fix NULL pointer dereference in power_supply_changed() Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 107/164] RDMA/rtrs-srv: Refactor the handling of failure case in map_cont_bufs Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 108/164] RDMA/rtrs-srv: Correct the checking of ib_map_mr_sg Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 109/164] RDMA/rtrs-srv: fix SG mapping Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 110/164] RDMA/rxe: Fix double free in rxe_srq_from_init Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 111/164] mtd: rawnand: cadence: Fix return type of CDMA send-and-wait helper Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 112/164] crypto: ccp - Add an S4 restore flow Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 113/164] RDMA/uverbs: Validate wqe_size before using it in ib_uverbs_post_send Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 114/164] RDMA/core: Fix a couple of obvious typos in comments Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 115/164] svcrdma: Remove queue-shortening warnings Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 116/164] svcrdma: Clean up comment in svc_rdma_accept() Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 117/164] svcrdma: Increase the per-transport rw_ctx count Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 118/164] svcrdma: Reduce the number of rdma_rw contexts per-QP Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 119/164] RDMA/core: add rdma_rw_max_sge() helper for SQ sizing Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 120/164] mtd: parsers: ofpart: fix OF node refcount leak in parse_fixed_partitions() Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 121/164] RDMA/uverbs: Add __GFP_NOWARN to ib_uverbs_unmarshall_recv() kmalloc Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 122/164] pNFS: fix a missing wake up while waiting on NFS_LAYOUT_DRAIN Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 123/164] scsi: csiostor: Fix dereference of null pointer rn Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 124/164] nvdimm: virtio_pmem: serialize flush requests Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 125/164] tracing: Remove duplicate ENABLE_EVENT_STR and DISABLE_EVENT_STR macros Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 126/164] fbdev: au1200fb: Fix a memory leak in au1200fb_drv_probe() Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 127/164] clk: qcom: rcg2: compute 2d using duty fraction directly Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 128/164] clk: meson: gxbb: Limit the HDMI PLL OD to /4 on GXL/GXM SoCs Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 129/164] clk: qcom: gcc-msm8953: Remove ALWAYS_ON flag from cpp_gdsc Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 130/164] clk: Move clk_{save,restore}_context() to COMMON_CLK section Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 131/164] clk: qcom: dispcc-sdm845: Enable parents for pixel clocks Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 132/164] dmaengine: mediatek: uart-apdma: Fix above 4G addressing TX/RX Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 133/164] dma: dma-axi-dmac: fix SW cyclic transfers Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 134/164] staging: greybus: lights: avoid NULL deref Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 135/164] serial: imx: change SERIAL_IMX_CONSOLE to bool Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 136/164] serial: SH_SCI: improve "DMA support" prompt Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 137/164] mmc: rtsx_pci_sdmmc: increase power-on settling delay to 5ms Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 138/164] coresight: etm3x: Fix cpulocked warning on cpuhp Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 139/164] Revert "mmc: rtsx_pci_sdmmc: increase power-on settling delay to 5ms" Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 140/164] mfd: arizona: Fix regulator resource leak on wm5102_clear_write_sequencer() failure Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 141/164] drivers: iio: mpu3050: use dev_err_probe for regulator request Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 142/164] usb: bdc: fix sleep during atomic Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 143/164] pinctrl: equilibrium: Fix device node reference leak in pinbank_init() Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 144/164] ovl: Fix uninit-value in ovl_fill_real Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 145/164] iio: sca3000: Fix a resource leak in sca3000_probe() Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 146/164] pinctrl: qcom: Update macro name to LPI specific Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 147/164] pinctrl: qcom: Update lpi pin group custiom functions with framework generic functions Sasha Levin
2026-02-28 18:14 ` Sasha Levin [this message]
2026-02-28 18:14 ` [PATCH 5.15 149/164] pinctrl: qcom: sm8250-lpass-lpi: Fix i2s2_data_groups definition Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 150/164] pinctrl: single: fix refcount leak in pcs_add_gpio_func() Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 151/164] backlight: qcom-wled: Support ovp values for PMI8994 Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 152/164] fs/ntfs3: prevent infinite loops caused by the next valid being the same Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 153/164] fs/ntfs3: Fix slab-out-of-bounds read in DeleteIndexEntryRoot Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 154/164] ACPI: CPPC: Fix remaining for_each_possible_cpu() to use online CPUs Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 155/164] cpuidle: Skip governor when only one idle state is available Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 156/164] selftests: mlxsw: tc_restrictions: Fix test failure with new iproute2 Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 157/164] xen-netback: reject zero-queue configuration from guest Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 158/164] net/rds: rds_sendmsg should not discard payload_len Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 159/164] selftests: forwarding: vxlan_bridge_1d: fix test failure with br_netfilter enabled Sasha Levin
2026-02-28 18:14 ` [PATCH 5.15 160/164] netfilter: nf_conntrack_h323: don't pass uninitialised l3num value Sasha Levin
2026-02-28 18:15 ` [PATCH 5.15 161/164] net: remove WARN_ON_ONCE when accessing forward path array Sasha Levin
2026-02-28 18:15 ` [PATCH 5.15 162/164] ipv6: fix a race in ip6_sock_set_v6only() Sasha Levin
2026-02-28 18:15 ` [PATCH 5.15 163/164] bpftool: Fix truncated netlink dumps Sasha Levin
2026-02-28 18:15 ` [PATCH 5.15 164/164] Linux 5.15.202-rc1 Sasha Levin
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260228181505.1600663-148-sashal@kernel.org \
--to=sashal@kernel.org \
--cc=linus.walleij@linaro.org \
--cc=mka@chromium.org \
--cc=patches@lists.linux.dev \
--cc=quic_potturu@quicinc.com \
--cc=quic_srivasam@quicinc.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.