[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