aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--drivers/gpio/gpio-pca953x.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/gpio/gpio-pca953x.c b/drivers/gpio/gpio-pca953x.c
index d0d3065a7557..e66084c295fb 100644
--- a/drivers/gpio/gpio-pca953x.c
+++ b/drivers/gpio/gpio-pca953x.c
@@ -18,6 +18,7 @@
18#include <linux/i2c.h> 18#include <linux/i2c.h>
19#include <linux/platform_data/pca953x.h> 19#include <linux/platform_data/pca953x.h>
20#include <linux/slab.h> 20#include <linux/slab.h>
21#include <asm/unaligned.h>
21#include <linux/of_platform.h> 22#include <linux/of_platform.h>
22#include <linux/acpi.h> 23#include <linux/acpi.h>
23 24
@@ -159,7 +160,7 @@ static int pca953x_write_regs(struct pca953x_chip *chip, int reg, u8 *val)
159 switch (chip->chip_type) { 160 switch (chip->chip_type) {
160 case PCA953X_TYPE: 161 case PCA953X_TYPE:
161 ret = i2c_smbus_write_word_data(chip->client, 162 ret = i2c_smbus_write_word_data(chip->client,
162 reg << 1, (u16) *val); 163 reg << 1, cpu_to_le16(get_unaligned((u16 *)val)));
163 break; 164 break;
164 case PCA957X_TYPE: 165 case PCA957X_TYPE:
165 ret = i2c_smbus_write_byte_data(chip->client, reg << 1, 166 ret = i2c_smbus_write_byte_data(chip->client, reg << 1,