/** * of_get_regulator_init_data - extract regulator_init_data structure info * @dev: device requesting for regulator_init_data * * Populates regulator_init_data structure by extracting data from device * tree node, returns a pointer to the populated struture or NULL if memory * alloc fails. */ struct regulator_init_data *of_get_regulator_init_data(struct device *dev, struct device_node *node) { struct regulator_init_data *init_data; if (!node) return NULL; init_data = devm_kzalloc(dev, sizeof(*init_data), GFP_KERNEL); if (!init_data) return NULL; /* Out of memory? */ of_get_regulation_constraints(node, &init_data); return init_data; }
struct regulator_init_data *of_get_regulator_init_data(struct device *dev, struct device_node *node) { struct regulator_init_data *init_data; int rc; if (!node) return NULL; init_data = devm_kzalloc(dev, sizeof(*init_data), GFP_KERNEL); if (!init_data) return NULL; of_get_regulation_constraints(node, &init_data); rc = of_get_qcom_regulator_init_data(dev, &init_data); if (rc) { devm_kfree(dev, init_data); return NULL; } return init_data; }