diff options
| -rw-r--r-- | drivers/gpio/gpio-pca953x.c | 3 |
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, |
