summaryrefslogtreecommitdiffstats
path: root/sys/arm/mv
diff options
context:
space:
mode:
authorian <ian@FreeBSD.org>2017-03-01 18:53:05 +0000
committerian <ian@FreeBSD.org>2017-03-01 18:53:05 +0000
commitfc497a4640d662955a6d75b5e5ca52703fbb525a (patch)
treec223db4235159a5da2c9474c890e95bd63a789d7 /sys/arm/mv
parentac087346a293ff11c3c3241b44626ca2c83756e5 (diff)
downloadFreeBSD-src-fc497a4640d662955a6d75b5e5ca52703fbb525a.zip
FreeBSD-src-fc497a4640d662955a6d75b5e5ca52703fbb525a.tar.gz
MFC r308640:
Use the correct OF_getencprop over OF_getprop + fdt32_to_cpu to read integer data from the device tree.
Diffstat (limited to 'sys/arm/mv')
-rw-r--r--sys/arm/mv/gpio.c22
-rw-r--r--sys/arm/mv/mv_machdep.c16
2 files changed, 16 insertions, 22 deletions
diff --git a/sys/arm/mv/gpio.c b/sys/arm/mv/gpio.c
index 79b7cc6..6708167 100644
--- a/sys/arm/mv/gpio.c
+++ b/sys/arm/mv/gpio.c
@@ -113,7 +113,7 @@ struct gpio_ctrl_entry {
gpios_phandler_t handler;
};
-int mv_handle_gpios_prop(phandle_t ctrl, pcell_t *gpios, int len);
+static int mv_handle_gpios_prop(phandle_t ctrl, pcell_t *gpios, int len);
int gpio_get_config_from_dt(void);
struct gpio_ctrl_entry gpio_controllers[] = {
@@ -540,7 +540,7 @@ mv_gpio_value_set(uint32_t pin, uint8_t val)
mv_gpio_reg_clear(reg, pin);
}
-int
+static int
mv_handle_gpios_prop(phandle_t ctrl, pcell_t *gpios, int len)
{
pcell_t gpio_cells, pincnt;
@@ -554,10 +554,8 @@ mv_handle_gpios_prop(phandle_t ctrl, pcell_t *gpios, int len)
/* Node is not a GPIO controller. */
return (ENXIO);
- if (OF_getprop(ctrl, "#gpio-cells", &gpio_cells, sizeof(pcell_t)) < 0)
+ if (OF_getencprop(ctrl, "#gpio-cells", &gpio_cells, sizeof(pcell_t)) < 0)
return (ENXIO);
-
- gpio_cells = fdt32_to_cpu(gpio_cells);
if (gpio_cells != 3)
return (ENXIO);
@@ -567,9 +565,9 @@ mv_handle_gpios_prop(phandle_t ctrl, pcell_t *gpios, int len)
if (fdt_regsize(ctrl, &gpio_ctrl, &size))
return (ENXIO);
- if (OF_getprop(ctrl, "pin-count", &pincnt, sizeof(pcell_t)) < 0)
+ if (OF_getencprop(ctrl, "pin-count", &pincnt, sizeof(pcell_t)) < 0)
return (ENXIO);
- sc.pin_num = fdt32_to_cpu(pincnt);
+ sc.pin_num = pincnt;
/*
* Skip controller reference, since controller's phandle is given
@@ -579,9 +577,9 @@ mv_handle_gpios_prop(phandle_t ctrl, pcell_t *gpios, int len)
gpios += inc;
for (t = 0; t < tuples; t++) {
- pin = fdt32_to_cpu(gpios[0]);
- dir = fdt32_to_cpu(gpios[1]);
- flags = fdt32_to_cpu(gpios[2]);
+ pin = gpios[0];
+ dir = gpios[1];
+ flags = gpios[2];
mv_gpio_configure(pin, flags);
@@ -630,7 +628,7 @@ mv_gpio_init(void)
return (ENXIO);
/* Get 'gpios' property. */
- OF_getprop(child, "gpios", &gpios, len);
+ OF_getencprop(child, "gpios", gpios, len);
e = (struct gpio_ctrl_entry *)&gpio_controllers;
@@ -641,7 +639,7 @@ mv_gpio_init(void)
* contain a ref. to a node defining GPIO
* controller.
*/
- ctrl = OF_node_from_xref(fdt32_to_cpu(gpios[0]));
+ ctrl = OF_node_from_xref(gpios[0]);
if (fdt_is_compatible(ctrl, e->compat))
/* Call a handler. */
diff --git a/sys/arm/mv/mv_machdep.c b/sys/arm/mv/mv_machdep.c
index a1d7d49..b11c3b5 100644
--- a/sys/arm/mv/mv_machdep.c
+++ b/sys/arm/mv/mv_machdep.c
@@ -146,21 +146,19 @@ moveon:
/*
* Process 'pin-count' and 'pin-map' props.
*/
- if (OF_getprop(node, "pin-count", &pin_count, sizeof(pin_count)) <= 0)
+ if (OF_getencprop(node, "pin-count", &pin_count, sizeof(pin_count)) <= 0)
return (ENXIO);
- pin_count = fdt32_to_cpu(pin_count);
if (pin_count > MPP_PIN_MAX)
return (ERANGE);
- if (OF_getprop(node, "#pin-cells", &pin_cells, sizeof(pin_cells)) <= 0)
+ if (OF_getencprop(node, "#pin-cells", &pin_cells, sizeof(pin_cells)) <= 0)
pin_cells = MPP_PIN_CELLS;
- pin_cells = fdt32_to_cpu(pin_cells);
if (pin_cells > MPP_PIN_CELLS)
return (ERANGE);
tuple_size = sizeof(pcell_t) * pin_cells;
bzero(pinmap, sizeof(pinmap));
- len = OF_getprop(node, "pin-map", pinmap, sizeof(pinmap));
+ len = OF_getencprop(node, "pin-map", pinmap, sizeof(pinmap));
if (len <= 0)
return (ERANGE);
if (len % tuple_size)
@@ -175,8 +173,8 @@ moveon:
bzero(mpp, sizeof(mpp));
pinmap_ptr = pinmap;
for (i = 0; i < pins; i++) {
- mpp_pin = fdt32_to_cpu(*pinmap_ptr);
- mpp_function = fdt32_to_cpu(*(pinmap_ptr + 1));
+ mpp_pin = *pinmap_ptr;
+ mpp_function = *(pinmap_ptr + 1);
mpp[mpp_pin] = mpp_function;
pinmap_ptr += pin_cells;
}
@@ -408,12 +406,10 @@ platform_devmap_init(void)
if (fdt_is_compatible(child, "mrvl,lbc")) {
/* Check available space */
- if (OF_getprop(child, "bank-count", (void *)&bank_count,
+ if (OF_getencprop(child, "bank-count", &bank_count,
sizeof(bank_count)) <= 0)
/* If no property, use default value */
bank_count = 1;
- else
- bank_count = fdt32_to_cpu(bank_count);
if ((i + bank_count) >= FDT_DEVMAP_MAX)
return (ENOMEM);
OpenPOWER on IntegriCloud