alsa-devel.alsa-project.org archive mirror
 help / color / mirror / Atom feed
* Query about regmap SPI
@ 2012-03-06  7:53 Ashish Chavan
  2012-03-06 12:10 ` Mark Brown
  0 siblings, 1 reply; 7+ messages in thread
From: Ashish Chavan @ 2012-03-06  7:53 UTC (permalink / raw)
  To: alsa-devel; +Cc: broonie, lrg

Hi,
  I am planning to add SPI support for da7210 codec driver. SPI for this
codec has slightly different format than others. It has 8 bit register
address and 8 bit data. Out of 8 bits of register address, one bit (i.e.
LSB) is used to indicate read or write. Value of 1 at LSB denotes READ
while value of 0 at LSB denotes write operation.

Thus in order for SPI READ to work correctly, the register address need
to be left shifted by one and then ORed with 0x1. In the same way for
SPI WRITE to work correctly, it need to be left shifted by one.

I have gone though the regmap sources and found that ORing can be
achieved by setting correct read_flag_mask. But I couldn't find anything
by which I can tell regmap core to shift the register address before
ORing it with read_flag_mask. Am I missing anything here?

Is there any other way to achieve this using regmap? The only other way
I can think of is providing a wrapper function to read and write in
codec driver and doing the shifting job inside that wrapper.

TIA!

^ permalink raw reply	[flat|nested] 7+ messages in thread
[parent not found: <1331045140.32512.7.camel@matrix>]
* Query About regmap SPI
@ 2012-03-05 13:20 Ashish Chavan
  0 siblings, 0 replies; 7+ messages in thread
From: Ashish Chavan @ 2012-03-05 13:20 UTC (permalink / raw)
  To: alsa-devel

Hi,
  I am planning to add SPI support for da7210 codec driver. SPI for this
codec has slightly different format than others. It has 8 bit register
address and 8 bit data. Out of 8 bits of register address, one bit (i.e.
LSB) is used to indicate read or write. Value of 1 at LSB denotes READ
while value of 0 at LSB denotes write operation.

Thus in order for SPI READ to work correctly, the register address need
to be left shifted by one and then ORed with 0x1. In the same way for
SPI WRITE to work correctly, it need to be left shifted by one.

I have gone though the regmap sources and found that ORing can be
achieved by setting correct read_flag_mask. But I couldn't find anything
by which I can tell regmap core to shift the register address before
ORing it with read_flag_mask. Am I missing anything here?

Is there any other way to achieve this using regmap? The only other way
I can think of is providing a wrapper function to read and write in
codec driver and doing the shifting job inside that wrapper.




This message contains information that may be privileged or confidential and is the property of the KPIT Cummins Infosystems Ltd. It is intended only for the person to whom it is addressed. If you are not the intended recipient, you are not authorized to read, print, retain copy, disseminate, distribute, or use this message or any part thereof. If you receive this message in error, please notify the sender immediately and delete all copies of this message. KPIT Cummins Infosystems Ltd. does not accept any liability for virus infected mails.

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-03-06 19:59 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-03-06  7:53 Query about regmap SPI Ashish Chavan
2012-03-06 12:10 ` Mark Brown
     [not found] <1331045140.32512.7.camel@matrix>
2012-03-06 15:08 ` Ashish Chavan
2012-03-06 16:30   ` Mark Brown
2012-03-06 17:34     ` Ashish Chavan
2012-03-06 19:59       ` Mark Brown
  -- strict thread matches above, loose matches on Subject: below --
2012-03-05 13:20 Query About " Ashish Chavan

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).