Lines Matching +full:per +full:- +full:pin

1 /* SPDX-License-Identifier: GPL-2.0-only */
3 * Core private header for the pin control subsystem
5 * Copyright (C) 2011 ST-Ericsson SA
6 * Written on behalf of Linaro for ST-Ericsson
13 #include <linux/radix-tree.h>
20 * struct pinctrl_dev - pin control class device
21 * @node: node to include this pin controller in the global pin controller list
22 * @desc: the pin controller descriptor supplied when initializing this pin
24 * @pin_desc_tree: each pin descriptor for this pin controller is stored in
26 * @pin_group_tree: optionally each pin group can be stored in this radix tree
30 * @gpio_ranges: a list of GPIO ranges that is handled by this pin controller,
32 * @dev: the device entry for this pin controller
33 * @owner: module providing the pin controller, used for refcounting
34 * @driver_data: driver data for drivers registering to the pin controller
39 * @mutex: mutex taken on each pin controller specific action
68 * struct pinctrl - per-device pin control state holder
70 * @dev: the device using this pin control handle
87 * struct pinctrl_state - a pinctrl state for a device
99 * struct pinctrl_setting_mux - setting data for MAP_TYPE_MUX_GROUP
109 * struct pinctrl_setting_configs - setting data for MAP_TYPE_CONFIGS_*
110 * @group_or_pin: the group selector or pin ID to program
112 * hardware. Each individual pin controller defines the format and meaning
123 * struct pinctrl_setting - an individual mux or config setting
126 * @pctldev: pin control device handling to be programmed. Not used for
143 * struct pin_desc - pin descriptor for each physical pin in the arch
144 * @pctldev: corresponding pin control device
145 * @name: a name for the pin, e.g. the name of the pin/pad/finger on a
147 * @dynamic_name: if the name of this pin was dynamically allocated
148 * @drv_data: driver-defined per-pin data. pinctrl core does not touch this
149 * @mux_usecount: If zero, the pin is not claimed, and @owner should be NULL.
150 * If non-zero, this pin is claimed by @owner. This field is an integer
153 * or pin, and each of these will increment the @usecount.
155 * @mux_setting: The most recent selected mux setting for this pin, if any.
156 * @gpio_owner: If pinctrl_gpio_request() was called for this pin, this is
157 * the name of the GPIO that "owns" this pin.
174 * struct pinctrl_maps - a list item containing part of the mapping table
188 * struct group_desc - generic pin group descriptor
189 * @name: name of the pin group
192 * @data: pin controller driver specific data
225 const char *pin_get_name(struct pinctrl_dev *pctldev, const unsigned pin);
230 unsigned int pin) in pin_desc_get() argument
232 return radix_tree_lookup(&pctldev->pin_desc_tree, pin); in pin_desc_get()
237 unsigned int pin);
247 for (_i_ = 0, _map_ = &_maps_node_->maps[_i_]; \
248 _i_ < _maps_node_->num_maps; \
249 _i_++, _map_ = &_maps_node_->maps[_i_])