drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c
Source file repositories/reference/linux-study-clean/drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c
File Facts
- System
- Linux kernel
- Corpus path
drivers/pinctrl/qcom/pinctrl-sdm670-lpass-lpi.c- Extension
.c- Size
- 5711 bytes
- Lines
- 174
- 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
linux/kernel.hlinux/module.hlinux/of.hlinux/platform_device.hlinux/pm_clock.hlinux/pm_runtime.hlinux/pinctrl/pinctrl.hpinctrl-lpass-lpi.h
Detected Declarations
enum lpass_lpi_functions
Annotated Snippet
// SPDX-License-Identifier: GPL-2.0-only
/*
* Copyright (c) 2023-2026, Richard Acayan. All rights reserved.
*/
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/of.h>
#include <linux/platform_device.h>
#include <linux/pm_clock.h>
#include <linux/pm_runtime.h>
#include <linux/pinctrl/pinctrl.h>
#include "pinctrl-lpass-lpi.h"
enum lpass_lpi_functions {
LPI_MUX_comp_rx,
LPI_MUX_dmic1_clk,
LPI_MUX_dmic1_data,
LPI_MUX_dmic2_clk,
LPI_MUX_dmic2_data,
LPI_MUX_i2s1_clk,
LPI_MUX_i2s1_data,
LPI_MUX_i2s1_ws,
LPI_MUX_lpi_cdc_rst,
LPI_MUX_mclk0,
LPI_MUX_pdm_rx,
LPI_MUX_pdm_sync,
LPI_MUX_pdm_tx,
LPI_MUX_slimbus_clk,
LPI_MUX_gpio,
LPI_MUX__,
};
static const struct pinctrl_pin_desc sdm670_lpi_pinctrl_pins[] = {
PINCTRL_PIN(0, "gpio0"),
PINCTRL_PIN(1, "gpio1"),
PINCTRL_PIN(2, "gpio2"),
PINCTRL_PIN(3, "gpio3"),
PINCTRL_PIN(4, "gpio4"),
PINCTRL_PIN(5, "gpio5"),
PINCTRL_PIN(6, "gpio6"),
PINCTRL_PIN(7, "gpio7"),
PINCTRL_PIN(8, "gpio8"),
PINCTRL_PIN(9, "gpio9"),
PINCTRL_PIN(10, "gpio10"),
PINCTRL_PIN(11, "gpio11"),
PINCTRL_PIN(12, "gpio12"),
PINCTRL_PIN(13, "gpio13"),
PINCTRL_PIN(14, "gpio14"),
PINCTRL_PIN(15, "gpio15"),
PINCTRL_PIN(16, "gpio16"),
PINCTRL_PIN(17, "gpio17"),
PINCTRL_PIN(18, "gpio18"),
PINCTRL_PIN(19, "gpio19"),
PINCTRL_PIN(20, "gpio20"),
PINCTRL_PIN(21, "gpio21"),
PINCTRL_PIN(22, "gpio22"),
PINCTRL_PIN(23, "gpio23"),
PINCTRL_PIN(24, "gpio24"),
PINCTRL_PIN(25, "gpio25"),
PINCTRL_PIN(26, "gpio26"),
PINCTRL_PIN(27, "gpio27"),
PINCTRL_PIN(28, "gpio28"),
PINCTRL_PIN(29, "gpio29"),
PINCTRL_PIN(30, "gpio30"),
PINCTRL_PIN(31, "gpio31"),
};
static const char * const comp_rx_groups[] = { "gpio22", "gpio24" };
static const char * const dmic1_clk_groups[] = { "gpio26" };
static const char * const dmic1_data_groups[] = { "gpio27" };
static const char * const dmic2_clk_groups[] = { "gpio28" };
static const char * const dmic2_data_groups[] = { "gpio29" };
static const char * const i2s1_clk_groups[] = { "gpio8" };
static const char * const i2s1_ws_groups[] = { "gpio9" };
static const char * const i2s1_data_groups[] = { "gpio10", "gpio11" };
static const char * const lpi_cdc_rst_groups[] = { "gpio29" };
static const char * const mclk0_groups[] = { "gpio19" };
static const char * const pdm_rx_groups[] = { "gpio21", "gpio23", "gpio25" };
static const char * const pdm_sync_groups[] = { "gpio19" };
static const char * const pdm_tx_groups[] = { "gpio20" };
static const char * const slimbus_clk_groups[] = { "gpio18" };
static const struct lpi_pingroup sdm670_lpi_pinctrl_groups[] = {
LPI_PINGROUP(0, LPI_NO_SLEW, _, _, _, _),
LPI_PINGROUP(1, LPI_NO_SLEW, _, _, _, _),
LPI_PINGROUP(2, LPI_NO_SLEW, _, _, _, _),
LPI_PINGROUP(3, LPI_NO_SLEW, _, _, _, _),
LPI_PINGROUP(4, LPI_NO_SLEW, _, _, _, _),
Annotation
- Immediate include surface: `linux/kernel.h`, `linux/module.h`, `linux/of.h`, `linux/platform_device.h`, `linux/pm_clock.h`, `linux/pm_runtime.h`, `linux/pinctrl/pinctrl.h`, `pinctrl-lpass-lpi.h`.
- Detected declarations: `enum lpass_lpi_functions`.
- 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.