gpio_defaults needs to be specified as an unsigned int rather than an
int, because the intention of the DT binding is that all out of range
values for a 16-bit register will cause the defaults to be used,
however, if gpio_defaults is an int then values that are larger than
INT_MAX will become negative numbers and be written out directly to the
hardware. As no where in the code replies on gpio_defaults being an int,
the simplest fix is to just change it to unsigned.

Signed-off-by: Charles Keepax <[email protected]>
---
 include/linux/mfd/arizona/pdata.h |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/include/linux/mfd/arizona/pdata.h 
b/include/linux/mfd/arizona/pdata.h
index 48fe313..1789cb0 100644
--- a/include/linux/mfd/arizona/pdata.h
+++ b/include/linux/mfd/arizona/pdata.h
@@ -94,7 +94,7 @@ struct arizona_pdata {
        int gpio_base;
 
        /** Pin state for GPIO pins */
-       int gpio_defaults[ARIZONA_MAX_GPIO];
+       unsigned int gpio_defaults[ARIZONA_MAX_GPIO];
 
        /**
         * Maximum number of channels clocks will be generated for,
-- 
1.7.2.5

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to