Lines Matching refs:pctldev

33 int pinmux_check_ops(struct pinctrl_dev *pctldev)
35 const struct pinmux_ops *ops = pctldev->desc->pmxops;
45 dev_err(pctldev->dev, "pinmux ops lacks necessary functions\n");
49 nfuncs = ops->get_functions_count(pctldev);
51 const char *fname = ops->get_function_name(pctldev,
54 dev_err(pctldev->dev, "pinmux ops has no name for function%u\n",
83 static int pin_request(struct pinctrl_dev *pctldev,
88 const struct pinmux_ops *ops = pctldev->desc->pmxops;
91 desc = pin_desc_get(pctldev, pin);
93 dev_err(pctldev->dev,
99 dev_dbg(pctldev->dev, "request pin %d (%s) for %s\n",
105 dev_err(pctldev->dev,
114 dev_err(pctldev->dev,
128 if (!try_module_get(pctldev->owner)) {
129 dev_err(pctldev->dev,
142 status = ops->gpio_request_enable(pctldev, gpio_range, pin);
144 status = ops->request(pctldev, pin);
149 dev_err(pctldev->dev, "request() failed for pin %d\n", pin);
150 module_put(pctldev->owner);
165 dev_err(pctldev->dev, "pin-%d (%s) status %d\n",
173 * @pctldev: pin controller device handling this pin
182 static const char *pin_free(struct pinctrl_dev *pctldev, int pin,
185 const struct pinmux_ops *ops = pctldev->desc->pmxops;
189 desc = pin_desc_get(pctldev, pin);
191 dev_err(pctldev->dev,
212 ops->gpio_disable_free(pctldev, gpio_range, pin);
214 ops->free(pctldev, pin);
225 module_put(pctldev->owner);
232 * @pctldev: pin controller device affected
236 int pinmux_request_gpio(struct pinctrl_dev *pctldev,
248 ret = pin_request(pctldev, pin, owner, range);
257 * @pctldev: the pin controller device for the pin
261 void pinmux_free_gpio(struct pinctrl_dev *pctldev, unsigned pin,
266 owner = pin_free(pctldev, pin, range);
272 * @pctldev: the pin controller handling this pin
277 int pinmux_gpio_direction(struct pinctrl_dev *pctldev,
284 ops = pctldev->desc->pmxops;
287 ret = ops->gpio_set_direction(pctldev, range, pin, input);
294 static int pinmux_func_name_to_selector(struct pinctrl_dev *pctldev,
297 const struct pinmux_ops *ops = pctldev->desc->pmxops;
298 unsigned nfuncs = ops->get_functions_count(pctldev);
301 /* See if this pctldev has this function */
303 const char *fname = ops->get_function_name(pctldev,
313 pinctrl_dev_get_name(pctldev), function);
320 struct pinctrl_dev *pctldev = setting->pctldev;
321 const struct pinmux_ops *pmxops = pctldev->desc->pmxops;
329 dev_err(pctldev->dev, "does not support mux function\n");
333 ret = pinmux_func_name_to_selector(pctldev, map->data.mux.function);
335 dev_err(pctldev->dev, "invalid function %s in map table\n",
341 ret = pmxops->get_function_groups(pctldev, setting->data.mux.func,
344 dev_err(pctldev->dev, "can't query groups for function %s\n",
349 dev_err(pctldev->dev,
364 dev_err(pctldev->dev,
373 ret = pinctrl_get_group_selector(pctldev, group);
375 dev_err(pctldev->dev, "invalid group %s in map table\n",
391 struct pinctrl_dev *pctldev = setting->pctldev;
392 const struct pinctrl_ops *pctlops = pctldev->desc->pctlops;
393 const struct pinmux_ops *ops = pctldev->desc->pmxops;
401 ret = pctlops->get_group_pins(pctldev, setting->data.mux.group,
408 gname = pctlops->get_group_name(pctldev,
410 dev_warn(pctldev->dev,
418 ret = pin_request(pctldev, pins[i], setting->dev_name, NULL);
423 desc = pin_desc_get(pctldev, pins[i]);
425 gname = pctlops->get_group_name(pctldev,
427 dev_err(pctldev->dev,
431 pinctrl_dev_get_name(pctldev));
438 desc = pin_desc_get(pctldev, pins[i]);
440 dev_warn(pctldev->dev,
448 ret = ops->set_mux(pctldev, setting->data.mux.func,
458 desc = pin_desc_get(pctldev, pins[i]);
465 pin_free(pctldev, pins[i], NULL);
472 struct pinctrl_dev *pctldev = setting->pctldev;
473 const struct pinctrl_ops *pctlops = pctldev->desc->pctlops;
481 ret = pctlops->get_group_pins(pctldev, setting->data.mux.group,
487 gname = pctlops->get_group_name(pctldev,
489 dev_warn(pctldev->dev,
497 desc = pin_desc_get(pctldev, pins[i]);
499 dev_warn(pctldev->dev,
507 pin_free(pctldev, pins[i], NULL);
511 gname = pctlops->get_group_name(pctldev,
513 dev_warn(pctldev->dev,
527 struct pinctrl_dev *pctldev = s->private;
528 const struct pinmux_ops *pmxops = pctldev->desc->pmxops;
535 mutex_lock(&pctldev->mutex);
536 nfuncs = pmxops->get_functions_count(pctldev);
538 const char *func = pmxops->get_function_name(pctldev,
545 ret = pmxops->get_function_groups(pctldev, func_selector,
559 mutex_unlock(&pctldev->mutex);
566 struct pinctrl_dev *pctldev = s->private;
567 const struct pinctrl_ops *pctlops = pctldev->desc->pctlops;
568 const struct pinmux_ops *pmxops = pctldev->desc->pmxops;
577 mutex_lock(&pctldev->mutex);
580 for (i = 0; i < pctldev->desc->npins; i++) {
584 pin = pctldev->desc->pins[i].number;
585 desc = pin_desc_get(pctldev, pin);
591 !strcmp(desc->mux_owner, pinctrl_dev_get_name(pctldev)))
604 pmxops->get_function_name(pctldev,
606 pctlops->get_group_name(pctldev,
612 mutex_unlock(&pctldev->mutex);
627 struct pinctrl_dev *pctldev = setting->pctldev;
628 const struct pinmux_ops *pmxops = pctldev->desc->pmxops;
629 const struct pinctrl_ops *pctlops = pctldev->desc->pctlops;
632 pctlops->get_group_name(pctldev, setting->data.mux.group),
634 pmxops->get_function_name(pctldev, setting->data.mux.func),
663 struct pinctrl_dev *pctldev)
666 devroot, pctldev, &pinmux_functions_ops);
668 devroot, pctldev, &pinmux_pins_ops);