Re: regmap and i2c_smbus_write_byte question

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Nov 05, 2016 at 12:53:02PM +0000, Jonathan Cameron wrote:
> On 05/11/16 11:38, Brian Masney wrote:
> > I am investigating converting the tsl2583 staging driver over to use
> > the regmap API. I ran into an issue converting the following call to
> > i2c_smbus_write_byte() over to the regmap API:
> > 
> > struct tsl2583_chip {
> >         struct i2c_client *client;
> >         ...
> > }
> > 
> > /*
> >  * clear status, really interrupt status (interrupts are off), but
> >  * we use the bit anyway - don't forget 0x80 - this is a command
> >  */      
> > ret = i2c_smbus_write_byte(chip->client,
> >                            (TSL258X_CMD_REG | TSL258X_CMD_SPL_FN |
> >                             TSL258X_CMD_ALS_INT_CLR));
> > 
> > I don't see a way to do this in the regmap API.  
> > drivers/input/touchscreen/tsc2004.c has this same issue and that code
> > directly calls i2c_smbus_write_byte() along with the regmap API. Am I
> > missing something? This doesn't feel right to me to bypass the regmap
> > API and directly access the i2c client.
> > 
> > The data sheet for the tsl2583 sensor is available here:
> > http://media.digikey.com/PDF/Data%20Sheets/Austriamicrosystems%20PDFs/TSL2581,83.pdf
> > Page 10 has the table that describes clearing the interrupt bit. The
> > sensor will not take additional readings until that bit is cleared
> > (even though interrupts are off).
> Bit of a tangential question but why do a regmap conversion for this device?
> It's i2c only so we don't gain from easy support for multiple bus types.
> There aren't all that many registers and we don't have reason to
> often read/write the ones that aren't volatile.
> 
> Hence I'd argue there is little point in doing a regmap conversion in
> the first place.
> 
> If there is a good reason to do it then there isn't an easy way around
> these 'odd' diversions from what is otherwise a nice register
> based interface.
> 
> Hence another reason to not do a regmap conversion.

I totally agree that it does not make sense to do the regmap conversion
for this driver. The only reason that I initially looked into doing it
was that there are other light drivers in mainline (with few registers)
that use the regmap API.

My tsl2583 patch set that I sent out a few days ago is still valid even
though the cover sheet says it lays the ground work for the regmap
conversion.

Thanks,

Brian

--
To unsubscribe from this list: send the line "unsubscribe linux-iio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Input]     [Linux Kernel]     [Linux SCSI]     [X.org]

  Powered by Linux