Message ID | 20240306005230.2638972-7-volodymyr_babchuk@epam.com |
---|---|
State | Changes Requested |
Delegated to: | Caleb Connolly |
Headers | show |
Series | Add support for Qualcomm SA8155-ADP board | expand |
On Wed, 6 Mar 2024 at 06:23, Volodymyr Babchuk <Volodymyr_Babchuk@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@epam.com> > Reviewed-by: Caleb Connolly <caleb.connolly@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@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
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; }