Question about bno055 mismatched reset gpio logical/physical state

Jochen Henneberg <[email protected]>
Newsgroups org.kernel.vger.linux-iio
Message-ID <[email protected]>
Hi,

I just stumbled over a mismatch in bno055 where the wrong logical states
for the reset gpio are set and I'm not sure how to deal with it.

Looking at:

static int bno055_system_reset(struct bno055_priv *priv)
{
	int ret;

	if (priv->reset_gpio) {
		gpiod_set_value_cansleep(priv->reset_gpio, 0);
		usleep_range(5000, 10000);
		gpiod_set_value_cansleep(priv->reset_gpio, 1);
	} else if (priv->sw_reset) {
		ret = regmap_write(priv->regmap, BNO055_SYS_TRIGGER_REG,
				   BNO055_SYS_TRIGGER_RST_SYS);
		if (ret)
			return ret;
	} else {
		return 0;
	}

	regcache_drop_region(priv->regmap, 0x0, 0xff);
	usleep_range(650000, 700000);

	return 0;
}

To reset the reset is first turned off and then turned on which makes no
sense unless the gpio is configured active high for an active low
pin. This happens also at another place in the code.

Question is: Does it make sense to provide a patch which will then
potentially break dtsi files of many projects? Or should this better get
a note in the binding documentation?

Regards
-Jochen
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.