drivers/pinctrl/tegra/pinctrl-tegra.h
Source file repositories/reference/linux-study-clean/drivers/pinctrl/tegra/pinctrl-tegra.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/pinctrl/tegra/pinctrl-tegra.h- Extension
.h- Size
- 7098 bytes
- Lines
- 224
- Domain
- Driver Families
- Bucket
- drivers/pinctrl
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct tegra_pingroup_configstruct tegra_pmxstruct tegra_functionstruct tegra_pingroupstruct tegra_pinctrl_soc_dataenum tegra_pinconf_paramenum tegra_pinconf_pullenum tegra_pinconf_tristate
Annotated Snippet
struct tegra_pingroup_config {
bool is_sfsel;
};
struct tegra_pmx {
struct device *dev;
struct pinctrl_dev *pctl;
const struct tegra_pinctrl_soc_data *soc;
struct tegra_function *functions;
const char **group_pins;
struct pinctrl_gpio_range gpio_range;
struct pinctrl_desc desc;
int nbanks;
void __iomem **regs;
u32 *backup_regs;
unsigned int num_pingroup_configs;
struct tegra_pingroup_config pingroup_configs[] __counted_by(num_pingroup_configs);
};
enum tegra_pinconf_param {
/* argument: tegra_pinconf_pull */
TEGRA_PINCONF_PARAM_PULL,
/* argument: tegra_pinconf_tristate */
TEGRA_PINCONF_PARAM_TRISTATE,
/* argument: Boolean */
TEGRA_PINCONF_PARAM_ENABLE_INPUT,
/* argument: Boolean */
TEGRA_PINCONF_PARAM_OPEN_DRAIN,
/* argument: Boolean */
TEGRA_PINCONF_PARAM_LOCK,
/* argument: Boolean */
TEGRA_PINCONF_PARAM_IORESET,
/* argument: Boolean */
TEGRA_PINCONF_PARAM_RCV_SEL,
/* argument: Boolean */
TEGRA_PINCONF_PARAM_HIGH_SPEED_MODE,
/* argument: Boolean */
TEGRA_PINCONF_PARAM_SCHMITT,
/* argument: Boolean */
TEGRA_PINCONF_PARAM_LOW_POWER_MODE,
/* argument: Integer, range is HW-dependant */
TEGRA_PINCONF_PARAM_DRIVE_DOWN_STRENGTH,
/* argument: Integer, range is HW-dependant */
TEGRA_PINCONF_PARAM_DRIVE_UP_STRENGTH,
/* argument: Integer, range is HW-dependant */
TEGRA_PINCONF_PARAM_SLEW_RATE_FALLING,
/* argument: Integer, range is HW-dependant */
TEGRA_PINCONF_PARAM_SLEW_RATE_RISING,
/* argument: Integer, range is HW-dependant */
TEGRA_PINCONF_PARAM_DRIVE_TYPE,
/* argument: Boolean */
TEGRA_PINCONF_PARAM_GPIO_MODE,
};
enum tegra_pinconf_pull {
TEGRA_PINCONFIG_PULL_NONE,
TEGRA_PINCONFIG_PULL_DOWN,
TEGRA_PINCONFIG_PULL_UP,
};
enum tegra_pinconf_tristate {
TEGRA_PINCONFIG_DRIVEN,
TEGRA_PINCONFIG_TRISTATE,
};
#define TEGRA_PINCONF_PACK(_param_, _arg_) ((_param_) << 16 | (_arg_))
#define TEGRA_PINCONF_UNPACK_PARAM(_conf_) ((_conf_) >> 16)
#define TEGRA_PINCONF_UNPACK_ARG(_conf_) ((_conf_) & 0xffff)
/**
* struct tegra_function - Tegra pinctrl mux function
* @name: The name of the function, exported to pinctrl core.
* @groups: An array of pin groups that may select this function.
* @ngroups: The number of entries in @groups.
*/
struct tegra_function {
const char *name;
const char **groups;
unsigned ngroups;
};
/**
* struct tegra_pingroup - Tegra pin group
* @name The name of the pin group.
* @pins An array of pin IDs included in this pin group.
* @npins The number of entries in @pins.
* @funcs The mux functions which can be muxed onto this group.
* @mux_reg: Mux register offset.
Annotation
- Detected declarations: `struct tegra_pingroup_config`, `struct tegra_pmx`, `struct tegra_function`, `struct tegra_pingroup`, `struct tegra_pinctrl_soc_data`, `enum tegra_pinconf_param`, `enum tegra_pinconf_pull`, `enum tegra_pinconf_tristate`.
- Atlas domain: Driver Families / drivers/pinctrl.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.