[U-Boot] [PATCH] pinctrl: imx: Fix select input issue

Peng Fan peng.fan at nxp.com
Sat Jan 5 09:26:31 UTC 2019


Reviewed-by: Peng Fan <peng.fan at nxp.com>

> -----Original Message-----
> From: Ye Li
> Sent: 2019年1月4日 17:08
> To: sbabic at denx.de; u-boot at lists.denx.de
> Cc: Fabio Estevam <fabio.estevam at nxp.com>; Peng Fan
> <peng.fan at nxp.com>; dl-uboot-imx <uboot-imx at nxp.com>
> Subject: [PATCH] pinctrl: imx: Fix select input issue
> 
> The pinctrl supports to set any bit in input register on iMX6 if the MSB of input
> value is 0xff. But the driver uses signed int for input value, so when executing
> the codes below, it won't meet.
> Because this is arithmetic right shift.
> 
>     if (input_val >> 24 == 0xff)
> 
> Fix the issue by changing the input_val, config_val and mux_mode to u32.
> 
> Signed-off-by: Ye Li <ye.li at nxp.com>
> Reviewed-by: Fugang Duan <fugang.duan at nxp.com>
> ---
>  drivers/pinctrl/nxp/pinctrl-imx.c | 3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/drivers/pinctrl/nxp/pinctrl-imx.c
> b/drivers/pinctrl/nxp/pinctrl-imx.c
> index 04ea82a..0c9d15c 100644
> --- a/drivers/pinctrl/nxp/pinctrl-imx.c
> +++ b/drivers/pinctrl/nxp/pinctrl-imx.c
> @@ -22,7 +22,8 @@ static int imx_pinctrl_set_state(struct udevice *dev,
> struct udevice *config)
>  	const struct fdt_property *prop;
>  	u32 *pin_data;
>  	int npins, size, pin_size;
> -	int mux_reg, conf_reg, input_reg, input_val, mux_mode, config_val;
> +	int mux_reg, conf_reg, input_reg;
> +	u32 input_val, mux_mode, config_val;
>  	u32 mux_shift = info->mux_mask ? ffs(info->mux_mask) - 1 : 0;
>  	int i, j = 0;
> 
> --
> 2.7.4



More information about the U-Boot mailing list