diff --git a/drivers/of/property.c b/drivers/of/property.c index 099d37d1a03b..1e35bfd19722 100644 --- a/drivers/of/property.c +++ b/drivers/of/property.c @@ -1162,6 +1162,21 @@ static struct device_node *parse_##fname(struct device_node *np, \ return parse_suffix_prop_cells(np, prop_name, index, suffix, cells); \ } +static struct device_node *parse_msm_bus_name(struct device_node *np, + const char *prop_name, int index) +{ + static struct device_node *bus_dev_np; + + if (index || strcmp(prop_name, "qcom,msm-bus,name")) + return NULL; + + if (!bus_dev_np) + bus_dev_np = of_find_compatible_node(NULL, NULL, + "qcom,msm-bus-device"); + + return bus_dev_np; +} + /** * struct supplier_bindings - Property parsing functions for suppliers * @@ -1204,6 +1219,7 @@ static struct device_node *parse_iommu_maps(struct device_node *np, } static const struct supplier_bindings of_supplier_bindings[] = { + { .parse_prop = parse_msm_bus_name, }, { .parse_prop = parse_clocks, }, { .parse_prop = parse_interconnects, }, { .parse_prop = parse_iommus, },