Commit dc6ae205 authored by Arınç ÜNAL's avatar Arınç ÜNAL Committed by Linus Walleij

pinctrl: ralink: move to mediatek as mtmips

This platform from Ralink was acquired by MediaTek in 2011. Then, MediaTek
introduced new SoCs which utilise this platform. Move the driver to
mediatek pinctrl directory. Rename the ralink core driver to mtmips.
Signed-off-by: default avatarArınç ÜNAL <arinc.unal@arinc9.com>
Link: https://lore.kernel.org/r/20230317213011.13656-5-arinc.unal@arinc9.comSigned-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent f7dedad4
...@@ -538,7 +538,6 @@ source "drivers/pinctrl/nuvoton/Kconfig" ...@@ -538,7 +538,6 @@ source "drivers/pinctrl/nuvoton/Kconfig"
source "drivers/pinctrl/nxp/Kconfig" source "drivers/pinctrl/nxp/Kconfig"
source "drivers/pinctrl/pxa/Kconfig" source "drivers/pinctrl/pxa/Kconfig"
source "drivers/pinctrl/qcom/Kconfig" source "drivers/pinctrl/qcom/Kconfig"
source "drivers/pinctrl/ralink/Kconfig"
source "drivers/pinctrl/renesas/Kconfig" source "drivers/pinctrl/renesas/Kconfig"
source "drivers/pinctrl/samsung/Kconfig" source "drivers/pinctrl/samsung/Kconfig"
source "drivers/pinctrl/spear/Kconfig" source "drivers/pinctrl/spear/Kconfig"
......
...@@ -67,7 +67,6 @@ obj-y += nuvoton/ ...@@ -67,7 +67,6 @@ obj-y += nuvoton/
obj-y += nxp/ obj-y += nxp/
obj-$(CONFIG_PINCTRL_PXA) += pxa/ obj-$(CONFIG_PINCTRL_PXA) += pxa/
obj-$(CONFIG_ARCH_QCOM) += qcom/ obj-$(CONFIG_ARCH_QCOM) += qcom/
obj-$(CONFIG_PINCTRL_RALINK) += ralink/
obj-$(CONFIG_PINCTRL_RENESAS) += renesas/ obj-$(CONFIG_PINCTRL_RENESAS) += renesas/
obj-$(CONFIG_PINCTRL_SAMSUNG) += samsung/ obj-$(CONFIG_PINCTRL_SAMSUNG) += samsung/
obj-$(CONFIG_PINCTRL_SPEAR) += spear/ obj-$(CONFIG_PINCTRL_SPEAR) += spear/
......
# SPDX-License-Identifier: GPL-2.0-only # SPDX-License-Identifier: GPL-2.0-only
menu "MediaTek pinctrl drivers" menu "MediaTek pinctrl drivers"
depends on ARCH_MEDIATEK || COMPILE_TEST depends on ARCH_MEDIATEK || RALINK || COMPILE_TEST
config EINT_MTK config EINT_MTK
tristate "MediaTek External Interrupt Support" tristate "MediaTek External Interrupt Support"
...@@ -22,6 +22,12 @@ config PINCTRL_MTK ...@@ -22,6 +22,12 @@ config PINCTRL_MTK
config PINCTRL_MTK_V2 config PINCTRL_MTK_V2
tristate tristate
config PINCTRL_MTK_MTMIPS
bool
depends on RALINK
select PINMUX
select GENERIC_PINCONF
config PINCTRL_MTK_MOORE config PINCTRL_MTK_MOORE
bool bool
depends on OF depends on OF
...@@ -43,6 +49,49 @@ config PINCTRL_MTK_PARIS ...@@ -43,6 +49,49 @@ config PINCTRL_MTK_PARIS
select OF_GPIO select OF_GPIO
select PINCTRL_MTK_V2 select PINCTRL_MTK_V2
# For MIPS SoCs
config PINCTRL_MT7620
bool "MediaTek MT7620 pin control"
depends on SOC_MT7620 || COMPILE_TEST
depends on RALINK
default SOC_MT7620
select PINCTRL_MTK_MTMIPS
config PINCTRL_MT7621
bool "MediaTek MT7621 pin control"
depends on SOC_MT7621 || COMPILE_TEST
depends on RALINK
default SOC_MT7621
select PINCTRL_MTK_MTMIPS
config PINCTRL_MT76X8
bool "MediaTek MT76X8 pin control"
depends on SOC_MT7620 || COMPILE_TEST
depends on RALINK
default SOC_MT7620
select PINCTRL_MTK_MTMIPS
config PINCTRL_RT2880
bool "Ralink RT2880 pin control"
depends on SOC_RT288X || COMPILE_TEST
depends on RALINK
default SOC_RT288X
select PINCTRL_MTK_MTMIPS
config PINCTRL_RT305X
bool "Ralink RT305X pin control"
depends on SOC_RT305X || COMPILE_TEST
depends on RALINK
default SOC_RT305X
select PINCTRL_MTK_MTMIPS
config PINCTRL_RT3883
bool "Ralink RT3883 pin control"
depends on SOC_RT3883 || COMPILE_TEST
depends on RALINK
default SOC_RT3883
select PINCTRL_MTK_MTMIPS
# For ARMv7 SoCs # For ARMv7 SoCs
config PINCTRL_MT2701 config PINCTRL_MT2701
bool "Mediatek MT2701 pin control" bool "Mediatek MT2701 pin control"
......
# SPDX-License-Identifier: GPL-2.0 # SPDX-License-Identifier: GPL-2.0
# Core # Core
obj-$(CONFIG_EINT_MTK) += mtk-eint.o obj-$(CONFIG_EINT_MTK) += mtk-eint.o
obj-$(CONFIG_PINCTRL_MTK) += pinctrl-mtk-common.o obj-$(CONFIG_PINCTRL_MTK) += pinctrl-mtk-common.o
obj-$(CONFIG_PINCTRL_MTK_V2) += pinctrl-mtk-common-v2.o obj-$(CONFIG_PINCTRL_MTK_V2) += pinctrl-mtk-common-v2.o
obj-$(CONFIG_PINCTRL_MTK_MOORE) += pinctrl-moore.o obj-$(CONFIG_PINCTRL_MTK_MTMIPS) += pinctrl-mtmips.o
obj-$(CONFIG_PINCTRL_MTK_PARIS) += pinctrl-paris.o obj-$(CONFIG_PINCTRL_MTK_MOORE) += pinctrl-moore.o
obj-$(CONFIG_PINCTRL_MTK_PARIS) += pinctrl-paris.o
# SoC Drivers # SoC Drivers
obj-$(CONFIG_PINCTRL_MT2701) += pinctrl-mt2701.o obj-$(CONFIG_PINCTRL_MT7620) += pinctrl-mt7620.o
obj-$(CONFIG_PINCTRL_MT2712) += pinctrl-mt2712.o obj-$(CONFIG_PINCTRL_MT7621) += pinctrl-mt7621.o
obj-$(CONFIG_PINCTRL_MT8135) += pinctrl-mt8135.o obj-$(CONFIG_PINCTRL_MT76X8) += pinctrl-mt76x8.o
obj-$(CONFIG_PINCTRL_MT8127) += pinctrl-mt8127.o obj-$(CONFIG_PINCTRL_RT2880) += pinctrl-rt2880.o
obj-$(CONFIG_PINCTRL_MT6765) += pinctrl-mt6765.o obj-$(CONFIG_PINCTRL_RT305X) += pinctrl-rt305x.o
obj-$(CONFIG_PINCTRL_MT6779) += pinctrl-mt6779.o obj-$(CONFIG_PINCTRL_RT3883) += pinctrl-rt3883.o
obj-$(CONFIG_PINCTRL_MT6795) += pinctrl-mt6795.o obj-$(CONFIG_PINCTRL_MT2701) += pinctrl-mt2701.o
obj-$(CONFIG_PINCTRL_MT6797) += pinctrl-mt6797.o obj-$(CONFIG_PINCTRL_MT2712) += pinctrl-mt2712.o
obj-$(CONFIG_PINCTRL_MT7622) += pinctrl-mt7622.o obj-$(CONFIG_PINCTRL_MT8135) += pinctrl-mt8135.o
obj-$(CONFIG_PINCTRL_MT7623) += pinctrl-mt7623.o obj-$(CONFIG_PINCTRL_MT8127) += pinctrl-mt8127.o
obj-$(CONFIG_PINCTRL_MT7629) += pinctrl-mt7629.o obj-$(CONFIG_PINCTRL_MT6765) += pinctrl-mt6765.o
obj-$(CONFIG_PINCTRL_MT7981) += pinctrl-mt7981.o obj-$(CONFIG_PINCTRL_MT6779) += pinctrl-mt6779.o
obj-$(CONFIG_PINCTRL_MT7986) += pinctrl-mt7986.o obj-$(CONFIG_PINCTRL_MT6795) += pinctrl-mt6795.o
obj-$(CONFIG_PINCTRL_MT8167) += pinctrl-mt8167.o obj-$(CONFIG_PINCTRL_MT6797) += pinctrl-mt6797.o
obj-$(CONFIG_PINCTRL_MT8173) += pinctrl-mt8173.o obj-$(CONFIG_PINCTRL_MT7622) += pinctrl-mt7622.o
obj-$(CONFIG_PINCTRL_MT8183) += pinctrl-mt8183.o obj-$(CONFIG_PINCTRL_MT7623) += pinctrl-mt7623.o
obj-$(CONFIG_PINCTRL_MT8186) += pinctrl-mt8186.o obj-$(CONFIG_PINCTRL_MT7629) += pinctrl-mt7629.o
obj-$(CONFIG_PINCTRL_MT8188) += pinctrl-mt8188.o obj-$(CONFIG_PINCTRL_MT7981) += pinctrl-mt7981.o
obj-$(CONFIG_PINCTRL_MT8192) += pinctrl-mt8192.o obj-$(CONFIG_PINCTRL_MT7986) += pinctrl-mt7986.o
obj-$(CONFIG_PINCTRL_MT8195) += pinctrl-mt8195.o obj-$(CONFIG_PINCTRL_MT8167) += pinctrl-mt8167.o
obj-$(CONFIG_PINCTRL_MT8365) += pinctrl-mt8365.o obj-$(CONFIG_PINCTRL_MT8173) += pinctrl-mt8173.o
obj-$(CONFIG_PINCTRL_MT8516) += pinctrl-mt8516.o obj-$(CONFIG_PINCTRL_MT8183) += pinctrl-mt8183.o
obj-$(CONFIG_PINCTRL_MT6397) += pinctrl-mt6397.o obj-$(CONFIG_PINCTRL_MT8186) += pinctrl-mt8186.o
obj-$(CONFIG_PINCTRL_MT8188) += pinctrl-mt8188.o
obj-$(CONFIG_PINCTRL_MT8192) += pinctrl-mt8192.o
obj-$(CONFIG_PINCTRL_MT8195) += pinctrl-mt8195.o
obj-$(CONFIG_PINCTRL_MT8365) += pinctrl-mt8365.o
obj-$(CONFIG_PINCTRL_MT8516) += pinctrl-mt8516.o
obj-$(CONFIG_PINCTRL_MT6397) += pinctrl-mt6397.o
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/of.h> #include <linux/of.h>
#include "pinctrl-ralink.h" #include "pinctrl-mtmips.h"
#define MT7620_GPIO_MODE_UART0_SHIFT 2 #define MT7620_GPIO_MODE_UART0_SHIFT 2
#define MT7620_GPIO_MODE_UART0_MASK 0x7 #define MT7620_GPIO_MODE_UART0_MASK 0x7
...@@ -52,20 +52,20 @@ ...@@ -52,20 +52,20 @@
#define MT7620_GPIO_MODE_EPHY 15 #define MT7620_GPIO_MODE_EPHY 15
#define MT7620_GPIO_MODE_PA 20 #define MT7620_GPIO_MODE_PA 20
static struct ralink_pmx_func i2c_grp[] = { FUNC("i2c", 0, 1, 2) }; static struct mtmips_pmx_func i2c_grp[] = { FUNC("i2c", 0, 1, 2) };
static struct ralink_pmx_func spi_grp[] = { FUNC("spi", 0, 3, 4) }; static struct mtmips_pmx_func spi_grp[] = { FUNC("spi", 0, 3, 4) };
static struct ralink_pmx_func uartlite_grp[] = { FUNC("uartlite", 0, 15, 2) }; static struct mtmips_pmx_func uartlite_grp[] = { FUNC("uartlite", 0, 15, 2) };
static struct ralink_pmx_func mdio_grp[] = { static struct mtmips_pmx_func mdio_grp[] = {
FUNC("mdio", MT7620_GPIO_MODE_MDIO, 22, 2), FUNC("mdio", MT7620_GPIO_MODE_MDIO, 22, 2),
FUNC("refclk", MT7620_GPIO_MODE_MDIO_REFCLK, 22, 2), FUNC("refclk", MT7620_GPIO_MODE_MDIO_REFCLK, 22, 2),
}; };
static struct ralink_pmx_func rgmii1_grp[] = { FUNC("rgmii1", 0, 24, 12) }; static struct mtmips_pmx_func rgmii1_grp[] = { FUNC("rgmii1", 0, 24, 12) };
static struct ralink_pmx_func refclk_grp[] = { FUNC("spi refclk", 0, 37, 3) }; static struct mtmips_pmx_func refclk_grp[] = { FUNC("spi refclk", 0, 37, 3) };
static struct ralink_pmx_func ephy_grp[] = { FUNC("ephy", 0, 40, 5) }; static struct mtmips_pmx_func ephy_grp[] = { FUNC("ephy", 0, 40, 5) };
static struct ralink_pmx_func rgmii2_grp[] = { FUNC("rgmii2", 0, 60, 12) }; static struct mtmips_pmx_func rgmii2_grp[] = { FUNC("rgmii2", 0, 60, 12) };
static struct ralink_pmx_func wled_grp[] = { FUNC("wled", 0, 72, 1) }; static struct mtmips_pmx_func wled_grp[] = { FUNC("wled", 0, 72, 1) };
static struct ralink_pmx_func pa_grp[] = { FUNC("pa", 0, 18, 4) }; static struct mtmips_pmx_func pa_grp[] = { FUNC("pa", 0, 18, 4) };
static struct ralink_pmx_func uartf_grp[] = { static struct mtmips_pmx_func uartf_grp[] = {
FUNC("uartf", MT7620_GPIO_MODE_UARTF, 7, 8), FUNC("uartf", MT7620_GPIO_MODE_UARTF, 7, 8),
FUNC("pcm uartf", MT7620_GPIO_MODE_PCM_UARTF, 7, 8), FUNC("pcm uartf", MT7620_GPIO_MODE_PCM_UARTF, 7, 8),
FUNC("pcm i2s", MT7620_GPIO_MODE_PCM_I2S, 7, 8), FUNC("pcm i2s", MT7620_GPIO_MODE_PCM_I2S, 7, 8),
...@@ -74,20 +74,20 @@ static struct ralink_pmx_func uartf_grp[] = { ...@@ -74,20 +74,20 @@ static struct ralink_pmx_func uartf_grp[] = {
FUNC("gpio uartf", MT7620_GPIO_MODE_GPIO_UARTF, 7, 4), FUNC("gpio uartf", MT7620_GPIO_MODE_GPIO_UARTF, 7, 4),
FUNC("gpio i2s", MT7620_GPIO_MODE_GPIO_I2S, 7, 4), FUNC("gpio i2s", MT7620_GPIO_MODE_GPIO_I2S, 7, 4),
}; };
static struct ralink_pmx_func wdt_grp[] = { static struct mtmips_pmx_func wdt_grp[] = {
FUNC("wdt rst", 0, 17, 1), FUNC("wdt rst", 0, 17, 1),
FUNC("wdt refclk", 0, 17, 1), FUNC("wdt refclk", 0, 17, 1),
}; };
static struct ralink_pmx_func pcie_rst_grp[] = { static struct mtmips_pmx_func pcie_rst_grp[] = {
FUNC("pcie rst", MT7620_GPIO_MODE_PCIE_RST, 36, 1), FUNC("pcie rst", MT7620_GPIO_MODE_PCIE_RST, 36, 1),
FUNC("pcie refclk", MT7620_GPIO_MODE_PCIE_REF, 36, 1) FUNC("pcie refclk", MT7620_GPIO_MODE_PCIE_REF, 36, 1)
}; };
static struct ralink_pmx_func nd_sd_grp[] = { static struct mtmips_pmx_func nd_sd_grp[] = {
FUNC("nand", MT7620_GPIO_MODE_NAND, 45, 15), FUNC("nand", MT7620_GPIO_MODE_NAND, 45, 15),
FUNC("sd", MT7620_GPIO_MODE_SD, 47, 13) FUNC("sd", MT7620_GPIO_MODE_SD, 47, 13)
}; };
static struct ralink_pmx_group mt7620a_pinmux_data[] = { static struct mtmips_pmx_group mt7620a_pinmux_data[] = {
GRP("i2c", i2c_grp, 1, MT7620_GPIO_MODE_I2C), GRP("i2c", i2c_grp, 1, MT7620_GPIO_MODE_I2C),
GRP("uartf", uartf_grp, MT7620_GPIO_MODE_UART0_MASK, GRP("uartf", uartf_grp, MT7620_GPIO_MODE_UART0_MASK,
MT7620_GPIO_MODE_UART0_SHIFT), MT7620_GPIO_MODE_UART0_SHIFT),
...@@ -112,7 +112,7 @@ static struct ralink_pmx_group mt7620a_pinmux_data[] = { ...@@ -112,7 +112,7 @@ static struct ralink_pmx_group mt7620a_pinmux_data[] = {
static int mt7620_pinctrl_probe(struct platform_device *pdev) static int mt7620_pinctrl_probe(struct platform_device *pdev)
{ {
return ralink_pinctrl_init(pdev, mt7620a_pinmux_data); return mtmips_pinctrl_init(pdev, mt7620a_pinmux_data);
} }
static const struct of_device_id mt7620_pinctrl_match[] = { static const struct of_device_id mt7620_pinctrl_match[] = {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/of.h> #include <linux/of.h>
#include "pinctrl-ralink.h" #include "pinctrl-mtmips.h"
#define MT7621_GPIO_MODE_UART1 1 #define MT7621_GPIO_MODE_UART1 1
#define MT7621_GPIO_MODE_I2C 2 #define MT7621_GPIO_MODE_I2C 2
...@@ -34,40 +34,40 @@ ...@@ -34,40 +34,40 @@
#define MT7621_GPIO_MODE_SDHCI_SHIFT 18 #define MT7621_GPIO_MODE_SDHCI_SHIFT 18
#define MT7621_GPIO_MODE_SDHCI_GPIO 1 #define MT7621_GPIO_MODE_SDHCI_GPIO 1
static struct ralink_pmx_func uart1_grp[] = { FUNC("uart1", 0, 1, 2) }; static struct mtmips_pmx_func uart1_grp[] = { FUNC("uart1", 0, 1, 2) };
static struct ralink_pmx_func i2c_grp[] = { FUNC("i2c", 0, 3, 2) }; static struct mtmips_pmx_func i2c_grp[] = { FUNC("i2c", 0, 3, 2) };
static struct ralink_pmx_func uart3_grp[] = { static struct mtmips_pmx_func uart3_grp[] = {
FUNC("uart3", 0, 5, 4), FUNC("uart3", 0, 5, 4),
FUNC("i2s", 2, 5, 4), FUNC("i2s", 2, 5, 4),
FUNC("spdif3", 3, 5, 4), FUNC("spdif3", 3, 5, 4),
}; };
static struct ralink_pmx_func uart2_grp[] = { static struct mtmips_pmx_func uart2_grp[] = {
FUNC("uart2", 0, 9, 4), FUNC("uart2", 0, 9, 4),
FUNC("pcm", 2, 9, 4), FUNC("pcm", 2, 9, 4),
FUNC("spdif2", 3, 9, 4), FUNC("spdif2", 3, 9, 4),
}; };
static struct ralink_pmx_func jtag_grp[] = { FUNC("jtag", 0, 13, 5) }; static struct mtmips_pmx_func jtag_grp[] = { FUNC("jtag", 0, 13, 5) };
static struct ralink_pmx_func wdt_grp[] = { static struct mtmips_pmx_func wdt_grp[] = {
FUNC("wdt rst", 0, 18, 1), FUNC("wdt rst", 0, 18, 1),
FUNC("wdt refclk", 2, 18, 1), FUNC("wdt refclk", 2, 18, 1),
}; };
static struct ralink_pmx_func pcie_rst_grp[] = { static struct mtmips_pmx_func pcie_rst_grp[] = {
FUNC("pcie rst", MT7621_GPIO_MODE_PCIE_RST, 19, 1), FUNC("pcie rst", MT7621_GPIO_MODE_PCIE_RST, 19, 1),
FUNC("pcie refclk", MT7621_GPIO_MODE_PCIE_REF, 19, 1) FUNC("pcie refclk", MT7621_GPIO_MODE_PCIE_REF, 19, 1)
}; };
static struct ralink_pmx_func mdio_grp[] = { FUNC("mdio", 0, 20, 2) }; static struct mtmips_pmx_func mdio_grp[] = { FUNC("mdio", 0, 20, 2) };
static struct ralink_pmx_func rgmii2_grp[] = { FUNC("rgmii2", 0, 22, 12) }; static struct mtmips_pmx_func rgmii2_grp[] = { FUNC("rgmii2", 0, 22, 12) };
static struct ralink_pmx_func spi_grp[] = { static struct mtmips_pmx_func spi_grp[] = {
FUNC("spi", 0, 34, 7), FUNC("spi", 0, 34, 7),
FUNC("nand1", 2, 34, 7), FUNC("nand1", 2, 34, 7),
}; };
static struct ralink_pmx_func sdhci_grp[] = { static struct mtmips_pmx_func sdhci_grp[] = {
FUNC("sdhci", 0, 41, 8), FUNC("sdhci", 0, 41, 8),
FUNC("nand2", 2, 41, 8), FUNC("nand2", 2, 41, 8),
}; };
static struct ralink_pmx_func rgmii1_grp[] = { FUNC("rgmii1", 0, 49, 12) }; static struct mtmips_pmx_func rgmii1_grp[] = { FUNC("rgmii1", 0, 49, 12) };
static struct ralink_pmx_group mt7621_pinmux_data[] = { static struct mtmips_pmx_group mt7621_pinmux_data[] = {
GRP("uart1", uart1_grp, 1, MT7621_GPIO_MODE_UART1), GRP("uart1", uart1_grp, 1, MT7621_GPIO_MODE_UART1),
GRP("i2c", i2c_grp, 1, MT7621_GPIO_MODE_I2C), GRP("i2c", i2c_grp, 1, MT7621_GPIO_MODE_I2C),
GRP_G("uart3", uart3_grp, MT7621_GPIO_MODE_UART3_MASK, GRP_G("uart3", uart3_grp, MT7621_GPIO_MODE_UART3_MASK,
...@@ -92,7 +92,7 @@ static struct ralink_pmx_group mt7621_pinmux_data[] = { ...@@ -92,7 +92,7 @@ static struct ralink_pmx_group mt7621_pinmux_data[] = {
static int mt7621_pinctrl_probe(struct platform_device *pdev) static int mt7621_pinctrl_probe(struct platform_device *pdev)
{ {
return ralink_pinctrl_init(pdev, mt7621_pinmux_data); return mtmips_pinctrl_init(pdev, mt7621_pinmux_data);
} }
static const struct of_device_id mt7621_pinctrl_match[] = { static const struct of_device_id mt7621_pinctrl_match[] = {
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/of.h> #include <linux/of.h>
#include "pinctrl-ralink.h" #include "pinctrl-mtmips.h"
#define MT76X8_GPIO_MODE_MASK 0x3 #define MT76X8_GPIO_MODE_MASK 0x3
...@@ -35,173 +35,173 @@ ...@@ -35,173 +35,173 @@
#define MT76X8_GPIO_MODE_SPIS 2 #define MT76X8_GPIO_MODE_SPIS 2
#define MT76X8_GPIO_MODE_GPIO 0 #define MT76X8_GPIO_MODE_GPIO 0
static struct ralink_pmx_func pwm1_grp[] = { static struct mtmips_pmx_func pwm1_grp[] = {
FUNC("sdxc d6", 3, 19, 1), FUNC("sdxc d6", 3, 19, 1),
FUNC("utif", 2, 19, 1), FUNC("utif", 2, 19, 1),
FUNC("gpio", 1, 19, 1), FUNC("gpio", 1, 19, 1),
FUNC("pwm1", 0, 19, 1), FUNC("pwm1", 0, 19, 1),
}; };
static struct ralink_pmx_func pwm0_grp[] = { static struct mtmips_pmx_func pwm0_grp[] = {
FUNC("sdxc d7", 3, 18, 1), FUNC("sdxc d7", 3, 18, 1),
FUNC("utif", 2, 18, 1), FUNC("utif", 2, 18, 1),
FUNC("gpio", 1, 18, 1), FUNC("gpio", 1, 18, 1),
FUNC("pwm0", 0, 18, 1), FUNC("pwm0", 0, 18, 1),
}; };
static struct ralink_pmx_func uart2_grp[] = { static struct mtmips_pmx_func uart2_grp[] = {
FUNC("sdxc d5 d4", 3, 20, 2), FUNC("sdxc d5 d4", 3, 20, 2),
FUNC("pwm", 2, 20, 2), FUNC("pwm", 2, 20, 2),
FUNC("gpio", 1, 20, 2), FUNC("gpio", 1, 20, 2),
FUNC("uart2", 0, 20, 2), FUNC("uart2", 0, 20, 2),
}; };
static struct ralink_pmx_func uart1_grp[] = { static struct mtmips_pmx_func uart1_grp[] = {
FUNC("sw_r", 3, 45, 2), FUNC("sw_r", 3, 45, 2),
FUNC("pwm", 2, 45, 2), FUNC("pwm", 2, 45, 2),
FUNC("gpio", 1, 45, 2), FUNC("gpio", 1, 45, 2),
FUNC("uart1", 0, 45, 2), FUNC("uart1", 0, 45, 2),
}; };
static struct ralink_pmx_func i2c_grp[] = { static struct mtmips_pmx_func i2c_grp[] = {
FUNC("-", 3, 4, 2), FUNC("-", 3, 4, 2),
FUNC("debug", 2, 4, 2), FUNC("debug", 2, 4, 2),
FUNC("gpio", 1, 4, 2), FUNC("gpio", 1, 4, 2),
FUNC("i2c", 0, 4, 2), FUNC("i2c", 0, 4, 2),
}; };
static struct ralink_pmx_func refclk_grp[] = { FUNC("refclk", 0, 37, 1) }; static struct mtmips_pmx_func refclk_grp[] = { FUNC("refclk", 0, 37, 1) };
static struct ralink_pmx_func perst_grp[] = { FUNC("perst", 0, 36, 1) }; static struct mtmips_pmx_func perst_grp[] = { FUNC("perst", 0, 36, 1) };
static struct ralink_pmx_func wdt_grp[] = { FUNC("wdt", 0, 38, 1) }; static struct mtmips_pmx_func wdt_grp[] = { FUNC("wdt", 0, 38, 1) };
static struct ralink_pmx_func spi_grp[] = { FUNC("spi", 0, 7, 4) }; static struct mtmips_pmx_func spi_grp[] = { FUNC("spi", 0, 7, 4) };
static struct ralink_pmx_func sd_mode_grp[] = { static struct mtmips_pmx_func sd_mode_grp[] = {
FUNC("jtag", 3, 22, 8), FUNC("jtag", 3, 22, 8),
FUNC("utif", 2, 22, 8), FUNC("utif", 2, 22, 8),
FUNC("gpio", 1, 22, 8), FUNC("gpio", 1, 22, 8),
FUNC("sdxc", 0, 22, 8), FUNC("sdxc", 0, 22, 8),
}; };
static struct ralink_pmx_func uart0_grp[] = { static struct mtmips_pmx_func uart0_grp[] = {
FUNC("-", 3, 12, 2), FUNC("-", 3, 12, 2),
FUNC("-", 2, 12, 2), FUNC("-", 2, 12, 2),
FUNC("gpio", 1, 12, 2), FUNC("gpio", 1, 12, 2),
FUNC("uart0", 0, 12, 2), FUNC("uart0", 0, 12, 2),
}; };
static struct ralink_pmx_func i2s_grp[] = { static struct mtmips_pmx_func i2s_grp[] = {
FUNC("antenna", 3, 0, 4), FUNC("antenna", 3, 0, 4),
FUNC("pcm", 2, 0, 4), FUNC("pcm", 2, 0, 4),
FUNC("gpio", 1, 0, 4), FUNC("gpio", 1, 0, 4),
FUNC("i2s", 0, 0, 4), FUNC("i2s", 0, 0, 4),
}; };
static struct ralink_pmx_func spi_cs1_grp[] = { static struct mtmips_pmx_func spi_cs1_grp[] = {
FUNC("-", 3, 6, 1), FUNC("-", 3, 6, 1),
FUNC("refclk", 2, 6, 1), FUNC("refclk", 2, 6, 1),
FUNC("gpio", 1, 6, 1), FUNC("gpio", 1, 6, 1),
FUNC("spi cs1", 0, 6, 1), FUNC("spi cs1", 0, 6, 1),
}; };
static struct ralink_pmx_func spis_grp[] = { static struct mtmips_pmx_func spis_grp[] = {
FUNC("pwm_uart2", 3, 14, 4), FUNC("pwm_uart2", 3, 14, 4),
FUNC("utif", 2, 14, 4), FUNC("utif", 2, 14, 4),
FUNC("gpio", 1, 14, 4), FUNC("gpio", 1, 14, 4),
FUNC("spis", 0, 14, 4), FUNC("spis", 0, 14, 4),
}; };
static struct ralink_pmx_func gpio_grp[] = { static struct mtmips_pmx_func gpio_grp[] = {
FUNC("pcie", 3, 11, 1), FUNC("pcie", 3, 11, 1),
FUNC("refclk", 2, 11, 1), FUNC("refclk", 2, 11, 1),
FUNC("gpio", 1, 11, 1), FUNC("gpio", 1, 11, 1),
FUNC("gpio", 0, 11, 1), FUNC("gpio", 0, 11, 1),
}; };
static struct ralink_pmx_func p4led_kn_grp[] = { static struct mtmips_pmx_func p4led_kn_grp[] = {
FUNC("jtag", 3, 30, 1), FUNC("jtag", 3, 30, 1),
FUNC("utif", 2, 30, 1), FUNC("utif", 2, 30, 1),
FUNC("gpio", 1, 30, 1), FUNC("gpio", 1, 30, 1),
FUNC("p4led_kn", 0, 30, 1), FUNC("p4led_kn", 0, 30, 1),
}; };
static struct ralink_pmx_func p3led_kn_grp[] = { static struct mtmips_pmx_func p3led_kn_grp[] = {
FUNC("jtag", 3, 31, 1), FUNC("jtag", 3, 31, 1),
FUNC("utif", 2, 31, 1), FUNC("utif", 2, 31, 1),
FUNC("gpio", 1, 31, 1), FUNC("gpio", 1, 31, 1),
FUNC("p3led_kn", 0, 31, 1), FUNC("p3led_kn", 0, 31, 1),
}; };
static struct ralink_pmx_func p2led_kn_grp[] = { static struct mtmips_pmx_func p2led_kn_grp[] = {
FUNC("jtag", 3, 32, 1), FUNC("jtag", 3, 32, 1),
FUNC("utif", 2, 32, 1), FUNC("utif", 2, 32, 1),
FUNC("gpio", 1, 32, 1), FUNC("gpio", 1, 32, 1),
FUNC("p2led_kn", 0, 32, 1), FUNC("p2led_kn", 0, 32, 1),
}; };
static struct ralink_pmx_func p1led_kn_grp[] = { static struct mtmips_pmx_func p1led_kn_grp[] = {
FUNC("jtag", 3, 33, 1), FUNC("jtag", 3, 33, 1),
FUNC("utif", 2, 33, 1), FUNC("utif", 2, 33, 1),
FUNC("gpio", 1, 33, 1), FUNC("gpio", 1, 33, 1),
FUNC("p1led_kn", 0, 33, 1), FUNC("p1led_kn", 0, 33, 1),
}; };
static struct ralink_pmx_func p0led_kn_grp[] = { static struct mtmips_pmx_func p0led_kn_grp[] = {
FUNC("jtag", 3, 34, 1), FUNC("jtag", 3, 34, 1),
FUNC("rsvd", 2, 34, 1), FUNC("rsvd", 2, 34, 1),
FUNC("gpio", 1, 34, 1), FUNC("gpio", 1, 34, 1),
FUNC("p0led_kn", 0, 34, 1), FUNC("p0led_kn", 0, 34, 1),
}; };
static struct ralink_pmx_func wled_kn_grp[] = { static struct mtmips_pmx_func wled_kn_grp[] = {
FUNC("rsvd", 3, 35, 1), FUNC("rsvd", 3, 35, 1),
FUNC("rsvd", 2, 35, 1), FUNC("rsvd", 2, 35, 1),
FUNC("gpio", 1, 35, 1), FUNC("gpio", 1, 35, 1),
FUNC("wled_kn", 0, 35, 1), FUNC("wled_kn", 0, 35, 1),
}; };
static struct ralink_pmx_func p4led_an_grp[] = { static struct mtmips_pmx_func p4led_an_grp[] = {
FUNC("jtag", 3, 39, 1), FUNC("jtag", 3, 39, 1),
FUNC("utif", 2, 39, 1), FUNC("utif", 2, 39, 1),
FUNC("gpio", 1, 39, 1), FUNC("gpio", 1, 39, 1),
FUNC("p4led_an", 0, 39, 1), FUNC("p4led_an", 0, 39, 1),
}; };
static struct ralink_pmx_func p3led_an_grp[] = { static struct mtmips_pmx_func p3led_an_grp[] = {
FUNC("jtag", 3, 40, 1), FUNC("jtag", 3, 40, 1),
FUNC("utif", 2, 40, 1), FUNC("utif", 2, 40, 1),
FUNC("gpio", 1, 40, 1), FUNC("gpio", 1, 40, 1),
FUNC("p3led_an", 0, 40, 1), FUNC("p3led_an", 0, 40, 1),
}; };
static struct ralink_pmx_func p2led_an_grp[] = { static struct mtmips_pmx_func p2led_an_grp[] = {
FUNC("jtag", 3, 41, 1), FUNC("jtag", 3, 41, 1),
FUNC("utif", 2, 41, 1), FUNC("utif", 2, 41, 1),
FUNC("gpio", 1, 41, 1), FUNC("gpio", 1, 41, 1),
FUNC("p2led_an", 0, 41, 1), FUNC("p2led_an", 0, 41, 1),
}; };
static struct ralink_pmx_func p1led_an_grp[] = { static struct mtmips_pmx_func p1led_an_grp[] = {
FUNC("jtag", 3, 42, 1), FUNC("jtag", 3, 42, 1),
FUNC("utif", 2, 42, 1), FUNC("utif", 2, 42, 1),
FUNC("gpio", 1, 42, 1), FUNC("gpio", 1, 42, 1),
FUNC("p1led_an", 0, 42, 1), FUNC("p1led_an", 0, 42, 1),
}; };
static struct ralink_pmx_func p0led_an_grp[] = { static struct mtmips_pmx_func p0led_an_grp[] = {
FUNC("jtag", 3, 43, 1), FUNC("jtag", 3, 43, 1),
FUNC("rsvd", 2, 43, 1), FUNC("rsvd", 2, 43, 1),
FUNC("gpio", 1, 43, 1), FUNC("gpio", 1, 43, 1),
FUNC("p0led_an", 0, 43, 1), FUNC("p0led_an", 0, 43, 1),
}; };
static struct ralink_pmx_func wled_an_grp[] = { static struct mtmips_pmx_func wled_an_grp[] = {
FUNC("rsvd", 3, 44, 1), FUNC("rsvd", 3, 44, 1),
FUNC("rsvd", 2, 44, 1), FUNC("rsvd", 2, 44, 1),
FUNC("gpio", 1, 44, 1), FUNC("gpio", 1, 44, 1),
FUNC("wled_an", 0, 44, 1), FUNC("wled_an", 0, 44, 1),
}; };
static struct ralink_pmx_group mt76x8_pinmux_data[] = { static struct mtmips_pmx_group mt76x8_pinmux_data[] = {
GRP_G("pwm1", pwm1_grp, MT76X8_GPIO_MODE_MASK, GRP_G("pwm1", pwm1_grp, MT76X8_GPIO_MODE_MASK,
1, MT76X8_GPIO_MODE_PWM1), 1, MT76X8_GPIO_MODE_PWM1),
GRP_G("pwm0", pwm0_grp, MT76X8_GPIO_MODE_MASK, GRP_G("pwm0", pwm0_grp, MT76X8_GPIO_MODE_MASK,
...@@ -257,7 +257,7 @@ static struct ralink_pmx_group mt76x8_pinmux_data[] = { ...@@ -257,7 +257,7 @@ static struct ralink_pmx_group mt76x8_pinmux_data[] = {
static int mt76x8_pinctrl_probe(struct platform_device *pdev) static int mt76x8_pinctrl_probe(struct platform_device *pdev)
{ {
return ralink_pinctrl_init(pdev, mt76x8_pinmux_data); return mtmips_pinctrl_init(pdev, mt76x8_pinmux_data);
} }
static const struct of_device_id mt76x8_pinctrl_match[] = { static const struct of_device_id mt76x8_pinctrl_match[] = {
......
...@@ -19,23 +19,23 @@ ...@@ -19,23 +19,23 @@
#include <asm/mach-ralink/ralink_regs.h> #include <asm/mach-ralink/ralink_regs.h>
#include <asm/mach-ralink/mt7620.h> #include <asm/mach-ralink/mt7620.h>
#include "pinctrl-ralink.h" #include "pinctrl-mtmips.h"
#include "../core.h" #include "../core.h"
#include "../pinctrl-utils.h" #include "../pinctrl-utils.h"
#define SYSC_REG_GPIO_MODE 0x60 #define SYSC_REG_GPIO_MODE 0x60
#define SYSC_REG_GPIO_MODE2 0x64 #define SYSC_REG_GPIO_MODE2 0x64
struct ralink_priv { struct mtmips_priv {
struct device *dev; struct device *dev;
struct pinctrl_pin_desc *pads; struct pinctrl_pin_desc *pads;
struct pinctrl_desc *desc; struct pinctrl_desc *desc;
struct ralink_pmx_func **func; struct mtmips_pmx_func **func;
int func_count; int func_count;
struct ralink_pmx_group *groups; struct mtmips_pmx_group *groups;
const char **group_names; const char **group_names;
int group_count; int group_count;
...@@ -43,27 +43,27 @@ struct ralink_priv { ...@@ -43,27 +43,27 @@ struct ralink_priv {
int max_pins; int max_pins;
}; };
static int ralink_get_group_count(struct pinctrl_dev *pctrldev) static int mtmips_get_group_count(struct pinctrl_dev *pctrldev)
{ {
struct ralink_priv *p = pinctrl_dev_get_drvdata(pctrldev); struct mtmips_priv *p = pinctrl_dev_get_drvdata(pctrldev);
return p->group_count; return p->group_count;
} }
static const char *ralink_get_group_name(struct pinctrl_dev *pctrldev, static const char *mtmips_get_group_name(struct pinctrl_dev *pctrldev,
unsigned int group) unsigned int group)
{ {
struct ralink_priv *p = pinctrl_dev_get_drvdata(pctrldev); struct mtmips_priv *p = pinctrl_dev_get_drvdata(pctrldev);
return (group >= p->group_count) ? NULL : p->group_names[group]; return (group >= p->group_count) ? NULL : p->group_names[group];
} }
static int ralink_get_group_pins(struct pinctrl_dev *pctrldev, static int mtmips_get_group_pins(struct pinctrl_dev *pctrldev,
unsigned int group, unsigned int group,
const unsigned int **pins, const unsigned int **pins,
unsigned int *num_pins) unsigned int *num_pins)
{ {
struct ralink_priv *p = pinctrl_dev_get_drvdata(pctrldev); struct mtmips_priv *p = pinctrl_dev_get_drvdata(pctrldev);
if (group >= p->group_count) if (group >= p->group_count)
return -EINVAL; return -EINVAL;
...@@ -74,35 +74,35 @@ static int ralink_get_group_pins(struct pinctrl_dev *pctrldev, ...@@ -74,35 +74,35 @@ static int ralink_get_group_pins(struct pinctrl_dev *pctrldev,
return 0; return 0;
} }
static const struct pinctrl_ops ralink_pctrl_ops = { static const struct pinctrl_ops mtmips_pctrl_ops = {
.get_groups_count = ralink_get_group_count, .get_groups_count = mtmips_get_group_count,
.get_group_name = ralink_get_group_name, .get_group_name = mtmips_get_group_name,
.get_group_pins = ralink_get_group_pins, .get_group_pins = mtmips_get_group_pins,
.dt_node_to_map = pinconf_generic_dt_node_to_map_all, .dt_node_to_map = pinconf_generic_dt_node_to_map_all,
.dt_free_map = pinconf_generic_dt_free_map, .dt_free_map = pinconf_generic_dt_free_map,
}; };
static int ralink_pmx_func_count(struct pinctrl_dev *pctrldev) static int mtmips_pmx_func_count(struct pinctrl_dev *pctrldev)
{ {
struct ralink_priv *p = pinctrl_dev_get_drvdata(pctrldev); struct mtmips_priv *p = pinctrl_dev_get_drvdata(pctrldev);
return p->func_count; return p->func_count;
} }
static const char *ralink_pmx_func_name(struct pinctrl_dev *pctrldev, static const char *mtmips_pmx_func_name(struct pinctrl_dev *pctrldev,
unsigned int func) unsigned int func)
{ {
struct ralink_priv *p = pinctrl_dev_get_drvdata(pctrldev); struct mtmips_priv *p = pinctrl_dev_get_drvdata(pctrldev);
return p->func[func]->name; return p->func[func]->name;
} }
static int ralink_pmx_group_get_groups(struct pinctrl_dev *pctrldev, static int mtmips_pmx_group_get_groups(struct pinctrl_dev *pctrldev,
unsigned int func, unsigned int func,
const char * const **groups, const char * const **groups,
unsigned int * const num_groups) unsigned int * const num_groups)
{ {
struct ralink_priv *p = pinctrl_dev_get_drvdata(pctrldev); struct mtmips_priv *p = pinctrl_dev_get_drvdata(pctrldev);
if (p->func[func]->group_count == 1) if (p->func[func]->group_count == 1)
*groups = &p->group_names[p->func[func]->groups[0]]; *groups = &p->group_names[p->func[func]->groups[0]];
...@@ -114,10 +114,10 @@ static int ralink_pmx_group_get_groups(struct pinctrl_dev *pctrldev, ...@@ -114,10 +114,10 @@ static int ralink_pmx_group_get_groups(struct pinctrl_dev *pctrldev,
return 0; return 0;
} }
static int ralink_pmx_group_enable(struct pinctrl_dev *pctrldev, static int mtmips_pmx_group_enable(struct pinctrl_dev *pctrldev,
unsigned int func, unsigned int group) unsigned int func, unsigned int group)
{ {
struct ralink_priv *p = pinctrl_dev_get_drvdata(pctrldev); struct mtmips_priv *p = pinctrl_dev_get_drvdata(pctrldev);
u32 mode = 0; u32 mode = 0;
u32 reg = SYSC_REG_GPIO_MODE; u32 reg = SYSC_REG_GPIO_MODE;
int i; int i;
...@@ -158,11 +158,11 @@ static int ralink_pmx_group_enable(struct pinctrl_dev *pctrldev, ...@@ -158,11 +158,11 @@ static int ralink_pmx_group_enable(struct pinctrl_dev *pctrldev,
return 0; return 0;
} }
static int ralink_pmx_group_gpio_request_enable(struct pinctrl_dev *pctrldev, static int mtmips_pmx_group_gpio_request_enable(struct pinctrl_dev *pctrldev,
struct pinctrl_gpio_range *range, struct pinctrl_gpio_range *range,
unsigned int pin) unsigned int pin)
{ {
struct ralink_priv *p = pinctrl_dev_get_drvdata(pctrldev); struct mtmips_priv *p = pinctrl_dev_get_drvdata(pctrldev);
if (!p->gpio[pin]) { if (!p->gpio[pin]) {
dev_err(p->dev, "pin %d is not set to gpio mux\n", pin); dev_err(p->dev, "pin %d is not set to gpio mux\n", pin);
...@@ -172,28 +172,28 @@ static int ralink_pmx_group_gpio_request_enable(struct pinctrl_dev *pctrldev, ...@@ -172,28 +172,28 @@ static int ralink_pmx_group_gpio_request_enable(struct pinctrl_dev *pctrldev,
return 0; return 0;
} }
static const struct pinmux_ops ralink_pmx_group_ops = { static const struct pinmux_ops mtmips_pmx_group_ops = {
.get_functions_count = ralink_pmx_func_count, .get_functions_count = mtmips_pmx_func_count,
.get_function_name = ralink_pmx_func_name, .get_function_name = mtmips_pmx_func_name,
.get_function_groups = ralink_pmx_group_get_groups, .get_function_groups = mtmips_pmx_group_get_groups,
.set_mux = ralink_pmx_group_enable, .set_mux = mtmips_pmx_group_enable,
.gpio_request_enable = ralink_pmx_group_gpio_request_enable, .gpio_request_enable = mtmips_pmx_group_gpio_request_enable,
}; };
static struct pinctrl_desc ralink_pctrl_desc = { static struct pinctrl_desc mtmips_pctrl_desc = {
.owner = THIS_MODULE, .owner = THIS_MODULE,
.name = "ralink-pinctrl", .name = "mtmips-pinctrl",
.pctlops = &ralink_pctrl_ops, .pctlops = &mtmips_pctrl_ops,
.pmxops = &ralink_pmx_group_ops, .pmxops = &mtmips_pmx_group_ops,
}; };
static struct ralink_pmx_func gpio_func = { static struct mtmips_pmx_func gpio_func = {
.name = "gpio", .name = "gpio",
}; };
static int ralink_pinctrl_index(struct ralink_priv *p) static int mtmips_pinctrl_index(struct mtmips_priv *p)
{ {
struct ralink_pmx_group *mux = p->groups; struct mtmips_pmx_group *mux = p->groups;
int i, j, c = 0; int i, j, c = 0;
/* count the mux functions */ /* count the mux functions */
...@@ -248,7 +248,7 @@ static int ralink_pinctrl_index(struct ralink_priv *p) ...@@ -248,7 +248,7 @@ static int ralink_pinctrl_index(struct ralink_priv *p)
return 0; return 0;
} }
static int ralink_pinctrl_pins(struct ralink_priv *p) static int mtmips_pinctrl_pins(struct mtmips_priv *p)
{ {
int i, j; int i, j;
...@@ -313,10 +313,10 @@ static int ralink_pinctrl_pins(struct ralink_priv *p) ...@@ -313,10 +313,10 @@ static int ralink_pinctrl_pins(struct ralink_priv *p)
return 0; return 0;
} }
int ralink_pinctrl_init(struct platform_device *pdev, int mtmips_pinctrl_init(struct platform_device *pdev,
struct ralink_pmx_group *data) struct mtmips_pmx_group *data)
{ {
struct ralink_priv *p; struct mtmips_priv *p;
struct pinctrl_dev *dev; struct pinctrl_dev *dev;
int err; int err;
...@@ -324,23 +324,23 @@ int ralink_pinctrl_init(struct platform_device *pdev, ...@@ -324,23 +324,23 @@ int ralink_pinctrl_init(struct platform_device *pdev,
return -ENOTSUPP; return -ENOTSUPP;
/* setup the private data */ /* setup the private data */
p = devm_kzalloc(&pdev->dev, sizeof(struct ralink_priv), GFP_KERNEL); p = devm_kzalloc(&pdev->dev, sizeof(struct mtmips_priv), GFP_KERNEL);
if (!p) if (!p)
return -ENOMEM; return -ENOMEM;
p->dev = &pdev->dev; p->dev = &pdev->dev;
p->desc = &ralink_pctrl_desc; p->desc = &mtmips_pctrl_desc;
p->groups = data; p->groups = data;
platform_set_drvdata(pdev, p); platform_set_drvdata(pdev, p);
/* init the device */ /* init the device */
err = ralink_pinctrl_index(p); err = mtmips_pinctrl_index(p);
if (err) { if (err) {
dev_err(&pdev->dev, "failed to load index\n"); dev_err(&pdev->dev, "failed to load index\n");
return err; return err;
} }
err = ralink_pinctrl_pins(p); err = mtmips_pinctrl_pins(p);
if (err) { if (err) {
dev_err(&pdev->dev, "failed to load pins\n"); dev_err(&pdev->dev, "failed to load pins\n");
return err; return err;
......
...@@ -3,8 +3,8 @@ ...@@ -3,8 +3,8 @@
* Copyright (C) 2012 John Crispin <john@phrozen.org> * Copyright (C) 2012 John Crispin <john@phrozen.org>
*/ */
#ifndef _PINCTRL_RALINK_H__ #ifndef _PINCTRL_MTMIPS_H__
#define _PINCTRL_RALINK_H__ #define _PINCTRL_MTMIPS_H__
#define FUNC(name, value, pin_first, pin_count) \ #define FUNC(name, value, pin_first, pin_count) \
{ name, value, pin_first, pin_count } { name, value, pin_first, pin_count }
...@@ -19,9 +19,9 @@ ...@@ -19,9 +19,9 @@
.func = _func, .gpio = _gpio, \ .func = _func, .gpio = _gpio, \
.func_count = ARRAY_SIZE(_func) } .func_count = ARRAY_SIZE(_func) }
struct ralink_pmx_group; struct mtmips_pmx_group;
struct ralink_pmx_func { struct mtmips_pmx_func {
const char *name; const char *name;
const char value; const char value;
...@@ -35,7 +35,7 @@ struct ralink_pmx_func { ...@@ -35,7 +35,7 @@ struct ralink_pmx_func {
int enabled; int enabled;
}; };
struct ralink_pmx_group { struct mtmips_pmx_group {
const char *name; const char *name;
int enabled; int enabled;
...@@ -43,11 +43,11 @@ struct ralink_pmx_group { ...@@ -43,11 +43,11 @@ struct ralink_pmx_group {
const char mask; const char mask;
const char gpio; const char gpio;
struct ralink_pmx_func *func; struct mtmips_pmx_func *func;
int func_count; int func_count;
}; };
int ralink_pinctrl_init(struct platform_device *pdev, int mtmips_pinctrl_init(struct platform_device *pdev,
struct ralink_pmx_group *data); struct mtmips_pmx_group *data);
#endif #endif
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/of.h> #include <linux/of.h>
#include "pinctrl-ralink.h" #include "pinctrl-mtmips.h"
#define RT2880_GPIO_MODE_I2C BIT(0) #define RT2880_GPIO_MODE_I2C BIT(0)
#define RT2880_GPIO_MODE_UART0 BIT(1) #define RT2880_GPIO_MODE_UART0 BIT(1)
...@@ -15,15 +15,15 @@ ...@@ -15,15 +15,15 @@
#define RT2880_GPIO_MODE_SDRAM BIT(6) #define RT2880_GPIO_MODE_SDRAM BIT(6)
#define RT2880_GPIO_MODE_PCI BIT(7) #define RT2880_GPIO_MODE_PCI BIT(7)
static struct ralink_pmx_func i2c_grp[] = { FUNC("i2c", 0, 1, 2) }; static struct mtmips_pmx_func i2c_grp[] = { FUNC("i2c", 0, 1, 2) };
static struct ralink_pmx_func spi_grp[] = { FUNC("spi", 0, 3, 4) }; static struct mtmips_pmx_func spi_grp[] = { FUNC("spi", 0, 3, 4) };
static struct ralink_pmx_func uartlite_grp[] = { FUNC("uartlite", 0, 7, 8) }; static struct mtmips_pmx_func uartlite_grp[] = { FUNC("uartlite", 0, 7, 8) };
static struct ralink_pmx_func jtag_grp[] = { FUNC("jtag", 0, 17, 5) }; static struct mtmips_pmx_func jtag_grp[] = { FUNC("jtag", 0, 17, 5) };
static struct ralink_pmx_func mdio_grp[] = { FUNC("mdio", 0, 22, 2) }; static struct mtmips_pmx_func mdio_grp[] = { FUNC("mdio", 0, 22, 2) };
static struct ralink_pmx_func sdram_grp[] = { FUNC("sdram", 0, 24, 16) }; static struct mtmips_pmx_func sdram_grp[] = { FUNC("sdram", 0, 24, 16) };
static struct ralink_pmx_func pci_grp[] = { FUNC("pci", 0, 40, 32) }; static struct mtmips_pmx_func pci_grp[] = { FUNC("pci", 0, 40, 32) };
static struct ralink_pmx_group rt2880_pinmux_data_act[] = { static struct mtmips_pmx_group rt2880_pinmux_data_act[] = {
GRP("i2c", i2c_grp, 1, RT2880_GPIO_MODE_I2C), GRP("i2c", i2c_grp, 1, RT2880_GPIO_MODE_I2C),
GRP("spi", spi_grp, 1, RT2880_GPIO_MODE_SPI), GRP("spi", spi_grp, 1, RT2880_GPIO_MODE_SPI),
GRP("uartlite", uartlite_grp, 1, RT2880_GPIO_MODE_UART0), GRP("uartlite", uartlite_grp, 1, RT2880_GPIO_MODE_UART0),
...@@ -36,7 +36,7 @@ static struct ralink_pmx_group rt2880_pinmux_data_act[] = { ...@@ -36,7 +36,7 @@ static struct ralink_pmx_group rt2880_pinmux_data_act[] = {
static int rt2880_pinctrl_probe(struct platform_device *pdev) static int rt2880_pinctrl_probe(struct platform_device *pdev)
{ {
return ralink_pinctrl_init(pdev, rt2880_pinmux_data_act); return mtmips_pinctrl_init(pdev, rt2880_pinmux_data_act);
} }
static const struct of_device_id rt2880_pinctrl_match[] = { static const struct of_device_id rt2880_pinctrl_match[] = {
......
...@@ -5,7 +5,7 @@ ...@@ -5,7 +5,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/of.h> #include <linux/of.h>
#include "pinctrl-ralink.h" #include "pinctrl-mtmips.h"
#define RT305X_GPIO_MODE_UART0_SHIFT 2 #define RT305X_GPIO_MODE_UART0_SHIFT 2
#define RT305X_GPIO_MODE_UART0_MASK 0x7 #define RT305X_GPIO_MODE_UART0_MASK 0x7
...@@ -31,9 +31,9 @@ ...@@ -31,9 +31,9 @@
#define RT3352_GPIO_MODE_LNA 18 #define RT3352_GPIO_MODE_LNA 18
#define RT3352_GPIO_MODE_PA 20 #define RT3352_GPIO_MODE_PA 20
static struct ralink_pmx_func i2c_grp[] = { FUNC("i2c", 0, 1, 2) }; static struct mtmips_pmx_func i2c_grp[] = { FUNC("i2c", 0, 1, 2) };
static struct ralink_pmx_func spi_grp[] = { FUNC("spi", 0, 3, 4) }; static struct mtmips_pmx_func spi_grp[] = { FUNC("spi", 0, 3, 4) };
static struct ralink_pmx_func uartf_grp[] = { static struct mtmips_pmx_func uartf_grp[] = {
FUNC("uartf", RT305X_GPIO_MODE_UARTF, 7, 8), FUNC("uartf", RT305X_GPIO_MODE_UARTF, 7, 8),
FUNC("pcm uartf", RT305X_GPIO_MODE_PCM_UARTF, 7, 8), FUNC("pcm uartf", RT305X_GPIO_MODE_PCM_UARTF, 7, 8),
FUNC("pcm i2s", RT305X_GPIO_MODE_PCM_I2S, 7, 8), FUNC("pcm i2s", RT305X_GPIO_MODE_PCM_I2S, 7, 8),
...@@ -42,28 +42,28 @@ static struct ralink_pmx_func uartf_grp[] = { ...@@ -42,28 +42,28 @@ static struct ralink_pmx_func uartf_grp[] = {
FUNC("gpio uartf", RT305X_GPIO_MODE_GPIO_UARTF, 7, 4), FUNC("gpio uartf", RT305X_GPIO_MODE_GPIO_UARTF, 7, 4),
FUNC("gpio i2s", RT305X_GPIO_MODE_GPIO_I2S, 7, 4), FUNC("gpio i2s", RT305X_GPIO_MODE_GPIO_I2S, 7, 4),
}; };
static struct ralink_pmx_func uartlite_grp[] = { FUNC("uartlite", 0, 15, 2) }; static struct mtmips_pmx_func uartlite_grp[] = { FUNC("uartlite", 0, 15, 2) };
static struct ralink_pmx_func jtag_grp[] = { FUNC("jtag", 0, 17, 5) }; static struct mtmips_pmx_func jtag_grp[] = { FUNC("jtag", 0, 17, 5) };
static struct ralink_pmx_func mdio_grp[] = { FUNC("mdio", 0, 22, 2) }; static struct mtmips_pmx_func mdio_grp[] = { FUNC("mdio", 0, 22, 2) };
static struct ralink_pmx_func rt5350_led_grp[] = { FUNC("led", 0, 22, 5) }; static struct mtmips_pmx_func rt5350_led_grp[] = { FUNC("led", 0, 22, 5) };
static struct ralink_pmx_func rt5350_cs1_grp[] = { static struct mtmips_pmx_func rt5350_cs1_grp[] = {
FUNC("spi_cs1", 0, 27, 1), FUNC("spi_cs1", 0, 27, 1),
FUNC("wdg_cs1", 1, 27, 1), FUNC("wdg_cs1", 1, 27, 1),
}; };
static struct ralink_pmx_func sdram_grp[] = { FUNC("sdram", 0, 24, 16) }; static struct mtmips_pmx_func sdram_grp[] = { FUNC("sdram", 0, 24, 16) };
static struct ralink_pmx_func rt3352_rgmii_grp[] = { static struct mtmips_pmx_func rt3352_rgmii_grp[] = {
FUNC("rgmii", 0, 24, 12) FUNC("rgmii", 0, 24, 12)
}; };
static struct ralink_pmx_func rgmii_grp[] = { FUNC("rgmii", 0, 40, 12) }; static struct mtmips_pmx_func rgmii_grp[] = { FUNC("rgmii", 0, 40, 12) };
static struct ralink_pmx_func rt3352_lna_grp[] = { FUNC("lna", 0, 36, 2) }; static struct mtmips_pmx_func rt3352_lna_grp[] = { FUNC("lna", 0, 36, 2) };
static struct ralink_pmx_func rt3352_pa_grp[] = { FUNC("pa", 0, 38, 2) }; static struct mtmips_pmx_func rt3352_pa_grp[] = { FUNC("pa", 0, 38, 2) };
static struct ralink_pmx_func rt3352_led_grp[] = { FUNC("led", 0, 40, 5) }; static struct mtmips_pmx_func rt3352_led_grp[] = { FUNC("led", 0, 40, 5) };
static struct ralink_pmx_func rt3352_cs1_grp[] = { static struct mtmips_pmx_func rt3352_cs1_grp[] = {
FUNC("spi_cs1", 0, 45, 1), FUNC("spi_cs1", 0, 45, 1),
FUNC("wdg_cs1", 1, 45, 1), FUNC("wdg_cs1", 1, 45, 1),
}; };
static struct ralink_pmx_group rt3050_pinmux_data[] = { static struct mtmips_pmx_group rt3050_pinmux_data[] = {
GRP("i2c", i2c_grp, 1, RT305X_GPIO_MODE_I2C), GRP("i2c", i2c_grp, 1, RT305X_GPIO_MODE_I2C),
GRP("spi", spi_grp, 1, RT305X_GPIO_MODE_SPI), GRP("spi", spi_grp, 1, RT305X_GPIO_MODE_SPI),
GRP("uartf", uartf_grp, RT305X_GPIO_MODE_UART0_MASK, GRP("uartf", uartf_grp, RT305X_GPIO_MODE_UART0_MASK,
...@@ -76,7 +76,7 @@ static struct ralink_pmx_group rt3050_pinmux_data[] = { ...@@ -76,7 +76,7 @@ static struct ralink_pmx_group rt3050_pinmux_data[] = {
{ 0 } { 0 }
}; };
static struct ralink_pmx_group rt3352_pinmux_data[] = { static struct mtmips_pmx_group rt3352_pinmux_data[] = {
GRP("i2c", i2c_grp, 1, RT305X_GPIO_MODE_I2C), GRP("i2c", i2c_grp, 1, RT305X_GPIO_MODE_I2C),
GRP("spi", spi_grp, 1, RT305X_GPIO_MODE_SPI), GRP("spi", spi_grp, 1, RT305X_GPIO_MODE_SPI),
GRP("uartf", uartf_grp, RT305X_GPIO_MODE_UART0_MASK, GRP("uartf", uartf_grp, RT305X_GPIO_MODE_UART0_MASK,
...@@ -92,7 +92,7 @@ static struct ralink_pmx_group rt3352_pinmux_data[] = { ...@@ -92,7 +92,7 @@ static struct ralink_pmx_group rt3352_pinmux_data[] = {
{ 0 } { 0 }
}; };
static struct ralink_pmx_group rt5350_pinmux_data[] = { static struct mtmips_pmx_group rt5350_pinmux_data[] = {
GRP("i2c", i2c_grp, 1, RT305X_GPIO_MODE_I2C), GRP("i2c", i2c_grp, 1, RT305X_GPIO_MODE_I2C),
GRP("spi", spi_grp, 1, RT305X_GPIO_MODE_SPI), GRP("spi", spi_grp, 1, RT305X_GPIO_MODE_SPI),
GRP("uartf", uartf_grp, RT305X_GPIO_MODE_UART0_MASK, GRP("uartf", uartf_grp, RT305X_GPIO_MODE_UART0_MASK,
...@@ -107,11 +107,11 @@ static struct ralink_pmx_group rt5350_pinmux_data[] = { ...@@ -107,11 +107,11 @@ static struct ralink_pmx_group rt5350_pinmux_data[] = {
static int rt305x_pinctrl_probe(struct platform_device *pdev) static int rt305x_pinctrl_probe(struct platform_device *pdev)
{ {
if (soc_is_rt5350()) if (soc_is_rt5350())
return ralink_pinctrl_init(pdev, rt5350_pinmux_data); return mtmips_pinctrl_init(pdev, rt5350_pinmux_data);
else if (soc_is_rt305x() || soc_is_rt3350()) else if (soc_is_rt305x() || soc_is_rt3350())
return ralink_pinctrl_init(pdev, rt3050_pinmux_data); return mtmips_pinctrl_init(pdev, rt3050_pinmux_data);
else if (soc_is_rt3352()) else if (soc_is_rt3352())
return ralink_pinctrl_init(pdev, rt3352_pinmux_data); return mtmips_pinctrl_init(pdev, rt3352_pinmux_data);
else else
return -EINVAL; return -EINVAL;
} }
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/platform_device.h> #include <linux/platform_device.h>
#include <linux/of.h> #include <linux/of.h>
#include "pinctrl-ralink.h" #include "pinctrl-mtmips.h"
#define RT3883_GPIO_MODE_UART0_SHIFT 2 #define RT3883_GPIO_MODE_UART0_SHIFT 2
#define RT3883_GPIO_MODE_UART0_MASK 0x7 #define RT3883_GPIO_MODE_UART0_MASK 0x7
...@@ -39,9 +39,9 @@ ...@@ -39,9 +39,9 @@
#define RT3883_GPIO_MODE_LNA_G_GPIO 0x3 #define RT3883_GPIO_MODE_LNA_G_GPIO 0x3
#define RT3883_GPIO_MODE_LNA_G _RT3883_GPIO_MODE_LNA_G(RT3883_GPIO_MODE_LNA_G_MASK) #define RT3883_GPIO_MODE_LNA_G _RT3883_GPIO_MODE_LNA_G(RT3883_GPIO_MODE_LNA_G_MASK)
static struct ralink_pmx_func i2c_grp[] = { FUNC("i2c", 0, 1, 2) }; static struct mtmips_pmx_func i2c_grp[] = { FUNC("i2c", 0, 1, 2) };
static struct ralink_pmx_func spi_grp[] = { FUNC("spi", 0, 3, 4) }; static struct mtmips_pmx_func spi_grp[] = { FUNC("spi", 0, 3, 4) };
static struct ralink_pmx_func uartf_grp[] = { static struct mtmips_pmx_func uartf_grp[] = {
FUNC("uartf", RT3883_GPIO_MODE_UARTF, 7, 8), FUNC("uartf", RT3883_GPIO_MODE_UARTF, 7, 8),
FUNC("pcm uartf", RT3883_GPIO_MODE_PCM_UARTF, 7, 8), FUNC("pcm uartf", RT3883_GPIO_MODE_PCM_UARTF, 7, 8),
FUNC("pcm i2s", RT3883_GPIO_MODE_PCM_I2S, 7, 8), FUNC("pcm i2s", RT3883_GPIO_MODE_PCM_I2S, 7, 8),
...@@ -50,21 +50,21 @@ static struct ralink_pmx_func uartf_grp[] = { ...@@ -50,21 +50,21 @@ static struct ralink_pmx_func uartf_grp[] = {
FUNC("gpio uartf", RT3883_GPIO_MODE_GPIO_UARTF, 7, 4), FUNC("gpio uartf", RT3883_GPIO_MODE_GPIO_UARTF, 7, 4),
FUNC("gpio i2s", RT3883_GPIO_MODE_GPIO_I2S, 7, 4), FUNC("gpio i2s", RT3883_GPIO_MODE_GPIO_I2S, 7, 4),
}; };
static struct ralink_pmx_func uartlite_grp[] = { FUNC("uartlite", 0, 15, 2) }; static struct mtmips_pmx_func uartlite_grp[] = { FUNC("uartlite", 0, 15, 2) };
static struct ralink_pmx_func jtag_grp[] = { FUNC("jtag", 0, 17, 5) }; static struct mtmips_pmx_func jtag_grp[] = { FUNC("jtag", 0, 17, 5) };
static struct ralink_pmx_func mdio_grp[] = { FUNC("mdio", 0, 22, 2) }; static struct mtmips_pmx_func mdio_grp[] = { FUNC("mdio", 0, 22, 2) };
static struct ralink_pmx_func lna_a_grp[] = { FUNC("lna a", 0, 32, 3) }; static struct mtmips_pmx_func lna_a_grp[] = { FUNC("lna a", 0, 32, 3) };
static struct ralink_pmx_func lna_g_grp[] = { FUNC("lna g", 0, 35, 3) }; static struct mtmips_pmx_func lna_g_grp[] = { FUNC("lna g", 0, 35, 3) };
static struct ralink_pmx_func pci_grp[] = { static struct mtmips_pmx_func pci_grp[] = {
FUNC("pci-dev", 0, 40, 32), FUNC("pci-dev", 0, 40, 32),
FUNC("pci-host2", 1, 40, 32), FUNC("pci-host2", 1, 40, 32),
FUNC("pci-host1", 2, 40, 32), FUNC("pci-host1", 2, 40, 32),
FUNC("pci-fnc", 3, 40, 32) FUNC("pci-fnc", 3, 40, 32)
}; };
static struct ralink_pmx_func ge1_grp[] = { FUNC("ge1", 0, 72, 12) }; static struct mtmips_pmx_func ge1_grp[] = { FUNC("ge1", 0, 72, 12) };
static struct ralink_pmx_func ge2_grp[] = { FUNC("ge2", 0, 84, 12) }; static struct mtmips_pmx_func ge2_grp[] = { FUNC("ge2", 0, 84, 12) };
static struct ralink_pmx_group rt3883_pinmux_data[] = { static struct mtmips_pmx_group rt3883_pinmux_data[] = {
GRP("i2c", i2c_grp, 1, RT3883_GPIO_MODE_I2C), GRP("i2c", i2c_grp, 1, RT3883_GPIO_MODE_I2C),
GRP("spi", spi_grp, 1, RT3883_GPIO_MODE_SPI), GRP("spi", spi_grp, 1, RT3883_GPIO_MODE_SPI),
GRP("uartf", uartf_grp, RT3883_GPIO_MODE_UART0_MASK, GRP("uartf", uartf_grp, RT3883_GPIO_MODE_UART0_MASK,
...@@ -83,7 +83,7 @@ static struct ralink_pmx_group rt3883_pinmux_data[] = { ...@@ -83,7 +83,7 @@ static struct ralink_pmx_group rt3883_pinmux_data[] = {
static int rt3883_pinctrl_probe(struct platform_device *pdev) static int rt3883_pinctrl_probe(struct platform_device *pdev)
{ {
return ralink_pinctrl_init(pdev, rt3883_pinmux_data); return mtmips_pinctrl_init(pdev, rt3883_pinmux_data);
} }
static const struct of_device_id rt3883_pinctrl_match[] = { static const struct of_device_id rt3883_pinctrl_match[] = {
......
# SPDX-License-Identifier: GPL-2.0-only
menu "Ralink pinctrl drivers"
depends on RALINK
config PINCTRL_RALINK
bool "Ralink pinctrl driver"
select PINMUX
select GENERIC_PINCONF
config PINCTRL_MT7620
bool "MT7620 pinctrl subdriver"
depends on RALINK && SOC_MT7620
select PINCTRL_RALINK
config PINCTRL_MT7621
bool "MT7621 pinctrl subdriver"
depends on RALINK && SOC_MT7621
select PINCTRL_RALINK
config PINCTRL_MT76X8
bool "MT76X8 pinctrl subdriver"
depends on RALINK && SOC_MT7620
select PINCTRL_RALINK
config PINCTRL_RT2880
bool "RT2880 pinctrl subdriver"
depends on RALINK && SOC_RT288X
select PINCTRL_RALINK
config PINCTRL_RT305X
bool "RT305X pinctrl subdriver"
depends on RALINK && SOC_RT305X
select PINCTRL_RALINK
config PINCTRL_RT3883
bool "RT3883 pinctrl subdriver"
depends on RALINK && SOC_RT3883
select PINCTRL_RALINK
endmenu
# SPDX-License-Identifier: GPL-2.0
obj-$(CONFIG_PINCTRL_RALINK) += pinctrl-ralink.o
obj-$(CONFIG_PINCTRL_MT7620) += pinctrl-mt7620.o
obj-$(CONFIG_PINCTRL_MT7621) += pinctrl-mt7621.o
obj-$(CONFIG_PINCTRL_MT76X8) += pinctrl-mt76x8.o
obj-$(CONFIG_PINCTRL_RT2880) += pinctrl-rt2880.o
obj-$(CONFIG_PINCTRL_RT305X) += pinctrl-rt305x.o
obj-$(CONFIG_PINCTRL_RT3883) += pinctrl-rt3883.o
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment