Lines Matching full:pin
3 * ZynqMP pin controller
45 * @name: Name of the pin mux function
46 * @groups: List of pin groups for this function
50 * This structure holds information about pin control function
61 * @pctrl: Pin control device
62 * @groups: Pin groups
64 * @funcs: Pin mux functions
68 * information regarding pin control functions, groups and
80 * struct zynqmp_pctrl_group - Pin control group info
82 * @pins: Group pin numbers
130 unsigned int pin) in zynqmp_pinmux_request_pin() argument
134 ret = zynqmp_pm_pinctrl_request(pin); in zynqmp_pinmux_request_pin()
136 dev_err(pctldev->dev, "request failed for pin %u\n", pin); in zynqmp_pinmux_request_pin()
200 unsigned int pin = pgrp->pins[i]; in zynqmp_pinmux_set_mux() local
202 ret = zynqmp_pm_pinctrl_set_function(pin, function); in zynqmp_pinmux_set_mux()
204 dev_err(pctldev->dev, "set mux failed for pin %u\n", in zynqmp_pinmux_set_mux()
205 pin); in zynqmp_pinmux_set_mux()
214 unsigned int pin) in zynqmp_pinmux_release_pin() argument
218 ret = zynqmp_pm_pinctrl_release(pin); in zynqmp_pinmux_release_pin()
220 dev_err(pctldev->dev, "free pin failed for pin %u\n", in zynqmp_pinmux_release_pin()
221 pin); in zynqmp_pinmux_release_pin()
238 * zynqmp_pinconf_cfg_get() - get config value for the pin
239 * @pctldev: Pin control device pointer.
240 * @pin: Pin number.
244 * given pin.
249 unsigned int pin, in zynqmp_pinconf_cfg_get() argument
258 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
262 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
270 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
278 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
286 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
290 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
294 ret = zynqmp_pm_pinctrl_get_config(pin, param, &arg); in zynqmp_pinconf_cfg_get()
311 "Invalid drive strength for pin %d\n", in zynqmp_pinconf_cfg_get()
312 pin); in zynqmp_pinconf_cfg_get()
331 * zynqmp_pinconf_cfg_set() - Set requested config for the pin
333 * @pin: Pin number.
338 * to set requested configurations for the pin.
343 unsigned int pin, unsigned long *configs, in zynqmp_pinconf_cfg_set() argument
356 ret = zynqmp_pm_pinctrl_set_config(pin, param, arg); in zynqmp_pinconf_cfg_set()
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()
375 ret = zynqmp_pm_pinctrl_set_config(pin, param, arg); in zynqmp_pinconf_cfg_set()
394 "Invalid drive strength for pin %d\n", in zynqmp_pinconf_cfg_set()
395 pin); in zynqmp_pinconf_cfg_set()
400 ret = zynqmp_pm_pinctrl_set_config(pin, param, value); in zynqmp_pinconf_cfg_set()
404 ret = zynqmp_pm_pinctrl_get_config(pin, param, &value); in zynqmp_pinconf_cfg_set()
408 "Invalid IO Standard requested for pin %d\n", in zynqmp_pinconf_cfg_set()
409 pin); in zynqmp_pinconf_cfg_set()
433 "failed to set: pin %u param %u value %u\n", in zynqmp_pinconf_cfg_set()
434 pin, param, arg); in zynqmp_pinconf_cfg_set()
447 * Call function to set configs for each pin in the group.
622 static int zynqmp_pinctrl_get_pin_groups(u32 pin, u32 index, u16 *groups) in zynqmp_pinctrl_get_pin_groups() argument
629 qdata.arg1 = pin; in zynqmp_pinctrl_get_pin_groups()
642 unsigned int pin) in zynqmp_pinctrl_group_add_pin() argument
644 group->pins[group->npins++] = pin; in zynqmp_pinctrl_group_add_pin()
651 * @pin: Pin number.
653 * Query firmware to get groups available for the given pin.
654 * Based on the firmware response(group IDs for the pin), add
655 * pin number to the respective group's pin array.
658 * of pins and pin numbers data.
664 unsigned int pin) in zynqmp_pinctrl_create_pin_groups() argument
670 ret = zynqmp_pinctrl_get_pin_groups(pin, index, resp); in zynqmp_pinctrl_create_pin_groups()
681 zynqmp_pinctrl_group_add_pin(&groups[resp[i]], pin); in zynqmp_pinctrl_create_pin_groups()
690 * zynqmp_pinctrl_prepare_group_pins() - prepare each group's pin data
695 * Prepare pin number and number of pins data for each pins.
703 unsigned int pin; in zynqmp_pinctrl_prepare_group_pins() local
706 for (pin = 0; pin < zynqmp_desc.npins; pin++) { in zynqmp_pinctrl_prepare_group_pins()
707 ret = zynqmp_pinctrl_create_pin_groups(dev, groups, pin); in zynqmp_pinctrl_prepare_group_pins()
718 * @pctrl: Pin control driver data.
720 * Query firmware for functions, groups and pin information and
721 * prepare pin control driver data.
728 * pins and pin numbers for each group).
796 * zynqmp_pinctrl_prepare_pin_desc() - prepare pin description info
798 * @zynqmp_pins: Pin information.
801 * Query number of pins information from firmware and prepare pin
802 * description containing pin number and pin name.
811 struct pinctrl_pin_desc *pins, *pin; in zynqmp_pinctrl_prepare_pin_desc() local
824 pin = &pins[i]; in zynqmp_pinctrl_prepare_pin_desc()
825 pin->number = i; in zynqmp_pinctrl_prepare_pin_desc()
826 pin->name = devm_kasprintf(dev, GFP_KERNEL, "%s%d", in zynqmp_pinctrl_prepare_pin_desc()
828 if (!pin->name) in zynqmp_pinctrl_prepare_pin_desc()
850 dev_err(&pdev->dev, "pin desc prepare fail with %d\n", ret); in zynqmp_pinctrl_probe()
885 MODULE_DESCRIPTION("ZynqMP Pin Controller Driver");