#define QCA_GPIO_FUNC_1_ETH_SW_LED_DUPL_MASK (1 << QCA_GPIO_FUNC_1_ETH_SW_LED_DUPL_SHIFT)
#define QCA_GPIO_FUNC_1_I2S_EN_SHIFT 26
#define QCA_GPIO_FUNC_1_I2S_EN_MASK (1 << QCA_GPIO_FUNC_1_I2S_EN_SHIFT)
- #define QCA_GPIO_FUNC_1_I2S_MCK_EN_SHIFT 27
- #define QCA_GPIO_FUNC_1_I2S_MCK_EN_MASK (1 << QCA_GPIO_FUNC_1_I2S_MCK_EN_SHIFT)
+ #define QCA_GPIO_FUNC_1_I2S_MCLK_EN_SHIFT 27
+ #define QCA_GPIO_FUNC_1_I2S_MCLK_EN_MASK (1 << QCA_GPIO_FUNC_1_I2S_MCLK_EN_SHIFT)
#define QCA_GPIO_FUNC_1_I2S_22_18_EN_SHIFT 29
#define QCA_GPIO_FUNC_1_I2S_22_18_EN_MASK (1 << QCA_GPIO_FUNC_1_I2S_22_18_EN_SHIFT)
#define QCA_GPIO_FUNC_1_SPDIF_EN_SHIFT 30
#define QCA_GPIO_FUNC_1_SPDIF_TCK_EN_MASK (1 << QCA_GPIO_FUNC_1_SPDIF_TCK_EN_SHIFT)
#endif
+/*
+ * GPIO MUX
+ */
+#define QCA_GPIO_OUT_FUNCX_GPIOX_EN_SHIFT(_gpio) ((_gpio % 4) * 8)
+#define QCA_GPIO_OUT_FUNCX_GPIOX_EN_MASK(_gpio) BIT(((_gpio % 4) * 8), 8)
+
+#define QCA_GPIO_OUT_FUNCX_GPIO0_EN_SHIFT 0
+#define QCA_GPIO_OUT_FUNCX_GPIO4_EN_SHIFT 0
+#define QCA_GPIO_OUT_FUNCX_GPIO8_EN_SHIFT 0
+#define QCA_GPIO_OUT_FUNCX_GPIO12_EN_SHIFT 0
+#define QCA_GPIO_OUT_FUNCX_GPIO16_EN_SHIFT 0
+#define QCA_GPIO_OUT_FUNCX_GPIO20_EN_SHIFT 0
+#define QCA_GPIO_OUT_FUNCX_GPIO0_EN_MASK 0x000000FF
+#define QCA_GPIO_OUT_FUNCX_GPIO4_EN_MASK 0x000000FF
+#define QCA_GPIO_OUT_FUNCX_GPIO8_EN_MASK 0x000000FF
+#define QCA_GPIO_OUT_FUNCX_GPIO12_EN_MASK 0x000000FF
+#define QCA_GPIO_OUT_FUNCX_GPIO16_EN_MASK 0x000000FF
+#define QCA_GPIO_OUT_FUNCX_GPIO20_EN_MASK 0x000000FF
+
+#define QCA_GPIO_OUT_FUNCX_GPIO1_EN_SHIFT 8
+#define QCA_GPIO_OUT_FUNCX_GPIO5_EN_SHIFT 8
+#define QCA_GPIO_OUT_FUNCX_GPIO9_EN_SHIFT 8
+#define QCA_GPIO_OUT_FUNCX_GPIO13_EN_SHIFT 8
+#define QCA_GPIO_OUT_FUNCX_GPIO17_EN_SHIFT 8
+#define QCA_GPIO_OUT_FUNCX_GPIO21_EN_SHIFT 8
+#define QCA_GPIO_OUT_FUNCX_GPIO1_EN_MASK 0x0000FF00
+#define QCA_GPIO_OUT_FUNCX_GPIO5_EN_MASK 0x0000FF00
+#define QCA_GPIO_OUT_FUNCX_GPIO9_EN_MASK 0x0000FF00
+#define QCA_GPIO_OUT_FUNCX_GPIO13_EN_MASK 0x0000FF00
+#define QCA_GPIO_OUT_FUNCX_GPIO17_EN_MASK 0x0000FF00
+#define QCA_GPIO_OUT_FUNCX_GPIO21_EN_MASK 0x0000FF00
+
+#define QCA_GPIO_OUT_FUNCX_GPIO2_EN_SHIFT 16
+#define QCA_GPIO_OUT_FUNCX_GPIO6_EN_SHIFT 16
+#define QCA_GPIO_OUT_FUNCX_GPIO10_EN_SHIFT 16
+#define QCA_GPIO_OUT_FUNCX_GPIO14_EN_SHIFT 16
+#define QCA_GPIO_OUT_FUNCX_GPIO18_EN_SHIFT 16
+#define QCA_GPIO_OUT_FUNCX_GPIO22_EN_SHIFT 16
+#define QCA_GPIO_OUT_FUNCX_GPIO2_EN_MASK 0x00FF0000
+#define QCA_GPIO_OUT_FUNCX_GPIO6_EN_MASK 0x00FF0000
+#define QCA_GPIO_OUT_FUNCX_GPIO10_EN_MASK 0x00FF0000
+#define QCA_GPIO_OUT_FUNCX_GPIO14_EN_MASK 0x00FF0000
+#define QCA_GPIO_OUT_FUNCX_GPIO18_EN_MASK 0x00FF0000
+#define QCA_GPIO_OUT_FUNCX_GPIO22_EN_MASK 0x00FF0000
+
+#define QCA_GPIO_OUT_FUNCX_GPIO3_EN_SHIFT 24
+#define QCA_GPIO_OUT_FUNCX_GPIO7_EN_SHIFT 24
+#define QCA_GPIO_OUT_FUNCX_GPIO11_EN_SHIFT 24
+#define QCA_GPIO_OUT_FUNCX_GPIO15_EN_SHIFT 24
+#define QCA_GPIO_OUT_FUNCX_GPIO19_EN_SHIFT 24
+#define QCA_GPIO_OUT_FUNCX_GPIO23_EN_SHIFT 24
+#define QCA_GPIO_OUT_FUNCX_GPIO3_EN_MASK 0xFF000000
+#define QCA_GPIO_OUT_FUNCX_GPIO7_EN_MASK 0xFF000000
+#define QCA_GPIO_OUT_FUNCX_GPIO11_EN_MASK 0xFF000000
+#define QCA_GPIO_OUT_FUNCX_GPIO15_EN_MASK 0xFF000000
+#define QCA_GPIO_OUT_FUNCX_GPIO19_EN_MASK 0xFF000000
+#define QCA_GPIO_OUT_FUNCX_GPIO23_EN_MASK 0xFF000000
+
+/* GPIO output select values (for MUX) */
+#define QCA_GPIO_OUT_MUX_GPIO_VAL 0
+#define QCA_GPIO_OUT_MUX_MII_EXT_MDI_VAL 1
+#define QCA_GPIO_OUT_MUX_SYS_RST_L_VAL 1
+#define QCA_GPIO_OUT_MUX_NAND_CS0_VAL 1
+#define QCA_GPIO_OUT_MUX_BOOT_RXT_MDI_VAL 2
+#define QCA_GPIO_OUT_MUX_SPI_CS0_VAL 9
+
+/* 5-port ethernet switch activity LEDs */
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_ACTN1_VAL 26
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_ACTN2_VAL 27
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_ACTN3_VAL 28
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_ACTN4_VAL 29
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_ACTN5_VAL 30
+
+/* 5-port ethernet switch collision detect LEDs */
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_COLN1_VAL 31
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_COLN2_VAL 32
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_COLN3_VAL 33
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_COLN4_VAL 34
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_COLN5_VAL 35
+
+/* 5-port ethernet switch full/half duplex LEDs */
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_DUPN1_VAL 36
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_DUPN2_VAL 37
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_DUPN3_VAL 38
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_DUPN4_VAL 39
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_DUPN5_VAL 40
+
+/* 5-port ethernet switch link indicator LEDs */
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_LINK1_VAL 41
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_LINK2_VAL 42
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_LINK3_VAL 43
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_LINK4_VAL 44
+#define QCA_GPIO_OUT_MUX_ETH_SW_LED_LINK5_VAL 45
+
+#if (SOC_TYPE & QCA_AR934X_SOC)
+ #define QCA_GPIO_OUT_MUX_SLIC_DATA_OUT_VAL 4
+ #define QCA_GPIO_OUT_MUX_SLIC_PCM_FS_VAL 5
+ #define QCA_GPIO_OUT_MUX_SLIC_PCM_CLK_VAL 6
+ #define QCA_GPIO_OUT_MUX_SPI_CS1_VAL 7
+ #define QCA_GPIO_OUT_MUX_SPI_CS2_VAL 8
+ #define QCA_GPIO_OUT_MUX_SPI_CLK_VAL 10
+ #define QCA_GPIO_OUT_MUX_SPI_MOSI_VAL 11
+ #define QCA_GPIO_OUT_MUX_I2S_CLK_VAL 12
+ #define QCA_GPIO_OUT_MUX_I2S_WS_VAL 13
+ #define QCA_GPIO_OUT_MUX_I2S_SD_VAL 14
+ #define QCA_GPIO_OUT_MUX_I2S_MCLK_VAL 15
+ #define QCA_GPIO_OUT_MUX_CLK_OBS0_VAL 16
+ #define QCA_GPIO_OUT_MUX_CLK_OBS1_VAL 17
+ #define QCA_GPIO_OUT_MUX_CLK_OBS2_VAL 18
+ #define QCA_GPIO_OUT_MUX_CLK_OBS3_VAL 19
+ #define QCA_GPIO_OUT_MUX_CLK_OBS4_VAL 20
+ #define QCA_GPIO_OUT_MUX_CLK_OBS5_VAL 21
+ #define QCA_GPIO_OUT_MUX_CLK_OBS6_VAL 22
+ #define QCA_GPIO_OUT_MUX_CLK_OBS7_VAL 23
+ #define QCA_GPIO_OUT_MUX_LSUART_TXD_VAL 24
+ #define QCA_GPIO_OUT_MUX_SPDIF_OUT_VAL 25
+ #define QCA_GPIO_OUT_MUX_ATT_LED_VAL 46
+ #define QCA_GPIO_OUT_MUX_PWR_LED_VAL 47
+ #define QCA_GPIO_OUT_MUX_TX_FRAME_VAL 48
+ #define QCA_GPIO_OUT_MUX_RX_CLEAR_EXT_VAL 49
+ #define QCA_GPIO_OUT_MUX_LED_NETWORK_EN_VAL 50
+ #define QCA_GPIO_OUT_MUX_LED_POWER_EN_VAL 51
+ #define QCA_GPIO_OUT_MUX_WMAC_GLUE_WOW_VAL 72
+ #define QCA_GPIO_OUT_MUX_BT_ANT_VAL 73
+ #define QCA_GPIO_OUT_MUX_RX_CLEAR_EXTENSION_VAL 74
+ #define QCA_GPIO_OUT_MUX_ETH_TX_ERR_VAL 78
+ #define QCA_GPIO_OUT_MUX_HSUART_TXD_VAL_VAL 79
+ #define QCA_GPIO_OUT_MUX_HSUART_RTS_VAL_VAL 80
+ #define QCA_GPIO_OUT_MUX_DDR_DQ_OE_VAL 84
+ #define QCA_GPIO_OUT_MUX_USB_SUSPEND_VAL 87
+#else
+ #define QCA_GPIO_OUT_MUX_SLIC_DATA_OUT_VAL 3
+ #define QCA_GPIO_OUT_MUX_SLIC_PCM_FS_VAL 4
+ #define QCA_GPIO_OUT_MUX_SLIC_PCM_CLK_VAL 5
+ #define QCA_GPIO_OUT_MUX_SPI_CLK_VAL 8
+ #define QCA_GPIO_OUT_MUX_SPI_CS1_VAL 10
+ #define QCA_GPIO_OUT_MUX_SPI_CS2_VAL 11
+ #define QCA_GPIO_OUT_MUX_SPI_MOSI_VAL 12
+ #define QCA_GPIO_OUT_MUX_I2S_CLK_VAL 13
+ #define QCA_GPIO_OUT_MUX_I2S_WS_VAL 14
+ #define QCA_GPIO_OUT_MUX_I2S_SD_VAL 15
+ #define QCA_GPIO_OUT_MUX_I2S_MCLK_VAL 16
+ #define QCA_GPIO_OUT_MUX_SPDIF_OUT_VAL 17
+ #define QCA_GPIO_OUT_MUX_HSUART_TXD_VAL 18
+ #define QCA_GPIO_OUT_MUX_HSUART_RTS_VAL 19
+ #define QCA_GPIO_OUT_MUX_HSUART_RXD_VAL 20 /* TODO: RXD is INPUT, mistake in QCA9558 datasheet? */
+ #define QCA_GPIO_OUT_MUX_HSUART_CTS_VAL 21 /* TODO: CTS is INPUT, mistake in QCA9558 datasheet? */
+ #define QCA_GPIO_OUT_MUX_LSUART_TXD_VAL 22
+ #define QCA_GPIO_OUT_MUX_SRIF_OUT_VAL 23
+
+ #if (SOC_TYPE & QCA_QCA955X_SOC)
+ #define QCA_GPIO_OUT_MUX_SGMII_LED_SPEED0_VAL 24
+ #define QCA_GPIO_OUT_MUX_SGMII_LED_SPEED1_VAL 25
+ #define QCA_GPIO_OUT_MUX_SGMII_LED_DUPLEX_VAL 26
+ #define QCA_GPIO_OUT_MUX_SGMII_LED_LINKUP_VAL 27
+ #define QCA_GPIO_OUT_MUX_SGMII_LED_SPEED0_INV_VAL 28
+ #define QCA_GPIO_OUT_MUX_SGMII_LED_SPEED1_INV_VAL 29
+ #define QCA_GPIO_OUT_MUX_SGMII_LED_DUPLEX_INV_VAL 30
+ #define QCA_GPIO_OUT_MUX_SGMII_LED_LINKUP_INV_VAL 31
+ #define QCA_GPIO_OUT_MUX_GE1_MII_MDO_VAL 32
+ #define QCA_GPIO_OUT_MUX_GE1_MII_MDC_VAL 33
+ #define QCA_GPIO_OUT_MUX_SWCOM2_VAL 38
+ #define QCA_GPIO_OUT_MUX_SWCOM3_VAL 39
+ #define QCA_GPIO_OUT_MUX_SMART_ANT_CTRL_BIT2_VAL 40
+ #define QCA_GPIO_OUT_MUX_SMART_ANT_CTRL_BIT3_VAL 41
+ #define QCA_GPIO_OUT_MUX_ATT_LED_VAL 42
+ #define QCA_GPIO_OUT_MUX_PWR_LED_VAL 43
+ #define QCA_GPIO_OUT_MUX_TX_FRAME_VAL 44
+ #define QCA_GPIO_OUT_MUX_RX_CLEAR_EXT_VAL 45
+ #define QCA_GPIO_OUT_MUX_LED_NETWORK_EN_VAL 46
+ #define QCA_GPIO_OUT_MUX_LED_POWER_EN_VAL 47
+ #define QCA_GPIO_OUT_MUX_WMAC_GLUE_WOW_VAL 68
+ #define QCA_GPIO_OUT_MUX_RX_CLEAR_EXTENSION_VAL 70
+ #define QCA_GPIO_OUT_MUX_SMART_ANT_SHIFT_STROBE_VAL 71
+ #define QCA_GPIO_OUT_MUX_SMART_ANT_SHIFT_DATA_VAL 72
+ #define QCA_GPIO_OUT_MUX_NAND_CS1_VAL 73
+ #define QCA_GPIO_OUT_MUX_USB_SUSPEND_VAL 74
+ #define QCA_GPIO_OUT_MUX_ETH_TX_ERR_VAL 75
+ #define QCA_GPIO_OUT_MUX_DDR_DQ_OE_VAL 76
+ #define QCA_GPIO_OUT_MUX_CLK_REQ_N_EP_VAL 77
+ #define QCA_GPIO_OUT_MUX_CLK_REQ_N_RC_VAL 78
+ #define QCA_GPIO_OUT_MUX_CLK_OBS0_VAL 79
+ #define QCA_GPIO_OUT_MUX_CLK_OBS1_VAL 80
+ #define QCA_GPIO_OUT_MUX_CLK_OBS2_VAL 81
+ #define QCA_GPIO_OUT_MUX_CLK_OBS3_VAL 82
+ #define QCA_GPIO_OUT_MUX_CLK_OBS4_VAL 83
+ #define QCA_GPIO_OUT_MUX_CLK_OBS5_VAL 84
+ #endif
+
+ #if (SOC_TYPE & QCA_QCA953X_SOC)
+ #define QCA_GPIO_OUT_MUX_SMART_ANT_CTRL_BIT2_VAL 48
+ #define QCA_GPIO_OUT_MUX_SMART_ANT_CTRL_BIT3_VAL 49
+ #define QCA_GPIO_OUT_MUX_ATT_LED_VAL 50
+ #define QCA_GPIO_OUT_MUX_PWR_LED_VAL 51
+ #define QCA_GPIO_OUT_MUX_TX_FRAME_VAL 52
+ #define QCA_GPIO_OUT_MUX_RX_CLEAR_INT_VAL 53
+ #define QCA_GPIO_OUT_MUX_LED_NETWORK_EN_VAL 54
+ #define QCA_GPIO_OUT_MUX_LED_POWER_EN_VAL 55
+ #define QCA_GPIO_OUT_MUX_RX_CLEAR_EXTENSION_VAL 78
+ #define QCA_GPIO_OUT_MUX_USB_SUSPEND_VAL 86
+ #define QCA_GPIO_OUT_MUX_DDR_DQ_OE_VAL 88
+ #define QCA_GPIO_OUT_MUX_CLK_REQ_N_RC_VAL 89
+ #define QCA_GPIO_OUT_MUX_CLK_OBS0_VAL 90
+ #define QCA_GPIO_OUT_MUX_CLK_OBS1_VAL 91
+ #define QCA_GPIO_OUT_MUX_CLK_OBS2_VAL 92
+ #define QCA_GPIO_OUT_MUX_CLK_OBS3_VAL 93
+ #define QCA_GPIO_OUT_MUX_CLK_OBS4_VAL 94
+ #define QCA_GPIO_OUT_MUX_CLK_OBS5_VAL 95
+ #define QCA_GPIO_OUT_MUX_CLK_OBS6_VAL 96
+ #endif
+#endif
+
+/* GPIO_IN_ENABLE0 register (GPIO in signals 0) */
+#define QCA_GPIO_IN_EN0_SPI_MISO_SHIFT 0
+#define QCA_GPIO_IN_EN0_SPI_MISO_MASK 0x000000FF
+#define QCA_GPIO_IN_EN0_LSUART_RXD_SHIFT 8
+#define QCA_GPIO_IN_EN0_LSUART_RXD_MASK 0x0000FF00
+
+/* GPIO_IN_ENABLE1 register (GPIO in signals 1) */
+#define QCA_GPIO_IN_EN1_I2S_WS_SHIFT 0
+#define QCA_GPIO_IN_EN1_I2S_WS_MASK 0x000000FF
+#define QCA_GPIO_IN_EN1_I2S_MIC_SD_SHIFT 8
+#define QCA_GPIO_IN_EN1_I2S_MIC_SD_MASK 0x0000FF00
+#define QCA_GPIO_IN_EN1_I2S_CLK_SHIFT 16
+#define QCA_GPIO_IN_EN1_I2S_CLK_MASK 0x00FF0000
+#define QCA_GPIO_IN_EN1_I2S_MCLK_SHIFT 24
+#define QCA_GPIO_IN_EN1_I2S_MCLK_MASK 0xFF000000
+
+/* GPIO_IN_ENABLE9 register (GPIO in signals 9) */
+#define QCA_GPIO_IN_EN9_HSUART_RXD_SHIFT 16
+#define QCA_GPIO_IN_EN9_HSUART_RXD_MASK 0x00FF0000
+#define QCA_GPIO_IN_EN9_HSUART_CTS_SHIFT 24
+#define QCA_GPIO_IN_EN9_HSUART_CTS_MASK 0xFF000000
+
+/* GPIO_FUNCTION register (GPIO function) */
+#define QCA_GPIO_FUNC_GPIO_SRIF_EN_SHIFT 0
+#define QCA_GPIO_FUNC_GPIO_SRIF_EN_MASK (1 << QCA_GPIO_FUNC_GPIO_SRIF_EN_SHIFT)
+#define QCA_GPIO_FUNC_JTAG_DIS_SHIFT 1
+#define QCA_GPIO_FUNC_JTAG_DIS_MASK (1 << QCA_GPIO_FUNC_JTAG_DIS_SHIFT)
+#define QCA_GPIO_FUNC_CLK_OBS0_EN_SHIFT 2
+#define QCA_GPIO_FUNC_CLK_OBS0_EN_MASK (1 << QCA_GPIO_FUNC_CLK_OBS0_EN_SHIFT)
+#define QCA_GPIO_FUNC_CLK_OBS1_EN_SHIFT 3
+#define QCA_GPIO_FUNC_CLK_OBS1_EN_MASK (1 << QCA_GPIO_FUNC_CLK_OBS1_EN_SHIFT)
+#define QCA_GPIO_FUNC_CLK_OBS2_EN_SHIFT 4
+#define QCA_GPIO_FUNC_CLK_OBS2_EN_MASK (1 << QCA_GPIO_FUNC_CLK_OBS2_EN_SHIFT)
+#define QCA_GPIO_FUNC_CLK_OBS3_EN_SHIFT 5
+#define QCA_GPIO_FUNC_CLK_OBS3_EN_MASK (1 << QCA_GPIO_FUNC_CLK_OBS3_EN_SHIFT)
+#define QCA_GPIO_FUNC_CLK_OBS4_EN_SHIFT 6
+#define QCA_GPIO_FUNC_CLK_OBS4_EN_MASK (1 << QCA_GPIO_FUNC_CLK_OBS4_EN_SHIFT)
+#define QCA_GPIO_FUNC_CLK_OBS5_EN_SHIFT 7
+#define QCA_GPIO_FUNC_CLK_OBS5_EN_MASK (1 << QCA_GPIO_FUNC_CLK_OBS5_EN_SHIFT)
+#define QCA_GPIO_FUNC_CLK_OBS6_EN_SHIFT 8
+#define QCA_GPIO_FUNC_CLK_OBS6_EN_MASK (1 << QCA_GPIO_FUNC_CLK_OBS6_EN_SHIFT)
+#define QCA_GPIO_FUNC_CLK_OBS7_EN_SHIFT 9
+#define QCA_GPIO_FUNC_CLK_OBS7_EN_MASK (1 << QCA_GPIO_FUNC_CLK_OBS7_EN_SHIFT)
+
/*
* PLL control registers
*/
#endif
#endif
-
/*
* PLL control registers BIT fields
*/