diff options
Diffstat (limited to 'drivers/misc/fsl_pmic.c')
| -rw-r--r-- | drivers/misc/fsl_pmic.c | 10 | 
1 files changed, 7 insertions, 3 deletions
| diff --git a/drivers/misc/fsl_pmic.c b/drivers/misc/fsl_pmic.c index dca0a1d57..5ee1de176 100644 --- a/drivers/misc/fsl_pmic.c +++ b/drivers/misc/fsl_pmic.c @@ -46,6 +46,7 @@ void pmic_spi_free(struct spi_slave *slave)  u32 pmic_reg(u32 reg, u32 val, u32 write)  {  	u32 pmic_tx, pmic_rx; +	u32 tmp;  	if (!slave) {  		slave = pmic_spi_probe(); @@ -65,7 +66,9 @@ u32 pmic_reg(u32 reg, u32 val, u32 write)  	pmic_tx = (write << 31) | (reg << 25) | (val & 0x00FFFFFF); -	if (spi_xfer(slave, 4 << 3, &pmic_tx, &pmic_rx, +	tmp = cpu_to_be32(pmic_tx); + +	if (spi_xfer(slave, 4 << 3, &tmp, &pmic_rx,  			SPI_XFER_BEGIN | SPI_XFER_END)) {  		spi_release_bus(slave);  		return -1; @@ -73,7 +76,8 @@ u32 pmic_reg(u32 reg, u32 val, u32 write)  	if (write) {  		pmic_tx &= ~(1 << 31); -		if (spi_xfer(slave, 4 << 3, &pmic_tx, &pmic_rx, +		tmp = cpu_to_be32(pmic_tx); +		if (spi_xfer(slave, 4 << 3, &tmp, &pmic_rx,  			SPI_XFER_BEGIN | SPI_XFER_END)) {  			spi_release_bus(slave);  			return -1; @@ -81,7 +85,7 @@ u32 pmic_reg(u32 reg, u32 val, u32 write)  	}  	spi_release_bus(slave); -	return pmic_rx; +	return cpu_to_be32(pmic_rx);  }  void pmic_reg_write(u32 reg, u32 value) |