Merge tag 'pinctrl-v4.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw...
authorLinus Torvalds <torvalds@linux-foundation.org>
Wed, 3 May 2017 00:59:33 +0000 (17:59 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Wed, 3 May 2017 00:59:33 +0000 (17:59 -0700)
Pull pin control updates from Linus Walleij:
 "This is the bulk of pin control changes for the v4.12 cycle.

  The extra week before the merge window actually resulted in some of
  the type of fixes that usually arrive after the merge window already
  starting to trickle in from eager developers using -next, I'm
  impressed.

  I have recruited a Samsung subsubsystem maintainer (Krzysztof) to deal
  with the onset of Samsung patches. It works great.

  Apart from that it is a boring round, just incremental updates and
  fixes all over the place, no serious core changes or anything exciting
  like that. The most pleasing to see is Julia Cartwrights work to audit
  the irqchip-providing drivers for realtime locking compliance. It's
  one of those "I should really get around to looking into that" things
  that have been on my TODO list since forever.

  Summary:

  Core changes:

   - add bi-directional and output-enable pin configurations to the
     generic bindings and generic pin controlling core.

  New drivers or subdrivers:

   - Armada 37xx SoC pin controller and GPIO support.

   - Axis ARTPEC-6 SoC pin controller support.

   - AllWinner A64 R_PIO controller support, and opening up the
     AllWinner sunxi driver for ARM64 use.

   - Rockchip RK3328 support.

   - Renesas R-Car H3 ES2.0 support.

   - STM32F469 support in the STM32 driver.

   - Aspeed G4 and G5 pin controller support.

  Improvements:

   - a whole slew of realtime improvements to drivers implementing
     irqchips: BCM, AMD, SiRF, sunxi, rockchip.

   - switch meson driver to get the GPIO ranges from the device tree.

   - input schmitt trigger support on the Rockchip driver.

   - enable the sunxi (AllWinner) driver to also be used on ARM64
     silicon.

   - name the Qualcomm QDF2xxx GPIO lines.

   - support GMMR GPIO regions on the Intel Cherryview. This fixes a
     serialization problem on these platforms.

   - pad retention support for the Samsung Exynos 5433.

   - handle suspend-to-ram in the AT91-pio4 driver.

   - pin configuration support in the Aspeed driver.

  Cleanups:

   - the final name of Rockchip RK1108 was RV1108 so rename the driver
     and variables to stay consistent"

* tag 'pinctrl-v4.12-1' of git://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl: (80 commits)
  pinctrl: mediatek: Add missing pinctrl bindings for mt7623
  pinctrl: artpec6: Fix return value check in artpec6_pmx_probe()
  pinctrl: artpec6: Remove .owner field for driver
  pinctrl: tegra: xusb: Silence sparse warnings
  ARM: at91/at91-pinctrl documentation: fix spelling mistake: "contoller" -> "controller"
  pinctrl: make artpec6 explicitly non-modular
  pinctrl: aspeed: g5: Add pinconf support
  pinctrl: aspeed: g4: Add pinconf support
  pinctrl: aspeed: Add core pinconf support
  pinctrl: aspeed: Document pinconf in devicetree bindings
  pinctrl: Add st,stm32f469-pinctrl compatible to stm32-pinctrl
  pinctrl: stm32: Add STM32F469 MCU support
  Documentation: dt: Remove ngpios from stm32-pinctrl binding
  pinctrl: stm32: replace device_initcall() with arch_initcall()
  pinctrl: stm32: add possibility to use gpio-ranges to declare bank range
  pinctrl: armada-37xx: Add gpio support
  pinctrl: armada-37xx: Add pin controller support for Armada 37xx
  pinctrl: dt-bindings: Add documentation for Armada 37xx pin controllers
  pinctrl: core: Make pinctrl_init_controller() static
  pinctrl: generic: Add bi-directional and output-enable
  ...

1  2 
MAINTAINERS
drivers/pinctrl/core.c
drivers/pinctrl/intel/pinctrl-cherryview.c
drivers/pinctrl/meson/pinctrl-meson-gxbb.c
drivers/pinctrl/samsung/pinctrl-exynos.c
drivers/pinctrl/samsung/pinctrl-samsung.c
drivers/pinctrl/uniphier/pinctrl-uniphier-ld11.c

diff --cc MAINTAINERS
Simple merge
Simple merge
@@@ -1543,9 -1548,57 +1548,57 @@@ static const struct samsung_pin_bank_da
  
  /* pin banks of exynos5433 pin-controller - TOUCH */
  static const struct samsung_pin_bank_data exynos5433_pin_banks9[] __initconst = {
 -      EXYNOS_PIN_BANK_EINTG(3, 0x000, "gpj1", 0x00),
 +      EXYNOS5433_PIN_BANK_EINTG(3, 0x000, "gpj1", 0x00),
  };
  
+ /* PMU pin retention groups registers for Exynos5433 (without audio & fsys) */
+ static const u32 exynos5433_retention_regs[] = {
+       EXYNOS5433_PAD_RETENTION_TOP_OPTION,
+       EXYNOS5433_PAD_RETENTION_UART_OPTION,
+       EXYNOS5433_PAD_RETENTION_EBIA_OPTION,
+       EXYNOS5433_PAD_RETENTION_EBIB_OPTION,
+       EXYNOS5433_PAD_RETENTION_SPI_OPTION,
+       EXYNOS5433_PAD_RETENTION_MIF_OPTION,
+       EXYNOS5433_PAD_RETENTION_USBXTI_OPTION,
+       EXYNOS5433_PAD_RETENTION_BOOTLDO_OPTION,
+       EXYNOS5433_PAD_RETENTION_UFS_OPTION,
+       EXYNOS5433_PAD_RETENTION_FSYSGENIO_OPTION,
+ };
+ static const struct samsung_retention_data exynos5433_retention_data __initconst = {
+       .regs    = exynos5433_retention_regs,
+       .nr_regs = ARRAY_SIZE(exynos5433_retention_regs),
+       .value   = EXYNOS_WAKEUP_FROM_LOWPWR,
+       .refcnt  = &exynos_shared_retention_refcnt,
+       .init    = exynos_retention_init,
+ };
+ /* PMU retention control for audio pins can be tied to audio pin bank */
+ static const u32 exynos5433_audio_retention_regs[] = {
+       EXYNOS5433_PAD_RETENTION_AUD_OPTION,
+ };
+ static const struct samsung_retention_data exynos5433_audio_retention_data __initconst = {
+       .regs    = exynos5433_audio_retention_regs,
+       .nr_regs = ARRAY_SIZE(exynos5433_audio_retention_regs),
+       .value   = EXYNOS_WAKEUP_FROM_LOWPWR,
+       .init    = exynos_retention_init,
+ };
+ /* PMU retention control for mmc pins can be tied to fsys pin bank */
+ static const u32 exynos5433_fsys_retention_regs[] = {
+       EXYNOS5433_PAD_RETENTION_MMC0_OPTION,
+       EXYNOS5433_PAD_RETENTION_MMC1_OPTION,
+       EXYNOS5433_PAD_RETENTION_MMC2_OPTION,
+ };
+ static const struct samsung_retention_data exynos5433_fsys_retention_data __initconst = {
+       .regs    = exynos5433_fsys_retention_regs,
+       .nr_regs = ARRAY_SIZE(exynos5433_fsys_retention_regs),
+       .value   = EXYNOS_WAKEUP_FROM_LOWPWR,
+       .init    = exynos_retention_init,
+ };
  /*
   * Samsung pinctrl driver data for Exynos5433 SoC. Exynos5433 SoC includes
   * ten gpio/pin-mux/pinconfig controllers.