drivers/pinctrl/freescale/pinctrl-imx28.c

Source file repositories/reference/linux-study-clean/drivers/pinctrl/freescale/pinctrl-imx28.c

File Facts

System
Linux kernel
Corpus path
drivers/pinctrl/freescale/pinctrl-imx28.c
Extension
.c
Size
10792 bytes
Lines
406
Domain
Driver Families
Bucket
drivers/pinctrl
Inferred role
Driver Families: exported/initcall integration point
Status
integration 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.

Dependency Surface

Detected Declarations

Annotated Snippet

// SPDX-License-Identifier: GPL-2.0+
//
// Freescale i.MX28 pinctrl driver
//
// Author: Shawn Guo <shawn.guo@linaro.org>
// Copyright 2012 Freescale Semiconductor, Inc.

#include <linux/init.h>
#include <linux/mod_devicetable.h>
#include <linux/platform_device.h>
#include <linux/pinctrl/pinctrl.h>
#include "pinctrl-mxs.h"

enum imx28_pin_enum {
	GPMI_D00	= PINID(0, 0),
	GPMI_D01	= PINID(0, 1),
	GPMI_D02	= PINID(0, 2),
	GPMI_D03	= PINID(0, 3),
	GPMI_D04	= PINID(0, 4),
	GPMI_D05	= PINID(0, 5),
	GPMI_D06	= PINID(0, 6),
	GPMI_D07	= PINID(0, 7),
	GPMI_CE0N	= PINID(0, 16),
	GPMI_CE1N	= PINID(0, 17),
	GPMI_CE2N	= PINID(0, 18),
	GPMI_CE3N	= PINID(0, 19),
	GPMI_RDY0	= PINID(0, 20),
	GPMI_RDY1	= PINID(0, 21),
	GPMI_RDY2	= PINID(0, 22),
	GPMI_RDY3	= PINID(0, 23),
	GPMI_RDN	= PINID(0, 24),
	GPMI_WRN	= PINID(0, 25),
	GPMI_ALE	= PINID(0, 26),
	GPMI_CLE	= PINID(0, 27),
	GPMI_RESETN	= PINID(0, 28),
	LCD_D00		= PINID(1, 0),
	LCD_D01		= PINID(1, 1),
	LCD_D02		= PINID(1, 2),
	LCD_D03		= PINID(1, 3),
	LCD_D04		= PINID(1, 4),
	LCD_D05		= PINID(1, 5),
	LCD_D06		= PINID(1, 6),
	LCD_D07		= PINID(1, 7),
	LCD_D08		= PINID(1, 8),
	LCD_D09		= PINID(1, 9),
	LCD_D10		= PINID(1, 10),
	LCD_D11		= PINID(1, 11),
	LCD_D12		= PINID(1, 12),
	LCD_D13		= PINID(1, 13),
	LCD_D14		= PINID(1, 14),
	LCD_D15		= PINID(1, 15),
	LCD_D16		= PINID(1, 16),
	LCD_D17		= PINID(1, 17),
	LCD_D18		= PINID(1, 18),
	LCD_D19		= PINID(1, 19),
	LCD_D20		= PINID(1, 20),
	LCD_D21		= PINID(1, 21),
	LCD_D22		= PINID(1, 22),
	LCD_D23		= PINID(1, 23),
	LCD_RD_E	= PINID(1, 24),
	LCD_WR_RWN	= PINID(1, 25),
	LCD_RS		= PINID(1, 26),
	LCD_CS		= PINID(1, 27),
	LCD_VSYNC	= PINID(1, 28),
	LCD_HSYNC	= PINID(1, 29),
	LCD_DOTCLK	= PINID(1, 30),
	LCD_ENABLE	= PINID(1, 31),
	SSP0_DATA0	= PINID(2, 0),
	SSP0_DATA1	= PINID(2, 1),
	SSP0_DATA2	= PINID(2, 2),
	SSP0_DATA3	= PINID(2, 3),
	SSP0_DATA4	= PINID(2, 4),
	SSP0_DATA5	= PINID(2, 5),
	SSP0_DATA6	= PINID(2, 6),
	SSP0_DATA7	= PINID(2, 7),
	SSP0_CMD	= PINID(2, 8),
	SSP0_DETECT	= PINID(2, 9),
	SSP0_SCK	= PINID(2, 10),
	SSP1_SCK	= PINID(2, 12),
	SSP1_CMD	= PINID(2, 13),
	SSP1_DATA0	= PINID(2, 14),
	SSP1_DATA3	= PINID(2, 15),
	SSP2_SCK	= PINID(2, 16),
	SSP2_MOSI	= PINID(2, 17),
	SSP2_MISO	= PINID(2, 18),
	SSP2_SS0	= PINID(2, 19),
	SSP2_SS1	= PINID(2, 20),
	SSP2_SS2	= PINID(2, 21),
	SSP3_SCK	= PINID(2, 24),
	SSP3_MOSI	= PINID(2, 25),

Annotation

Implementation Notes