arch/mips/pic32/pic32mzda/early_pin.c

Source file repositories/reference/linux-study-clean/arch/mips/pic32/pic32mzda/early_pin.c

File Facts

System
Linux kernel
Corpus path
arch/mips/pic32/pic32mzda/early_pin.c
Extension
.c
Size
5775 bytes
Lines
268
Domain
Architecture Layer
Bucket
arch/mips
Inferred role
Architecture Layer: implementation source
Status
source implementation candidate

Why This File Exists

CPU and platform-specific kernel glue: boot entry, traps, syscall entry, interrupts, page tables, context switch, and low-level barriers.

Dependency Surface

Detected Declarations

Annotated Snippet

if (input_pin_reg[i].function == function) {
			__raw_writel(pin, pps_base + input_pin_reg[i].reg);
			return;
		}
	}

	iounmap(pps_base);
}

/* Output PPS Registers */
#define RPA14R 0x1538
#define RPA15R 0x153C
#define RPB0R 0x1540
#define RPB1R 0x1544
#define RPB2R 0x1548
#define RPB3R 0x154C
#define RPB5R 0x1554
#define RPB6R 0x1558
#define RPB7R 0x155C
#define RPB8R 0x1560
#define RPB9R 0x1564
#define RPB10R 0x1568
#define RPB14R 0x1578
#define RPB15R 0x157C
#define RPC1R 0x1584
#define RPC2R 0x1588
#define RPC3R 0x158C
#define RPC4R 0x1590
#define RPC13R 0x15B4
#define RPC14R 0x15B8
#define RPD0R 0x15C0
#define RPD1R 0x15C4
#define RPD2R 0x15C8
#define RPD3R 0x15CC
#define RPD4R 0x15D0
#define RPD5R 0x15D4
#define RPD6R 0x15D8
#define RPD7R 0x15DC
#define RPD9R 0x15E4
#define RPD10R 0x15E8
#define RPD11R 0x15EC
#define RPD12R 0x15F0
#define RPD14R 0x15F8
#define RPD15R 0x15FC
#define RPE3R 0x160C
#define RPE5R 0x1614
#define RPE8R 0x1620
#define RPE9R 0x1624
#define RPF0R 0x1640
#define RPF1R 0x1644
#define RPF2R 0x1648
#define RPF3R 0x164C
#define RPF4R 0x1650
#define RPF5R 0x1654
#define RPF8R 0x1660
#define RPF12R 0x1670
#define RPF13R 0x1674
#define RPG0R 0x1680
#define RPG1R 0x1684
#define RPG6R 0x1698
#define RPG7R 0x169C
#define RPG8R 0x16A0
#define RPG9R 0x16A4

static const struct
{
	int pin;
	int reg;
} output_pin_reg[] = {
	{ OUT_RPD2, RPD2R },
	{ OUT_RPG8, RPG8R },
	{ OUT_RPF4, RPF4R },
	{ OUT_RPD10, RPD10R },
	{ OUT_RPF1, RPF1R },
	{ OUT_RPB9, RPB9R },
	{ OUT_RPB10, RPB10R },
	{ OUT_RPC14, RPC14R },
	{ OUT_RPB5, RPB5R },
	{ OUT_RPC1, RPC1R },
	{ OUT_RPD14, RPD14R },
	{ OUT_RPG1, RPG1R },
	{ OUT_RPA14, RPA14R },
	{ OUT_RPD6, RPD6R },
	{ OUT_RPD3, RPD3R },
	{ OUT_RPG7, RPG7R },
	{ OUT_RPF5, RPF5R },
	{ OUT_RPD11, RPD11R },
	{ OUT_RPF0, RPF0R },
	{ OUT_RPB1, RPB1R },
	{ OUT_RPE5, RPE5R },

Annotation

Implementation Notes