soc: fsl: qe: qe_io.c: access device tree property using be32_to_cpu
authorRasmus Villemoes <linux@rasmusvillemoes.dk>
Thu, 28 Nov 2019 14:55:29 +0000 (15:55 +0100)
committerLi Yang <leoyang.li@nxp.com>
Mon, 9 Dec 2019 19:54:33 +0000 (13:54 -0600)
We need to apply be32_to_cpu to make this work correctly on
little-endian hosts.

Reviewed-by: Timur Tabi <timur@kernel.org>
Signed-off-by: Rasmus Villemoes <linux@rasmusvillemoes.dk>
Signed-off-by: Li Yang <leoyang.li@nxp.com>
drivers/soc/fsl/qe/qe_io.c

index 99aeb01..61dd8eb 100644 (file)
@@ -142,7 +142,7 @@ int par_io_of_config(struct device_node *np)
 {
        struct device_node *pio;
        int pio_map_len;
-       const unsigned int *pio_map;
+       const __be32 *pio_map;
 
        if (par_io == NULL) {
                printk(KERN_ERR "par_io not initialized\n");
@@ -167,9 +167,15 @@ int par_io_of_config(struct device_node *np)
        }
 
        while (pio_map_len > 0) {
-               par_io_config_pin((u8) pio_map[0], (u8) pio_map[1],
-                               (int) pio_map[2], (int) pio_map[3],
-                               (int) pio_map[4], (int) pio_map[5]);
+               u8 port        = be32_to_cpu(pio_map[0]);
+               u8 pin         = be32_to_cpu(pio_map[1]);
+               int dir        = be32_to_cpu(pio_map[2]);
+               int open_drain = be32_to_cpu(pio_map[3]);
+               int assignment = be32_to_cpu(pio_map[4]);
+               int has_irq    = be32_to_cpu(pio_map[5]);
+
+               par_io_config_pin(port, pin, dir, open_drain,
+                                 assignment, has_irq);
                pio_map += 6;
                pio_map_len -= 6;
        }