unsigned int reg_shift = 0;
        int pio_mode = 0;
        int pio_mask;
-       const u32 *prop;
 
        ret = of_address_to_resource(dn, 0, &io_res);
        if (ret) {
 
        irq_res = platform_get_resource(ofdev, IORESOURCE_IRQ, 0);
 
-       prop = of_get_property(dn, "reg-shift", NULL);
-       if (prop)
-               reg_shift = be32_to_cpup(prop);
+       of_property_read_u32(dn, "reg-shift", ®_shift);
 
-       prop = of_get_property(dn, "pio-mode", NULL);
-       if (prop) {
-               pio_mode = be32_to_cpup(prop);
+       if (!of_property_read_u32(dn, "pio-mode", &pio_mode)) {
                if (pio_mode > 6) {
                        dev_err(&ofdev->dev, "invalid pio-mode\n");
                        return -EINVAL;