Export necessary functions to support building i.MX common pinctrl
driver and its user to be built as module.
Signed-off-by: Anson Huang <[email protected]>
---
Changes since V1:
- Separate i.MX and i.MX SCU pinctrl driver to 2 patches;
- Support building i.MX common pinctrl driver itself as module.
---
drivers/pinctrl/freescale/Kconfig | 2 +-
drivers/pinctrl/freescale/pinctrl-imx.c | 4 ++++
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/drivers/pinctrl/freescale/Kconfig b/drivers/pinctrl/freescale/Kconfig
index a3a30f1d..58d48df 100644
--- a/drivers/pinctrl/freescale/Kconfig
+++ b/drivers/pinctrl/freescale/Kconfig
@@ -1,6 +1,6 @@
# SPDX-License-Identifier: GPL-2.0-only
config PINCTRL_IMX
- bool
+ tristate "IMX pinctrl driver"
select GENERIC_PINCTRL_GROUPS
select GENERIC_PINMUX_FUNCTIONS
select GENERIC_PINCONF
diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c
index cb7e0f0..116d808 100644
--- a/drivers/pinctrl/freescale/pinctrl-imx.c
+++ b/drivers/pinctrl/freescale/pinctrl-imx.c
@@ -11,6 +11,7 @@
#include <linux/init.h>
#include <linux/io.h>
#include <linux/mfd/syscon.h>
+#include <linux/module.h>
#include <linux/of.h>
#include <linux/of_device.h>
#include <linux/of_address.h>
@@ -878,6 +879,7 @@ int imx_pinctrl_probe(struct platform_device *pdev,
return pinctrl_enable(ipctl->pctl);
}
+EXPORT_SYMBOL_GPL(imx_pinctrl_probe);
static int __maybe_unused imx_pinctrl_suspend(struct device *dev)
{
@@ -897,3 +899,5 @@ const struct dev_pm_ops imx_pinctrl_pm_ops = {
SET_LATE_SYSTEM_SLEEP_PM_OPS(imx_pinctrl_suspend,
imx_pinctrl_resume)
};
+EXPORT_SYMBOL_GPL(imx_pinctrl_pm_ops);
+MODULE_LICENSE("GPL v2");
--
2.7.4
Hi Anson,
Thank you for the patch! Yet something to improve:
[auto build test ERROR on pinctrl/devel]
[also build test ERROR on v5.7 next-20200608]
[if your patch is applied to the wrong git tree, please drop us a note to help
improve the system. BTW, we also suggest to use '--base' option to specify the
base tree in git format-patch, please see https://stackoverflow.com/a/37406982]
url: https://github.com/0day-ci/linux/commits/Anson-Huang/Support-i-MX8-SoCs-pinctrl-drivers-built-as-module/20200608-225055
base: https://git.kernel.org/pub/scm/linux/kernel/git/linusw/linux-pinctrl.git devel
config: x86_64-randconfig-s032-20200609 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-13) 9.3.0
reproduce:
# apt-get install sparse
# sparse version: v0.6.1-247-gcadbd124-dirty
# save the attached .config to linux build tree
make W=1 C=1 ARCH=x86_64 CF='-fdiagnostic-prefix -D__CHECK_ENDIAN__'
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>
All errors (new ones prefixed by >>, old ones prefixed by <<):
drivers/pinctrl/freescale/pinctrl-imx.c: In function 'imx_pinconf_parse_generic_config':
>> drivers/pinctrl/freescale/pinctrl-imx.c:341:8: error: implicit declaration of function 'pinconf_generic_parse_dt_config'; did you mean 'pinconf_generic_dump_config'? [-Werror=implicit-function-declaration]
341 | ret = pinconf_generic_parse_dt_config(np, pctl, &configs,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
| pinconf_generic_dump_config
cc1: some warnings being treated as errors
vim +341 drivers/pinctrl/freescale/pinctrl-imx.c
a5cadbbb081cb84 Dong Aisheng 2017-05-19 328
a5cadbbb081cb84 Dong Aisheng 2017-05-19 329 static u32 imx_pinconf_parse_generic_config(struct device_node *np,
a5cadbbb081cb84 Dong Aisheng 2017-05-19 330 struct imx_pinctrl *ipctl)
a5cadbbb081cb84 Dong Aisheng 2017-05-19 331 {
f5843492ecefcf7 Stefan Agner 2018-01-06 332 const struct imx_pinctrl_soc_info *info = ipctl->info;
a5cadbbb081cb84 Dong Aisheng 2017-05-19 333 struct pinctrl_dev *pctl = ipctl->pctl;
a5cadbbb081cb84 Dong Aisheng 2017-05-19 334 unsigned int num_configs;
a5cadbbb081cb84 Dong Aisheng 2017-05-19 335 unsigned long *configs;
a5cadbbb081cb84 Dong Aisheng 2017-05-19 336 int ret;
a5cadbbb081cb84 Dong Aisheng 2017-05-19 337
a5cadbbb081cb84 Dong Aisheng 2017-05-19 338 if (!info->generic_pinconf)
a5cadbbb081cb84 Dong Aisheng 2017-05-19 339 return 0;
a5cadbbb081cb84 Dong Aisheng 2017-05-19 340
a5cadbbb081cb84 Dong Aisheng 2017-05-19 @341 ret = pinconf_generic_parse_dt_config(np, pctl, &configs,
a5cadbbb081cb84 Dong Aisheng 2017-05-19 342 &num_configs);
a5cadbbb081cb84 Dong Aisheng 2017-05-19 343 if (ret)
a5cadbbb081cb84 Dong Aisheng 2017-05-19 344 return 0;
a5cadbbb081cb84 Dong Aisheng 2017-05-19 345
a5cadbbb081cb84 Dong Aisheng 2017-05-19 346 return imx_pinconf_decode_generic_config(ipctl, configs, num_configs);
a5cadbbb081cb84 Dong Aisheng 2017-05-19 347 }
a5cadbbb081cb84 Dong Aisheng 2017-05-19 348
:::::: The code at line 341 was first introduced by commit
:::::: a5cadbbb081cb84a9fdb14391fb461a41f089a0a pinctrl: imx: add generic pin config core support
:::::: TO: Dong Aisheng <[email protected]>
:::::: CC: Linus Walleij <[email protected]>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]