Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

Merge tag 'pinctrl-v4.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl

Pull pin control fixes from Linus Walleij:
"Here are a bunch of fixes for pin control. Just drivers and a
MAINTAINERS fixup:

- Driver fixes for i.MX, single register, Tegra and BayTrail.

- MAINTAINERS entry for the documentation"

* tag 'pinctrl-v4.7-3' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl:
pinctrl: baytrail: Fix mingled clock pins
MAINTAINERS: belong Documentation/pinctrl.txt properly
pinctrl: tegra: Fix build dependency
gpio: tegra: Make lockdep class file-scoped
pinctrl: single: Fix missing flush of posted write for a wakeirq
pinctrl: imx: Do not treat a PIN without MUX register as an error

+18 -9
+1
MAINTAINERS
··· 8963 8963 T: git git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git 8964 8964 S: Maintained 8965 8965 F: Documentation/devicetree/bindings/pinctrl/ 8966 + F: Documentation/pinctrl.txt 8966 8967 F: drivers/pinctrl/ 8967 8968 F: include/linux/pinctrl/ 8968 8969
+7 -2
drivers/gpio/gpio-tegra.c
··· 98 98 const struct tegra_gpio_soc_config *soc; 99 99 struct gpio_chip gc; 100 100 struct irq_chip ic; 101 - struct lock_class_key lock_class; 102 101 u32 bank_count; 103 102 }; 104 103 ··· 546 547 SET_SYSTEM_SLEEP_PM_OPS(tegra_gpio_suspend, tegra_gpio_resume) 547 548 }; 548 549 550 + /* 551 + * This lock class tells lockdep that GPIO irqs are in a different category 552 + * than their parents, so it won't report false recursion. 553 + */ 554 + static struct lock_class_key gpio_lock_class; 555 + 549 556 static int tegra_gpio_probe(struct platform_device *pdev) 550 557 { 551 558 const struct tegra_gpio_soc_config *config; ··· 665 660 666 661 bank = &tgi->bank_info[GPIO_BANK(gpio)]; 667 662 668 - irq_set_lockdep_class(irq, &tgi->lock_class); 663 + irq_set_lockdep_class(irq, &gpio_lock_class); 669 664 irq_set_chip_data(irq, bank); 670 665 irq_set_chip_and_handler(irq, &tgi->ic, handle_simple_irq); 671 666 }
+1 -1
drivers/pinctrl/Makefile
··· 23 23 obj-$(CONFIG_PINCTRL_ROCKCHIP) += pinctrl-rockchip.o 24 24 obj-$(CONFIG_PINCTRL_SINGLE) += pinctrl-single.o 25 25 obj-$(CONFIG_PINCTRL_SIRF) += sirf/ 26 - obj-$(CONFIG_PINCTRL_TEGRA) += tegra/ 26 + obj-$(CONFIG_ARCH_TEGRA) += tegra/ 27 27 obj-$(CONFIG_PINCTRL_TZ1090) += pinctrl-tz1090.o 28 28 obj-$(CONFIG_PINCTRL_TZ1090_PDC) += pinctrl-tz1090-pdc.o 29 29 obj-$(CONFIG_PINCTRL_U300) += pinctrl-u300.o
+2 -2
drivers/pinctrl/freescale/pinctrl-imx.c
··· 209 209 pin_reg = &info->pin_regs[pin_id]; 210 210 211 211 if (pin_reg->mux_reg == -1) { 212 - dev_err(ipctl->dev, "Pin(%s) does not support mux function\n", 212 + dev_dbg(ipctl->dev, "Pin(%s) does not support mux function\n", 213 213 info->pins[pin_id].name); 214 - return -EINVAL; 214 + continue; 215 215 } 216 216 217 217 if (info->flags & SHARE_MUX_CONF_REG) {
+3 -3
drivers/pinctrl/intel/pinctrl-baytrail.c
··· 401 401 static const unsigned int byt_score_plt_clk0_pins[] = { 96 }; 402 402 static const unsigned int byt_score_plt_clk1_pins[] = { 97 }; 403 403 static const unsigned int byt_score_plt_clk2_pins[] = { 98 }; 404 - static const unsigned int byt_score_plt_clk4_pins[] = { 99 }; 405 - static const unsigned int byt_score_plt_clk5_pins[] = { 100 }; 406 - static const unsigned int byt_score_plt_clk3_pins[] = { 101 }; 404 + static const unsigned int byt_score_plt_clk3_pins[] = { 99 }; 405 + static const unsigned int byt_score_plt_clk4_pins[] = { 100 }; 406 + static const unsigned int byt_score_plt_clk5_pins[] = { 101 }; 407 407 static const struct byt_simple_func_mux byt_score_plt_clk_mux[] = { 408 408 SIMPLE_FUNC("plt_clk", 1), 409 409 };
+3
drivers/pinctrl/pinctrl-single.c
··· 1580 1580 else 1581 1581 mask &= ~soc_mask; 1582 1582 pcs->write(mask, pcswi->reg); 1583 + 1584 + /* flush posted write */ 1585 + mask = pcs->read(pcswi->reg); 1583 1586 raw_spin_unlock(&pcs->lock); 1584 1587 } 1585 1588
+1 -1
drivers/pinctrl/tegra/Makefile
··· 1 - obj-y += pinctrl-tegra.o 1 + obj-$(CONFIG_PINCTRL_TEGRA) += pinctrl-tegra.o 2 2 obj-$(CONFIG_PINCTRL_TEGRA20) += pinctrl-tegra20.o 3 3 obj-$(CONFIG_PINCTRL_TEGRA30) += pinctrl-tegra30.o 4 4 obj-$(CONFIG_PINCTRL_TEGRA114) += pinctrl-tegra114.o