Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Oct 2017 09:00:27 -0600
From:      Ian Lepore <ian@freebsd.org>
To:        Mori Hiroki <yamori813@yahoo.co.jp>
Cc:        "freebsd-mips@freebsd.org" <freebsd-mips@freebsd.org>
Subject:   Re: about iicdev_writeto() on ralink soc
Message-ID:  <1508511627.1383.48.camel@freebsd.org>
In-Reply-To: <641147.96869.qm@web101704.mail.ssk.yahoo.co.jp>
References:  <641147.96869.qm@web101704.mail.ssk.yahoo.co.jp>

next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 2017-10-20 at 20:24 +0900, Mori Hiroki wrote:
> Hi
> 
> I make mips mediatek iic driver. Mediatek(Ralink) soc(RT2880 and 
> RT3050) is not support nostop option at I2C device. This soc i2c
> device is set transfer length and automatically send stop. And
> Always send device address at first byte.
> 
> your added iicdev_writeto() not work in these soc i2c device.
> 
> 
> 
> https://svnweb.freebsd.org/base?view=revision&revision=321583
> 
> 
> Could you please change single transfer in iicdev_writeto() at
> iiconf.c.
> 
> Regards
> 
> Hiroki Mori

iicdev_writeto() does the correct sequence of operations.

I think if you set the ADDRDIS bit in the device control register and
ignore the NOSTOP flag in the messages, it will work for most slave
devices.  Some slave devices require a repeat-start to work correctly,
and those will never work right on a controller like this.

-- Ian




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1508511627.1383.48.camel>