drivers/pinctrl/pinctrl-rockchip.h
Source file repositories/reference/linux-study-clean/drivers/pinctrl/pinctrl-rockchip.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/pinctrl/pinctrl-rockchip.h- Extension
.h- Size
- 11961 bytes
- Lines
- 477
- 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 rockchip_gpio_regsstruct rockchip_iomuxstruct rockchip_drvstruct rockchip_pin_bankstruct rockchip_mux_recalced_datastruct rockchip_mux_route_datastruct rockchip_pin_ctrlstruct rockchip_pin_configstruct rockchip_pin_deferredstruct rockchip_pin_groupstruct rockchip_pmx_funcstruct rockchip_pinctrlenum rockchip_pinctrl_typeenum rockchip_pin_drv_typeenum rockchip_pin_pull_typeenum rockchip_mux_route_locationenum pin_config_param
Annotated Snippet
struct rockchip_gpio_regs {
u32 port_dr;
u32 port_ddr;
u32 int_en;
u32 int_mask;
u32 int_type;
u32 int_polarity;
u32 int_bothedge;
u32 int_status;
u32 int_rawstatus;
u32 debounce;
u32 dbclk_div_en;
u32 dbclk_div_con;
u32 port_eoi;
u32 ext_port;
u32 version_id;
};
/**
* struct rockchip_iomux
* @type: iomux variant using IOMUX_* constants
* @offset: if initialized to -1 it will be autocalculated, by specifying
* an initial offset value the relevant source offset can be reset
* to a new value for autocalculating the following iomux registers.
*/
struct rockchip_iomux {
int type;
int offset;
};
/*
* enum type index corresponding to rockchip_perpin_drv_list arrays index.
*/
enum rockchip_pin_drv_type {
DRV_TYPE_IO_DEFAULT = 0,
DRV_TYPE_IO_1V8_OR_3V0,
DRV_TYPE_IO_1V8_ONLY,
DRV_TYPE_IO_1V8_3V0_AUTO,
DRV_TYPE_IO_3V3_ONLY,
DRV_TYPE_IO_LEVEL_2_BIT,
DRV_TYPE_IO_LEVEL_8_BIT,
DRV_TYPE_MAX
};
/*
* enum type index corresponding to rockchip_pull_list arrays index.
*/
enum rockchip_pin_pull_type {
PULL_TYPE_IO_DEFAULT = 0,
PULL_TYPE_IO_1V8_ONLY,
PULL_TYPE_MAX
};
/**
* struct rockchip_drv
* @drv_type: drive strength variant using rockchip_perpin_drv_type
* @offset: if initialized to -1 it will be autocalculated, by specifying
* an initial offset value the relevant source offset can be reset
* to a new value for autocalculating the following drive strength
* registers. if used chips own cal_drv func instead to calculate
* registers offset, the variant could be ignored.
*/
struct rockchip_drv {
enum rockchip_pin_drv_type drv_type;
int offset;
};
/**
* struct rockchip_pin_bank
* @dev: the pinctrl device bind to the bank
* @reg_base: register base of the gpio bank
* @regmap_pull: optional separate register for additional pull settings
* @clk: clock of the gpio bank
* @db_clk: clock of the gpio debounce
* @irq: interrupt of the gpio bank
* @saved_masks: Saved content of GPIO_INTEN at suspend time.
* @pin_base: first pin number
* @nr_pins: number of pins in this bank
* @name: name of the bank
* @bank_num: number of the bank, to account for holes
* @iomux: array describing the 4 iomux sources of the bank
* @drv: array describing the 4 drive strength sources of the bank
* @pull_type: array describing the 4 pull type sources of the bank
* @valid: is all necessary information present
* @of_node: dt node of this bank
* @drvdata: common pinctrl basedata
* @domain: irqdomain of the gpio bank
* @gpio_chip: gpiolib chip
* @grange: gpio range
* @slock: spinlock for the gpio bank
Annotation
- Detected declarations: `struct rockchip_gpio_regs`, `struct rockchip_iomux`, `struct rockchip_drv`, `struct rockchip_pin_bank`, `struct rockchip_mux_recalced_data`, `struct rockchip_mux_route_data`, `struct rockchip_pin_ctrl`, `struct rockchip_pin_config`, `struct rockchip_pin_deferred`, `struct rockchip_pin_group`.
- 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.