Chester Lin
966b0e64b6
pinctrl: s32cc: Use generic struct data to describe pin function
...
Replace struct s32_pmx_func with generic struct pinfunction since they
have the same data fields.
Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Signed-off-by: Chester Lin <clin@suse.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Link: https://lore.kernel.org/r/20230327062754.3326-5-clin@suse.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2023-03-27 23:36:18 +02:00
Chester Lin
8ff169e844
pinctrl: s32cc: embed generic struct pingroup
...
Use generic data structure to describe pin control groups in S32 SoC family
and drop duplicated struct members.
Suggested-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Signed-off-by: Chester Lin <clin@suse.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Link: https://lore.kernel.org/r/20230327062754.3326-4-clin@suse.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2023-03-27 23:35:35 +02:00
Chester Lin
48b016cbb2
pinctrl: s32cc: refactor pin config parsing
...
Move common codes into smaller inline functions and remove argument checks
that are not actually used by pull up/down bits in the S32 MSCR register.
Signed-off-by: Chester Lin <clin@suse.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Link: https://lore.kernel.org/r/20230327062754.3326-3-clin@suse.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2023-03-27 23:35:00 +02:00
Chester Lin
08b71a71f3
pinctrl: s32: refine error/return/config checks and simplify driver codes
...
Improve error/return code handlings and config checks in order to have
better reliability and simplify driver codes such as removing/changing
improper macros, blanks, print formats and helper calls.
Signed-off-by: Chester Lin <clin@suse.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Link: https://lore.kernel.org/r/20230327062754.3326-2-clin@suse.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2023-03-27 23:34:24 +02:00
Arnd Bergmann
f7fc5768e5
pinctrl: s32cc: fix !CONFIG_PM_SLEEP build error
...
The declaration of s32_pinctrl_suspend/s32_pinctrl_resume is hidden
in an #ifdef, causing a compilation failure when CONFIG_PM_SLEEP is
disabled:
drivers/pinctrl/nxp/pinctrl-s32g2.c:754:38: error: 's32_pinctrl_suspend' undeclared here (not in a function); did you mean 's32_pinctrl_probe'?
drivers/pinctrl/nxp/pinctrl-s32g2.c:754:9: note: in expansion of macro 'SET_LATE_SYSTEM_SLEEP_PM_OPS'
754 | SET_LATE_SYSTEM_SLEEP_PM_OPS(s32_pinctrl_suspend,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
Remove the bogus #ifdef and __maybe_unused annation on the global
functions, and instead use the proper LATE_SYSTEM_SLEEP_PM_OPS()
macro to pick set the function pointer.
As the function definition is still in the #ifdef block, this leads
to the correct code in all configurations.
Fixes: fd84aaa817 ("pinctrl: add NXP S32 SoC family support")
Signed-off-by: Arnd Bergmann <arnd@arndb.de >
Link: https://lore.kernel.org/r/20230310140250.359147-1-arnd@kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2023-03-13 11:19:39 +01:00
Chester Lin
fd84aaa817
pinctrl: add NXP S32 SoC family support
...
Add the pinctrl driver for NXP S32 SoC family. This driver is mainly based
on NXP's downstream implementation on nxp-auto-linux repo[1].
[1] https://github.com/nxp-auto-linux/linux/tree/bsp35.0-5.15.73-rt/drivers/pinctrl/freescale
Signed-off-by: Matthew Nunez <matthew.nunez@nxp.com >
Signed-off-by: Phu Luu An <phu.luuan@nxp.com >
Signed-off-by: Stefan-Gabriel Mirea <stefan-gabriel.mirea@nxp.com >
Signed-off-by: Larisa Grigore <larisa.grigore@nxp.com >
Signed-off-by: Ghennadi Procopciuc <Ghennadi.Procopciuc@oss.nxp.com >
Signed-off-by: Andrei Stefanescu <andrei.stefanescu@nxp.com >
Signed-off-by: Radu Pirea <radu-nicolae.pirea@nxp.com >
Signed-off-by: Chester Lin <clin@suse.com >
Link: https://lore.kernel.org/r/20230220023320.3499-3-clin@suse.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2023-03-06 14:27:15 +01:00