Lines Matching refs:drvdata
250 struct gpio_regulator_data *drvdata; in gpio_regulator_probe() local
254 drvdata = devm_kzalloc(&pdev->dev, sizeof(struct gpio_regulator_data), in gpio_regulator_probe()
256 if (drvdata == NULL) in gpio_regulator_probe()
261 &drvdata->desc); in gpio_regulator_probe()
266 drvdata->desc.name = kstrdup(config->supply_name, GFP_KERNEL); in gpio_regulator_probe()
267 if (drvdata->desc.name == NULL) { in gpio_regulator_probe()
274 drvdata->gpios = kmemdup(config->gpios, in gpio_regulator_probe()
277 if (drvdata->gpios == NULL) { in gpio_regulator_probe()
283 drvdata->nr_gpios = config->nr_gpios; in gpio_regulator_probe()
284 ret = gpio_request_array(drvdata->gpios, drvdata->nr_gpios); in gpio_regulator_probe()
292 drvdata->states = kmemdup(config->states, in gpio_regulator_probe()
296 if (drvdata->states == NULL) { in gpio_regulator_probe()
301 drvdata->nr_states = config->nr_states; in gpio_regulator_probe()
303 drvdata->desc.owner = THIS_MODULE; in gpio_regulator_probe()
304 drvdata->desc.enable_time = config->startup_delay; in gpio_regulator_probe()
309 drvdata->desc.type = REGULATOR_VOLTAGE; in gpio_regulator_probe()
310 drvdata->desc.ops = &gpio_regulator_voltage_ops; in gpio_regulator_probe()
311 drvdata->desc.n_voltages = config->nr_states; in gpio_regulator_probe()
314 drvdata->desc.type = REGULATOR_CURRENT; in gpio_regulator_probe()
315 drvdata->desc.ops = &gpio_regulator_current_ops; in gpio_regulator_probe()
325 for (ptr = 0; ptr < drvdata->nr_gpios; ptr++) { in gpio_regulator_probe()
329 drvdata->state = state; in gpio_regulator_probe()
333 cfg.driver_data = drvdata; in gpio_regulator_probe()
353 drvdata->dev = regulator_register(&drvdata->desc, &cfg); in gpio_regulator_probe()
354 if (IS_ERR(drvdata->dev)) { in gpio_regulator_probe()
355 ret = PTR_ERR(drvdata->dev); in gpio_regulator_probe()
360 platform_set_drvdata(pdev, drvdata); in gpio_regulator_probe()
365 gpio_free_array(drvdata->gpios, drvdata->nr_gpios); in gpio_regulator_probe()
367 kfree(drvdata->states); in gpio_regulator_probe()
369 kfree(drvdata->gpios); in gpio_regulator_probe()
371 kfree(drvdata->desc.name); in gpio_regulator_probe()
378 struct gpio_regulator_data *drvdata = platform_get_drvdata(pdev); in gpio_regulator_remove() local
380 regulator_unregister(drvdata->dev); in gpio_regulator_remove()
382 gpio_free_array(drvdata->gpios, drvdata->nr_gpios); in gpio_regulator_remove()
384 kfree(drvdata->states); in gpio_regulator_remove()
385 kfree(drvdata->gpios); in gpio_regulator_remove()
387 kfree(drvdata->desc.name); in gpio_regulator_remove()