/* SPDX-License-Identifier: GPL-2.0-only */ #include <soc/gpio.h> /* NCORE GPIOs */ static const struct soc_gpio_map gpncore_gpio_map[] = { GPIO_INPUT, /* GPIO_S0_NC[00] */ GPIO_INPUT, /* GPIO_S0_NC[01] */ GPIO_INPUT, /* GPIO_S0_NC[02] */ GPIO_INPUT, /* GPIO_S0_NC[03] */ GPIO_INPUT, /* GPIO_S0_NC[04] */ GPIO_INPUT, /* GPIO_S0_NC[05] */ GPIO_INPUT, /* GPIO_S0_NC[06] */ GPIO_INPUT, /* GPIO_S0_NC[07] */ GPIO_INPUT, /* GPIO_S0_NC[08] */ GPIO_INPUT, /* GPIO_S0_NC[09] */ GPIO_INPUT, /* GPIO_S0_NC[10] */ GPIO_INPUT, /* GPIO_S0_NC[11] */ GPIO_INPUT, /* GPIO_S0_NC[12] */ GPIO_INPUT, /* GPIO_S0_NC[13] */ GPIO_INPUT, /* GPIO_S0_NC[14] */ GPIO_INPUT, /* GPIO_S0_NC[15] */ GPIO_INPUT, /* GPIO_S0_NC[16] */ GPIO_INPUT, /* GPIO_S0_NC[17] */ GPIO_INPUT, /* GPIO_S0_NC[18] */ GPIO_INPUT, /* GPIO_S0_NC[19] */ GPIO_INPUT, /* GPIO_S0_NC[20] */ GPIO_INPUT, /* GPIO_S0_NC[21] */ GPIO_INPUT, /* GPIO_S0_NC[22] */ GPIO_INPUT, /* GPIO_S0_NC[23] */ GPIO_INPUT, /* GPIO_S0_NC[24] */ GPIO_INPUT, /* GPIO_S0_NC[25] */ GPIO_INPUT, /* GPIO_S0_NC[26] */ GPIO_END }; /* SCORE GPIOs */ static const struct soc_gpio_map gpscore_gpio_map[] = { GPIO_INPUT, /* GPIO_S0_SC[000] */ GPIO_INPUT, /* GPIO_S0_SC[001] */ GPIO_FUNC1, /* SATA_LED# */ GPIO_FUNC1, /* PCIE_CLKREQ[0]# */ GPIO_FUNC1, /* PCIE_CLKREQ[1]# */ GPIO_FUNC1, /* PCIE_CLKREQ[2]# */ GPIO_FUNC1, /* PCIE_CLKREQ[3]# */ GPIO_INPUT, /* GPIO_S0_SC[007] */ GPIO_INPUT, /* GPIO_S0_SC[008] */ GPIO_INPUT, /* GPIO_S0_SC[009] */ GPIO_INPUT, /* GPIO_S0_SC[010] */ GPIO_INPUT, /* GPIO_S0_SC[011] */ GPIO_INPUT, /* GPIO_S0_SC[012] */ GPIO_INPUT, /* GPIO_S0_SC[013] */ GPIO_INPUT, /* GPIO_S0_SC[014] */ GPIO_INPUT, /* GPIO_S0_SC[015] */ GPIO_INPUT, /* GPIO_S0_SC[016] */ GPIO_INPUT, /* GPIO_S0_SC[017] */ GPIO_INPUT, /* GPIO_S0_SC[018] */ GPIO_INPUT, /* GPIO_S0_SC[019] */ GPIO_INPUT, /* GPIO_S0_SC[020] */ GPIO_INPUT, /* GPIO_S0_SC[021] */ GPIO_INPUT, /* GPIO_S0_SC[022] */ GPIO_INPUT, /* GPIO_S0_SC[023] */ GPIO_INPUT, /* GPIO_S0_SC[024] */ GPIO_INPUT, /* GPIO_S0_SC[025] */ GPIO_INPUT, /* GPIO_S0_SC[026] */ GPIO_INPUT, /* GPIO_S0_SC[027] */ GPIO_INPUT, /* GPIO_S0_SC[028] */ GPIO_INPUT, /* GPIO_S0_SC[029] */ GPIO_INPUT, /* GPIO_S0_SC[030] */ GPIO_INPUT, /* GPIO_S0_SC[031] */ GPIO_INPUT, /* GPIO_S0_SC[032] */ GPIO_INPUT, /* GPIO_S0_SC[033] */ GPIO_INPUT, /* GPIO_S0_SC[034] */ GPIO_INPUT, /* GPIO_S0_SC[035] */ GPIO_INPUT, /* GPIO_S0_SC[036] */ GPIO_INPUT, /* GPIO_S0_SC[037] */ GPIO_INPUT, /* GPIO_S0_SC[038] */ GPIO_INPUT, /* GPIO_S0_SC[039] */ GPIO_INPUT, /* GPIO_S0_SC[040] */ GPIO_INPUT, /* GPIO_S0_SC[041] */ GPIO_FUNC1, /* ILB_LPC_AD[0] */ GPIO_FUNC1, /* ILB_LPC_AD[1] */ GPIO_FUNC1, /* ILB_LPC_AD[2] */ GPIO_FUNC1, /* ILB_LPC_AD[3] */ GPIO_FUNC1, /* ILB_LPC_FRAME# */ GPIO_FUNC1, /* ILB_LPC_CLK[0] */ GPIO_FUNC1, /* ILB_LPC_CLK[1] */ GPIO_FUNC1, /* ILB_LPC_CLKRUN# */ GPIO_FUNC1, /* ILB_LPC_SERIRQ */ GPIO_FUNC1, /* PCU_SMB_DATA */ GPIO_FUNC1, /* PCU_SMB_CLK */ GPIO_FUNC1, /* PCU_SMB_ALERT# */ GPIO_FUNC1, /* ILB_8254_SPKR */ GPIO_INPUT, /* GPIO_S0_SC[055] */ GPIO_INPUT, /* GPIO_S0_SC[056] */ GPIO_INPUT, /* GPIO_S0_SC[057] */ GPIO_INPUT, /* GPIO_S0_SC[058] */ GPIO_INPUT, /* GPIO_S0_SC[059] */ GPIO_INPUT, /* GPIO_S0_SC[060] */ GPIO_INPUT, /* GPIO_S0_SC[061] */ GPIO_INPUT, /* GPIO_S0_SC[062] */ GPIO_INPUT, /* GPIO_S0_SC[063] */ GPIO_INPUT, /* GPIO_S0_SC[064] */ GPIO_INPUT, /* GPIO_S0_SC[065] */ GPIO_INPUT, /* GPIO_S0_SC[066] */ GPIO_INPUT, /* GPIO_S0_SC[067] */ GPIO_INPUT, /* GPIO_S0_SC[068] */ GPIO_INPUT, /* GPIO_S0_SC[069] */ GPIO_INPUT, /* GPIO_S0_SC[070] */ GPIO_INPUT, /* GPIO_S0_SC[071] */ GPIO_INPUT, /* GPIO_S0_SC[072] */ GPIO_INPUT, /* GPIO_S0_SC[073] */ GPIO_INPUT, /* GPIO_S0_SC[074] */ GPIO_INPUT, /* GPIO_S0_SC[075] */ GPIO_INPUT, /* GPIO_S0_SC[076] */ GPIO_INPUT, /* GPIO_S0_SC[077] */ GPIO_INPUT, /* GPIO_S0_SC[078] */ GPIO_INPUT, /* GPIO_S0_SC[079] */ GPIO_INPUT, /* GPIO_S0_SC[080] */ GPIO_INPUT, /* GPIO_S0_SC[081] */ GPIO_INPUT, /* GPIO_S0_SC[082] */ GPIO_INPUT, /* GPIO_S0_SC[083] */ GPIO_INPUT, /* GPIO_S0_SC[084] */ GPIO_INPUT, /* GPIO_S0_SC[085] */ GPIO_INPUT, /* GPIO_S0_SC[086] */ GPIO_INPUT, /* GPIO_S0_SC[087] */ GPIO_INPUT, /* GPIO_S0_SC[088] */ GPIO_INPUT, /* GPIO_S0_SC[089] */ GPIO_INPUT, /* GPIO_S0_SC[090] */ GPIO_INPUT, /* GPIO_S0_SC[091] */ GPIO_INPUT, /* GPIO_S0_SC[092] */ GPIO_INPUT, /* GPIO_S0_SC[093] */ GPIO_INPUT, /* GPIO_S0_SC[094] */ GPIO_INPUT, /* GPIO_S0_SC[095] */ GPIO_INPUT, /* GPIO_S0_SC[096] */ GPIO_INPUT, /* GPIO_S0_SC[097] */ GPIO_INPUT, /* GPIO_S0_SC[098] */ GPIO_INPUT, /* GPIO_S0_SC[099] */ GPIO_INPUT, /* GPIO_S0_SC[100] */ GPIO_INPUT, /* GPIO_S0_SC[101] */ GPIO_END }; /* SSUS GPIOs */ static const struct soc_gpio_map gpssus_gpio_map[] = { GPIO_INPUT, /* GPIO_S5[00] */ GPIO_FUNC6, /* PMC_WAKE_PCIE[1]# */ GPIO_FUNC6, /* PMC_WAKE_PCIE[2]# */ GPIO_FUNC6, /* PMC_WAKE_PCIE[3]# */ GPIO_INPUT, /* GPIO_S5[04] */ GPIO_INPUT, /* GPIO_S5[05] */ GPIO_INPUT, /* GPIO_S5[06] */ GPIO_INPUT, /* GPIO_S5[07] */ GPIO_INPUT, /* GPIO_S5[08] */ GPIO_INPUT, /* GPIO_S5[09] */ GPIO_INPUT, /* GPIO_S5[10] */ GPIO_INPUT, /* GPIO_S5[11] */ GPIO_INPUT, /* GPIO_S5[12] */ GPIO_INPUT, /* GPIO_S5[13] */ GPIO_INPUT, /* GPIO_S5[14] */ GPIO_FUNC0, /* PMC_WAKE_PCIE[0]# */ GPIO_FUNC(0, PULL_UP, 20K), /* PMC_PWRBTN# */ GPIO_INPUT, /* GPIO_S5[17] */ GPIO_INPUT, /* GPIO_S5[18] */ GPIO_INPUT, /* GPIO_S5[19] */ GPIO_INPUT, /* GPIO_S5[20] */ GPIO_INPUT, /* GPIO_S5[21] */ GPIO_INPUT, /* GPIO_S5[22] */ GPIO_INPUT, /* GPIO_S5[23] */ GPIO_INPUT, /* GPIO_S5[24] */ GPIO_INPUT, /* GPIO_S5[25] */ GPIO_INPUT, /* GPIO_S5[26] */ GPIO_INPUT, /* GPIO_S5[27] */ GPIO_INPUT, /* GPIO_S5[28] */ GPIO_INPUT, /* GPIO_S5[29] */ GPIO_INPUT, /* GPIO_S5[30] */ GPIO_INPUT, /* GPIO_S5[31] */ GPIO_INPUT, /* GPIO_S5[32] */ GPIO_INPUT, /* GPIO_S5[33] */ GPIO_INPUT, /* GPIO_S5[34] */ GPIO_INPUT, /* GPIO_S5[35] */ GPIO_INPUT, /* GPIO_S5[36] */ GPIO_INPUT, /* GPIO_S5[37] */ GPIO_INPUT, /* GPIO_S5[38] */ GPIO_INPUT, /* GPIO_S5[39] */ GPIO_INPUT, /* GPIO_S5[40] */ GPIO_INPUT, /* GPIO_S5[41] */ GPIO_INPUT, /* GPIO_S5[42] */ GPIO_INPUT, /* GPIO_S5[43] */ GPIO_END }; static const u8 core_dedicated_irq[GPIO_MAX_DIRQS] = { }; static const u8 sus_dedicated_irq[GPIO_MAX_DIRQS] = { }; static struct soc_gpio_config gpio_config = { .ncore = gpncore_gpio_map, .score = gpscore_gpio_map, .ssus = gpssus_gpio_map, .core_dirq = &core_dedicated_irq, .sus_dirq = &sus_dedicated_irq, }; struct soc_gpio_config *mainboard_get_gpios(void) { return &gpio_config; }