Skip to content

Commit

Permalink
pinctrl/meson: enable building as modules
Browse files Browse the repository at this point in the history
Enable pinctrl drivers for 64-bit Amlogic SoCs to be built as modules.

The default is still built-in, this only adds the option of building
as modules.

Signed-off-by: Kevin Hilman <khilman@baylibre.com>
Link: https://lore.kernel.org/r/20201026183025.31768-1-khilman@baylibre.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
  • Loading branch information
Kevin Hilman authored and Linus Walleij committed Nov 5, 2020
1 parent 3650b22 commit 9c65441
Show file tree
Hide file tree
Showing 10 changed files with 38 additions and 13 deletions.
17 changes: 9 additions & 8 deletions drivers/pinctrl/meson/Kconfig
Original file line number Diff line number Diff line change
@@ -1,8 +1,9 @@
# SPDX-License-Identifier: GPL-2.0-only
menuconfig PINCTRL_MESON
bool "Amlogic SoC pinctrl drivers"
tristate "Amlogic SoC pinctrl drivers"
depends on ARCH_MESON
depends on OF
default y
select PINMUX
select PINCONF
select GENERIC_PINCONF
Expand All @@ -25,37 +26,37 @@ config PINCTRL_MESON8B
default y

config PINCTRL_MESON_GXBB
bool "Meson gxbb SoC pinctrl driver"
tristate "Meson gxbb SoC pinctrl driver"
depends on ARM64
select PINCTRL_MESON8_PMX
default y

config PINCTRL_MESON_GXL
bool "Meson gxl SoC pinctrl driver"
tristate "Meson gxl SoC pinctrl driver"
depends on ARM64
select PINCTRL_MESON8_PMX
default y

config PINCTRL_MESON8_PMX
bool
tristate

config PINCTRL_MESON_AXG
bool "Meson axg Soc pinctrl driver"
tristate "Meson axg Soc pinctrl driver"
depends on ARM64
select PINCTRL_MESON_AXG_PMX
default y

config PINCTRL_MESON_AXG_PMX
bool
tristate

config PINCTRL_MESON_G12A
bool "Meson g12a Soc pinctrl driver"
tristate "Meson g12a Soc pinctrl driver"
depends on ARM64
select PINCTRL_MESON_AXG_PMX
default y

config PINCTRL_MESON_A1
bool "Meson a1 Soc pinctrl driver"
tristate "Meson a1 Soc pinctrl driver"
depends on ARM64
select PINCTRL_MESON_AXG_PMX
default y
Expand Down
4 changes: 3 additions & 1 deletion drivers/pinctrl/meson/pinctrl-meson-a1.c
Original file line number Diff line number Diff line change
Expand Up @@ -925,6 +925,7 @@ static const struct of_device_id meson_a1_pinctrl_dt_match[] = {
},
{ },
};
MODULE_DEVICE_TABLE(of, meson_a1_pinctrl_dt_match);

static struct platform_driver meson_a1_pinctrl_driver = {
.probe = meson_pinctrl_probe,
Expand All @@ -934,4 +935,5 @@ static struct platform_driver meson_a1_pinctrl_driver = {
},
};

builtin_platform_driver(meson_a1_pinctrl_driver);
module_platform_driver(meson_a1_pinctrl_driver);
MODULE_LICENSE("Dual BSD/GPL");
3 changes: 3 additions & 0 deletions drivers/pinctrl/meson/pinctrl-meson-axg-pmx.c
Original file line number Diff line number Diff line change
Expand Up @@ -116,3 +116,6 @@ const struct pinmux_ops meson_axg_pmx_ops = {
.get_function_groups = meson_pmx_get_groups,
.gpio_request_enable = meson_axg_pmx_request_gpio,
};
EXPORT_SYMBOL_GPL(meson_axg_pmx_ops);

MODULE_LICENSE("Dual BSD/GPL");
4 changes: 3 additions & 1 deletion drivers/pinctrl/meson/pinctrl-meson-axg.c
Original file line number Diff line number Diff line change
Expand Up @@ -1080,6 +1080,7 @@ static const struct of_device_id meson_axg_pinctrl_dt_match[] = {
},
{ },
};
MODULE_DEVICE_TABLE(of, meson_axg_pinctrl_dt_match);

static struct platform_driver meson_axg_pinctrl_driver = {
.probe = meson_pinctrl_probe,
Expand All @@ -1089,4 +1090,5 @@ static struct platform_driver meson_axg_pinctrl_driver = {
},
};

builtin_platform_driver(meson_axg_pinctrl_driver);
module_platform_driver(meson_axg_pinctrl_driver);
MODULE_LICENSE("Dual BSD/GPL");
4 changes: 3 additions & 1 deletion drivers/pinctrl/meson/pinctrl-meson-g12a.c
Original file line number Diff line number Diff line change
Expand Up @@ -1410,6 +1410,7 @@ static const struct of_device_id meson_g12a_pinctrl_dt_match[] = {
},
{ },
};
MODULE_DEVICE_TABLE(of, meson_g12a_pinctrl_dt_match);

static struct platform_driver meson_g12a_pinctrl_driver = {
.probe = meson_pinctrl_probe,
Expand All @@ -1419,4 +1420,5 @@ static struct platform_driver meson_g12a_pinctrl_driver = {
},
};

builtin_platform_driver(meson_g12a_pinctrl_driver);
module_platform_driver(meson_g12a_pinctrl_driver);
MODULE_LICENSE("Dual BSD/GPL");
4 changes: 3 additions & 1 deletion drivers/pinctrl/meson/pinctrl-meson-gxbb.c
Original file line number Diff line number Diff line change
Expand Up @@ -900,6 +900,7 @@ static const struct of_device_id meson_gxbb_pinctrl_dt_match[] = {
},
{ },
};
MODULE_DEVICE_TABLE(of, meson_gxbb_pinctrl_dt_match);

static struct platform_driver meson_gxbb_pinctrl_driver = {
.probe = meson_pinctrl_probe,
Expand All @@ -908,4 +909,5 @@ static struct platform_driver meson_gxbb_pinctrl_driver = {
.of_match_table = meson_gxbb_pinctrl_dt_match,
},
};
builtin_platform_driver(meson_gxbb_pinctrl_driver);
module_platform_driver(meson_gxbb_pinctrl_driver);
MODULE_LICENSE("GPL v2");
4 changes: 3 additions & 1 deletion drivers/pinctrl/meson/pinctrl-meson-gxl.c
Original file line number Diff line number Diff line change
Expand Up @@ -861,6 +861,7 @@ static const struct of_device_id meson_gxl_pinctrl_dt_match[] = {
},
{ },
};
MODULE_DEVICE_TABLE(of, meson_gxl_pinctrl_dt_match);

static struct platform_driver meson_gxl_pinctrl_driver = {
.probe = meson_pinctrl_probe,
Expand All @@ -869,4 +870,5 @@ static struct platform_driver meson_gxl_pinctrl_driver = {
.of_match_table = meson_gxl_pinctrl_dt_match,
},
};
builtin_platform_driver(meson_gxl_pinctrl_driver);
module_platform_driver(meson_gxl_pinctrl_driver);
MODULE_LICENSE("GPL v2");
8 changes: 8 additions & 0 deletions drivers/pinctrl/meson/pinctrl-meson.c
Original file line number Diff line number Diff line change
Expand Up @@ -152,6 +152,7 @@ int meson_pmx_get_funcs_count(struct pinctrl_dev *pcdev)

return pc->data->num_funcs;
}
EXPORT_SYMBOL_GPL(meson_pmx_get_funcs_count);

const char *meson_pmx_get_func_name(struct pinctrl_dev *pcdev,
unsigned selector)
Expand All @@ -160,6 +161,7 @@ const char *meson_pmx_get_func_name(struct pinctrl_dev *pcdev,

return pc->data->funcs[selector].name;
}
EXPORT_SYMBOL_GPL(meson_pmx_get_func_name);

int meson_pmx_get_groups(struct pinctrl_dev *pcdev, unsigned selector,
const char * const **groups,
Expand All @@ -172,6 +174,7 @@ int meson_pmx_get_groups(struct pinctrl_dev *pcdev, unsigned selector,

return 0;
}
EXPORT_SYMBOL_GPL(meson_pmx_get_groups);

static int meson_pinconf_set_gpio_bit(struct meson_pinctrl *pc,
unsigned int pin,
Expand Down Expand Up @@ -723,6 +726,7 @@ int meson8_aobus_parse_dt_extra(struct meson_pinctrl *pc)

return 0;
}
EXPORT_SYMBOL_GPL(meson8_aobus_parse_dt_extra);

int meson_a1_parse_dt_extra(struct meson_pinctrl *pc)
{
Expand All @@ -732,6 +736,7 @@ int meson_a1_parse_dt_extra(struct meson_pinctrl *pc)

return 0;
}
EXPORT_SYMBOL_GPL(meson_a1_parse_dt_extra);

int meson_pinctrl_probe(struct platform_device *pdev)
{
Expand Down Expand Up @@ -766,3 +771,6 @@ int meson_pinctrl_probe(struct platform_device *pdev)

return meson_gpiolib_register(pc);
}
EXPORT_SYMBOL_GPL(meson_pinctrl_probe);

MODULE_LICENSE("GPL v2");
1 change: 1 addition & 0 deletions drivers/pinctrl/meson/pinctrl-meson.h
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@
#include <linux/platform_device.h>
#include <linux/regmap.h>
#include <linux/types.h>
#include <linux/module.h>

struct meson_pinctrl;

Expand Down
2 changes: 2 additions & 0 deletions drivers/pinctrl/meson/pinctrl-meson8-pmx.c
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,5 @@ const struct pinmux_ops meson8_pmx_ops = {
.get_function_groups = meson_pmx_get_groups,
.gpio_request_enable = meson8_pmx_request_gpio,
};
EXPORT_SYMBOL_GPL(meson8_pmx_ops);
MODULE_LICENSE("GPL v2");

0 comments on commit 9c65441

Please sign in to comment.