util/inteltool: add missing native functions of special pads for CNL-H

Add the missing native functions for special gpio pads for CNL-H,
which are documented in the PCH EDS and other places.

Also, see soc/intel/tigerlake for reference.

Change-Id: I71339d66362d29806c91375c214e9fb84c989201
Signed-off-by: Michael Niewöhner <foss@mniewoehner.de>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/45203
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Stefan Reinauer <stefan.reinauer@coreboot.org>
diff --git a/util/inteltool/gpio_names/cannonlake.h b/util/inteltool/gpio_names/cannonlake.h
index 0743936..47672d5 100644
--- a/util/inteltool/gpio_names/cannonlake.h
+++ b/util/inteltool/gpio_names/cannonlake.h
@@ -158,15 +158,15 @@
 };
 
 static const char *const cannonlake_pch_h_group_spi_names[] = {
-	"SPI0_IO_2",
-	"SPI0_IO_3",
-	"SPI0_MISO",
-	"SPI0_MOSI",
-	"SPI0_CS2_B",
-	"SPI0_CS0_B",
-	"SPI0_CS1_B",
-	"SPI0_CLK",
-	"SPI0_CLK_LOOPBK",
+	"SPI0_IO_2",		"SPI0_IO_2",
+	"SPI0_IO_3",		"SPI0_IO_3",
+	"SPI0_MISO",		"SPI0_MISO",
+	"SPI0_MOSI",		"SPI0_MOSI",
+	"SPI0_CS2_B",		"SPI0_CS2#",
+	"SPI0_CS0_B",		"SPI0_CS0#",
+	"SPI0_CS1_B",		"SPI0_CS1#",
+	"SPI0_CLK",		"SPI0_CLK",
+	"SPI0_CLK_LOOPBK",	"SPI0_CLK_LOOPBK",
 };
 
 static const char *const cannonlake_pch_h_group_g_names[] = {
@@ -181,60 +181,60 @@
 };
 
 static const char *const cannonlake_pch_h_group_aza_names[] = {
-	"HDA_BCLK",
-	"HDA_RST_B",
-	"HDA_SYNC",
-	"HDA_SDO",
-	"HDA_SDI_0",
-	"HDA_SDI_1",
-	"I2S1_SFRM",
-	"I2S1_TXD",
+	"HDA_BCLK",	"HDA_BCLK",	"I2S0_SCLK",	"n/a",
+	"HDA_RST_B",	"HDA_RST#",	"I2S1_SCLK",	"SNDW1_CLK",
+	"HDA_SYNC",	"HDA_SYNC",	"I2S0_SFRM",	"n/a",
+	"HDA_SDO",	"HDA_SDO",	"I2S0_TXD",	"n/a",
+	"HDA_SDI0",	"HDA_SDI0",	"I2S0_RXD",	"n/a",
+	"HDA_SDI1",	"HDA_SDI1",	"I2S1_RXD",	"SNDW1_DATA",
+	"I2S1_SFRM",	"I2S1_SFRM",	"SNDW2_CLK",	"n/a",
+	"I2S1_TXD",	"I2S1_TXD",	"SNDW2_DATA",	"n/a",
 };
 
 static const char *const cannonlake_pch_h_group_vgpio_0_names[] = {
-	"CNV_BTEN",
-	"CNV_GNEN",
-	"CNV_WFEN",
-	"CNV_WCEN",
-	"CNV_BT_HOST_WAKE_B",
-	"vCNV_GNSS_HOST_WAKE_B",
-	"vSD3_CD_B",
-	"CNV_BT_IF_SELECT",
-	"vCNV_BT_UART_TXD",
-	"vCNV_BT_UART_RXD",
-	"vCNV_BT_UART_CTS_B",
-	"vCNV_BT_UART_RTS_B",
-	"vCNV_MFUART1_TXD",
-	"vCNV_MFUART1_RXD",
-	"vCNV_MFUART1_CTS_B",
-	"vCNV_MFUART1_RTS_B",
-	"vCNV_GNSS_UART_TXD",
-	"vCNV_GNSS_UART_RXD",
-	"vCNV_GNSS_UART_CTS_B",
-	"vCNV_GNSS_UART_RTS_B",
-	"vUART0_TXD",
-	"vUART0_RXD",
-	"vUART0_CTS_B",
-	"vUART0_RTS_B",
-	"vISH_UART0_TXD",
-	"vISH_UART0_RXD",
-	"vISH_UART0_CTS_B",
-	"vISH_UART0_RTS_B",
-	"vISH_UART1_TXD",
-	"vISH_UART1_RXD",
-	"vISH_UART1_CTS_B",
-	"vISH_UART1_RTS_B",
+	"CNV_BTEN",			"n/a",		"n/a",		"n/a",
+	"CNV_GNEN",			"n/a",		"n/a",		"n/a",
+	"CNV_WFEN",			"n/a",		"n/a",		"n/a",
+	"CNV_WCEN",			"n/a",		"n/a",		"n/a",
+	"vCNV_GNSS_HOST_WAKE_B",	"n/a",		"n/a",		"n/a",
+	"vSD3_CD_B",			"n/a",		"n/a",		"n/a",
+	"CNV_BT_HOST_WAKE_B",		"n/a",		"n/a",		"n/a",
+	"CNV_BT_IF_SELECT",		"n/a",		"n/a",		"n/a",
+	"vCNV_BT_UART_TXD",		"ISH UART0",	"SIo UART2",	"n/a",
+	"vCNV_BT_UART_RXD",		"ISH UART0",	"SIo UART2",	"n/a",
+	"vCNV_BT_UART_CTS_B",		"ISH UART0",	"SIo UART2",	"n/a",
+	"vCNV_BT_UART_RTS_B",		"ISH UART0",	"SIo UART2",	"n/a",
+	"vCNV_MFUART1_TXD",		"ISH UART0",	"SIo UART2",	"n/a",
+	"vCNV_MFUART1_RXD",		"ISH UART0",	"SIo UART2",	"n/a",
+	"vCNV_MFUART1_CTS_B",		"ISH UART0",	"SIo UART2",	"n/a",
+	"vCNV_MFUART1_RTS_B",		"ISH UART0",	"SIo UART2",	"n/a",
+	"vCNV_GNSS_UART_TXD",		"n/a",		"n/a",		"n/a",
+	"vCNV_GNSS_UART_RXD",		"n/a",		"n/a",		"n/a",
+	"vCNV_GNSS_UART_CTS_B",		"n/a",		"n/a",		"n/a",
+	"vCNV_GNSS_UART_RTS_B",		"n/a",		"n/a",		"n/a",
+	"vUART0_TXD",			"mapped",	"n/a",		"n/a",
+	"vUART0_RXD",			"mapped",	"n/a",		"n/a",
+	"vUART0_CTS_B",			"mapped",	"n/a",		"n/a",
+	"vUART0_RTS_B",			"mapped",	"n/a",		"n/a",
+	"vISH_UART0_TXD",		"mapped",	"n/a",		"n/a",
+	"vISH_UART0_RXD", 		"mapped",	"n/a",		"n/a",
+	"vISH_UART0_CTS_B",		"mapped",	"n/a",		"n/a",
+	"vISH_UART0_RTS_B",		"mapped",	"n/a",		"n/a",
+	"vISH_UART1_TXD",		"mapped",	"n/a",		"n/a",
+	"vISH_UART1_RXD", 		"mapped",	"n/a",		"n/a",
+	"vISH_UART1_CTS_B",		"mapped",	"n/a",		"n/a",
+	"vISH_UART1_RTS_B",		"mapped",	"n/a",		"n/a",
 };
 
 static const char *const cannonlake_pch_h_group_vgpio_1_names[] = {
-	"vCNV_BT_I2S_BCLK",
-	"vCNV_BT_I2S_WS_SYNC",
-	"vCNV_BT_I2S_SDO",
-	"vCNV_BT_I2S_SDI",
-	"vSSP2_SCLK",
-	"vSSP2_SFRM",
-	"vSSP2_TXD",
-	"vSSP2_RXD",
+	"vCNV_BT_I2S_BCLK",		"SSP0",		"SSP1",		"SSP2",
+	"vCNV_BT_I2S_WS_SYNC",		"SSP0",		"SSP1",		"SSP2",
+	"vCNV_BT_I2S_SDO",		"SSP0",		"SSP1",		"SSP2",
+	"vCNV_BT_I2S_SDI",		"SSP0",		"SSP1",		"SSP2",
+	"vSSP2_SCLK",			"mapped",	"n/a",		"n/a",
+	"vSSP2_SFRM",			"mapped",	"n/a",		"n/a",
+	"vSSP2_TXD",			"mapped",	"n/a",		"n/a",
+	"vSSP2_RXD",			"n/a",		"n/a",		"n/a",
 };
 
 static const char *const cannonlake_pch_h_group_h_names[] = {
@@ -280,9 +280,9 @@
 	"GPP_I12",	"M2_SKT2_CFG1",		"n/a",
 	"GPP_I13",	"M2_SKT2_CFG2",		"n/a",
 	"GPP_I14",	"M2_SKT2_CFG3",		"n/a",
-	"SYS_PWROK",	"n/a",			"n/a",
-	"SYS_RESET_B",	"n/a",			"n/a",
-	"CL_RST_B", 	"n/a",			"n/a",
+	"SYS_PWROK",	"SYS_PWROK",		"n/a",
+	"SYS_RESET_B",	"SYS_RESET#",		"n/a",
+	"CL_RST_B", 	"CL_RST#",		"n/a",
 };
 
 static const char *const cannonlake_pch_h_group_j_names[] = {
@@ -386,8 +386,8 @@
 
 static const struct gpio_group cannonlake_pch_h_group_spi = {
 	.display	= "------- GPIO Group SPI -------",
-	.pad_count	= ARRAY_SIZE(cannonlake_pch_h_group_spi_names) / 1,
-	.func_count	= 1,
+	.pad_count	= ARRAY_SIZE(cannonlake_pch_h_group_spi_names) / 2,
+	.func_count	= 2,
 	.pad_names	= cannonlake_pch_h_group_spi_names,
 };
 
@@ -400,22 +400,22 @@
 
 static const struct gpio_group cannonlake_pch_h_group_aza = {
 	.display	= "------- GPIO Group AZA -------",
-	.pad_count	= ARRAY_SIZE(cannonlake_pch_h_group_aza_names) / 1,
-	.func_count	= 1,
+	.pad_count	= ARRAY_SIZE(cannonlake_pch_h_group_aza_names) / 4,
+	.func_count	= 4,
 	.pad_names	= cannonlake_pch_h_group_aza_names,
 };
 
 static const struct gpio_group cannonlake_pch_h_group_vgpio_0 = {
 	.display	= "------- GPIO Group VGPIO_0 -------",
-	.pad_count	= ARRAY_SIZE(cannonlake_pch_h_group_vgpio_0_names) / 1,
-	.func_count	= 1,
+	.pad_count	= ARRAY_SIZE(cannonlake_pch_h_group_vgpio_0_names) / 4,
+	.func_count	= 4,
 	.pad_names	= cannonlake_pch_h_group_vgpio_0_names,
 };
 
 static const struct gpio_group cannonlake_pch_h_group_vgpio_1 = {
 	.display	= "------- GPIO Group VGPIO_1 -------",
-	.pad_count	= ARRAY_SIZE(cannonlake_pch_h_group_vgpio_1_names) / 1,
-	.func_count	= 1,
+	.pad_count	= ARRAY_SIZE(cannonlake_pch_h_group_vgpio_1_names) / 4,
+	.func_count	= 4,
 	.pad_names	= cannonlake_pch_h_group_vgpio_1_names,
 };