[PATCH] pinctrl: fsl: imx: Check for 0 config register

Uwe Kleine-König u.kleine-koenig at pengutronix.de
Fri Mar 27 03:41:34 PDT 2015

On Fri, Mar 27, 2015 at 11:32:31AM +0100, Stefan Agner wrote:
> On 2015-03-24 16:26, Markus Pargmann wrote:
> > 0 is used in all pinfunction definitions when a config register is not
> > available, for example imx25-pinfunc.h. If a configuration value is used
> > for such a pinfunction the driver will always write it to the
> > configuration register if it is not -1. For a 0 configuration register
> > the configuration value is written to offset 0x0. This can lead to a
> > crashing/hanging system without any warning message.
> 0 is a valid offset for Vybrid's mux register, however, since Vybrid set
> the SHARE_MUX_CONF_REG, intepreting a 0 in conf_reg as "not set"
> actually works.
> What is a bit a bummer is that we now have different meanings of 0,
> depending on the field:
> - For the first field (mux), 0 is a valid offset
> - For the second field (config), 0 means not valid
> However, I can't think of a easy solution which would solve this in a
> cleaner mannor... Maybe a comment in the function header how the 5 u32's
> are intepreted would appropriate?
That means that on Vybrid you need to write to offset 0 a config value?
Or not?

Best regards

Pengutronix e.K.                           | Uwe Kleine-König            |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |

More information about the linux-arm-kernel mailing list