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

pinctrl/meson: enable building as modules

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>

authored by

Kevin Hilman and committed by
Linus Walleij
9c65441e 3650b228

+38 -13
+9 -8
drivers/pinctrl/meson/Kconfig
··· 1 1 # SPDX-License-Identifier: GPL-2.0-only 2 2 menuconfig PINCTRL_MESON 3 - bool "Amlogic SoC pinctrl drivers" 3 + tristate "Amlogic SoC pinctrl drivers" 4 4 depends on ARCH_MESON 5 5 depends on OF 6 + default y 6 7 select PINMUX 7 8 select PINCONF 8 9 select GENERIC_PINCONF ··· 26 25 default y 27 26 28 27 config PINCTRL_MESON_GXBB 29 - bool "Meson gxbb SoC pinctrl driver" 28 + tristate "Meson gxbb SoC pinctrl driver" 30 29 depends on ARM64 31 30 select PINCTRL_MESON8_PMX 32 31 default y 33 32 34 33 config PINCTRL_MESON_GXL 35 - bool "Meson gxl SoC pinctrl driver" 34 + tristate "Meson gxl SoC pinctrl driver" 36 35 depends on ARM64 37 36 select PINCTRL_MESON8_PMX 38 37 default y 39 38 40 39 config PINCTRL_MESON8_PMX 41 - bool 40 + tristate 42 41 43 42 config PINCTRL_MESON_AXG 44 - bool "Meson axg Soc pinctrl driver" 43 + tristate "Meson axg Soc pinctrl driver" 45 44 depends on ARM64 46 45 select PINCTRL_MESON_AXG_PMX 47 46 default y 48 47 49 48 config PINCTRL_MESON_AXG_PMX 50 - bool 49 + tristate 51 50 52 51 config PINCTRL_MESON_G12A 53 - bool "Meson g12a Soc pinctrl driver" 52 + tristate "Meson g12a Soc pinctrl driver" 54 53 depends on ARM64 55 54 select PINCTRL_MESON_AXG_PMX 56 55 default y 57 56 58 57 config PINCTRL_MESON_A1 59 - bool "Meson a1 Soc pinctrl driver" 58 + tristate "Meson a1 Soc pinctrl driver" 60 59 depends on ARM64 61 60 select PINCTRL_MESON_AXG_PMX 62 61 default y
+3 -1
drivers/pinctrl/meson/pinctrl-meson-a1.c
··· 925 925 }, 926 926 { }, 927 927 }; 928 + MODULE_DEVICE_TABLE(of, meson_a1_pinctrl_dt_match); 928 929 929 930 static struct platform_driver meson_a1_pinctrl_driver = { 930 931 .probe = meson_pinctrl_probe, ··· 935 934 }, 936 935 }; 937 936 938 - builtin_platform_driver(meson_a1_pinctrl_driver); 937 + module_platform_driver(meson_a1_pinctrl_driver); 938 + MODULE_LICENSE("Dual BSD/GPL");
+3
drivers/pinctrl/meson/pinctrl-meson-axg-pmx.c
··· 116 116 .get_function_groups = meson_pmx_get_groups, 117 117 .gpio_request_enable = meson_axg_pmx_request_gpio, 118 118 }; 119 + EXPORT_SYMBOL_GPL(meson_axg_pmx_ops); 120 + 121 + MODULE_LICENSE("Dual BSD/GPL");
+3 -1
drivers/pinctrl/meson/pinctrl-meson-axg.c
··· 1080 1080 }, 1081 1081 { }, 1082 1082 }; 1083 + MODULE_DEVICE_TABLE(of, meson_axg_pinctrl_dt_match); 1083 1084 1084 1085 static struct platform_driver meson_axg_pinctrl_driver = { 1085 1086 .probe = meson_pinctrl_probe, ··· 1090 1089 }, 1091 1090 }; 1092 1091 1093 - builtin_platform_driver(meson_axg_pinctrl_driver); 1092 + module_platform_driver(meson_axg_pinctrl_driver); 1093 + MODULE_LICENSE("Dual BSD/GPL");
+3 -1
drivers/pinctrl/meson/pinctrl-meson-g12a.c
··· 1410 1410 }, 1411 1411 { }, 1412 1412 }; 1413 + MODULE_DEVICE_TABLE(of, meson_g12a_pinctrl_dt_match); 1413 1414 1414 1415 static struct platform_driver meson_g12a_pinctrl_driver = { 1415 1416 .probe = meson_pinctrl_probe, ··· 1420 1419 }, 1421 1420 }; 1422 1421 1423 - builtin_platform_driver(meson_g12a_pinctrl_driver); 1422 + module_platform_driver(meson_g12a_pinctrl_driver); 1423 + MODULE_LICENSE("Dual BSD/GPL");
+3 -1
drivers/pinctrl/meson/pinctrl-meson-gxbb.c
··· 900 900 }, 901 901 { }, 902 902 }; 903 + MODULE_DEVICE_TABLE(of, meson_gxbb_pinctrl_dt_match); 903 904 904 905 static struct platform_driver meson_gxbb_pinctrl_driver = { 905 906 .probe = meson_pinctrl_probe, ··· 909 908 .of_match_table = meson_gxbb_pinctrl_dt_match, 910 909 }, 911 910 }; 912 - builtin_platform_driver(meson_gxbb_pinctrl_driver); 911 + module_platform_driver(meson_gxbb_pinctrl_driver); 912 + MODULE_LICENSE("GPL v2");
+3 -1
drivers/pinctrl/meson/pinctrl-meson-gxl.c
··· 861 861 }, 862 862 { }, 863 863 }; 864 + MODULE_DEVICE_TABLE(of, meson_gxl_pinctrl_dt_match); 864 865 865 866 static struct platform_driver meson_gxl_pinctrl_driver = { 866 867 .probe = meson_pinctrl_probe, ··· 870 869 .of_match_table = meson_gxl_pinctrl_dt_match, 871 870 }, 872 871 }; 873 - builtin_platform_driver(meson_gxl_pinctrl_driver); 872 + module_platform_driver(meson_gxl_pinctrl_driver); 873 + MODULE_LICENSE("GPL v2");
+8
drivers/pinctrl/meson/pinctrl-meson.c
··· 152 152 153 153 return pc->data->num_funcs; 154 154 } 155 + EXPORT_SYMBOL_GPL(meson_pmx_get_funcs_count); 155 156 156 157 const char *meson_pmx_get_func_name(struct pinctrl_dev *pcdev, 157 158 unsigned selector) ··· 161 160 162 161 return pc->data->funcs[selector].name; 163 162 } 163 + EXPORT_SYMBOL_GPL(meson_pmx_get_func_name); 164 164 165 165 int meson_pmx_get_groups(struct pinctrl_dev *pcdev, unsigned selector, 166 166 const char * const **groups, ··· 174 172 175 173 return 0; 176 174 } 175 + EXPORT_SYMBOL_GPL(meson_pmx_get_groups); 177 176 178 177 static int meson_pinconf_set_gpio_bit(struct meson_pinctrl *pc, 179 178 unsigned int pin, ··· 726 723 727 724 return 0; 728 725 } 726 + EXPORT_SYMBOL_GPL(meson8_aobus_parse_dt_extra); 729 727 730 728 int meson_a1_parse_dt_extra(struct meson_pinctrl *pc) 731 729 { ··· 736 732 737 733 return 0; 738 734 } 735 + EXPORT_SYMBOL_GPL(meson_a1_parse_dt_extra); 739 736 740 737 int meson_pinctrl_probe(struct platform_device *pdev) 741 738 { ··· 771 766 772 767 return meson_gpiolib_register(pc); 773 768 } 769 + EXPORT_SYMBOL_GPL(meson_pinctrl_probe); 770 + 771 + MODULE_LICENSE("GPL v2");
+1
drivers/pinctrl/meson/pinctrl-meson.h
··· 10 10 #include <linux/platform_device.h> 11 11 #include <linux/regmap.h> 12 12 #include <linux/types.h> 13 + #include <linux/module.h> 13 14 14 15 struct meson_pinctrl; 15 16
+2
drivers/pinctrl/meson/pinctrl-meson8-pmx.c
··· 100 100 .get_function_groups = meson_pmx_get_groups, 101 101 .gpio_request_enable = meson8_pmx_request_gpio, 102 102 }; 103 + EXPORT_SYMBOL_GPL(meson8_pmx_ops); 104 + MODULE_LICENSE("GPL v2");