lis3lv02d: DT: use s32 to support negative values
authorSebastian Reichel <sre@kernel.org>
Fri, 27 Mar 2015 14:39:43 +0000 (15:39 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 3 Apr 2015 14:20:54 +0000 (16:20 +0200)
st,axis-{x,y,z} can be negative to imply inverted
axis.

Apart from that the minimal and maximal threshold
may be negative.

Signed-off-by: Sebastian Reichel <sre@kernel.org>
Reviewed-by: Éric Piel <eric.piel@tremplin-utc.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/misc/lis3lv02d/lis3lv02d.c

index 3ef4627f9cb1552a7585787f6da81cb880c4b784..d2b0968b1dedd0cbda555f891af4c814932ba99c 100644 (file)
@@ -950,6 +950,7 @@ int lis3lv02d_init_dt(struct lis3lv02d *lis3)
        struct lis3lv02d_platform_data *pdata;
        struct device_node *np = lis3->of_node;
        u32 val;
+       s32 sval;
 
        if (!lis3->of_node)
                return 0;
@@ -1054,29 +1055,29 @@ int lis3lv02d_init_dt(struct lis3lv02d *lis3)
        if (of_get_property(np, "st,hipass2-disable", NULL))
                pdata->hipass_ctrl |= LIS3_HIPASS2_DISABLE;
 
-       if (of_get_property(np, "st,axis-x", &val))
-               pdata->axis_x = val;
-       if (of_get_property(np, "st,axis-y", &val))
-               pdata->axis_y = val;
-       if (of_get_property(np, "st,axis-z", &val))
-               pdata->axis_z = val;
+       if (of_property_read_s32(np, "st,axis-x", &sval) == 0)
+               pdata->axis_x = sval;
+       if (of_property_read_s32(np, "st,axis-y", &sval) == 0)
+               pdata->axis_y = sval;
+       if (of_property_read_s32(np, "st,axis-z", &sval) == 0)
+               pdata->axis_z = sval;
 
        if (of_get_property(np, "st,default-rate", NULL))
                pdata->default_rate = val;
 
-       if (of_get_property(np, "st,min-limit-x", &val))
-               pdata->st_min_limits[0] = val;
-       if (of_get_property(np, "st,min-limit-y", &val))
-               pdata->st_min_limits[1] = val;
-       if (of_get_property(np, "st,min-limit-z", &val))
-               pdata->st_min_limits[2] = val;
-
-       if (of_get_property(np, "st,max-limit-x", &val))
-               pdata->st_max_limits[0] = val;
-       if (of_get_property(np, "st,max-limit-y", &val))
-               pdata->st_max_limits[1] = val;
-       if (of_get_property(np, "st,max-limit-z", &val))
-               pdata->st_max_limits[2] = val;
+       if (of_property_read_s32(np, "st,min-limit-x", &sval) == 0)
+               pdata->st_min_limits[0] = sval;
+       if (of_property_read_s32(np, "st,min-limit-y", &sval) == 0)
+               pdata->st_min_limits[1] = sval;
+       if (of_property_read_s32(np, "st,min-limit-z", &sval) == 0)
+               pdata->st_min_limits[2] = sval;
+
+       if (of_property_read_s32(np, "st,max-limit-x", &sval) == 0)
+               pdata->st_max_limits[0] = sval;
+       if (of_property_read_s32(np, "st,max-limit-y", &sval) == 0)
+               pdata->st_max_limits[1] = sval;
+       if (of_property_read_s32(np, "st,max-limit-z", &sval) == 0)
+               pdata->st_max_limits[2] = sval;
 
 
        lis3->pdata = pdata;