On Wed, Mar 12, 2014 at 04:21:03PM +0400, Max Filippov wrote: > + case 16: > + /* Bytes that should go out earlier have lower addresses, > + * but the hardware operates with 16 bit words and transmits > + * higher bits first. Thus data in memory is in BE order. > + */ > + xspi->data = (xspi->data << 16) | be16_to_cpu(v); > + xspi->data_sz += 2; > + break; Are you sure you need to do this byte swap? SPI words are big endian so if you are running on a little endian processor if you are transmitting 16 bit words you should see the data getting swapped on the bus (this is why I say you should never have more than 8 bits per word for regmap).
Attachment:
signature.asc
Description: Digital signature