From: Piotr Dymacz Date: Sun, 15 Nov 2015 23:14:49 +0000 (+0100) Subject: Add GPIO MUX related definitions in qca_soc_common.h header file, plus some minor... X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=fce1ff6e4a90fdd535328f7da272e9e8a4123887;p=oweals%2Fu-boot_mod.git Add GPIO MUX related definitions in qca_soc_common.h header file, plus some minor fixes --- diff --git a/u-boot/include/soc/qca_soc_common.h b/u-boot/include/soc/qca_soc_common.h index c9636ef..f81675f 100644 --- a/u-boot/include/soc/qca_soc_common.h +++ b/u-boot/include/soc/qca_soc_common.h @@ -430,8 +430,8 @@ #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 @@ -440,6 +440,262 @@ #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 */ @@ -502,7 +758,6 @@ #endif #endif - /* * PLL control registers BIT fields */