summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/soc/amd/picasso/gpio.c16
-rw-r--r--src/soc/amd/picasso/include/soc/gpio.h221
2 files changed, 121 insertions, 116 deletions
diff --git a/src/soc/amd/picasso/gpio.c b/src/soc/amd/picasso/gpio.c
index f63a0d93a4..ea868ebd02 100644
--- a/src/soc/amd/picasso/gpio.c
+++ b/src/soc/amd/picasso/gpio.c
@@ -22,6 +22,7 @@
#include <soc/smi.h>
static const struct soc_amd_event gpio_event_table[] = {
+ { GPIO_0, GEVENT_21 }, /* GPIO0 may only be used as PWR_BTN_L in ACPI */
{ GPIO_1, GEVENT_19 },
{ GPIO_2, GEVENT_8 },
{ GPIO_3, GEVENT_2 },
@@ -31,10 +32,6 @@ static const struct soc_amd_event gpio_event_table[] = {
{ GPIO_7, GEVENT_11 },
{ GPIO_8, GEVENT_23 },
{ GPIO_9, GEVENT_22 },
- { GPIO_11, GEVENT_18 },
- { GPIO_13, GEVENT_21 },
- { GPIO_14, GEVENT_6 },
- { GPIO_15, GEVENT_20 },
{ GPIO_16, GEVENT_12 },
{ GPIO_17, GEVENT_13 },
{ GPIO_18, GEVENT_14 },
@@ -42,10 +39,13 @@ static const struct soc_amd_event gpio_event_table[] = {
{ GPIO_22, GEVENT_3 },
{ GPIO_23, GEVENT_16 },
{ GPIO_24, GEVENT_15 },
- { GPIO_65, GEVENT_0 },
- { GPIO_66, GEVENT_1 },
- { GPIO_68, GEVENT_9 },
- { GPIO_69, GEVENT_17 },
+ { GPIO_40, GEVENT_20 },
+ { GPIO_84, GEVENT_18 },
+ { GPIO_86, GEVENT_9 },
+ { GPIO_89, GEVENT_0 },
+ { GPIO_90, GEVENT_1 },
+ { GPIO_91, GEVENT_6 },
+ { GPIO_129, GEVENT_17 },
};
void soc_route_sci(uint8_t event)
diff --git a/src/soc/amd/picasso/include/soc/gpio.h b/src/soc/amd/picasso/include/soc/gpio.h
index 411144beb6..6e4357ed45 100644
--- a/src/soc/amd/picasso/include/soc/gpio.h
+++ b/src/soc/amd/picasso/include/soc/gpio.h
@@ -25,7 +25,7 @@
/* The following sections describe only the GPIOs defined for this SOC */
-#define SOC_GPIO_TOTAL_PINS 149
+#define SOC_GPIO_TOTAL_PINS 145
/* Bank 0: GPIO_0 - GPIO_62 */
#define GPIO_0 0
@@ -43,7 +43,6 @@
#define GPIO_12 12
#define GPIO_13 13
#define GPIO_14 14
-#define GPIO_15 15
#define GPIO_16 16
#define GPIO_17 17
#define GPIO_18 18
@@ -53,22 +52,20 @@
#define GPIO_22 22
#define GPIO_23 23
#define GPIO_24 24
-#define GPIO_25 25
#define GPIO_26 26
-#define GPIO_39 39
+#define GPIO_27 27
+#define GPIO_29 29
+#define GPIO_30 30
+#define GPIO_31 31
+#define GPIO_32 32
#define GPIO_40 40
#define GPIO_42 42
/* Bank 1: GPIO_64 - GPIO_127 */
-#define GPIO_64 64
-#define GPIO_65 65
-#define GPIO_66 66
#define GPIO_67 67
#define GPIO_68 68
#define GPIO_69 69
#define GPIO_70 70
-#define GPIO_71 71
-#define GPIO_72 72
#define GPIO_74 74
#define GPIO_75 75
#define GPIO_76 76
@@ -81,34 +78,25 @@
#define GPIO_90 90
#define GPIO_91 91
#define GPIO_92 92
-#define GPIO_93 93
-#define GPIO_95 95
-#define GPIO_96 96
-#define GPIO_97 97
-#define GPIO_98 98
-#define GPIO_99 99
-#define GPIO_100 100
-#define GPIO_101 101
-#define GPIO_102 102
+#define GPIO_103 103
+#define GPIO_104 104
+#define GPIO_105 105
+#define GPIO_106 106
+#define GPIO_107 107
+#define GPIO_108 108
+#define GPIO_109 109
#define GPIO_113 113
#define GPIO_114 114
#define GPIO_115 115
#define GPIO_116 116
-#define GPIO_117 117
-#define GPIO_118 118
-#define GPIO_119 119
#define GPIO_120 120
#define GPIO_121 121
-#define GPIO_122 122
-#define GPIO_126 126
/* Bank 2: GPIO_128 - GPIO_183 */
#define GPIO_129 129
#define GPIO_130 130
#define GPIO_131 131
#define GPIO_132 132
-#define GPIO_133 133
-#define GPIO_134 134
#define GPIO_135 135
#define GPIO_136 136
#define GPIO_137 137
@@ -119,15 +107,11 @@
#define GPIO_142 142
#define GPIO_143 143
#define GPIO_144 144
-#define GPIO_145 145
-#define GPIO_146 146
-#define GPIO_147 147
-#define GPIO_148 148
#define GPIO_SCL_HIGH 0
#define GPIO_SCL_LOW GPIO_OUTPUT_ENABLE
-/* IOMUX function names and values generated from BKDG. */
+/* IOMUX function names and values generated from PPR. */
#define GPIO_0_IOMUX_PWR_BTN_L 0
#define GPIO_0_IOMUX_GPIOxx 1
#define GPIO_1_IOMUX_SYS_RESET_L 0
@@ -139,35 +123,32 @@
#define GPIO_5_IOMUX_GPIOxx 0
#define GPIO_5_IOMUX_DEVSLP0_S5 1
#define GPIO_6_IOMUX_GPIOxx 0
-#define GPIO_6_IOMUX_LDT_RST_L 1
+#define GPIO_6_IOMUX_DEVSLP1_S5 1
#define GPIO_7_IOMUX_GPIOxx 0
-#define GPIO_7_IOMUX_LDT_PWROK 1
+#define GPIO_7_IOMUX_ACP_I2S_SDIN 1
#define GPIO_8_IOMUX_GPIOxx 0
-#define GPIO_8_IOMUX_SerPortTX_OUT 1
+#define GPIO_8_IOMUX_ACP_I2S_LRCLK 1
#define GPIO_9_IOMUX_GPIOxx 0
-#define GPIO_9_IOMUX_SerPortRX_OUT 1
-#define GPIO_10_IOMUX_S0A3_GPIO 0
-#define GPIO_10_IOMUX_GPIOxx 1
+#define GPIO_9_IOMUX_SGPIO_DATAOUT 1
+#define GPIO_9_IOMUX_MDIO1_SCL 2
+#define GPIO_10_IOMUX_GPIOxx 0
+#define GPIO_10_IOMUX_S0A3_GPIO 1
+#define GPIO_10_IOMUX_SGPIO_CLK 2
+#define GPIO_10_IOMUX_MDIO0_SCL 3
#define GPIO_11_IOMUX_GPIOxx 0
-#define GPIO_11_IOMUX_USB_OC7_L 1
-#define GPIO_12_IOMUX_IR_LED_L 0
-#define GPIO_12_IOMUX_LLB_L 1
-#define GPIO_12_IOMUX_GPIOxx 2
+#define GPIO_11_IOMUX_BLINK 1
+#define GPIO_12_IOMUX_LLB_L 0
+#define GPIO_12_IOMUX_GPIOxx 1
#define GPIO_13_IOMUX_USB_OC5_L 0
#define GPIO_13_IOMUX_GPIOxx 1
-#define GPIO_14_IOMUX_USB_OC6_L 0
+#define GPIO_14_IOMUX_USB_OC4_L 0
#define GPIO_14_IOMUX_GPIOxx 1
-#define GPIO_15_IOMUX_IR_RX1 0
-#define GPIO_15_IOMUX_GPIOxx 1
#define GPIO_16_IOMUX_USB_OC0_L 0
-#define GPIO_16_IOMUX_TRST_L 1
-#define GPIO_16_IOMUX_GPIOxx 2
+#define GPIO_16_IOMUX_GPIOxx 1
#define GPIO_17_IOMUX_USB_OC1_L 0
-#define GPIO_17_IOMUX_TDI 1
-#define GPIO_17_IOMUX_GPIOxx 2
+#define GPIO_17_IOMUX_GPIOxx 1
#define GPIO_18_IOMUX_USB_OC2_L 0
-#define GPIO_18_IOMUX_TCK 1
-#define GPIO_18_IOMUX_GPIOxx 2
+#define GPIO_18_IOMUX_GPIOxx 1
#define GPIO_19_IOMUX_SCL1 0
#define GPIO_19_IOMUX_I2C3_SCL 1
#define GPIO_19_IOMUX_GPIOxx 2
@@ -175,66 +156,107 @@
#define GPIO_20_IOMUX_I2C3_SDA 1
#define GPIO_20_IOMUX_GPIOxx 2
#define GPIO_21_IOMUX_LPC_PD_L 0
-#define GPIO_21_IOMUX_GPIOxx 1
+#define GPIO_21_IOMUX_EMMC_CMD 1
+#define GPIO_21_IOMUX_GPIOxx 2
#define GPIO_22_IOMUX_LPC_PME_L 0
-#define GPIO_22_IOMUX_GPIOxx 1
-#define GPIO_23_IOMUX_USB_OC4_L 0
-#define GPIO_23_IOMUX_IR_RX0 1
-#define GPIO_23_IOMUX_GPIOxx 2
+#define GPIO_22_IOMUX_EMMC_PRW_CTRL 1
+#define GPIO_22_IOMUX_GPIOxx 2
+#define GPIO_23_IOMUX_ACP_PRES 0
+#define GPIO_23_IOMUX_SGPIO_LOAD 1
+#define GPIO_23_IOMUX_MDIO1_SDA 2
+#define GPIO_23_IOMUX_GPIOxx 3
#define GPIO_24_IOMUX_USB_OC3_L 0
#define GPIO_24_IOMUX_GPIOxx 1
-#define GPIO_25_IOMUX_SD0_CD 0
-#define GPIO_25_IOMUX_GPIOxx 1
#define GPIO_26_IOMUX_PCIE_RST_L 0
#define GPIO_26_IOMUX_GPIOxx 1
-#define GPIO_39_IOMUX_VDDGFX_PD 0
-#define GPIO_39_IOMUX_GPIOxx 1
+#define GPIO_27_IOMUX_GPIOxx 0
+#define GPIO_27_IOMUX_PCIE_RST1_L 1
+#define GPIO_29_IOMUX_SPI_TPM_CS_L 0
+#define GPIO_29_IOMUX_GPIOxx 1
+#define GPIO_29_IOMUX_USB_OC6_L 2
+#define GPIO_30_IOMUX_SPI_CS2_L 0
+#define GPIO_30_IOMUX_ESPI_CS_L 1
+#define GPIO_30_IOMUX_GPIOxx 2
+#define GPIO_31_IOMUX_SPI_CS3_L 0
+#define GPIO_31_IOMUX_ESPI_CS_L 1
+#define GPIO_31_IOMUX_GPIOxx 2
+#define GPIO_32_IOMUX_LPC_RST_L 0
+#define GPIO_32_IOMUX_SD_WP_L 1
+#define GPIO_32_IOMUX_GPIOxx 2
#define GPIO_40_IOMUX_GPIOxx 0
-#define GPIO_42_IOMUX_S5_MUX_CTRL 0
-#define GPIO_42_IOMUX_GPIOxx 1
-#define GPIO_64_IOMUX_GPIOxx 0
-#define GPIO_65_IOMUX_GPIOxx 0
-#define GPIO_66_IOMUX_GPIOxx 0
-#define GPIO_67_IOMUX_GPIOxx 0
-#define GPIO_67_IOMUX_DEVSLP0 1
+#define GPIO_40_IOMUX_SGPIO_DATAIN 1
+#define GPIO_40_IOMUX_MDIO0_SDA 2
+#define GPIO_42_IOMUX_GPIOxx 0
+#define GPIO_67_IOMUX_SPI_ROM_REQ 0
+#define GPIO_67_IOMUX_GPIOxx 1
+#define GPIO_68_IOMUX_GPIOxx 0
+#define GPIO_68_IOMUX_EMMC_CD 1
#define GPIO_69_IOMUX_GPIOxx 0
-#define GPIO_69_IOMUX_SGPIO_LOAD 1
#define GPIO_70_IOMUX_GPIOxx 0
-#define GPIO_70_IOMUX_DEVSLP1 1
+#define GPIO_70_IOMUX_EMMC_CLK 1
+#define GPIO_70_IOMUX_SD_CLK 2
#define GPIO_74_IOMUX_LPCCLK0 0
-#define GPIO_74_IOMUX_GPIOxx 1
+#define GPIO_74_IOMUX_EMMC_DATA4 1
+#define GPIO_74_IOMUX_GPIOxx 2
#define GPIO_75_IOMUX_LPCCLK1 0
-#define GPIO_75_IOMUX_GPIOxx 1
-#define GPIO_76_IOMUX_GPIOxx 0
-#define GPIO_76_IOMUX_SPI_TPM_CS_L 1
+#define GPIO_75_IOMUX_EMMC_DATA6 1
+#define GPIO_75_IOMUX_GPIOxx 2
+#define GPIO_76_IOMUX_SPI_ROM_GNT 0
+#define GPIO_76_IOMUX_GPIOxx 1
#define GPIO_84_IOMUX_FANIN0 0
#define GPIO_84_IOMUX_GPIOxx 1
#define GPIO_85_IOMUX_FANOUT0 0
#define GPIO_85_IOMUX_GPIOxx 1
+#define GPIO_86_IOMUX_LPC_SMI_L 0
#define GPIO_86_IOMUX_GPIOxx 1
#define GPIO_87_IOMUX_SERIRQ 0
-#define GPIO_87_IOMUX_GPIOxx 1
+#define GPIO_87_IOMUX_EMMC_DATA7 1
+#define GPIO_87_IOMUX_GPIOxx 2
#define GPIO_88_IOMUX_LPC_CLKRUN_L 0
-#define GPIO_88_IOMUX_GPIOxx 1
-#define GPIO_90_IOMUX_GPIOxx 0
+#define GPIO_88_IOMUX_EMMC_DATA5 1
+#define GPIO_88_IOMUX_GPIOxx 2
+#define GPIO_89_IOMUX_GENINT1_L 0
+#define GPIO_89_IOMUX_PSP_INTR0 1
+#define GPIO_89_IOMUX_GPIOxx 2
+#define GPIO_90_IOMUX_GENINT2_L 0
+#define GPIO_90_IOMUX_PSP_INTR1 1
+#define GPIO_90_IOMUX_GPIOxx 2
#define GPIO_91_IOMUX_SPKR 0
#define GPIO_91_IOMUX_GPIOxx 1
#define GPIO_92_IOMUX_CLK_REQ0_L 0
#define GPIO_92_IOMUX_SATA_IS0_L 1
#define GPIO_92_IOMUX_SATA_ZP0_L 2
#define GPIO_92_IOMUX_GPIOxx 3
-#define GPIO_93_IOMUX_SD0_LED 0
-#define GPIO_93_IOMUX_GPIOxx 1
#define GPIO_95_IOMUX_GPIOxx 0
+#define GPIO_95_IOMUX_SD0_CLK 1
#define GPIO_96_IOMUX_GPIOxx 0
+#define GPIO_96_IOMUX_SD0_CMD 1
#define GPIO_97_IOMUX_GPIOxx 0
+#define GPIO_97_IOMUX_SD0_DATA0 1
#define GPIO_98_IOMUX_GPIOxx 0
+#define GPIO_98_IOMUX_SD0_DATA1 1
#define GPIO_99_IOMUX_GPIOxx 0
+#define GPIO_99_IOMUX_SD0_DATA2 1
#define GPIO_100_IOMUX_GPIOxx 0
-#define GPIO_101_IOMUX_SD0_WP 0
-#define GPIO_101_IOMUX_GPIOxx 1
-#define GPIO_102_IOMUX_SD0_PWR_CTRL 0
-#define GPIO_102_IOMUX_GPIOxx 1
+#define GPIO_100_IOMUX_SD0_DATA3 1
+#define GPIO_104_IOMUX_LAD0 0
+#define GPIO_104_IOMUX_EMMC_SDATA0 1
+#define GPIO_104_IOMUX_GPIOxx 3
+#define GPIO_105_IOMUX_LAD1 0
+#define GPIO_105_IOMUX_EMMC_DATA1 1
+#define GPIO_105_IOMUX_GPIOxx 3
+#define GPIO_106_IOMUX_LAD2 0
+#define GPIO_106_IOMUX_EMMC_DATA2 1
+#define GPIO_106_IOMUX_GPIOxx 3
+#define GPIO_107_IOMUX_LAD3 0
+#define GPIO_107_IOMUX_EMMC_DATA3 1
+#define GPIO_107_IOMUX_GPIOxx 3
+#define GPIO_108_IOMUX_LDRQ0_L 0
+#define GPIO_108_IOMUX_ESPI_ALERT_D1 1
+#define GPIO_108_IOMUX_GPIOxx 2
+#define GPIO_109_IOMUX_LFRAME_L 0
+#define GPIO_109_IOMUX_EMMC_DS 1
+#define GPIO_109_IOMUX_GPIOxx 2
#define GPIO_113_IOMUX_SCL0 0
#define GPIO_113_IOMUX_I2C2_SCL 1
#define GPIO_113_IOMUX_GPIOxx 2
@@ -245,21 +267,10 @@
#define GPIO_115_IOMUX_GPIOxx 1
#define GPIO_116_IOMUX_CLK_REQ2_L 0
#define GPIO_116_IOMUX_GPIOxx 1
-#define GPIO_117_IOMUX_ESPI_CLK 0
-#define GPIO_117_IOMUX_GPIOxx 1
-#define GPIO_118_IOMUX_SPI_CS1_L 0
-#define GPIO_118_IOMUX_GPIOxx 1
-#define GPIO_119_IOMUX_SPI_CS2_L 0
-#define GPIO_119_IOMUX_ESPI_CS_L 1
-#define GPIO_119_IOMUX_GPIOxx 2
-#define GPIO_120_IOMUX_ESPI_DAT1 0
+#define GPIO_120_IOMUX_CLK_REQ5_L 0
#define GPIO_120_IOMUX_GPIOxx 1
-#define GPIO_121_IOMUX_ESPI_DAT0 0
+#define GPIO_121_IOMUX_CLK_REQ6_L 0
#define GPIO_121_IOMUX_GPIOxx 1
-#define GPIO_122_IOMUX_ESPI_DAT2 0
-#define GPIO_122_IOMUX_GPIOxx 1
-#define GPIO_126_IOMUX_GA20IN 0
-#define GPIO_126_IOMUX_GPIOxx 1
#define GPIO_129_IOMUX_KBRST_L 0
#define GPIO_129_IOMUX_GPIOxx 1
#define GPIO_130_IOMUX_SATA_ACT_L 0
@@ -268,39 +279,33 @@
#define GPIO_131_IOMUX_SATA_IS1_L 1
#define GPIO_131_IOMUX_SATA_ZP1_L 2
#define GPIO_131_IOMUX_GPIOxx 3
-#define GPIO_132_IOMUX_CLK_REQG_L 0
+#define GPIO_132_IOMUX_CLK_REQ4_L 0
#define GPIO_132_IOMUX_OSCIN 1
#define GPIO_132_IOMUX_GPIOxx 2
-#define GPIO_133_IOMUX_ESPI_DAT3 0
-#define GPIO_133_IOMUX_GPIOxx 1
#define GPIO_135_IOMUX_UART0_CTS_L 0
-#define GPIO_135_IOMUX_GPIOxx 1
+#define GPIO_135_IOMUX_UART2_RXD 1
+#define GPIO_135_IOMUX_GPIOxx 2
#define GPIO_136_IOMUX_UART0_RXD 0
#define GPIO_136_IOMUX_GPIOxx 1
#define GPIO_137_IOMUX_UART0_RTS_L 0
-#define GPIO_137_IOMUX_GPIOxx 1
+#define GPIO_137_IOMUX_UART2_TXD 1
+#define GPIO_137_IOMUX_GPIOxx 2
#define GPIO_138_IOMUX_UART0_TXD 0
#define GPIO_138_IOMUX_GPIOxx 1
#define GPIO_139_IOMUX_UART0_INTR 0
#define GPIO_139_IOMUX_GPIOxx 1
#define GPIO_140_IOMUX_UART1_CTS_L 0
-#define GPIO_140_IOMUX_GPIOxx 1
+#define GPIO_140_IOMUX_UART3_TXD 1
+#define GPIO_140_IOMUX_GPIOxx 2
#define GPIO_141_IOMUX_UART1_RXD 0
#define GPIO_141_IOMUX_GPIOxx 1
#define GPIO_142_IOMUX_UART1_RTS_L 0
-#define GPIO_142_IOMUX_GPIOxx 1
+#define GPIO_142_IOMUX_UART3_RXD 1
+#define GPIO_142_IOMUX_GPIOxx 2
#define GPIO_143_IOMUX_UART1_TXD 0
#define GPIO_143_IOMUX_GPIOxx 1
#define GPIO_144_IOMUX_UART1_INTR 0
#define GPIO_144_IOMUX_GPIOxx 1
-#define GPIO_145_IOMUX_I2C0_SCL 0
-#define GPIO_145_IOMUX_GPIOxx 1
-#define GPIO_146_IOMUX_I2C0_SDA 0
-#define GPIO_146_IOMUX_GPIOxx 1
-#define GPIO_147_IOMUX_I2C1_SCL 0
-#define GPIO_147_IOMUX_GPIOxx 1
-#define GPIO_148_IOMUX_I2C1_SDA 0
-#define GPIO_148_IOMUX_GPIOxx 1
#define GPIO_2_EVENT GEVENT_8