Skip to content

Commit 8dfce89

Browse files
committed
Merge tag 'pinctrl-v6.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl
Pull pin control fixes from Linus Walleij: - Mark the Meson GPIO controller as sleeping to avoid a context splat - Fix up the I2S2 and SWR TX group settings in the Qualcomm SM8350 LPASS pin controller, and implement the proper .get_direction() callback - Fix a pin typo in the TG1520 pin controller - Fix a group name in the Marvell armada 3710 XB pin controller that got mangled in a DT schema rewrite * tag 'pinctrl-v6.19-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: dt-bindings: pinctrl: marvell,armada3710-xb-pinctrl: fix 'usb32_drvvbus0' group name pinctrl: lpass-lpi: implement .get_direction() for the GPIO driver pinctrl: th1520: Fix typo pinctrl: qcom: sm8350-lpass-lpi: Merge with SC7280 to fix I2S2 and SWR TX pins pinctrl: meson: mark the GPIO controller as sleeping
2 parents 1f97d9d + f584427 commit 8dfce89

9 files changed

Lines changed: 26 additions & 168 deletions

File tree

Documentation/devicetree/bindings/pinctrl/marvell,armada3710-xb-pinctrl.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ patternProperties:
8888
pcie1_clkreq, pcie1_wakeup, pmic0, pmic1, ptp, ptp_clk,
8989
ptp_trig, pwm0, pwm1, pwm2, pwm3, rgmii, sdio0, sdio_sb, smi,
9090
spi_cs1, spi_cs2, spi_cs3, spi_quad, uart1, uart2,
91-
usb2_drvvbus1, usb32_drvvbus ]
91+
usb2_drvvbus1, usb32_drvvbus0 ]
9292

9393
function:
9494
enum: [ drvbus, emmc, gpio, i2c, jtag, led, mii, mii_err, onewire,

arch/arm64/configs/defconfig

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -670,7 +670,6 @@ CONFIG_PINCTRL_LPASS_LPI=m
670670
CONFIG_PINCTRL_SC7280_LPASS_LPI=m
671671
CONFIG_PINCTRL_SM6115_LPASS_LPI=m
672672
CONFIG_PINCTRL_SM8250_LPASS_LPI=m
673-
CONFIG_PINCTRL_SM8350_LPASS_LPI=m
674673
CONFIG_PINCTRL_SM8450_LPASS_LPI=m
675674
CONFIG_PINCTRL_SC8280XP_LPASS_LPI=m
676675
CONFIG_PINCTRL_SM8550_LPASS_LPI=m

drivers/pinctrl/meson/pinctrl-meson.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -619,7 +619,7 @@ static int meson_gpiolib_register(struct meson_pinctrl *pc)
619619
pc->chip.set = meson_gpio_set;
620620
pc->chip.base = -1;
621621
pc->chip.ngpio = pc->data->num_pins;
622-
pc->chip.can_sleep = false;
622+
pc->chip.can_sleep = true;
623623

624624
ret = gpiochip_add_data(&pc->chip, pc);
625625
if (ret) {

drivers/pinctrl/pinctrl-th1520.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,7 @@ static const struct pinctrl_pin_desc th1520_group3_pins[] = {
287287
TH1520_PAD(5, QSPI0_D0_MOSI, QSPI, PWM, I2S, GPIO, ____, ____, 0),
288288
TH1520_PAD(6, QSPI0_D1_MISO, QSPI, PWM, I2S, GPIO, ____, ____, 0),
289289
TH1520_PAD(7, QSPI0_D2_WP, QSPI, PWM, I2S, GPIO, ____, ____, 0),
290-
TH1520_PAD(8, QSPI1_D3_HOLD, QSPI, ____, I2S, GPIO, ____, ____, 0),
290+
TH1520_PAD(8, QSPI0_D3_HOLD, QSPI, ____, I2S, GPIO, ____, ____, 0),
291291
TH1520_PAD(9, I2C2_SCL, I2C, UART, ____, GPIO, ____, ____, 0),
292292
TH1520_PAD(10, I2C2_SDA, I2C, UART, ____, GPIO, ____, ____, 0),
293293
TH1520_PAD(11, I2C3_SCL, I2C, ____, ____, GPIO, ____, ____, 0),

drivers/pinctrl/qcom/Kconfig

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -61,13 +61,14 @@ config PINCTRL_LPASS_LPI
6161
(Low Power Island) found on the Qualcomm Technologies Inc SoCs.
6262

6363
config PINCTRL_SC7280_LPASS_LPI
64-
tristate "Qualcomm Technologies Inc SC7280 LPASS LPI pin controller driver"
64+
tristate "Qualcomm Technologies Inc SC7280 and SM8350 LPASS LPI pin controller driver"
6565
depends on ARM64 || COMPILE_TEST
6666
depends on PINCTRL_LPASS_LPI
6767
help
6868
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
6969
Qualcomm Technologies Inc LPASS (Low Power Audio SubSystem) LPI
70-
(Low Power Island) found on the Qualcomm Technologies Inc SC7280 platform.
70+
(Low Power Island) found on the Qualcomm Technologies Inc SC7280
71+
and SM8350 platforms.
7172

7273
config PINCTRL_SDM660_LPASS_LPI
7374
tristate "Qualcomm Technologies Inc SDM660 LPASS LPI pin controller driver"
@@ -106,16 +107,6 @@ config PINCTRL_SM8250_LPASS_LPI
106107
Qualcomm Technologies Inc LPASS (Low Power Audio SubSystem) LPI
107108
(Low Power Island) found on the Qualcomm Technologies Inc SM8250 platform.
108109

109-
config PINCTRL_SM8350_LPASS_LPI
110-
tristate "Qualcomm Technologies Inc SM8350 LPASS LPI pin controller driver"
111-
depends on ARM64 || COMPILE_TEST
112-
depends on PINCTRL_LPASS_LPI
113-
help
114-
This is the pinctrl, pinmux, pinconf and gpiolib driver for the
115-
Qualcomm Technologies Inc LPASS (Low Power Audio SubSystem) LPI
116-
(Low Power Island) found on the Qualcomm Technologies Inc SM8350
117-
platform.
118-
119110
config PINCTRL_SM8450_LPASS_LPI
120111
tristate "Qualcomm Technologies Inc SM8450 LPASS LPI pin controller driver"
121112
depends on ARM64 || COMPILE_TEST

drivers/pinctrl/qcom/Makefile

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,6 @@ obj-$(CONFIG_PINCTRL_SM8150) += pinctrl-sm8150.o
6464
obj-$(CONFIG_PINCTRL_SM8250) += pinctrl-sm8250.o
6565
obj-$(CONFIG_PINCTRL_SM8250_LPASS_LPI) += pinctrl-sm8250-lpass-lpi.o
6666
obj-$(CONFIG_PINCTRL_SM8350) += pinctrl-sm8350.o
67-
obj-$(CONFIG_PINCTRL_SM8350_LPASS_LPI) += pinctrl-sm8350-lpass-lpi.o
6867
obj-$(CONFIG_PINCTRL_SM8450) += pinctrl-sm8450.o
6968
obj-$(CONFIG_PINCTRL_SM8450_LPASS_LPI) += pinctrl-sm8450-lpass-lpi.o
7069
obj-$(CONFIG_PINCTRL_SM8550) += pinctrl-sm8550.o

drivers/pinctrl/qcom/pinctrl-lpass-lpi.c

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,6 +312,22 @@ static const struct pinconf_ops lpi_gpio_pinconf_ops = {
312312
.pin_config_group_set = lpi_config_set,
313313
};
314314

315+
static int lpi_gpio_get_direction(struct gpio_chip *chip, unsigned int pin)
316+
{
317+
unsigned long config = pinconf_to_config_packed(PIN_CONFIG_LEVEL, 0);
318+
struct lpi_pinctrl *state = gpiochip_get_data(chip);
319+
unsigned long arg;
320+
int ret;
321+
322+
ret = lpi_config_get(state->ctrl, pin, &config);
323+
if (ret)
324+
return ret;
325+
326+
arg = pinconf_to_config_argument(config);
327+
328+
return arg ? GPIO_LINE_DIRECTION_OUT : GPIO_LINE_DIRECTION_IN;
329+
}
330+
315331
static int lpi_gpio_direction_input(struct gpio_chip *chip, unsigned int pin)
316332
{
317333
struct lpi_pinctrl *state = gpiochip_get_data(chip);
@@ -409,6 +425,7 @@ static void lpi_gpio_dbg_show(struct seq_file *s, struct gpio_chip *chip)
409425
#endif
410426

411427
static const struct gpio_chip lpi_gpio_template = {
428+
.get_direction = lpi_gpio_get_direction,
412429
.direction_input = lpi_gpio_direction_input,
413430
.direction_output = lpi_gpio_direction_output,
414431
.get = lpi_gpio_get,

drivers/pinctrl/qcom/pinctrl-sc7280-lpass-lpi.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,6 +131,9 @@ static const struct of_device_id lpi_pinctrl_of_match[] = {
131131
{
132132
.compatible = "qcom,sc7280-lpass-lpi-pinctrl",
133133
.data = &sc7280_lpi_data,
134+
}, {
135+
.compatible = "qcom,sm8350-lpass-lpi-pinctrl",
136+
.data = &sc7280_lpi_data,
134137
},
135138
{ }
136139
};

drivers/pinctrl/qcom/pinctrl-sm8350-lpass-lpi.c

Lines changed: 0 additions & 151 deletions
This file was deleted.

0 commit comments

Comments
 (0)