|
@@ -1752,7 +1752,8 @@ static int qcom_spmi_regulator_probe(struct platform_device *pdev)
|
|
|
const char *name;
|
|
|
struct device *dev = &pdev->dev;
|
|
|
struct device_node *node = pdev->dev.of_node;
|
|
|
- struct device_node *syscon;
|
|
|
+ struct device_node *syscon, *reg_node;
|
|
|
+ struct property *reg_prop;
|
|
|
int ret, lenp;
|
|
|
struct list_head *vreg_list;
|
|
|
|
|
@@ -1780,10 +1781,13 @@ static int qcom_spmi_regulator_probe(struct platform_device *pdev)
|
|
|
|
|
|
for (reg = match->data; reg->name; reg++) {
|
|
|
|
|
|
- if (saw_regmap && \
|
|
|
- of_find_property(of_find_node_by_name(node, reg->name), \
|
|
|
- "qcom,saw-slave", &lenp)) {
|
|
|
- continue;
|
|
|
+ if (saw_regmap) {
|
|
|
+ reg_node = of_get_child_by_name(node, reg->name);
|
|
|
+ reg_prop = of_find_property(reg_node, "qcom,saw-slave",
|
|
|
+ &lenp);
|
|
|
+ of_node_put(reg_node);
|
|
|
+ if (reg_prop)
|
|
|
+ continue;
|
|
|
}
|
|
|
|
|
|
vreg = devm_kzalloc(dev, sizeof(*vreg), GFP_KERNEL);
|
|
@@ -1816,13 +1820,17 @@ static int qcom_spmi_regulator_probe(struct platform_device *pdev)
|
|
|
if (ret)
|
|
|
continue;
|
|
|
|
|
|
- if (saw_regmap && \
|
|
|
- of_find_property(of_find_node_by_name(node, reg->name), \
|
|
|
- "qcom,saw-leader", &lenp)) {
|
|
|
- spmi_saw_ops = *(vreg->desc.ops);
|
|
|
- spmi_saw_ops.set_voltage_sel = \
|
|
|
- spmi_regulator_saw_set_voltage;
|
|
|
- vreg->desc.ops = &spmi_saw_ops;
|
|
|
+ if (saw_regmap) {
|
|
|
+ reg_node = of_get_child_by_name(node, reg->name);
|
|
|
+ reg_prop = of_find_property(reg_node, "qcom,saw-leader",
|
|
|
+ &lenp);
|
|
|
+ of_node_put(reg_node);
|
|
|
+ if (reg_prop) {
|
|
|
+ spmi_saw_ops = *(vreg->desc.ops);
|
|
|
+ spmi_saw_ops.set_voltage_sel =
|
|
|
+ spmi_regulator_saw_set_voltage;
|
|
|
+ vreg->desc.ops = &spmi_saw_ops;
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
config.dev = dev;
|