[PATCH v2 6/8] pinctrl: qcom: pass pin number to get_function_mux callback
Sumit Garg
sumit.garg at linaro.org
Wed Mar 6 07:21:50 CET 2024
On Wed, 6 Mar 2024 at 06:23, Volodymyr Babchuk
<Volodymyr_Babchuk at epam.com> wrote:
>
> This patch is the preparation for SM8150 support. This new SoC
> depending on the particular pin can have different numbers for the
> same function. For example "rgmii" function for GPIO4 has id=2 while
> for GPIO59 it has id=1. So, to support this type of SoCs,
> get_function_mux() callback needs to know for which pin the function
> is requested.
>
> Signed-off-by: Volodymyr Babchuk <volodymyr_babchuk at epam.com>
> Reviewed-by: Caleb Connolly <caleb.connolly at linaro.org>
>
> ---
>
> Changes in v2:
> - Added Caleb's R-b tag
>
> drivers/pinctrl/qcom/pinctrl-apq8016.c | 3 ++-
> drivers/pinctrl/qcom/pinctrl-apq8096.c | 3 ++-
> drivers/pinctrl/qcom/pinctrl-ipq4019.c | 3 ++-
> drivers/pinctrl/qcom/pinctrl-qcom.c | 4 ++--
> drivers/pinctrl/qcom/pinctrl-qcom.h | 3 ++-
> drivers/pinctrl/qcom/pinctrl-qcs404.c | 3 ++-
> drivers/pinctrl/qcom/pinctrl-sdm845.c | 3 ++-
> 7 files changed, 14 insertions(+), 8 deletions(-)
>
Reviewed-by: Sumit Garg <sumit.garg at linaro.org>
-Sumit
> diff --git a/drivers/pinctrl/qcom/pinctrl-apq8016.c b/drivers/pinctrl/qcom/pinctrl-apq8016.c
> index db0e212468..a9a00f4b08 100644
> --- a/drivers/pinctrl/qcom/pinctrl-apq8016.c
> +++ b/drivers/pinctrl/qcom/pinctrl-apq8016.c
> @@ -49,7 +49,8 @@ static const char *apq8016_get_pin_name(struct udevice *dev,
> }
> }
>
> -static unsigned int apq8016_get_function_mux(unsigned int selector)
> +static unsigned int apq8016_get_function_mux(__maybe_unused unsigned int pin,
> + unsigned int selector)
> {
> return msm_pinctrl_functions[selector].val;
> }
> diff --git a/drivers/pinctrl/qcom/pinctrl-apq8096.c b/drivers/pinctrl/qcom/pinctrl-apq8096.c
> index 880df8fe3c..9697cb5beb 100644
> --- a/drivers/pinctrl/qcom/pinctrl-apq8096.c
> +++ b/drivers/pinctrl/qcom/pinctrl-apq8096.c
> @@ -44,7 +44,8 @@ static const char *apq8096_get_pin_name(struct udevice *dev,
> }
> }
>
> -static unsigned int apq8096_get_function_mux(unsigned int selector)
> +static unsigned int apq8096_get_function_mux(__maybe_unused unsigned int pin,
> + unsigned int selector)
> {
> return msm_pinctrl_functions[selector].val;
> }
> diff --git a/drivers/pinctrl/qcom/pinctrl-ipq4019.c b/drivers/pinctrl/qcom/pinctrl-ipq4019.c
> index 74c04ab87c..4479230313 100644
> --- a/drivers/pinctrl/qcom/pinctrl-ipq4019.c
> +++ b/drivers/pinctrl/qcom/pinctrl-ipq4019.c
> @@ -40,7 +40,8 @@ static const char *ipq4019_get_pin_name(struct udevice *dev,
> return pin_name;
> }
>
> -static unsigned int ipq4019_get_function_mux(unsigned int selector)
> +static unsigned int ipq4019_get_function_mux(__maybe_unused unsigned int pin,
> + unsigned int selector)
> {
> return msm_pinctrl_functions[selector].val;
> }
> diff --git a/drivers/pinctrl/qcom/pinctrl-qcom.c b/drivers/pinctrl/qcom/pinctrl-qcom.c
> index ee0624df29..909e566acf 100644
> --- a/drivers/pinctrl/qcom/pinctrl-qcom.c
> +++ b/drivers/pinctrl/qcom/pinctrl-qcom.c
> @@ -83,14 +83,14 @@ static int msm_pinmux_set(struct udevice *dev, unsigned int pin_selector,
> unsigned int func_selector)
> {
> struct msm_pinctrl_priv *priv = dev_get_priv(dev);
> + u32 func = priv->data->get_function_mux(pin_selector, func_selector);
>
> /* Always NOP for special pins, assume they're in the correct state */
> if (qcom_is_special_pin(&priv->data->pin_data, pin_selector))
> return 0;
>
> clrsetbits_le32(priv->base + GPIO_CONFIG_REG(priv, pin_selector),
> - TLMM_FUNC_SEL_MASK | TLMM_GPIO_DISABLE,
> - priv->data->get_function_mux(func_selector) << 2);
> + TLMM_FUNC_SEL_MASK | TLMM_GPIO_DISABLE, func << 2);
> return 0;
> }
>
> diff --git a/drivers/pinctrl/qcom/pinctrl-qcom.h b/drivers/pinctrl/qcom/pinctrl-qcom.h
> index 07f2eae9ba..49b7bfbc00 100644
> --- a/drivers/pinctrl/qcom/pinctrl-qcom.h
> +++ b/drivers/pinctrl/qcom/pinctrl-qcom.h
> @@ -18,7 +18,8 @@ struct msm_pinctrl_data {
> int functions_count;
> const char *(*get_function_name)(struct udevice *dev,
> unsigned int selector);
> - unsigned int (*get_function_mux)(unsigned int selector);
> + unsigned int (*get_function_mux)(unsigned int pin,
> + unsigned int selector);
> const char *(*get_pin_name)(struct udevice *dev,
> unsigned int selector);
> };
> diff --git a/drivers/pinctrl/qcom/pinctrl-qcs404.c b/drivers/pinctrl/qcom/pinctrl-qcs404.c
> index 3a2d468599..4b7c670c90 100644
> --- a/drivers/pinctrl/qcom/pinctrl-qcs404.c
> +++ b/drivers/pinctrl/qcom/pinctrl-qcs404.c
> @@ -94,7 +94,8 @@ static const char *qcs404_get_pin_name(struct udevice *dev,
> }
> }
>
> -static unsigned int qcs404_get_function_mux(unsigned int selector)
> +static unsigned int qcs404_get_function_mux(__maybe_unused unsigned int pin,
> + unsigned int selector)
> {
> return msm_pinctrl_functions[selector].val;
> }
> diff --git a/drivers/pinctrl/qcom/pinctrl-sdm845.c b/drivers/pinctrl/qcom/pinctrl-sdm845.c
> index 76bd8c4ef4..459a4329ec 100644
> --- a/drivers/pinctrl/qcom/pinctrl-sdm845.c
> +++ b/drivers/pinctrl/qcom/pinctrl-sdm845.c
> @@ -70,7 +70,8 @@ static const char *sdm845_get_pin_name(struct udevice *dev,
> return pin_name;
> }
>
> -static unsigned int sdm845_get_function_mux(unsigned int selector)
> +static unsigned int sdm845_get_function_mux(__maybe_unused unsigned int pin,
> + unsigned int selector)
> {
> return msm_pinctrl_functions[selector].val;
> }
> --
> 2.43.0
More information about the U-Boot
mailing list