Lines Matching full:pin

3  * ZynqMP pin controller
48 * @name: Name of the pin mux function
49 * @groups: List of pin groups for this function
53 * This structure holds information about pin control function
64 * @pctrl: Pin control device
65 * @groups: Pin groups
67 * @funcs: Pin mux functions
71 * information regarding pin control functions, groups and
83 * struct zynqmp_pctrl_group - Pin control group info
85 * @pins: Group pin numbers
133 unsigned int pin) in zynqmp_pinmux_request_pin() argument
137 ret = zynqmp_pm_pinctrl_request(pin); in zynqmp_pinmux_request_pin()
139 dev_err(pctldev->dev, "request failed for pin %u\n", pin); in zynqmp_pinmux_request_pin()
205 unsigned int pin = pgrp->pins[i]; in zynqmp_pinmux_set_mux() local
207 ret = zynqmp_pm_pinctrl_set_function(pin, function); in zynqmp_pinmux_set_mux()
209 dev_err(pctldev->dev, "set mux failed for pin %u\n", in zynqmp_pinmux_set_mux()
210 pin); in zynqmp_pinmux_set_mux()
219 unsigned int pin) in zynqmp_pinmux_release_pin() argument
223 ret = zynqmp_pm_pinctrl_release(pin); in zynqmp_pinmux_release_pin()
225 dev_err(pctldev->dev, "free pin failed for pin %u\n", in zynqmp_pinmux_release_pin()
226 pin); in zynqmp_pinmux_release_pin()
243 * zynqmp_pinconf_cfg_get() - get config value for the pin
244 * @pctldev: Pin control device pointer.
245 * @pin: Pin number.
249 * given pin.
254 unsigned int pin, in zynqmp_pinconf_cfg_get() argument
263 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
267 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
275 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
283 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
291 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
295 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
299 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
316 "Invalid drive strength for pin %d\n", in zynqmp_pinconf_cfg_get()
317 pin); in zynqmp_pinconf_cfg_get()
336 * zynqmp_pinconf_cfg_set() - Set requested config for the pin
338 * @pin: Pin number.
343 * to set requested configurations for the pin.
348 unsigned int pin, unsigned long *configs, in zynqmp_pinconf_cfg_set() argument
361 ret = zynqmp_pm_pinctrl_set_config(pin, param, arg); in zynqmp_pinconf_cfg_set()
366 ret = zynqmp_pm_pinctrl_set_config(pin, param, arg); in zynqmp_pinconf_cfg_set()
371 ret = zynqmp_pm_pinctrl_set_config(pin, param, arg); in zynqmp_pinconf_cfg_set()
376 ret = zynqmp_pm_pinctrl_set_config(pin, param, arg); in zynqmp_pinconf_cfg_set()
380 ret = zynqmp_pm_pinctrl_set_config(pin, param, arg); in zynqmp_pinconf_cfg_set()
399 "Invalid drive strength for pin %d\n", in zynqmp_pinconf_cfg_set()
400 pin); in zynqmp_pinconf_cfg_set()
405 ret = zynqmp_pm_pinctrl_set_config(pin, param, value); in zynqmp_pinconf_cfg_set()
409 ret = zynqmp_pm_pinctrl_get_config(pin, param, &value); in zynqmp_pinconf_cfg_set()
413 "Invalid IO Standard requested for pin %d\n", in zynqmp_pinconf_cfg_set()
414 pin); in zynqmp_pinconf_cfg_set()
420 ret = zynqmp_pm_pinctrl_set_config(pin, param, arg); in zynqmp_pinconf_cfg_set()
433 ret = zynqmp_pm_pinctrl_set_config(pin, param, arg); in zynqmp_pinconf_cfg_set()
447 "failed to set: pin %u param %u value %u\n", in zynqmp_pinconf_cfg_set()
448 pin, param, arg); in zynqmp_pinconf_cfg_set()
461 * Call function to set configs for each pin in the group.
636 static int zynqmp_pinctrl_get_pin_groups(u32 pin, u32 index, u16 *groups) in zynqmp_pinctrl_get_pin_groups() argument
643 qdata.arg1 = pin; in zynqmp_pinctrl_get_pin_groups()
656 unsigned int pin) in zynqmp_pinctrl_group_add_pin() argument
658 group->pins[group->npins++] = pin; in zynqmp_pinctrl_group_add_pin()
665 * @pin: Pin number.
667 * Query firmware to get groups available for the given pin.
668 * Based on the firmware response(group IDs for the pin), add
669 * pin number to the respective group's pin array.
672 * of pins and pin numbers data.
678 unsigned int pin) in zynqmp_pinctrl_create_pin_groups() argument
684 ret = zynqmp_pinctrl_get_pin_groups(pin, index, resp); in zynqmp_pinctrl_create_pin_groups()
695 zynqmp_pinctrl_group_add_pin(&groups[resp[i]], pin); in zynqmp_pinctrl_create_pin_groups()
704 * zynqmp_pinctrl_prepare_group_pins() - prepare each group's pin data
709 * Prepare pin number and number of pins data for each pins.
717 unsigned int pin; in zynqmp_pinctrl_prepare_group_pins() local
720 for (pin = 0; pin < zynqmp_desc.npins; pin++) { in zynqmp_pinctrl_prepare_group_pins()
721 ret = zynqmp_pinctrl_create_pin_groups(dev, groups, pin); in zynqmp_pinctrl_prepare_group_pins()
732 * @pctrl: Pin control driver data.
734 * Query firmware for functions, groups and pin information and
735 * prepare pin control driver data.
742 * pins and pin numbers for each group).
810 * zynqmp_pinctrl_prepare_pin_desc() - prepare pin description info
812 * @zynqmp_pins: Pin information.
815 * Query number of pins information from firmware and prepare pin
816 * description containing pin number and pin name.
825 struct pinctrl_pin_desc *pins, *pin; in zynqmp_pinctrl_prepare_pin_desc() local
838 pin = &pins[i]; in zynqmp_pinctrl_prepare_pin_desc()
839 pin->number = i; in zynqmp_pinctrl_prepare_pin_desc()
840 pin->name = devm_kasprintf(dev, GFP_KERNEL, "%s%d", in zynqmp_pinctrl_prepare_pin_desc()
842 if (!pin->name) in zynqmp_pinctrl_prepare_pin_desc()
864 dev_err(&pdev->dev, "pin desc prepare fail with %d\n", ret); in zynqmp_pinctrl_probe()
899 MODULE_DESCRIPTION("ZynqMP Pin Controller Driver");