OrangePi PC-Plus(全志H3)获取设备树regulator子节点字符参数出错

linux版本:4.15
在将emmc驱动从4.9移植到4.15的过程中,获取设备树regulator子节点字符参数出错,出错设备树配置代码和驱动代码片段如下:
&mmc2 {
compatible = "allwinner,sunxi-mmc-v4p10x";
device_type = "mmc2";
pinctrl-names = "default";
pinctrl-0 = <&mmc2_8bit_pins>;
cd-gpios = <&pio 5 6 GPIO_ACTIVE_HIGH>;
clocks = <&ccu CLK_BUS_MMC2>,<&ccu CLK_MMC2>, <&ccu RST_BUS_MMC2>;
clock-names = "ahb","mmc","rst";
vmmc-supply = <&reg_vcc3v3>;
bus-width = <8>;
non-removable;
cap-mmc-hw-reset;
status = "okay";
};

reg_vcc3v3: vcc3v3 {
compatible = "regulator-fixed";
regulator-name = "vcc3v3";
regulator-min-microvolt = <3300000>;
regulator-max-microvolt = <3300000>;
};

static int sunxi_mmc_regulator_get_supply(struct mmc_host *mmc)
{
struct device *dev = mmc_dev(mmc);
int ret = 0;

static const char * const pwr_str[] = { "vmmc", "vqmmc", "vdmmc",
                    "vdmmc33sw", "vdmmc18sw",
                    "vqmmc33sw", "vqmmc18sw"};
int i = 0;
struct device_node *np = NULL;
struct property *prop = NULL;
const char *reg_str[ARRAY_SIZE(pwr_str)] = { NULL };

if (!mmc->parent || !mmc->parent->of_node) {
    dev_err(mmc_dev(mmc), "not dts found\n");
    return -EINVAL;
}

np = mmc->parent->of_node;
for (i = 0; i < ARRAY_SIZE(pwr_str); i++) {
    dev_info(dev, "regulator str-%s\n",np->properties->name);
    prop = of_find_property(np, pwr_str[i], NULL);
    if (!prop) {
        dev_info(dev, "Can't get %s regulator string\n",
             pwr_str[i]);
        continue;
    }

驱动的调用关系:sunxi_mmc_probe->sunxi_mmc_resource_request->sunxi_mmc_regulator_get_supply
驱动的打印输出如下:
sunxi-mmc 1c11000.mmc: SD/MMC/SDIO Host Controller Driver(v3.35)
sunxi-mmc 1c11000.mmc: regulator str-reg
sunxi-mmc 1c11000.mmc: Can't get vmmc regulator string

正常获得的regulator节点的字符串参数应为vcc3v3的,设备树的配置也是参照其它节点来配置的,按道理来说不会有啥问题,如果是设备树配置的问题,如何修改才可?可否麻烦群里的牛人帮忙看下,谢谢!

mark