linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "José Miguel Gonçalves" <jose.goncalves-ojS98SfuVkU@public.gmane.org>
To: Jean Delvare <khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org>
Cc: linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
	Tony Lindgren <tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org>,
	Wolfram Sang <wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org>,
	Guenter Roeck <linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org>,
	lm-sensors-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org
Subject: Re: Problem with a hih6130 sensor in a OMAP I2C bus
Date: Mon, 09 Dec 2013 13:19:48 +0000	[thread overview]
Message-ID: <52A5C374.1040609@inov.pt> (raw)
In-Reply-To: <20131209132239.3c0f6402-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>

Hi Jean,

On 09-12-2013 12:22, Jean Delvare wrote:
> Hi José,
>
> On Mon, 09 Dec 2013 11:42:13 +0000, José Miguel Gonçalves wrote:
>> While testing an HIH6130 humidity and temperature sensor with I2C
>> interface in a BeagleBone board I've found that I was unable to read it
>> because the driver always returned EINVAL. With some debugging I've
>> found that the error was due to a test on omap_i2c_xfer_msg() in OMAP
>> I2C driver that invalidates zero length writes. The hwmon hih6130 driver
>> issues such kind of request in hih6130_update_measurements() to issue a
>> measurement request to the sensor.
>>
>> I was able to get measurements from the sensor by hacking the hih6130
>> driver replacing the following line in hih6130_update_measurements();
>>
>>           ret = i2c_master_send(client, tmp, 0);
>>
>> by
>>
>>           tmp[0] = 0;
>>           ret = i2c_master_send(client, tmp, 1);
>>
>> Is this the correct way to fix this issue, or should the fix be in the
>> I2C OMAP driver to accept zero length transfers?
> Ideally it should be fixed in the i2c-omap bus driver. However, if
> zero-length transfers are explicitly prohibited, it may mean that the
> hardware itself can't do it (in which case adding a comment saying so
> in the source code would be great.) You'll have to check. The driver
> supports several generations of OMAP chipsets so you'll have to check
> them all, maybe some can handle zero-length messages and some do not.
>
> If fixing it in the i2c-omap driver is not possible, then working
> around it in the hih6130 driver would be acceptable. You'll have to
> make sure there is no side effect to sending a single byte to the chip.
> If performance is a concern, you may have to enable the workaround only
> when zero-byte messages aren't supported. You can check with:
>
> i2c_get_functionality(i2c_adapter) & I2C_FUNC_SMBUS_QUICK
>

I am by no means an expert on OMAP platforms and/or I2C drivers so, if 
anyone else with more knowledge of them has a better suggestion, I will 
follow your suggestion and submit my workaround patch for the hih6130 
driver with the added check for support of zero-byte messages by the 
underlying I2C driver. From my understanding of the technical note for 
I2C communication on this chip;

http://www.mouser.com/pdfdocs/I2CCommunications.pdf

I see no problems on writing that dummy byte to it and my tests on a 
real hardware also show that.

Best regards,
José Gonçalves

      parent reply	other threads:[~2013-12-09 13:19 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-12-09 11:42 Problem with a hih6130 sensor in a OMAP I2C bus José Miguel Gonçalves
     [not found] ` <52A5AC95.3050803-ojS98SfuVkU@public.gmane.org>
2013-12-09 12:22   ` Jean Delvare
     [not found]     ` <20131209132239.3c0f6402-R0o5gVi9kd7kN2dkZ6Wm7A@public.gmane.org>
2013-12-09 13:19       ` José Miguel Gonçalves [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=52A5C374.1040609@inov.pt \
    --to=jose.goncalves-ojs98sfuvku@public.gmane.org \
    --cc=khali-PUYAD+kWke1g9hUCZPvPmw@public.gmane.org \
    --cc=linux-0h96xk9xTtrk1uMJSBkQmQ@public.gmane.org \
    --cc=linux-i2c-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=linux-omap-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
    --cc=lm-sensors-GZX6beZjE8VD60Wz+7aTrA@public.gmane.org \
    --cc=tony-4v6yS6AI5VpBDgjK7y7TUQ@public.gmane.org \
    --cc=wsa-z923LK4zBo2bacvFa/9K2g@public.gmane.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).