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

pinctrl: ralink: add a pinctrl driver for the rt2880 family

These Socs have 1-3 banks of 8-32 gpios. Rather then setting the muxing of each
pin individually, these socs have mux groups that when set will effect 1-N pins.
Pin groups have a 2, 4 or 8 different muxes.

Acked-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Sergio Paracuellos <sergio.paracuellos@gmail.com>
Link: https://lore.kernel.org/r/20201208075523.7060-3-sergio.paracuellos@gmail.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Sergio Paracuellos and committed by
Greg Kroah-Hartman
518b466a 289fa46a

+18 -19
+1
drivers/pinctrl/Kconfig
··· 385 385 source "drivers/pinctrl/nuvoton/Kconfig" 386 386 source "drivers/pinctrl/pxa/Kconfig" 387 387 source "drivers/pinctrl/qcom/Kconfig" 388 + source "drivers/pinctrl/ralink/Kconfig" 388 389 source "drivers/pinctrl/renesas/Kconfig" 389 390 source "drivers/pinctrl/samsung/Kconfig" 390 391 source "drivers/pinctrl/spear/Kconfig"
+1
drivers/pinctrl/Makefile
··· 59 59 obj-$(CONFIG_ARCH_NPCM7XX) += nuvoton/ 60 60 obj-$(CONFIG_PINCTRL_PXA) += pxa/ 61 61 obj-$(CONFIG_ARCH_QCOM) += qcom/ 62 + obj-$(CONFIG_PINCTRL_RALINK) += ralink/ 62 63 obj-$(CONFIG_PINCTRL_RENESAS) += renesas/ 63 64 obj-$(CONFIG_PINCTRL_SAMSUNG) += samsung/ 64 65 obj-$(CONFIG_PINCTRL_SPEAR) += spear/
+14
drivers/pinctrl/ralink/Kconfig
··· 1 + # SPDX-License-Identifier: GPL-2.0-only 2 + menu "Ralink pinctrl drivers" 3 + depends on RALINK 4 + 5 + config PINCTRL_RALINK 6 + bool "Ralink pin control support" 7 + default y if RALINK 8 + 9 + config PINCTRL_RT2880 10 + bool "RT2880 pinctrl driver for RALINK/Mediatek SOCs" 11 + select PINMUX 12 + select GENERIC_PINCONF 13 + 14 + endmenu
-2
drivers/staging/Kconfig
··· 94 94 95 95 source "drivers/staging/mt7621-pci-phy/Kconfig" 96 96 97 - source "drivers/staging/mt7621-pinctrl/Kconfig" 98 - 99 97 source "drivers/staging/mt7621-dma/Kconfig" 100 98 101 99 source "drivers/staging/ralink-gdma/Kconfig"
-1
drivers/staging/Makefile
··· 37 37 obj-$(CONFIG_PI433) += pi433/ 38 38 obj-$(CONFIG_PCI_MT7621) += mt7621-pci/ 39 39 obj-$(CONFIG_PCI_MT7621_PHY) += mt7621-pci-phy/ 40 - obj-$(CONFIG_PINCTRL_RT2880) += mt7621-pinctrl/ 41 40 obj-$(CONFIG_SOC_MT7621) += mt7621-dma/ 42 41 obj-$(CONFIG_DMA_RALINK) += ralink-gdma/ 43 42 obj-$(CONFIG_SOC_MT7621) += mt7621-dts/
-6
drivers/staging/mt7621-pinctrl/Kconfig
··· 1 - # SPDX-License-Identifier: GPL-2.0 2 - config PINCTRL_RT2880 3 - bool "RT2800 pinctrl driver for RALINK/Mediatek SOCs" 4 - depends on RALINK 5 - select PINMUX 6 - select GENERIC_PINCONF
-2
drivers/staging/mt7621-pinctrl/Makefile drivers/pinctrl/ralink/Makefile
··· 1 1 # SPDX-License-Identifier: GPL-2.0 2 2 obj-$(CONFIG_PINCTRL_RT2880) += pinctrl-rt2880.o 3 - 4 - ccflags-y += -I$(srctree)/drivers/pinctrl
-6
drivers/staging/mt7621-pinctrl/TODO
··· 1 - 2 - - general code review and cleanup 3 - - should probably be always selected by 'config RALINK' 4 - - ensure device-tree requirements are documented 5 - 6 - Cc: NeilBrown <neil@brown.name>
+2 -2
drivers/staging/mt7621-pinctrl/pinctrl-rt2880.c drivers/pinctrl/ralink/pinctrl-rt2880.c
··· 20 20 #include <asm/mach-ralink/pinmux.h> 21 21 #include <asm/mach-ralink/mt7620.h> 22 22 23 - #include "core.h" 24 - #include "pinctrl-utils.h" 23 + #include "../core.h" 24 + #include "../pinctrl-utils.h" 25 25 26 26 #define SYSC_REG_GPIO_MODE 0x60 27 27 #define SYSC_REG_GPIO_MODE2 0x64