/* c67x00_ll_read_mem_le16 - read from c67x00 memory Only data is little endian, addr has cpu endianess.  */
void c67x00_ll_read_mem_le16(struct c67x00_device *dev, u16 addr, void *data, int len)
/* c67x00_ll_read_mem_le16 - read from c67x00 memory Only data is little endian, addr has cpu endianess.  */
void c67x00_ll_read_mem_le16(struct c67x00_device *dev, u16 addr, void *data, int len)
{
	u8 *buf = data;
	if (addr & 0x01) {
		u16 tmp;
		tmp = hpi_read_word(dev, addr - 1);
		*buf++ = (tmp >> 8) & 0x00ff;
		addr++;
		len--;
	}
	hpi_read_words_le16(dev, addr, (__le16 *)buf, len / 2);
	buf += len & ~0x01;
	addr += len & ~0x01;
	len &= 0x01;
	if (len) {
		u16 tmp;
		tmp = hpi_read_word(dev, addr);
		*buf = tmp & 0x00ff;
	}
}