drivers/pinctrl/renesas/pfc-emev2.c

Source file repositories/reference/linux-study-clean/drivers/pinctrl/renesas/pfc-emev2.c

File Facts

System
Linux kernel
Corpus path
drivers/pinctrl/renesas/pfc-emev2.c
Extension
.c
Size
51114 bytes
Lines
1666
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.

Dependency Surface

Detected Declarations

Annotated Snippet

// SPDX-License-Identifier: GPL-2.0
/*
 * Pin Function Controller Support
 *
 * Copyright (C) 2015 Niklas Söderlund
 */
#include <linux/kernel.h>

#include "sh_pfc.h"

#define CPU_ALL_PORT(fn, pfx, sfx)					\
	PORT_10(0,  fn, pfx, sfx),	PORT_90(0,  fn, pfx, sfx),	\
	PORT_10(100, fn, pfx##10, sfx),	PORT_10(110, fn, pfx##11, sfx),	\
	PORT_10(120, fn, pfx##12, sfx),	PORT_10(130, fn, pfx##13, sfx),	\
	PORT_10(140, fn, pfx##14, sfx), PORT_1(150, fn, pfx##150, sfx), \
	PORT_1(151, fn, pfx##151, sfx), PORT_1(152, fn, pfx##152, sfx), \
	PORT_1(153, fn, pfx##153, sfx), PORT_1(154, fn, pfx##154, sfx), \
	PORT_1(155, fn, pfx##155, sfx), PORT_1(156, fn, pfx##156, sfx), \
	PORT_1(157, fn, pfx##157, sfx), PORT_1(158, fn, pfx##158, sfx)

#define CPU_ALL_NOGP(fn)		\
	PIN_NOGP(LCD3_B2, "B15", fn),	\
	PIN_NOGP(LCD3_B3, "C15", fn),	\
	PIN_NOGP(LCD3_B4, "D15", fn),	\
	PIN_NOGP(LCD3_B5, "B14", fn),	\
	PIN_NOGP(LCD3_B6, "C14", fn),	\
	PIN_NOGP(LCD3_B7, "D14", fn),	\
	PIN_NOGP(LCD3_G2, "B17", fn),	\
	PIN_NOGP(LCD3_G3, "C17", fn),	\
	PIN_NOGP(LCD3_G4, "D17", fn),	\
	PIN_NOGP(LCD3_G5, "B16", fn),	\
	PIN_NOGP(LCD3_G6, "C16", fn),	\
	PIN_NOGP(LCD3_G7, "D16", fn)

enum {
	PINMUX_RESERVED = 0,

	PINMUX_DATA_BEGIN,
	PORT_ALL(DATA),
	PINMUX_DATA_END,

	PINMUX_FUNCTION_BEGIN,
	PORT_ALL(FN),

	/* GPSR0 */
	FN_LCD3_1_0_PORT18, FN_LCD3_1_0_PORT20, FN_LCD3_1_0_PORT21,
	FN_LCD3_1_0_PORT22, FN_LCD3_1_0_PORT23,
	FN_JT_SEL, FN_ERR_RST_REQB, FN_REF_CLKO, FN_EXT_CLKI, FN_LCD3_PXCLKB,

	/* GPSR1 */
	FN_LCD3_9_8_PORT38, FN_LCD3_9_8_PORT39, FN_LCD3_11_10_PORT40,
	FN_LCD3_11_10_PORT41, FN_LCD3_11_10_PORT42, FN_LCD3_11_10_PORT43,
	FN_IIC_1_0_PORT46, FN_IIC_1_0_PORT47,
	FN_LCD3_R0, FN_LCD3_R1, FN_LCD3_R2, FN_LCD3_R3, FN_LCD3_R4, FN_LCD3_R5,
	FN_IIC0_SCL, FN_IIC0_SDA, FN_SD_CKI, FN_SDI0_CKO, FN_SDI0_CKI,
	FN_SDI0_CMD, FN_SDI0_DATA0, FN_SDI0_DATA1, FN_SDI0_DATA2,
	FN_SDI0_DATA3, FN_SDI0_DATA4, FN_SDI0_DATA5, FN_SDI0_DATA6,
	FN_SDI0_DATA7, FN_SDI1_CKO, FN_SDI1_CKI, FN_SDI1_CMD,

	/* GPSR2 */
	FN_AB_1_0_PORT71, FN_AB_1_0_PORT72, FN_AB_1_0_PORT73,
	FN_AB_1_0_PORT74, FN_AB_1_0_PORT75, FN_AB_1_0_PORT76,
	FN_AB_1_0_PORT77, FN_AB_1_0_PORT78, FN_AB_1_0_PORT79,
	FN_AB_1_0_PORT80, FN_AB_1_0_PORT81, FN_AB_1_0_PORT82,
	FN_AB_1_0_PORT83, FN_AB_1_0_PORT84, FN_AB_3_2_PORT85,
	FN_AB_3_2_PORT86, FN_AB_3_2_PORT87, FN_AB_3_2_PORT88,
	FN_AB_5_4_PORT89, FN_AB_5_4_PORT90, FN_AB_7_6_PORT91,
	FN_AB_7_6_PORT92, FN_AB_1_0_PORT93, FN_AB_1_0_PORT94,
	FN_AB_1_0_PORT95,
	FN_SDI1_DATA0, FN_SDI1_DATA1, FN_SDI1_DATA2, FN_SDI1_DATA3,
	FN_AB_CLK, FN_AB_CSB0, FN_AB_CSB1,

	/* GPSR3 */
	FN_AB_13_12_PORT104, FN_AB_13_12_PORT103, FN_AB_11_10_PORT102,
	FN_AB_11_10_PORT101, FN_AB_11_10_PORT100, FN_AB_9_8_PORT99,
	FN_AB_9_8_PORT98, FN_AB_9_8_PORT97,
	FN_USI_1_0_PORT109, FN_USI_1_0_PORT110, FN_USI_1_0_PORT111,
	FN_USI_1_0_PORT112, FN_USI_3_2_PORT113, FN_USI_3_2_PORT114,
	FN_USI_5_4_PORT115, FN_USI_5_4_PORT116, FN_USI_5_4_PORT117,
	FN_USI_5_4_PORT118, FN_USI_7_6_PORT119, FN_USI_9_8_PORT120,
	FN_USI_9_8_PORT121,
	FN_AB_A20, FN_USI0_CS1, FN_USI0_CS2, FN_USI1_DI,
	FN_USI1_DO,
	FN_NTSC_CLK, FN_NTSC_DATA0, FN_NTSC_DATA1, FN_NTSC_DATA2,
	FN_NTSC_DATA3, FN_NTSC_DATA4,

	/* GPRS4 */
	FN_HSI_1_0_PORT143, FN_HSI_1_0_PORT144, FN_HSI_1_0_PORT145,
	FN_HSI_1_0_PORT146, FN_HSI_1_0_PORT147, FN_HSI_1_0_PORT148,
	FN_HSI_1_0_PORT149, FN_HSI_1_0_PORT150,

Annotation

Implementation Notes