1*4882a593Smuzhiyun /* SPDX-License-Identifier: GPL-2.0-only */ 2*4882a593Smuzhiyun /* 3*4882a593Smuzhiyun * Atheros AR71XX/AR724X/AR913X SoC register definitions 4*4882a593Smuzhiyun * 5*4882a593Smuzhiyun * Copyright (C) 2010-2011 Jaiganesh Narayanan <jnarayanan@atheros.com> 6*4882a593Smuzhiyun * Copyright (C) 2008-2010 Gabor Juhos <juhosg@openwrt.org> 7*4882a593Smuzhiyun * Copyright (C) 2008 Imre Kaloz <kaloz@openwrt.org> 8*4882a593Smuzhiyun * 9*4882a593Smuzhiyun * Parts of this file are based on Atheros' 2.6.15/2.6.31 BSP 10*4882a593Smuzhiyun */ 11*4882a593Smuzhiyun 12*4882a593Smuzhiyun #ifndef __ASM_MACH_AR71XX_REGS_H 13*4882a593Smuzhiyun #define __ASM_MACH_AR71XX_REGS_H 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun #include <linux/types.h> 16*4882a593Smuzhiyun #include <linux/io.h> 17*4882a593Smuzhiyun #include <linux/bitops.h> 18*4882a593Smuzhiyun 19*4882a593Smuzhiyun #define AR71XX_APB_BASE 0x18000000 20*4882a593Smuzhiyun #define AR71XX_GE0_BASE 0x19000000 21*4882a593Smuzhiyun #define AR71XX_GE0_SIZE 0x10000 22*4882a593Smuzhiyun #define AR71XX_GE1_BASE 0x1a000000 23*4882a593Smuzhiyun #define AR71XX_GE1_SIZE 0x10000 24*4882a593Smuzhiyun #define AR71XX_EHCI_BASE 0x1b000000 25*4882a593Smuzhiyun #define AR71XX_EHCI_SIZE 0x1000 26*4882a593Smuzhiyun #define AR71XX_OHCI_BASE 0x1c000000 27*4882a593Smuzhiyun #define AR71XX_OHCI_SIZE 0x1000 28*4882a593Smuzhiyun #define AR71XX_SPI_BASE 0x1f000000 29*4882a593Smuzhiyun #define AR71XX_SPI_SIZE 0x01000000 30*4882a593Smuzhiyun 31*4882a593Smuzhiyun #define AR71XX_DDR_CTRL_BASE (AR71XX_APB_BASE + 0x00000000) 32*4882a593Smuzhiyun #define AR71XX_DDR_CTRL_SIZE 0x100 33*4882a593Smuzhiyun #define AR71XX_UART_BASE (AR71XX_APB_BASE + 0x00020000) 34*4882a593Smuzhiyun #define AR71XX_UART_SIZE 0x100 35*4882a593Smuzhiyun #define AR71XX_USB_CTRL_BASE (AR71XX_APB_BASE + 0x00030000) 36*4882a593Smuzhiyun #define AR71XX_USB_CTRL_SIZE 0x100 37*4882a593Smuzhiyun #define AR71XX_GPIO_BASE (AR71XX_APB_BASE + 0x00040000) 38*4882a593Smuzhiyun #define AR71XX_GPIO_SIZE 0x100 39*4882a593Smuzhiyun #define AR71XX_PLL_BASE (AR71XX_APB_BASE + 0x00050000) 40*4882a593Smuzhiyun #define AR71XX_PLL_SIZE 0x100 41*4882a593Smuzhiyun #define AR71XX_RESET_BASE (AR71XX_APB_BASE + 0x00060000) 42*4882a593Smuzhiyun #define AR71XX_RESET_SIZE 0x100 43*4882a593Smuzhiyun #define AR71XX_MII_BASE (AR71XX_APB_BASE + 0x00070000) 44*4882a593Smuzhiyun #define AR71XX_MII_SIZE 0x100 45*4882a593Smuzhiyun 46*4882a593Smuzhiyun #define AR71XX_PCI_MEM_BASE 0x10000000 47*4882a593Smuzhiyun #define AR71XX_PCI_MEM_SIZE 0x07000000 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun #define AR71XX_PCI_WIN0_OFFS 0x10000000 50*4882a593Smuzhiyun #define AR71XX_PCI_WIN1_OFFS 0x11000000 51*4882a593Smuzhiyun #define AR71XX_PCI_WIN2_OFFS 0x12000000 52*4882a593Smuzhiyun #define AR71XX_PCI_WIN3_OFFS 0x13000000 53*4882a593Smuzhiyun #define AR71XX_PCI_WIN4_OFFS 0x14000000 54*4882a593Smuzhiyun #define AR71XX_PCI_WIN5_OFFS 0x15000000 55*4882a593Smuzhiyun #define AR71XX_PCI_WIN6_OFFS 0x16000000 56*4882a593Smuzhiyun #define AR71XX_PCI_WIN7_OFFS 0x07000000 57*4882a593Smuzhiyun 58*4882a593Smuzhiyun #define AR71XX_PCI_CFG_BASE \ 59*4882a593Smuzhiyun (AR71XX_PCI_MEM_BASE + AR71XX_PCI_WIN7_OFFS + 0x10000) 60*4882a593Smuzhiyun #define AR71XX_PCI_CFG_SIZE 0x100 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun #define AR7240_USB_CTRL_BASE (AR71XX_APB_BASE + 0x00030000) 63*4882a593Smuzhiyun #define AR7240_USB_CTRL_SIZE 0x100 64*4882a593Smuzhiyun #define AR7240_OHCI_BASE 0x1b000000 65*4882a593Smuzhiyun #define AR7240_OHCI_SIZE 0x1000 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun #define AR724X_PCI_MEM_BASE 0x10000000 68*4882a593Smuzhiyun #define AR724X_PCI_MEM_SIZE 0x04000000 69*4882a593Smuzhiyun 70*4882a593Smuzhiyun #define AR724X_PCI_CFG_BASE 0x14000000 71*4882a593Smuzhiyun #define AR724X_PCI_CFG_SIZE 0x1000 72*4882a593Smuzhiyun #define AR724X_PCI_CRP_BASE (AR71XX_APB_BASE + 0x000c0000) 73*4882a593Smuzhiyun #define AR724X_PCI_CRP_SIZE 0x1000 74*4882a593Smuzhiyun #define AR724X_PCI_CTRL_BASE (AR71XX_APB_BASE + 0x000f0000) 75*4882a593Smuzhiyun #define AR724X_PCI_CTRL_SIZE 0x100 76*4882a593Smuzhiyun 77*4882a593Smuzhiyun #define AR724X_EHCI_BASE 0x1b000000 78*4882a593Smuzhiyun #define AR724X_EHCI_SIZE 0x1000 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun #define AR913X_EHCI_BASE 0x1b000000 81*4882a593Smuzhiyun #define AR913X_EHCI_SIZE 0x1000 82*4882a593Smuzhiyun #define AR913X_WMAC_BASE (AR71XX_APB_BASE + 0x000C0000) 83*4882a593Smuzhiyun #define AR913X_WMAC_SIZE 0x30000 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun #define AR933X_UART_BASE (AR71XX_APB_BASE + 0x00020000) 86*4882a593Smuzhiyun #define AR933X_UART_SIZE 0x14 87*4882a593Smuzhiyun #define AR933X_GMAC_BASE (AR71XX_APB_BASE + 0x00070000) 88*4882a593Smuzhiyun #define AR933X_GMAC_SIZE 0x04 89*4882a593Smuzhiyun #define AR933X_WMAC_BASE (AR71XX_APB_BASE + 0x00100000) 90*4882a593Smuzhiyun #define AR933X_WMAC_SIZE 0x20000 91*4882a593Smuzhiyun #define AR933X_EHCI_BASE 0x1b000000 92*4882a593Smuzhiyun #define AR933X_EHCI_SIZE 0x1000 93*4882a593Smuzhiyun 94*4882a593Smuzhiyun #define AR934X_GMAC_BASE (AR71XX_APB_BASE + 0x00070000) 95*4882a593Smuzhiyun #define AR934X_GMAC_SIZE 0x14 96*4882a593Smuzhiyun #define AR934X_WMAC_BASE (AR71XX_APB_BASE + 0x00100000) 97*4882a593Smuzhiyun #define AR934X_WMAC_SIZE 0x20000 98*4882a593Smuzhiyun #define AR934X_EHCI_BASE 0x1b000000 99*4882a593Smuzhiyun #define AR934X_EHCI_SIZE 0x200 100*4882a593Smuzhiyun #define AR934X_NFC_BASE 0x1b000200 101*4882a593Smuzhiyun #define AR934X_NFC_SIZE 0xb8 102*4882a593Smuzhiyun #define AR934X_SRIF_BASE (AR71XX_APB_BASE + 0x00116000) 103*4882a593Smuzhiyun #define AR934X_SRIF_SIZE 0x1000 104*4882a593Smuzhiyun 105*4882a593Smuzhiyun #define QCA953X_GMAC_BASE (AR71XX_APB_BASE + 0x00070000) 106*4882a593Smuzhiyun #define QCA953X_GMAC_SIZE 0x14 107*4882a593Smuzhiyun #define QCA953X_WMAC_BASE (AR71XX_APB_BASE + 0x00100000) 108*4882a593Smuzhiyun #define QCA953X_WMAC_SIZE 0x20000 109*4882a593Smuzhiyun #define QCA953X_EHCI_BASE 0x1b000000 110*4882a593Smuzhiyun #define QCA953X_EHCI_SIZE 0x200 111*4882a593Smuzhiyun #define QCA953X_SRIF_BASE (AR71XX_APB_BASE + 0x00116000) 112*4882a593Smuzhiyun #define QCA953X_SRIF_SIZE 0x1000 113*4882a593Smuzhiyun 114*4882a593Smuzhiyun #define QCA953X_PCI_CFG_BASE0 0x14000000 115*4882a593Smuzhiyun #define QCA953X_PCI_CTRL_BASE0 (AR71XX_APB_BASE + 0x000f0000) 116*4882a593Smuzhiyun #define QCA953X_PCI_CRP_BASE0 (AR71XX_APB_BASE + 0x000c0000) 117*4882a593Smuzhiyun #define QCA953X_PCI_MEM_BASE0 0x10000000 118*4882a593Smuzhiyun #define QCA953X_PCI_MEM_SIZE 0x02000000 119*4882a593Smuzhiyun 120*4882a593Smuzhiyun #define QCA955X_PCI_MEM_BASE0 0x10000000 121*4882a593Smuzhiyun #define QCA955X_PCI_MEM_BASE1 0x12000000 122*4882a593Smuzhiyun #define QCA955X_PCI_MEM_SIZE 0x02000000 123*4882a593Smuzhiyun #define QCA955X_PCI_CFG_BASE0 0x14000000 124*4882a593Smuzhiyun #define QCA955X_PCI_CFG_BASE1 0x16000000 125*4882a593Smuzhiyun #define QCA955X_PCI_CFG_SIZE 0x1000 126*4882a593Smuzhiyun #define QCA955X_PCI_CRP_BASE0 (AR71XX_APB_BASE + 0x000c0000) 127*4882a593Smuzhiyun #define QCA955X_PCI_CRP_BASE1 (AR71XX_APB_BASE + 0x00250000) 128*4882a593Smuzhiyun #define QCA955X_PCI_CRP_SIZE 0x1000 129*4882a593Smuzhiyun #define QCA955X_PCI_CTRL_BASE0 (AR71XX_APB_BASE + 0x000f0000) 130*4882a593Smuzhiyun #define QCA955X_PCI_CTRL_BASE1 (AR71XX_APB_BASE + 0x00280000) 131*4882a593Smuzhiyun #define QCA955X_PCI_CTRL_SIZE 0x100 132*4882a593Smuzhiyun 133*4882a593Smuzhiyun #define QCA955X_GMAC_BASE (AR71XX_APB_BASE + 0x00070000) 134*4882a593Smuzhiyun #define QCA955X_GMAC_SIZE 0x40 135*4882a593Smuzhiyun #define QCA955X_WMAC_BASE (AR71XX_APB_BASE + 0x00100000) 136*4882a593Smuzhiyun #define QCA955X_WMAC_SIZE 0x20000 137*4882a593Smuzhiyun #define QCA955X_EHCI0_BASE 0x1b000000 138*4882a593Smuzhiyun #define QCA955X_EHCI1_BASE 0x1b400000 139*4882a593Smuzhiyun #define QCA955X_EHCI_SIZE 0x1000 140*4882a593Smuzhiyun #define QCA955X_NFC_BASE 0x1b800200 141*4882a593Smuzhiyun #define QCA955X_NFC_SIZE 0xb8 142*4882a593Smuzhiyun 143*4882a593Smuzhiyun #define QCA956X_PCI_MEM_BASE1 0x12000000 144*4882a593Smuzhiyun #define QCA956X_PCI_MEM_SIZE 0x02000000 145*4882a593Smuzhiyun #define QCA956X_PCI_CFG_BASE1 0x16000000 146*4882a593Smuzhiyun #define QCA956X_PCI_CFG_SIZE 0x1000 147*4882a593Smuzhiyun #define QCA956X_PCI_CRP_BASE1 (AR71XX_APB_BASE + 0x00250000) 148*4882a593Smuzhiyun #define QCA956X_PCI_CRP_SIZE 0x1000 149*4882a593Smuzhiyun #define QCA956X_PCI_CTRL_BASE1 (AR71XX_APB_BASE + 0x00280000) 150*4882a593Smuzhiyun #define QCA956X_PCI_CTRL_SIZE 0x100 151*4882a593Smuzhiyun 152*4882a593Smuzhiyun #define QCA956X_WMAC_BASE (AR71XX_APB_BASE + 0x00100000) 153*4882a593Smuzhiyun #define QCA956X_WMAC_SIZE 0x20000 154*4882a593Smuzhiyun #define QCA956X_EHCI0_BASE 0x1b000000 155*4882a593Smuzhiyun #define QCA956X_EHCI1_BASE 0x1b400000 156*4882a593Smuzhiyun #define QCA956X_EHCI_SIZE 0x200 157*4882a593Smuzhiyun #define QCA956X_GMAC_SGMII_BASE (AR71XX_APB_BASE + 0x00070000) 158*4882a593Smuzhiyun #define QCA956X_GMAC_SGMII_SIZE 0x64 159*4882a593Smuzhiyun #define QCA956X_PLL_BASE (AR71XX_APB_BASE + 0x00050000) 160*4882a593Smuzhiyun #define QCA956X_PLL_SIZE 0x50 161*4882a593Smuzhiyun #define QCA956X_GMAC_BASE (AR71XX_APB_BASE + 0x00070000) 162*4882a593Smuzhiyun #define QCA956X_GMAC_SIZE 0x64 163*4882a593Smuzhiyun 164*4882a593Smuzhiyun /* 165*4882a593Smuzhiyun * Hidden Registers 166*4882a593Smuzhiyun */ 167*4882a593Smuzhiyun #define QCA956X_MAC_CFG_BASE 0xb9000000 168*4882a593Smuzhiyun #define QCA956X_MAC_CFG_SIZE 0x64 169*4882a593Smuzhiyun 170*4882a593Smuzhiyun #define QCA956X_MAC_CFG1_REG 0x00 171*4882a593Smuzhiyun #define QCA956X_MAC_CFG1_SOFT_RST BIT(31) 172*4882a593Smuzhiyun #define QCA956X_MAC_CFG1_RX_RST BIT(19) 173*4882a593Smuzhiyun #define QCA956X_MAC_CFG1_TX_RST BIT(18) 174*4882a593Smuzhiyun #define QCA956X_MAC_CFG1_LOOPBACK BIT(8) 175*4882a593Smuzhiyun #define QCA956X_MAC_CFG1_RX_EN BIT(2) 176*4882a593Smuzhiyun #define QCA956X_MAC_CFG1_TX_EN BIT(0) 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun #define QCA956X_MAC_CFG2_REG 0x04 179*4882a593Smuzhiyun #define QCA956X_MAC_CFG2_IF_1000 BIT(9) 180*4882a593Smuzhiyun #define QCA956X_MAC_CFG2_IF_10_100 BIT(8) 181*4882a593Smuzhiyun #define QCA956X_MAC_CFG2_HUGE_FRAME_EN BIT(5) 182*4882a593Smuzhiyun #define QCA956X_MAC_CFG2_LEN_CHECK BIT(4) 183*4882a593Smuzhiyun #define QCA956X_MAC_CFG2_PAD_CRC_EN BIT(2) 184*4882a593Smuzhiyun #define QCA956X_MAC_CFG2_FDX BIT(0) 185*4882a593Smuzhiyun 186*4882a593Smuzhiyun #define QCA956X_MAC_MII_MGMT_CFG_REG 0x20 187*4882a593Smuzhiyun #define QCA956X_MGMT_CFG_CLK_DIV_20 0x07 188*4882a593Smuzhiyun 189*4882a593Smuzhiyun #define QCA956X_MAC_FIFO_CFG0_REG 0x48 190*4882a593Smuzhiyun #define QCA956X_MAC_FIFO_CFG1_REG 0x4c 191*4882a593Smuzhiyun #define QCA956X_MAC_FIFO_CFG2_REG 0x50 192*4882a593Smuzhiyun #define QCA956X_MAC_FIFO_CFG3_REG 0x54 193*4882a593Smuzhiyun #define QCA956X_MAC_FIFO_CFG4_REG 0x58 194*4882a593Smuzhiyun #define QCA956X_MAC_FIFO_CFG5_REG 0x5c 195*4882a593Smuzhiyun 196*4882a593Smuzhiyun #define QCA956X_DAM_RESET_OFFSET 0xb90001bc 197*4882a593Smuzhiyun #define QCA956X_DAM_RESET_SIZE 0x4 198*4882a593Smuzhiyun #define QCA956X_INLINE_CHKSUM_ENG BIT(27) 199*4882a593Smuzhiyun 200*4882a593Smuzhiyun /* 201*4882a593Smuzhiyun * DDR_CTRL block 202*4882a593Smuzhiyun */ 203*4882a593Smuzhiyun #define AR71XX_DDR_REG_PCI_WIN0 0x7c 204*4882a593Smuzhiyun #define AR71XX_DDR_REG_PCI_WIN1 0x80 205*4882a593Smuzhiyun #define AR71XX_DDR_REG_PCI_WIN2 0x84 206*4882a593Smuzhiyun #define AR71XX_DDR_REG_PCI_WIN3 0x88 207*4882a593Smuzhiyun #define AR71XX_DDR_REG_PCI_WIN4 0x8c 208*4882a593Smuzhiyun #define AR71XX_DDR_REG_PCI_WIN5 0x90 209*4882a593Smuzhiyun #define AR71XX_DDR_REG_PCI_WIN6 0x94 210*4882a593Smuzhiyun #define AR71XX_DDR_REG_PCI_WIN7 0x98 211*4882a593Smuzhiyun #define AR71XX_DDR_REG_FLUSH_GE0 0x9c 212*4882a593Smuzhiyun #define AR71XX_DDR_REG_FLUSH_GE1 0xa0 213*4882a593Smuzhiyun #define AR71XX_DDR_REG_FLUSH_USB 0xa4 214*4882a593Smuzhiyun #define AR71XX_DDR_REG_FLUSH_PCI 0xa8 215*4882a593Smuzhiyun 216*4882a593Smuzhiyun #define AR724X_DDR_REG_FLUSH_GE0 0x7c 217*4882a593Smuzhiyun #define AR724X_DDR_REG_FLUSH_GE1 0x80 218*4882a593Smuzhiyun #define AR724X_DDR_REG_FLUSH_USB 0x84 219*4882a593Smuzhiyun #define AR724X_DDR_REG_FLUSH_PCIE 0x88 220*4882a593Smuzhiyun 221*4882a593Smuzhiyun #define AR913X_DDR_REG_FLUSH_GE0 0x7c 222*4882a593Smuzhiyun #define AR913X_DDR_REG_FLUSH_GE1 0x80 223*4882a593Smuzhiyun #define AR913X_DDR_REG_FLUSH_USB 0x84 224*4882a593Smuzhiyun #define AR913X_DDR_REG_FLUSH_WMAC 0x88 225*4882a593Smuzhiyun 226*4882a593Smuzhiyun #define AR933X_DDR_REG_FLUSH_GE0 0x7c 227*4882a593Smuzhiyun #define AR933X_DDR_REG_FLUSH_GE1 0x80 228*4882a593Smuzhiyun #define AR933X_DDR_REG_FLUSH_USB 0x84 229*4882a593Smuzhiyun #define AR933X_DDR_REG_FLUSH_WMAC 0x88 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun #define AR934X_DDR_REG_FLUSH_GE0 0x9c 232*4882a593Smuzhiyun #define AR934X_DDR_REG_FLUSH_GE1 0xa0 233*4882a593Smuzhiyun #define AR934X_DDR_REG_FLUSH_USB 0xa4 234*4882a593Smuzhiyun #define AR934X_DDR_REG_FLUSH_PCIE 0xa8 235*4882a593Smuzhiyun #define AR934X_DDR_REG_FLUSH_WMAC 0xac 236*4882a593Smuzhiyun 237*4882a593Smuzhiyun #define QCA953X_DDR_REG_FLUSH_GE0 0x9c 238*4882a593Smuzhiyun #define QCA953X_DDR_REG_FLUSH_GE1 0xa0 239*4882a593Smuzhiyun #define QCA953X_DDR_REG_FLUSH_USB 0xa4 240*4882a593Smuzhiyun #define QCA953X_DDR_REG_FLUSH_PCIE 0xa8 241*4882a593Smuzhiyun #define QCA953X_DDR_REG_FLUSH_WMAC 0xac 242*4882a593Smuzhiyun 243*4882a593Smuzhiyun /* 244*4882a593Smuzhiyun * PLL block 245*4882a593Smuzhiyun */ 246*4882a593Smuzhiyun #define AR71XX_PLL_REG_CPU_CONFIG 0x00 247*4882a593Smuzhiyun #define AR71XX_PLL_REG_SEC_CONFIG 0x04 248*4882a593Smuzhiyun #define AR71XX_PLL_REG_ETH0_INT_CLOCK 0x10 249*4882a593Smuzhiyun #define AR71XX_PLL_REG_ETH1_INT_CLOCK 0x14 250*4882a593Smuzhiyun 251*4882a593Smuzhiyun #define AR71XX_PLL_FB_SHIFT 3 252*4882a593Smuzhiyun #define AR71XX_PLL_FB_MASK 0x1f 253*4882a593Smuzhiyun #define AR71XX_CPU_DIV_SHIFT 16 254*4882a593Smuzhiyun #define AR71XX_CPU_DIV_MASK 0x3 255*4882a593Smuzhiyun #define AR71XX_DDR_DIV_SHIFT 18 256*4882a593Smuzhiyun #define AR71XX_DDR_DIV_MASK 0x3 257*4882a593Smuzhiyun #define AR71XX_AHB_DIV_SHIFT 20 258*4882a593Smuzhiyun #define AR71XX_AHB_DIV_MASK 0x7 259*4882a593Smuzhiyun 260*4882a593Smuzhiyun #define AR71XX_ETH0_PLL_SHIFT 17 261*4882a593Smuzhiyun #define AR71XX_ETH1_PLL_SHIFT 19 262*4882a593Smuzhiyun 263*4882a593Smuzhiyun #define AR724X_PLL_REG_CPU_CONFIG 0x00 264*4882a593Smuzhiyun #define AR724X_PLL_REG_PCIE_CONFIG 0x10 265*4882a593Smuzhiyun 266*4882a593Smuzhiyun #define AR724X_PLL_REG_PCIE_CONFIG_PPL_BYPASS BIT(16) 267*4882a593Smuzhiyun #define AR724X_PLL_REG_PCIE_CONFIG_PPL_RESET BIT(25) 268*4882a593Smuzhiyun 269*4882a593Smuzhiyun #define AR724X_PLL_FB_SHIFT 0 270*4882a593Smuzhiyun #define AR724X_PLL_FB_MASK 0x3ff 271*4882a593Smuzhiyun #define AR724X_PLL_REF_DIV_SHIFT 10 272*4882a593Smuzhiyun #define AR724X_PLL_REF_DIV_MASK 0xf 273*4882a593Smuzhiyun #define AR724X_AHB_DIV_SHIFT 19 274*4882a593Smuzhiyun #define AR724X_AHB_DIV_MASK 0x1 275*4882a593Smuzhiyun #define AR724X_DDR_DIV_SHIFT 22 276*4882a593Smuzhiyun #define AR724X_DDR_DIV_MASK 0x3 277*4882a593Smuzhiyun 278*4882a593Smuzhiyun #define AR7242_PLL_REG_ETH0_INT_CLOCK 0x2c 279*4882a593Smuzhiyun 280*4882a593Smuzhiyun #define AR913X_PLL_REG_CPU_CONFIG 0x00 281*4882a593Smuzhiyun #define AR913X_PLL_REG_ETH_CONFIG 0x04 282*4882a593Smuzhiyun #define AR913X_PLL_REG_ETH0_INT_CLOCK 0x14 283*4882a593Smuzhiyun #define AR913X_PLL_REG_ETH1_INT_CLOCK 0x18 284*4882a593Smuzhiyun 285*4882a593Smuzhiyun #define AR913X_PLL_FB_SHIFT 0 286*4882a593Smuzhiyun #define AR913X_PLL_FB_MASK 0x3ff 287*4882a593Smuzhiyun #define AR913X_DDR_DIV_SHIFT 22 288*4882a593Smuzhiyun #define AR913X_DDR_DIV_MASK 0x3 289*4882a593Smuzhiyun #define AR913X_AHB_DIV_SHIFT 19 290*4882a593Smuzhiyun #define AR913X_AHB_DIV_MASK 0x1 291*4882a593Smuzhiyun 292*4882a593Smuzhiyun #define AR913X_ETH0_PLL_SHIFT 20 293*4882a593Smuzhiyun #define AR913X_ETH1_PLL_SHIFT 22 294*4882a593Smuzhiyun 295*4882a593Smuzhiyun #define AR933X_PLL_CPU_CONFIG_REG 0x00 296*4882a593Smuzhiyun #define AR933X_PLL_CLOCK_CTRL_REG 0x08 297*4882a593Smuzhiyun 298*4882a593Smuzhiyun #define AR933X_PLL_CPU_CONFIG_NINT_SHIFT 10 299*4882a593Smuzhiyun #define AR933X_PLL_CPU_CONFIG_NINT_MASK 0x3f 300*4882a593Smuzhiyun #define AR933X_PLL_CPU_CONFIG_REFDIV_SHIFT 16 301*4882a593Smuzhiyun #define AR933X_PLL_CPU_CONFIG_REFDIV_MASK 0x1f 302*4882a593Smuzhiyun #define AR933X_PLL_CPU_CONFIG_OUTDIV_SHIFT 23 303*4882a593Smuzhiyun #define AR933X_PLL_CPU_CONFIG_OUTDIV_MASK 0x7 304*4882a593Smuzhiyun 305*4882a593Smuzhiyun #define AR933X_PLL_CLOCK_CTRL_BYPASS BIT(2) 306*4882a593Smuzhiyun #define AR933X_PLL_CLOCK_CTRL_CPU_DIV_SHIFT 5 307*4882a593Smuzhiyun #define AR933X_PLL_CLOCK_CTRL_CPU_DIV_MASK 0x3 308*4882a593Smuzhiyun #define AR933X_PLL_CLOCK_CTRL_DDR_DIV_SHIFT 10 309*4882a593Smuzhiyun #define AR933X_PLL_CLOCK_CTRL_DDR_DIV_MASK 0x3 310*4882a593Smuzhiyun #define AR933X_PLL_CLOCK_CTRL_AHB_DIV_SHIFT 15 311*4882a593Smuzhiyun #define AR933X_PLL_CLOCK_CTRL_AHB_DIV_MASK 0x7 312*4882a593Smuzhiyun 313*4882a593Smuzhiyun #define AR934X_PLL_CPU_CONFIG_REG 0x00 314*4882a593Smuzhiyun #define AR934X_PLL_DDR_CONFIG_REG 0x04 315*4882a593Smuzhiyun #define AR934X_PLL_CPU_DDR_CLK_CTRL_REG 0x08 316*4882a593Smuzhiyun #define AR934X_PLL_SWITCH_CLOCK_CONTROL_REG 0x24 317*4882a593Smuzhiyun #define AR934X_PLL_ETH_XMII_CONTROL_REG 0x2c 318*4882a593Smuzhiyun 319*4882a593Smuzhiyun #define AR934X_PLL_CPU_CONFIG_NFRAC_SHIFT 0 320*4882a593Smuzhiyun #define AR934X_PLL_CPU_CONFIG_NFRAC_MASK 0x3f 321*4882a593Smuzhiyun #define AR934X_PLL_CPU_CONFIG_NINT_SHIFT 6 322*4882a593Smuzhiyun #define AR934X_PLL_CPU_CONFIG_NINT_MASK 0x3f 323*4882a593Smuzhiyun #define AR934X_PLL_CPU_CONFIG_REFDIV_SHIFT 12 324*4882a593Smuzhiyun #define AR934X_PLL_CPU_CONFIG_REFDIV_MASK 0x1f 325*4882a593Smuzhiyun #define AR934X_PLL_CPU_CONFIG_OUTDIV_SHIFT 19 326*4882a593Smuzhiyun #define AR934X_PLL_CPU_CONFIG_OUTDIV_MASK 0x3 327*4882a593Smuzhiyun 328*4882a593Smuzhiyun #define AR934X_PLL_DDR_CONFIG_NFRAC_SHIFT 0 329*4882a593Smuzhiyun #define AR934X_PLL_DDR_CONFIG_NFRAC_MASK 0x3ff 330*4882a593Smuzhiyun #define AR934X_PLL_DDR_CONFIG_NINT_SHIFT 10 331*4882a593Smuzhiyun #define AR934X_PLL_DDR_CONFIG_NINT_MASK 0x3f 332*4882a593Smuzhiyun #define AR934X_PLL_DDR_CONFIG_REFDIV_SHIFT 16 333*4882a593Smuzhiyun #define AR934X_PLL_DDR_CONFIG_REFDIV_MASK 0x1f 334*4882a593Smuzhiyun #define AR934X_PLL_DDR_CONFIG_OUTDIV_SHIFT 23 335*4882a593Smuzhiyun #define AR934X_PLL_DDR_CONFIG_OUTDIV_MASK 0x7 336*4882a593Smuzhiyun 337*4882a593Smuzhiyun #define AR934X_PLL_CPU_DDR_CLK_CTRL_CPU_PLL_BYPASS BIT(2) 338*4882a593Smuzhiyun #define AR934X_PLL_CPU_DDR_CLK_CTRL_DDR_PLL_BYPASS BIT(3) 339*4882a593Smuzhiyun #define AR934X_PLL_CPU_DDR_CLK_CTRL_AHB_PLL_BYPASS BIT(4) 340*4882a593Smuzhiyun #define AR934X_PLL_CPU_DDR_CLK_CTRL_CPU_POST_DIV_SHIFT 5 341*4882a593Smuzhiyun #define AR934X_PLL_CPU_DDR_CLK_CTRL_CPU_POST_DIV_MASK 0x1f 342*4882a593Smuzhiyun #define AR934X_PLL_CPU_DDR_CLK_CTRL_DDR_POST_DIV_SHIFT 10 343*4882a593Smuzhiyun #define AR934X_PLL_CPU_DDR_CLK_CTRL_DDR_POST_DIV_MASK 0x1f 344*4882a593Smuzhiyun #define AR934X_PLL_CPU_DDR_CLK_CTRL_AHB_POST_DIV_SHIFT 15 345*4882a593Smuzhiyun #define AR934X_PLL_CPU_DDR_CLK_CTRL_AHB_POST_DIV_MASK 0x1f 346*4882a593Smuzhiyun #define AR934X_PLL_CPU_DDR_CLK_CTRL_CPUCLK_FROM_CPUPLL BIT(20) 347*4882a593Smuzhiyun #define AR934X_PLL_CPU_DDR_CLK_CTRL_DDRCLK_FROM_DDRPLL BIT(21) 348*4882a593Smuzhiyun #define AR934X_PLL_CPU_DDR_CLK_CTRL_AHBCLK_FROM_DDRPLL BIT(24) 349*4882a593Smuzhiyun 350*4882a593Smuzhiyun #define AR934X_PLL_SWITCH_CLOCK_CONTROL_MDIO_CLK_SEL BIT(6) 351*4882a593Smuzhiyun 352*4882a593Smuzhiyun #define QCA953X_PLL_CPU_CONFIG_REG 0x00 353*4882a593Smuzhiyun #define QCA953X_PLL_DDR_CONFIG_REG 0x04 354*4882a593Smuzhiyun #define QCA953X_PLL_CLK_CTRL_REG 0x08 355*4882a593Smuzhiyun #define QCA953X_PLL_SWITCH_CLOCK_CONTROL_REG 0x24 356*4882a593Smuzhiyun #define QCA953X_PLL_ETH_XMII_CONTROL_REG 0x2c 357*4882a593Smuzhiyun #define QCA953X_PLL_ETH_SGMII_CONTROL_REG 0x48 358*4882a593Smuzhiyun 359*4882a593Smuzhiyun #define QCA953X_PLL_CPU_CONFIG_NFRAC_SHIFT 0 360*4882a593Smuzhiyun #define QCA953X_PLL_CPU_CONFIG_NFRAC_MASK 0x3f 361*4882a593Smuzhiyun #define QCA953X_PLL_CPU_CONFIG_NINT_SHIFT 6 362*4882a593Smuzhiyun #define QCA953X_PLL_CPU_CONFIG_NINT_MASK 0x3f 363*4882a593Smuzhiyun #define QCA953X_PLL_CPU_CONFIG_REFDIV_SHIFT 12 364*4882a593Smuzhiyun #define QCA953X_PLL_CPU_CONFIG_REFDIV_MASK 0x1f 365*4882a593Smuzhiyun #define QCA953X_PLL_CPU_CONFIG_OUTDIV_SHIFT 19 366*4882a593Smuzhiyun #define QCA953X_PLL_CPU_CONFIG_OUTDIV_MASK 0x7 367*4882a593Smuzhiyun 368*4882a593Smuzhiyun #define QCA953X_PLL_DDR_CONFIG_NFRAC_SHIFT 0 369*4882a593Smuzhiyun #define QCA953X_PLL_DDR_CONFIG_NFRAC_MASK 0x3ff 370*4882a593Smuzhiyun #define QCA953X_PLL_DDR_CONFIG_NINT_SHIFT 10 371*4882a593Smuzhiyun #define QCA953X_PLL_DDR_CONFIG_NINT_MASK 0x3f 372*4882a593Smuzhiyun #define QCA953X_PLL_DDR_CONFIG_REFDIV_SHIFT 16 373*4882a593Smuzhiyun #define QCA953X_PLL_DDR_CONFIG_REFDIV_MASK 0x1f 374*4882a593Smuzhiyun #define QCA953X_PLL_DDR_CONFIG_OUTDIV_SHIFT 23 375*4882a593Smuzhiyun #define QCA953X_PLL_DDR_CONFIG_OUTDIV_MASK 0x7 376*4882a593Smuzhiyun 377*4882a593Smuzhiyun #define QCA953X_PLL_CLK_CTRL_CPU_PLL_BYPASS BIT(2) 378*4882a593Smuzhiyun #define QCA953X_PLL_CLK_CTRL_DDR_PLL_BYPASS BIT(3) 379*4882a593Smuzhiyun #define QCA953X_PLL_CLK_CTRL_AHB_PLL_BYPASS BIT(4) 380*4882a593Smuzhiyun #define QCA953X_PLL_CLK_CTRL_CPU_POST_DIV_SHIFT 5 381*4882a593Smuzhiyun #define QCA953X_PLL_CLK_CTRL_CPU_POST_DIV_MASK 0x1f 382*4882a593Smuzhiyun #define QCA953X_PLL_CLK_CTRL_DDR_POST_DIV_SHIFT 10 383*4882a593Smuzhiyun #define QCA953X_PLL_CLK_CTRL_DDR_POST_DIV_MASK 0x1f 384*4882a593Smuzhiyun #define QCA953X_PLL_CLK_CTRL_AHB_POST_DIV_SHIFT 15 385*4882a593Smuzhiyun #define QCA953X_PLL_CLK_CTRL_AHB_POST_DIV_MASK 0x1f 386*4882a593Smuzhiyun #define QCA953X_PLL_CLK_CTRL_CPUCLK_FROM_CPUPLL BIT(20) 387*4882a593Smuzhiyun #define QCA953X_PLL_CLK_CTRL_DDRCLK_FROM_DDRPLL BIT(21) 388*4882a593Smuzhiyun #define QCA953X_PLL_CLK_CTRL_AHBCLK_FROM_DDRPLL BIT(24) 389*4882a593Smuzhiyun 390*4882a593Smuzhiyun #define QCA955X_PLL_CPU_CONFIG_REG 0x00 391*4882a593Smuzhiyun #define QCA955X_PLL_DDR_CONFIG_REG 0x04 392*4882a593Smuzhiyun #define QCA955X_PLL_CLK_CTRL_REG 0x08 393*4882a593Smuzhiyun #define QCA955X_PLL_ETH_XMII_CONTROL_REG 0x28 394*4882a593Smuzhiyun #define QCA955X_PLL_ETH_SGMII_CONTROL_REG 0x48 395*4882a593Smuzhiyun #define QCA955X_PLL_ETH_SGMII_SERDES_REG 0x4c 396*4882a593Smuzhiyun 397*4882a593Smuzhiyun #define QCA955X_PLL_CPU_CONFIG_NFRAC_SHIFT 0 398*4882a593Smuzhiyun #define QCA955X_PLL_CPU_CONFIG_NFRAC_MASK 0x3f 399*4882a593Smuzhiyun #define QCA955X_PLL_CPU_CONFIG_NINT_SHIFT 6 400*4882a593Smuzhiyun #define QCA955X_PLL_CPU_CONFIG_NINT_MASK 0x3f 401*4882a593Smuzhiyun #define QCA955X_PLL_CPU_CONFIG_REFDIV_SHIFT 12 402*4882a593Smuzhiyun #define QCA955X_PLL_CPU_CONFIG_REFDIV_MASK 0x1f 403*4882a593Smuzhiyun #define QCA955X_PLL_CPU_CONFIG_OUTDIV_SHIFT 19 404*4882a593Smuzhiyun #define QCA955X_PLL_CPU_CONFIG_OUTDIV_MASK 0x3 405*4882a593Smuzhiyun 406*4882a593Smuzhiyun #define QCA955X_PLL_DDR_CONFIG_NFRAC_SHIFT 0 407*4882a593Smuzhiyun #define QCA955X_PLL_DDR_CONFIG_NFRAC_MASK 0x3ff 408*4882a593Smuzhiyun #define QCA955X_PLL_DDR_CONFIG_NINT_SHIFT 10 409*4882a593Smuzhiyun #define QCA955X_PLL_DDR_CONFIG_NINT_MASK 0x3f 410*4882a593Smuzhiyun #define QCA955X_PLL_DDR_CONFIG_REFDIV_SHIFT 16 411*4882a593Smuzhiyun #define QCA955X_PLL_DDR_CONFIG_REFDIV_MASK 0x1f 412*4882a593Smuzhiyun #define QCA955X_PLL_DDR_CONFIG_OUTDIV_SHIFT 23 413*4882a593Smuzhiyun #define QCA955X_PLL_DDR_CONFIG_OUTDIV_MASK 0x7 414*4882a593Smuzhiyun 415*4882a593Smuzhiyun #define QCA955X_PLL_CLK_CTRL_CPU_PLL_BYPASS BIT(2) 416*4882a593Smuzhiyun #define QCA955X_PLL_CLK_CTRL_DDR_PLL_BYPASS BIT(3) 417*4882a593Smuzhiyun #define QCA955X_PLL_CLK_CTRL_AHB_PLL_BYPASS BIT(4) 418*4882a593Smuzhiyun #define QCA955X_PLL_CLK_CTRL_CPU_POST_DIV_SHIFT 5 419*4882a593Smuzhiyun #define QCA955X_PLL_CLK_CTRL_CPU_POST_DIV_MASK 0x1f 420*4882a593Smuzhiyun #define QCA955X_PLL_CLK_CTRL_DDR_POST_DIV_SHIFT 10 421*4882a593Smuzhiyun #define QCA955X_PLL_CLK_CTRL_DDR_POST_DIV_MASK 0x1f 422*4882a593Smuzhiyun #define QCA955X_PLL_CLK_CTRL_AHB_POST_DIV_SHIFT 15 423*4882a593Smuzhiyun #define QCA955X_PLL_CLK_CTRL_AHB_POST_DIV_MASK 0x1f 424*4882a593Smuzhiyun #define QCA955X_PLL_CLK_CTRL_CPUCLK_FROM_CPUPLL BIT(20) 425*4882a593Smuzhiyun #define QCA955X_PLL_CLK_CTRL_DDRCLK_FROM_DDRPLL BIT(21) 426*4882a593Smuzhiyun #define QCA955X_PLL_CLK_CTRL_AHBCLK_FROM_DDRPLL BIT(24) 427*4882a593Smuzhiyun 428*4882a593Smuzhiyun #define QCA955X_PLL_ETH_SGMII_SERDES_LOCK_DETECT BIT(2) 429*4882a593Smuzhiyun #define QCA955X_PLL_ETH_SGMII_SERDES_PLL_REFCLK BIT(1) 430*4882a593Smuzhiyun #define QCA955X_PLL_ETH_SGMII_SERDES_EN_PLL BIT(0) 431*4882a593Smuzhiyun 432*4882a593Smuzhiyun #define QCA956X_PLL_CPU_CONFIG_REG 0x00 433*4882a593Smuzhiyun #define QCA956X_PLL_CPU_CONFIG1_REG 0x04 434*4882a593Smuzhiyun #define QCA956X_PLL_DDR_CONFIG_REG 0x08 435*4882a593Smuzhiyun #define QCA956X_PLL_DDR_CONFIG1_REG 0x0c 436*4882a593Smuzhiyun #define QCA956X_PLL_CLK_CTRL_REG 0x10 437*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_CONTROL_REG 0x28 438*4882a593Smuzhiyun #define QCA956X_PLL_ETH_XMII_CONTROL_REG 0x30 439*4882a593Smuzhiyun #define QCA956X_PLL_ETH_SGMII_SERDES_REG 0x4c 440*4882a593Smuzhiyun 441*4882a593Smuzhiyun #define QCA956X_PLL_CPU_CONFIG_REFDIV_SHIFT 12 442*4882a593Smuzhiyun #define QCA956X_PLL_CPU_CONFIG_REFDIV_MASK 0x1f 443*4882a593Smuzhiyun #define QCA956X_PLL_CPU_CONFIG_OUTDIV_SHIFT 19 444*4882a593Smuzhiyun #define QCA956X_PLL_CPU_CONFIG_OUTDIV_MASK 0x7 445*4882a593Smuzhiyun 446*4882a593Smuzhiyun #define QCA956X_PLL_CPU_CONFIG1_NFRAC_L_SHIFT 0 447*4882a593Smuzhiyun #define QCA956X_PLL_CPU_CONFIG1_NFRAC_L_MASK 0x1f 448*4882a593Smuzhiyun #define QCA956X_PLL_CPU_CONFIG1_NFRAC_H_SHIFT 5 449*4882a593Smuzhiyun #define QCA956X_PLL_CPU_CONFIG1_NFRAC_H_MASK 0x1fff 450*4882a593Smuzhiyun #define QCA956X_PLL_CPU_CONFIG1_NINT_SHIFT 18 451*4882a593Smuzhiyun #define QCA956X_PLL_CPU_CONFIG1_NINT_MASK 0x1ff 452*4882a593Smuzhiyun 453*4882a593Smuzhiyun #define QCA956X_PLL_DDR_CONFIG_REFDIV_SHIFT 16 454*4882a593Smuzhiyun #define QCA956X_PLL_DDR_CONFIG_REFDIV_MASK 0x1f 455*4882a593Smuzhiyun #define QCA956X_PLL_DDR_CONFIG_OUTDIV_SHIFT 23 456*4882a593Smuzhiyun #define QCA956X_PLL_DDR_CONFIG_OUTDIV_MASK 0x7 457*4882a593Smuzhiyun 458*4882a593Smuzhiyun #define QCA956X_PLL_DDR_CONFIG1_NFRAC_L_SHIFT 0 459*4882a593Smuzhiyun #define QCA956X_PLL_DDR_CONFIG1_NFRAC_L_MASK 0x1f 460*4882a593Smuzhiyun #define QCA956X_PLL_DDR_CONFIG1_NFRAC_H_SHIFT 5 461*4882a593Smuzhiyun #define QCA956X_PLL_DDR_CONFIG1_NFRAC_H_MASK 0x1fff 462*4882a593Smuzhiyun #define QCA956X_PLL_DDR_CONFIG1_NINT_SHIFT 18 463*4882a593Smuzhiyun #define QCA956X_PLL_DDR_CONFIG1_NINT_MASK 0x1ff 464*4882a593Smuzhiyun 465*4882a593Smuzhiyun #define QCA956X_PLL_CLK_CTRL_CPU_PLL_BYPASS BIT(2) 466*4882a593Smuzhiyun #define QCA956X_PLL_CLK_CTRL_DDR_PLL_BYPASS BIT(3) 467*4882a593Smuzhiyun #define QCA956X_PLL_CLK_CTRL_AHB_PLL_BYPASS BIT(4) 468*4882a593Smuzhiyun #define QCA956X_PLL_CLK_CTRL_CPU_POST_DIV_SHIFT 5 469*4882a593Smuzhiyun #define QCA956X_PLL_CLK_CTRL_CPU_POST_DIV_MASK 0x1f 470*4882a593Smuzhiyun #define QCA956X_PLL_CLK_CTRL_DDR_POST_DIV_SHIFT 10 471*4882a593Smuzhiyun #define QCA956X_PLL_CLK_CTRL_DDR_POST_DIV_MASK 0x1f 472*4882a593Smuzhiyun #define QCA956X_PLL_CLK_CTRL_AHB_POST_DIV_SHIFT 15 473*4882a593Smuzhiyun #define QCA956X_PLL_CLK_CTRL_AHB_POST_DIV_MASK 0x1f 474*4882a593Smuzhiyun #define QCA956X_PLL_CLK_CTRL_CPU_DDRCLK_FROM_DDRPLL BIT(20) 475*4882a593Smuzhiyun #define QCA956X_PLL_CLK_CTRL_CPU_DDRCLK_FROM_CPUPLL BIT(21) 476*4882a593Smuzhiyun #define QCA956X_PLL_CLK_CTRL_AHBCLK_FROM_DDRPLL BIT(24) 477*4882a593Smuzhiyun 478*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_SPARE_I2C_CLK_SELB BIT(5) 479*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_SPARE_MDIO_CLK_SEL0_1 BIT(6) 480*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_SPARE_UART1_CLK_SEL BIT(7) 481*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_SPARE_USB_REFCLK_FREQ_SEL_SHIFT 8 482*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_SPARE_USB_REFCLK_FREQ_SEL_MASK 0xf 483*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_SPARE_EN_PLL_TOP BIT(12) 484*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_SPARE_MDIO_CLK_SEL0_2 BIT(13) 485*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_SPARE_MDIO_CLK_SEL1_1 BIT(14) 486*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_SPARE_MDIO_CLK_SEL1_2 BIT(15) 487*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_SPARE_SWITCH_FUNC_TST_MODE BIT(16) 488*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_SPARE_EEE_ENABLE BIT(17) 489*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_SPARE_OEN_CLK125M_PLL BIT(18) 490*4882a593Smuzhiyun #define QCA956X_PLL_SWITCH_CLOCK_SPARE_SWITCHCLK_SEL BIT(19) 491*4882a593Smuzhiyun 492*4882a593Smuzhiyun #define QCA956X_PLL_ETH_XMII_TX_INVERT BIT(1) 493*4882a593Smuzhiyun #define QCA956X_PLL_ETH_XMII_GIGE BIT(25) 494*4882a593Smuzhiyun #define QCA956X_PLL_ETH_XMII_RX_DELAY_SHIFT 28 495*4882a593Smuzhiyun #define QCA956X_PLL_ETH_XMII_RX_DELAY_MASK 0x3 496*4882a593Smuzhiyun #define QCA956X_PLL_ETH_XMII_TX_DELAY_SHIFT 26 497*4882a593Smuzhiyun #define QCA956X_PLL_ETH_XMII_TX_DELAY_MASK 3 498*4882a593Smuzhiyun 499*4882a593Smuzhiyun #define QCA956X_PLL_ETH_SGMII_SERDES_LOCK_DETECT BIT(2) 500*4882a593Smuzhiyun #define QCA956X_PLL_ETH_SGMII_SERDES_PLL_REFCLK BIT(1) 501*4882a593Smuzhiyun #define QCA956X_PLL_ETH_SGMII_SERDES_EN_PLL BIT(0) 502*4882a593Smuzhiyun 503*4882a593Smuzhiyun /* 504*4882a593Smuzhiyun * USB_CONFIG block 505*4882a593Smuzhiyun */ 506*4882a593Smuzhiyun #define AR71XX_USB_CTRL_REG_FLADJ 0x00 507*4882a593Smuzhiyun #define AR71XX_USB_CTRL_REG_CONFIG 0x04 508*4882a593Smuzhiyun 509*4882a593Smuzhiyun /* 510*4882a593Smuzhiyun * RESET block 511*4882a593Smuzhiyun */ 512*4882a593Smuzhiyun #define AR71XX_RESET_REG_TIMER 0x00 513*4882a593Smuzhiyun #define AR71XX_RESET_REG_TIMER_RELOAD 0x04 514*4882a593Smuzhiyun #define AR71XX_RESET_REG_WDOG_CTRL 0x08 515*4882a593Smuzhiyun #define AR71XX_RESET_REG_WDOG 0x0c 516*4882a593Smuzhiyun #define AR71XX_RESET_REG_MISC_INT_STATUS 0x10 517*4882a593Smuzhiyun #define AR71XX_RESET_REG_MISC_INT_ENABLE 0x14 518*4882a593Smuzhiyun #define AR71XX_RESET_REG_PCI_INT_STATUS 0x18 519*4882a593Smuzhiyun #define AR71XX_RESET_REG_PCI_INT_ENABLE 0x1c 520*4882a593Smuzhiyun #define AR71XX_RESET_REG_GLOBAL_INT_STATUS 0x20 521*4882a593Smuzhiyun #define AR71XX_RESET_REG_RESET_MODULE 0x24 522*4882a593Smuzhiyun #define AR71XX_RESET_REG_PERFC_CTRL 0x2c 523*4882a593Smuzhiyun #define AR71XX_RESET_REG_PERFC0 0x30 524*4882a593Smuzhiyun #define AR71XX_RESET_REG_PERFC1 0x34 525*4882a593Smuzhiyun #define AR71XX_RESET_REG_REV_ID 0x90 526*4882a593Smuzhiyun 527*4882a593Smuzhiyun #define AR913X_RESET_REG_GLOBAL_INT_STATUS 0x18 528*4882a593Smuzhiyun #define AR913X_RESET_REG_RESET_MODULE 0x1c 529*4882a593Smuzhiyun #define AR913X_RESET_REG_PERF_CTRL 0x20 530*4882a593Smuzhiyun #define AR913X_RESET_REG_PERFC0 0x24 531*4882a593Smuzhiyun #define AR913X_RESET_REG_PERFC1 0x28 532*4882a593Smuzhiyun 533*4882a593Smuzhiyun #define AR724X_RESET_REG_RESET_MODULE 0x1c 534*4882a593Smuzhiyun 535*4882a593Smuzhiyun #define AR933X_RESET_REG_RESET_MODULE 0x1c 536*4882a593Smuzhiyun #define AR933X_RESET_REG_BOOTSTRAP 0xac 537*4882a593Smuzhiyun 538*4882a593Smuzhiyun #define AR934X_RESET_REG_RESET_MODULE 0x1c 539*4882a593Smuzhiyun #define AR934X_RESET_REG_BOOTSTRAP 0xb0 540*4882a593Smuzhiyun #define AR934X_RESET_REG_PCIE_WMAC_INT_STATUS 0xac 541*4882a593Smuzhiyun 542*4882a593Smuzhiyun #define QCA953X_RESET_REG_RESET_MODULE 0x1c 543*4882a593Smuzhiyun #define QCA953X_RESET_REG_BOOTSTRAP 0xb0 544*4882a593Smuzhiyun #define QCA953X_RESET_REG_PCIE_WMAC_INT_STATUS 0xac 545*4882a593Smuzhiyun 546*4882a593Smuzhiyun #define QCA955X_RESET_REG_RESET_MODULE 0x1c 547*4882a593Smuzhiyun #define QCA955X_RESET_REG_BOOTSTRAP 0xb0 548*4882a593Smuzhiyun #define QCA955X_RESET_REG_EXT_INT_STATUS 0xac 549*4882a593Smuzhiyun 550*4882a593Smuzhiyun #define QCA956X_RESET_REG_RESET_MODULE 0x1c 551*4882a593Smuzhiyun #define QCA956X_RESET_REG_BOOTSTRAP 0xb0 552*4882a593Smuzhiyun #define QCA956X_RESET_REG_EXT_INT_STATUS 0xac 553*4882a593Smuzhiyun 554*4882a593Smuzhiyun #define MISC_INT_MIPS_SI_TIMERINT_MASK BIT(28) 555*4882a593Smuzhiyun #define MISC_INT_ETHSW BIT(12) 556*4882a593Smuzhiyun #define MISC_INT_TIMER4 BIT(10) 557*4882a593Smuzhiyun #define MISC_INT_TIMER3 BIT(9) 558*4882a593Smuzhiyun #define MISC_INT_TIMER2 BIT(8) 559*4882a593Smuzhiyun #define MISC_INT_DMA BIT(7) 560*4882a593Smuzhiyun #define MISC_INT_OHCI BIT(6) 561*4882a593Smuzhiyun #define MISC_INT_PERFC BIT(5) 562*4882a593Smuzhiyun #define MISC_INT_WDOG BIT(4) 563*4882a593Smuzhiyun #define MISC_INT_UART BIT(3) 564*4882a593Smuzhiyun #define MISC_INT_GPIO BIT(2) 565*4882a593Smuzhiyun #define MISC_INT_ERROR BIT(1) 566*4882a593Smuzhiyun #define MISC_INT_TIMER BIT(0) 567*4882a593Smuzhiyun 568*4882a593Smuzhiyun #define AR71XX_RESET_EXTERNAL BIT(28) 569*4882a593Smuzhiyun #define AR71XX_RESET_FULL_CHIP BIT(24) 570*4882a593Smuzhiyun #define AR71XX_RESET_CPU_NMI BIT(21) 571*4882a593Smuzhiyun #define AR71XX_RESET_CPU_COLD BIT(20) 572*4882a593Smuzhiyun #define AR71XX_RESET_DMA BIT(19) 573*4882a593Smuzhiyun #define AR71XX_RESET_SLIC BIT(18) 574*4882a593Smuzhiyun #define AR71XX_RESET_STEREO BIT(17) 575*4882a593Smuzhiyun #define AR71XX_RESET_DDR BIT(16) 576*4882a593Smuzhiyun #define AR71XX_RESET_GE1_MAC BIT(13) 577*4882a593Smuzhiyun #define AR71XX_RESET_GE1_PHY BIT(12) 578*4882a593Smuzhiyun #define AR71XX_RESET_USBSUS_OVERRIDE BIT(10) 579*4882a593Smuzhiyun #define AR71XX_RESET_GE0_MAC BIT(9) 580*4882a593Smuzhiyun #define AR71XX_RESET_GE0_PHY BIT(8) 581*4882a593Smuzhiyun #define AR71XX_RESET_USB_OHCI_DLL BIT(6) 582*4882a593Smuzhiyun #define AR71XX_RESET_USB_HOST BIT(5) 583*4882a593Smuzhiyun #define AR71XX_RESET_USB_PHY BIT(4) 584*4882a593Smuzhiyun #define AR71XX_RESET_PCI_BUS BIT(1) 585*4882a593Smuzhiyun #define AR71XX_RESET_PCI_CORE BIT(0) 586*4882a593Smuzhiyun 587*4882a593Smuzhiyun #define AR7240_RESET_USB_HOST BIT(5) 588*4882a593Smuzhiyun #define AR7240_RESET_OHCI_DLL BIT(3) 589*4882a593Smuzhiyun 590*4882a593Smuzhiyun #define AR724X_RESET_GE1_MDIO BIT(23) 591*4882a593Smuzhiyun #define AR724X_RESET_GE0_MDIO BIT(22) 592*4882a593Smuzhiyun #define AR724X_RESET_PCIE_PHY_SERIAL BIT(10) 593*4882a593Smuzhiyun #define AR724X_RESET_PCIE_PHY BIT(7) 594*4882a593Smuzhiyun #define AR724X_RESET_PCIE BIT(6) 595*4882a593Smuzhiyun #define AR724X_RESET_USB_HOST BIT(5) 596*4882a593Smuzhiyun #define AR724X_RESET_USB_PHY BIT(4) 597*4882a593Smuzhiyun #define AR724X_RESET_USBSUS_OVERRIDE BIT(3) 598*4882a593Smuzhiyun 599*4882a593Smuzhiyun #define AR913X_RESET_AMBA2WMAC BIT(22) 600*4882a593Smuzhiyun #define AR913X_RESET_USBSUS_OVERRIDE BIT(10) 601*4882a593Smuzhiyun #define AR913X_RESET_USB_HOST BIT(5) 602*4882a593Smuzhiyun #define AR913X_RESET_USB_PHY BIT(4) 603*4882a593Smuzhiyun 604*4882a593Smuzhiyun #define AR933X_RESET_GE1_MDIO BIT(23) 605*4882a593Smuzhiyun #define AR933X_RESET_GE0_MDIO BIT(22) 606*4882a593Smuzhiyun #define AR933X_RESET_GE1_MAC BIT(13) 607*4882a593Smuzhiyun #define AR933X_RESET_WMAC BIT(11) 608*4882a593Smuzhiyun #define AR933X_RESET_GE0_MAC BIT(9) 609*4882a593Smuzhiyun #define AR933X_RESET_USB_HOST BIT(5) 610*4882a593Smuzhiyun #define AR933X_RESET_USB_PHY BIT(4) 611*4882a593Smuzhiyun #define AR933X_RESET_USBSUS_OVERRIDE BIT(3) 612*4882a593Smuzhiyun 613*4882a593Smuzhiyun #define AR934X_RESET_HOST BIT(31) 614*4882a593Smuzhiyun #define AR934X_RESET_SLIC BIT(30) 615*4882a593Smuzhiyun #define AR934X_RESET_HDMA BIT(29) 616*4882a593Smuzhiyun #define AR934X_RESET_EXTERNAL BIT(28) 617*4882a593Smuzhiyun #define AR934X_RESET_RTC BIT(27) 618*4882a593Smuzhiyun #define AR934X_RESET_PCIE_EP_INT BIT(26) 619*4882a593Smuzhiyun #define AR934X_RESET_CHKSUM_ACC BIT(25) 620*4882a593Smuzhiyun #define AR934X_RESET_FULL_CHIP BIT(24) 621*4882a593Smuzhiyun #define AR934X_RESET_GE1_MDIO BIT(23) 622*4882a593Smuzhiyun #define AR934X_RESET_GE0_MDIO BIT(22) 623*4882a593Smuzhiyun #define AR934X_RESET_CPU_NMI BIT(21) 624*4882a593Smuzhiyun #define AR934X_RESET_CPU_COLD BIT(20) 625*4882a593Smuzhiyun #define AR934X_RESET_HOST_RESET_INT BIT(19) 626*4882a593Smuzhiyun #define AR934X_RESET_PCIE_EP BIT(18) 627*4882a593Smuzhiyun #define AR934X_RESET_UART1 BIT(17) 628*4882a593Smuzhiyun #define AR934X_RESET_DDR BIT(16) 629*4882a593Smuzhiyun #define AR934X_RESET_USB_PHY_PLL_PWD_EXT BIT(15) 630*4882a593Smuzhiyun #define AR934X_RESET_NANDF BIT(14) 631*4882a593Smuzhiyun #define AR934X_RESET_GE1_MAC BIT(13) 632*4882a593Smuzhiyun #define AR934X_RESET_ETH_SWITCH_ANALOG BIT(12) 633*4882a593Smuzhiyun #define AR934X_RESET_USB_PHY_ANALOG BIT(11) 634*4882a593Smuzhiyun #define AR934X_RESET_HOST_DMA_INT BIT(10) 635*4882a593Smuzhiyun #define AR934X_RESET_GE0_MAC BIT(9) 636*4882a593Smuzhiyun #define AR934X_RESET_ETH_SWITCH BIT(8) 637*4882a593Smuzhiyun #define AR934X_RESET_PCIE_PHY BIT(7) 638*4882a593Smuzhiyun #define AR934X_RESET_PCIE BIT(6) 639*4882a593Smuzhiyun #define AR934X_RESET_USB_HOST BIT(5) 640*4882a593Smuzhiyun #define AR934X_RESET_USB_PHY BIT(4) 641*4882a593Smuzhiyun #define AR934X_RESET_USBSUS_OVERRIDE BIT(3) 642*4882a593Smuzhiyun #define AR934X_RESET_LUT BIT(2) 643*4882a593Smuzhiyun #define AR934X_RESET_MBOX BIT(1) 644*4882a593Smuzhiyun #define AR934X_RESET_I2S BIT(0) 645*4882a593Smuzhiyun 646*4882a593Smuzhiyun #define QCA953X_RESET_USB_EXT_PWR BIT(29) 647*4882a593Smuzhiyun #define QCA953X_RESET_EXTERNAL BIT(28) 648*4882a593Smuzhiyun #define QCA953X_RESET_RTC BIT(27) 649*4882a593Smuzhiyun #define QCA953X_RESET_FULL_CHIP BIT(24) 650*4882a593Smuzhiyun #define QCA953X_RESET_GE1_MDIO BIT(23) 651*4882a593Smuzhiyun #define QCA953X_RESET_GE0_MDIO BIT(22) 652*4882a593Smuzhiyun #define QCA953X_RESET_CPU_NMI BIT(21) 653*4882a593Smuzhiyun #define QCA953X_RESET_CPU_COLD BIT(20) 654*4882a593Smuzhiyun #define QCA953X_RESET_DDR BIT(16) 655*4882a593Smuzhiyun #define QCA953X_RESET_USB_PHY_PLL_PWD_EXT BIT(15) 656*4882a593Smuzhiyun #define QCA953X_RESET_GE1_MAC BIT(13) 657*4882a593Smuzhiyun #define QCA953X_RESET_ETH_SWITCH_ANALOG BIT(12) 658*4882a593Smuzhiyun #define QCA953X_RESET_USB_PHY_ANALOG BIT(11) 659*4882a593Smuzhiyun #define QCA953X_RESET_GE0_MAC BIT(9) 660*4882a593Smuzhiyun #define QCA953X_RESET_ETH_SWITCH BIT(8) 661*4882a593Smuzhiyun #define QCA953X_RESET_PCIE_PHY BIT(7) 662*4882a593Smuzhiyun #define QCA953X_RESET_PCIE BIT(6) 663*4882a593Smuzhiyun #define QCA953X_RESET_USB_HOST BIT(5) 664*4882a593Smuzhiyun #define QCA953X_RESET_USB_PHY BIT(4) 665*4882a593Smuzhiyun #define QCA953X_RESET_USBSUS_OVERRIDE BIT(3) 666*4882a593Smuzhiyun 667*4882a593Smuzhiyun #define QCA955X_RESET_HOST BIT(31) 668*4882a593Smuzhiyun #define QCA955X_RESET_SLIC BIT(30) 669*4882a593Smuzhiyun #define QCA955X_RESET_HDMA BIT(29) 670*4882a593Smuzhiyun #define QCA955X_RESET_EXTERNAL BIT(28) 671*4882a593Smuzhiyun #define QCA955X_RESET_RTC BIT(27) 672*4882a593Smuzhiyun #define QCA955X_RESET_PCIE_EP_INT BIT(26) 673*4882a593Smuzhiyun #define QCA955X_RESET_CHKSUM_ACC BIT(25) 674*4882a593Smuzhiyun #define QCA955X_RESET_FULL_CHIP BIT(24) 675*4882a593Smuzhiyun #define QCA955X_RESET_GE1_MDIO BIT(23) 676*4882a593Smuzhiyun #define QCA955X_RESET_GE0_MDIO BIT(22) 677*4882a593Smuzhiyun #define QCA955X_RESET_CPU_NMI BIT(21) 678*4882a593Smuzhiyun #define QCA955X_RESET_CPU_COLD BIT(20) 679*4882a593Smuzhiyun #define QCA955X_RESET_HOST_RESET_INT BIT(19) 680*4882a593Smuzhiyun #define QCA955X_RESET_PCIE_EP BIT(18) 681*4882a593Smuzhiyun #define QCA955X_RESET_UART1 BIT(17) 682*4882a593Smuzhiyun #define QCA955X_RESET_DDR BIT(16) 683*4882a593Smuzhiyun #define QCA955X_RESET_USB_PHY_PLL_PWD_EXT BIT(15) 684*4882a593Smuzhiyun #define QCA955X_RESET_NANDF BIT(14) 685*4882a593Smuzhiyun #define QCA955X_RESET_GE1_MAC BIT(13) 686*4882a593Smuzhiyun #define QCA955X_RESET_SGMII_ANALOG BIT(12) 687*4882a593Smuzhiyun #define QCA955X_RESET_USB_PHY_ANALOG BIT(11) 688*4882a593Smuzhiyun #define QCA955X_RESET_HOST_DMA_INT BIT(10) 689*4882a593Smuzhiyun #define QCA955X_RESET_GE0_MAC BIT(9) 690*4882a593Smuzhiyun #define QCA955X_RESET_SGMII BIT(8) 691*4882a593Smuzhiyun #define QCA955X_RESET_PCIE_PHY BIT(7) 692*4882a593Smuzhiyun #define QCA955X_RESET_PCIE BIT(6) 693*4882a593Smuzhiyun #define QCA955X_RESET_USB_HOST BIT(5) 694*4882a593Smuzhiyun #define QCA955X_RESET_USB_PHY BIT(4) 695*4882a593Smuzhiyun #define QCA955X_RESET_USBSUS_OVERRIDE BIT(3) 696*4882a593Smuzhiyun #define QCA955X_RESET_LUT BIT(2) 697*4882a593Smuzhiyun #define QCA955X_RESET_MBOX BIT(1) 698*4882a593Smuzhiyun #define QCA955X_RESET_I2S BIT(0) 699*4882a593Smuzhiyun 700*4882a593Smuzhiyun #define QCA956X_RESET_EXTERNAL BIT(28) 701*4882a593Smuzhiyun #define QCA956X_RESET_FULL_CHIP BIT(24) 702*4882a593Smuzhiyun #define QCA956X_RESET_GE1_MDIO BIT(23) 703*4882a593Smuzhiyun #define QCA956X_RESET_GE0_MDIO BIT(22) 704*4882a593Smuzhiyun #define QCA956X_RESET_CPU_NMI BIT(21) 705*4882a593Smuzhiyun #define QCA956X_RESET_CPU_COLD BIT(20) 706*4882a593Smuzhiyun #define QCA956X_RESET_DMA BIT(19) 707*4882a593Smuzhiyun #define QCA956X_RESET_DDR BIT(16) 708*4882a593Smuzhiyun #define QCA956X_RESET_GE1_MAC BIT(13) 709*4882a593Smuzhiyun #define QCA956X_RESET_SGMII_ANALOG BIT(12) 710*4882a593Smuzhiyun #define QCA956X_RESET_USB_PHY_ANALOG BIT(11) 711*4882a593Smuzhiyun #define QCA956X_RESET_GE0_MAC BIT(9) 712*4882a593Smuzhiyun #define QCA956X_RESET_SGMII BIT(8) 713*4882a593Smuzhiyun #define QCA956X_RESET_USB_HOST BIT(5) 714*4882a593Smuzhiyun #define QCA956X_RESET_USB_PHY BIT(4) 715*4882a593Smuzhiyun #define QCA956X_RESET_USBSUS_OVERRIDE BIT(3) 716*4882a593Smuzhiyun #define QCA956X_RESET_SWITCH_ANALOG BIT(2) 717*4882a593Smuzhiyun #define QCA956X_RESET_SWITCH BIT(0) 718*4882a593Smuzhiyun 719*4882a593Smuzhiyun #define AR933X_BOOTSTRAP_MDIO_GPIO_EN BIT(18) 720*4882a593Smuzhiyun #define AR933X_BOOTSTRAP_EEPBUSY BIT(4) 721*4882a593Smuzhiyun #define AR933X_BOOTSTRAP_REF_CLK_40 BIT(0) 722*4882a593Smuzhiyun 723*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_SW_OPTION8 BIT(23) 724*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_SW_OPTION7 BIT(22) 725*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_SW_OPTION6 BIT(21) 726*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_SW_OPTION5 BIT(20) 727*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_SW_OPTION4 BIT(19) 728*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_SW_OPTION3 BIT(18) 729*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_SW_OPTION2 BIT(17) 730*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_SW_OPTION1 BIT(16) 731*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_USB_MODE_DEVICE BIT(7) 732*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_PCIE_RC BIT(6) 733*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_EJTAG_MODE BIT(5) 734*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_REF_CLK_40 BIT(4) 735*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_BOOT_FROM_SPI BIT(2) 736*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_SDRAM_DISABLED BIT(1) 737*4882a593Smuzhiyun #define AR934X_BOOTSTRAP_DDR1 BIT(0) 738*4882a593Smuzhiyun 739*4882a593Smuzhiyun #define QCA953X_BOOTSTRAP_SW_OPTION2 BIT(12) 740*4882a593Smuzhiyun #define QCA953X_BOOTSTRAP_SW_OPTION1 BIT(11) 741*4882a593Smuzhiyun #define QCA953X_BOOTSTRAP_EJTAG_MODE BIT(5) 742*4882a593Smuzhiyun #define QCA953X_BOOTSTRAP_REF_CLK_40 BIT(4) 743*4882a593Smuzhiyun #define QCA953X_BOOTSTRAP_SDRAM_DISABLED BIT(1) 744*4882a593Smuzhiyun #define QCA953X_BOOTSTRAP_DDR1 BIT(0) 745*4882a593Smuzhiyun 746*4882a593Smuzhiyun #define QCA955X_BOOTSTRAP_REF_CLK_40 BIT(4) 747*4882a593Smuzhiyun 748*4882a593Smuzhiyun #define QCA956X_BOOTSTRAP_REF_CLK_40 BIT(2) 749*4882a593Smuzhiyun 750*4882a593Smuzhiyun #define AR934X_PCIE_WMAC_INT_WMAC_MISC BIT(0) 751*4882a593Smuzhiyun #define AR934X_PCIE_WMAC_INT_WMAC_TX BIT(1) 752*4882a593Smuzhiyun #define AR934X_PCIE_WMAC_INT_WMAC_RXLP BIT(2) 753*4882a593Smuzhiyun #define AR934X_PCIE_WMAC_INT_WMAC_RXHP BIT(3) 754*4882a593Smuzhiyun #define AR934X_PCIE_WMAC_INT_PCIE_RC BIT(4) 755*4882a593Smuzhiyun #define AR934X_PCIE_WMAC_INT_PCIE_RC0 BIT(5) 756*4882a593Smuzhiyun #define AR934X_PCIE_WMAC_INT_PCIE_RC1 BIT(6) 757*4882a593Smuzhiyun #define AR934X_PCIE_WMAC_INT_PCIE_RC2 BIT(7) 758*4882a593Smuzhiyun #define AR934X_PCIE_WMAC_INT_PCIE_RC3 BIT(8) 759*4882a593Smuzhiyun #define AR934X_PCIE_WMAC_INT_WMAC_ALL \ 760*4882a593Smuzhiyun (AR934X_PCIE_WMAC_INT_WMAC_MISC | AR934X_PCIE_WMAC_INT_WMAC_TX | \ 761*4882a593Smuzhiyun AR934X_PCIE_WMAC_INT_WMAC_RXLP | AR934X_PCIE_WMAC_INT_WMAC_RXHP) 762*4882a593Smuzhiyun 763*4882a593Smuzhiyun #define AR934X_PCIE_WMAC_INT_PCIE_ALL \ 764*4882a593Smuzhiyun (AR934X_PCIE_WMAC_INT_PCIE_RC | AR934X_PCIE_WMAC_INT_PCIE_RC0 | \ 765*4882a593Smuzhiyun AR934X_PCIE_WMAC_INT_PCIE_RC1 | AR934X_PCIE_WMAC_INT_PCIE_RC2 | \ 766*4882a593Smuzhiyun AR934X_PCIE_WMAC_INT_PCIE_RC3) 767*4882a593Smuzhiyun 768*4882a593Smuzhiyun #define QCA953X_PCIE_WMAC_INT_WMAC_MISC BIT(0) 769*4882a593Smuzhiyun #define QCA953X_PCIE_WMAC_INT_WMAC_TX BIT(1) 770*4882a593Smuzhiyun #define QCA953X_PCIE_WMAC_INT_WMAC_RXLP BIT(2) 771*4882a593Smuzhiyun #define QCA953X_PCIE_WMAC_INT_WMAC_RXHP BIT(3) 772*4882a593Smuzhiyun #define QCA953X_PCIE_WMAC_INT_PCIE_RC BIT(4) 773*4882a593Smuzhiyun #define QCA953X_PCIE_WMAC_INT_PCIE_RC0 BIT(5) 774*4882a593Smuzhiyun #define QCA953X_PCIE_WMAC_INT_PCIE_RC1 BIT(6) 775*4882a593Smuzhiyun #define QCA953X_PCIE_WMAC_INT_PCIE_RC2 BIT(7) 776*4882a593Smuzhiyun #define QCA953X_PCIE_WMAC_INT_PCIE_RC3 BIT(8) 777*4882a593Smuzhiyun #define QCA953X_PCIE_WMAC_INT_WMAC_ALL \ 778*4882a593Smuzhiyun (QCA953X_PCIE_WMAC_INT_WMAC_MISC | QCA953X_PCIE_WMAC_INT_WMAC_TX | \ 779*4882a593Smuzhiyun QCA953X_PCIE_WMAC_INT_WMAC_RXLP | QCA953X_PCIE_WMAC_INT_WMAC_RXHP) 780*4882a593Smuzhiyun 781*4882a593Smuzhiyun #define QCA953X_PCIE_WMAC_INT_PCIE_ALL \ 782*4882a593Smuzhiyun (QCA953X_PCIE_WMAC_INT_PCIE_RC | QCA953X_PCIE_WMAC_INT_PCIE_RC0 | \ 783*4882a593Smuzhiyun QCA953X_PCIE_WMAC_INT_PCIE_RC1 | QCA953X_PCIE_WMAC_INT_PCIE_RC2 | \ 784*4882a593Smuzhiyun QCA953X_PCIE_WMAC_INT_PCIE_RC3) 785*4882a593Smuzhiyun 786*4882a593Smuzhiyun #define QCA955X_EXT_INT_WMAC_MISC BIT(0) 787*4882a593Smuzhiyun #define QCA955X_EXT_INT_WMAC_TX BIT(1) 788*4882a593Smuzhiyun #define QCA955X_EXT_INT_WMAC_RXLP BIT(2) 789*4882a593Smuzhiyun #define QCA955X_EXT_INT_WMAC_RXHP BIT(3) 790*4882a593Smuzhiyun #define QCA955X_EXT_INT_PCIE_RC1 BIT(4) 791*4882a593Smuzhiyun #define QCA955X_EXT_INT_PCIE_RC1_INT0 BIT(5) 792*4882a593Smuzhiyun #define QCA955X_EXT_INT_PCIE_RC1_INT1 BIT(6) 793*4882a593Smuzhiyun #define QCA955X_EXT_INT_PCIE_RC1_INT2 BIT(7) 794*4882a593Smuzhiyun #define QCA955X_EXT_INT_PCIE_RC1_INT3 BIT(8) 795*4882a593Smuzhiyun #define QCA955X_EXT_INT_PCIE_RC2 BIT(12) 796*4882a593Smuzhiyun #define QCA955X_EXT_INT_PCIE_RC2_INT0 BIT(13) 797*4882a593Smuzhiyun #define QCA955X_EXT_INT_PCIE_RC2_INT1 BIT(14) 798*4882a593Smuzhiyun #define QCA955X_EXT_INT_PCIE_RC2_INT2 BIT(15) 799*4882a593Smuzhiyun #define QCA955X_EXT_INT_PCIE_RC2_INT3 BIT(16) 800*4882a593Smuzhiyun #define QCA955X_EXT_INT_USB1 BIT(24) 801*4882a593Smuzhiyun #define QCA955X_EXT_INT_USB2 BIT(28) 802*4882a593Smuzhiyun 803*4882a593Smuzhiyun #define QCA955X_EXT_INT_WMAC_ALL \ 804*4882a593Smuzhiyun (QCA955X_EXT_INT_WMAC_MISC | QCA955X_EXT_INT_WMAC_TX | \ 805*4882a593Smuzhiyun QCA955X_EXT_INT_WMAC_RXLP | QCA955X_EXT_INT_WMAC_RXHP) 806*4882a593Smuzhiyun 807*4882a593Smuzhiyun #define QCA955X_EXT_INT_PCIE_RC1_ALL \ 808*4882a593Smuzhiyun (QCA955X_EXT_INT_PCIE_RC1 | QCA955X_EXT_INT_PCIE_RC1_INT0 | \ 809*4882a593Smuzhiyun QCA955X_EXT_INT_PCIE_RC1_INT1 | QCA955X_EXT_INT_PCIE_RC1_INT2 | \ 810*4882a593Smuzhiyun QCA955X_EXT_INT_PCIE_RC1_INT3) 811*4882a593Smuzhiyun 812*4882a593Smuzhiyun #define QCA955X_EXT_INT_PCIE_RC2_ALL \ 813*4882a593Smuzhiyun (QCA955X_EXT_INT_PCIE_RC2 | QCA955X_EXT_INT_PCIE_RC2_INT0 | \ 814*4882a593Smuzhiyun QCA955X_EXT_INT_PCIE_RC2_INT1 | QCA955X_EXT_INT_PCIE_RC2_INT2 | \ 815*4882a593Smuzhiyun QCA955X_EXT_INT_PCIE_RC2_INT3) 816*4882a593Smuzhiyun 817*4882a593Smuzhiyun #define QCA956X_EXT_INT_WMAC_MISC BIT(0) 818*4882a593Smuzhiyun #define QCA956X_EXT_INT_WMAC_TX BIT(1) 819*4882a593Smuzhiyun #define QCA956X_EXT_INT_WMAC_RXLP BIT(2) 820*4882a593Smuzhiyun #define QCA956X_EXT_INT_WMAC_RXHP BIT(3) 821*4882a593Smuzhiyun #define QCA956X_EXT_INT_PCIE_RC1 BIT(4) 822*4882a593Smuzhiyun #define QCA956X_EXT_INT_PCIE_RC1_INT0 BIT(5) 823*4882a593Smuzhiyun #define QCA956X_EXT_INT_PCIE_RC1_INT1 BIT(6) 824*4882a593Smuzhiyun #define QCA956X_EXT_INT_PCIE_RC1_INT2 BIT(7) 825*4882a593Smuzhiyun #define QCA956X_EXT_INT_PCIE_RC1_INT3 BIT(8) 826*4882a593Smuzhiyun #define QCA956X_EXT_INT_PCIE_RC2 BIT(12) 827*4882a593Smuzhiyun #define QCA956X_EXT_INT_PCIE_RC2_INT0 BIT(13) 828*4882a593Smuzhiyun #define QCA956X_EXT_INT_PCIE_RC2_INT1 BIT(14) 829*4882a593Smuzhiyun #define QCA956X_EXT_INT_PCIE_RC2_INT2 BIT(15) 830*4882a593Smuzhiyun #define QCA956X_EXT_INT_PCIE_RC2_INT3 BIT(16) 831*4882a593Smuzhiyun #define QCA956X_EXT_INT_USB1 BIT(24) 832*4882a593Smuzhiyun #define QCA956X_EXT_INT_USB2 BIT(28) 833*4882a593Smuzhiyun 834*4882a593Smuzhiyun #define QCA956X_EXT_INT_WMAC_ALL \ 835*4882a593Smuzhiyun (QCA956X_EXT_INT_WMAC_MISC | QCA956X_EXT_INT_WMAC_TX | \ 836*4882a593Smuzhiyun QCA956X_EXT_INT_WMAC_RXLP | QCA956X_EXT_INT_WMAC_RXHP) 837*4882a593Smuzhiyun 838*4882a593Smuzhiyun #define QCA956X_EXT_INT_PCIE_RC1_ALL \ 839*4882a593Smuzhiyun (QCA956X_EXT_INT_PCIE_RC1 | QCA956X_EXT_INT_PCIE_RC1_INT0 | \ 840*4882a593Smuzhiyun QCA956X_EXT_INT_PCIE_RC1_INT1 | QCA956X_EXT_INT_PCIE_RC1_INT2 | \ 841*4882a593Smuzhiyun QCA956X_EXT_INT_PCIE_RC1_INT3) 842*4882a593Smuzhiyun 843*4882a593Smuzhiyun #define QCA956X_EXT_INT_PCIE_RC2_ALL \ 844*4882a593Smuzhiyun (QCA956X_EXT_INT_PCIE_RC2 | QCA956X_EXT_INT_PCIE_RC2_INT0 | \ 845*4882a593Smuzhiyun QCA956X_EXT_INT_PCIE_RC2_INT1 | QCA956X_EXT_INT_PCIE_RC2_INT2 | \ 846*4882a593Smuzhiyun QCA956X_EXT_INT_PCIE_RC2_INT3) 847*4882a593Smuzhiyun 848*4882a593Smuzhiyun #define REV_ID_MAJOR_MASK 0xfff0 849*4882a593Smuzhiyun #define REV_ID_MAJOR_AR71XX 0x00a0 850*4882a593Smuzhiyun #define REV_ID_MAJOR_AR913X 0x00b0 851*4882a593Smuzhiyun #define REV_ID_MAJOR_AR7240 0x00c0 852*4882a593Smuzhiyun #define REV_ID_MAJOR_AR7241 0x0100 853*4882a593Smuzhiyun #define REV_ID_MAJOR_AR7242 0x1100 854*4882a593Smuzhiyun #define REV_ID_MAJOR_AR9330 0x0110 855*4882a593Smuzhiyun #define REV_ID_MAJOR_AR9331 0x1110 856*4882a593Smuzhiyun #define REV_ID_MAJOR_AR9341 0x0120 857*4882a593Smuzhiyun #define REV_ID_MAJOR_AR9342 0x1120 858*4882a593Smuzhiyun #define REV_ID_MAJOR_AR9344 0x2120 859*4882a593Smuzhiyun #define REV_ID_MAJOR_QCA9533 0x0140 860*4882a593Smuzhiyun #define REV_ID_MAJOR_QCA9533_V2 0x0160 861*4882a593Smuzhiyun #define REV_ID_MAJOR_QCA9556 0x0130 862*4882a593Smuzhiyun #define REV_ID_MAJOR_QCA9558 0x1130 863*4882a593Smuzhiyun #define REV_ID_MAJOR_TP9343 0x0150 864*4882a593Smuzhiyun #define REV_ID_MAJOR_QCA956X 0x1150 865*4882a593Smuzhiyun 866*4882a593Smuzhiyun #define AR71XX_REV_ID_MINOR_MASK 0x3 867*4882a593Smuzhiyun #define AR71XX_REV_ID_MINOR_AR7130 0x0 868*4882a593Smuzhiyun #define AR71XX_REV_ID_MINOR_AR7141 0x1 869*4882a593Smuzhiyun #define AR71XX_REV_ID_MINOR_AR7161 0x2 870*4882a593Smuzhiyun #define AR71XX_REV_ID_REVISION_MASK 0x3 871*4882a593Smuzhiyun #define AR71XX_REV_ID_REVISION_SHIFT 2 872*4882a593Smuzhiyun 873*4882a593Smuzhiyun #define AR913X_REV_ID_MINOR_MASK 0x3 874*4882a593Smuzhiyun #define AR913X_REV_ID_MINOR_AR9130 0x0 875*4882a593Smuzhiyun #define AR913X_REV_ID_MINOR_AR9132 0x1 876*4882a593Smuzhiyun #define AR913X_REV_ID_REVISION_MASK 0x3 877*4882a593Smuzhiyun #define AR913X_REV_ID_REVISION_SHIFT 2 878*4882a593Smuzhiyun 879*4882a593Smuzhiyun #define AR933X_REV_ID_REVISION_MASK 0x3 880*4882a593Smuzhiyun 881*4882a593Smuzhiyun #define AR724X_REV_ID_REVISION_MASK 0x3 882*4882a593Smuzhiyun 883*4882a593Smuzhiyun #define AR934X_REV_ID_REVISION_MASK 0xf 884*4882a593Smuzhiyun 885*4882a593Smuzhiyun #define QCA953X_REV_ID_REVISION_MASK 0xf 886*4882a593Smuzhiyun 887*4882a593Smuzhiyun #define QCA955X_REV_ID_REVISION_MASK 0xf 888*4882a593Smuzhiyun 889*4882a593Smuzhiyun #define QCA956X_REV_ID_REVISION_MASK 0xf 890*4882a593Smuzhiyun 891*4882a593Smuzhiyun /* 892*4882a593Smuzhiyun * SPI block 893*4882a593Smuzhiyun */ 894*4882a593Smuzhiyun #define AR71XX_SPI_REG_FS 0x00 /* Function Select */ 895*4882a593Smuzhiyun #define AR71XX_SPI_REG_CTRL 0x04 /* SPI Control */ 896*4882a593Smuzhiyun #define AR71XX_SPI_REG_IOC 0x08 /* SPI I/O Control */ 897*4882a593Smuzhiyun #define AR71XX_SPI_REG_RDS 0x0c /* Read Data Shift */ 898*4882a593Smuzhiyun 899*4882a593Smuzhiyun #define AR71XX_SPI_FS_GPIO BIT(0) /* Enable GPIO mode */ 900*4882a593Smuzhiyun 901*4882a593Smuzhiyun #define AR71XX_SPI_CTRL_RD BIT(6) /* Remap Disable */ 902*4882a593Smuzhiyun #define AR71XX_SPI_CTRL_DIV_MASK 0x3f 903*4882a593Smuzhiyun 904*4882a593Smuzhiyun #define AR71XX_SPI_IOC_DO BIT(0) /* Data Out pin */ 905*4882a593Smuzhiyun #define AR71XX_SPI_IOC_CLK BIT(8) /* CLK pin */ 906*4882a593Smuzhiyun #define AR71XX_SPI_IOC_CS(n) BIT(16 + (n)) 907*4882a593Smuzhiyun #define AR71XX_SPI_IOC_CS0 AR71XX_SPI_IOC_CS(0) 908*4882a593Smuzhiyun #define AR71XX_SPI_IOC_CS1 AR71XX_SPI_IOC_CS(1) 909*4882a593Smuzhiyun #define AR71XX_SPI_IOC_CS2 AR71XX_SPI_IOC_CS(2) 910*4882a593Smuzhiyun #define AR71XX_SPI_IOC_CS_ALL (AR71XX_SPI_IOC_CS0 | AR71XX_SPI_IOC_CS1 | \ 911*4882a593Smuzhiyun AR71XX_SPI_IOC_CS2) 912*4882a593Smuzhiyun 913*4882a593Smuzhiyun /* 914*4882a593Smuzhiyun * GPIO block 915*4882a593Smuzhiyun */ 916*4882a593Smuzhiyun #define AR71XX_GPIO_REG_OE 0x00 917*4882a593Smuzhiyun #define AR71XX_GPIO_REG_IN 0x04 918*4882a593Smuzhiyun #define AR71XX_GPIO_REG_OUT 0x08 919*4882a593Smuzhiyun #define AR71XX_GPIO_REG_SET 0x0c 920*4882a593Smuzhiyun #define AR71XX_GPIO_REG_CLEAR 0x10 921*4882a593Smuzhiyun #define AR71XX_GPIO_REG_INT_MODE 0x14 922*4882a593Smuzhiyun #define AR71XX_GPIO_REG_INT_TYPE 0x18 923*4882a593Smuzhiyun #define AR71XX_GPIO_REG_INT_POLARITY 0x1c 924*4882a593Smuzhiyun #define AR71XX_GPIO_REG_INT_PENDING 0x20 925*4882a593Smuzhiyun #define AR71XX_GPIO_REG_INT_ENABLE 0x24 926*4882a593Smuzhiyun #define AR71XX_GPIO_REG_FUNC 0x28 927*4882a593Smuzhiyun 928*4882a593Smuzhiyun #define AR934X_GPIO_REG_OUT_FUNC0 0x2c 929*4882a593Smuzhiyun #define AR934X_GPIO_REG_OUT_FUNC1 0x30 930*4882a593Smuzhiyun #define AR934X_GPIO_REG_OUT_FUNC2 0x34 931*4882a593Smuzhiyun #define AR934X_GPIO_REG_OUT_FUNC3 0x38 932*4882a593Smuzhiyun #define AR934X_GPIO_REG_OUT_FUNC4 0x3c 933*4882a593Smuzhiyun #define AR934X_GPIO_REG_OUT_FUNC5 0x40 934*4882a593Smuzhiyun #define AR934X_GPIO_REG_FUNC 0x6c 935*4882a593Smuzhiyun 936*4882a593Smuzhiyun #define QCA953X_GPIO_REG_OUT_FUNC0 0x2c 937*4882a593Smuzhiyun #define QCA953X_GPIO_REG_OUT_FUNC1 0x30 938*4882a593Smuzhiyun #define QCA953X_GPIO_REG_OUT_FUNC2 0x34 939*4882a593Smuzhiyun #define QCA953X_GPIO_REG_OUT_FUNC3 0x38 940*4882a593Smuzhiyun #define QCA953X_GPIO_REG_OUT_FUNC4 0x3c 941*4882a593Smuzhiyun #define QCA953X_GPIO_REG_IN_ENABLE0 0x44 942*4882a593Smuzhiyun #define QCA953X_GPIO_REG_FUNC 0x6c 943*4882a593Smuzhiyun 944*4882a593Smuzhiyun #define QCA953X_GPIO_OUT_MUX_SPI_CS1 10 945*4882a593Smuzhiyun #define QCA953X_GPIO_OUT_MUX_SPI_CS2 11 946*4882a593Smuzhiyun #define QCA953X_GPIO_OUT_MUX_SPI_CS0 9 947*4882a593Smuzhiyun #define QCA953X_GPIO_OUT_MUX_SPI_CLK 8 948*4882a593Smuzhiyun #define QCA953X_GPIO_OUT_MUX_SPI_MOSI 12 949*4882a593Smuzhiyun #define QCA953X_GPIO_OUT_MUX_LED_LINK1 41 950*4882a593Smuzhiyun #define QCA953X_GPIO_OUT_MUX_LED_LINK2 42 951*4882a593Smuzhiyun #define QCA953X_GPIO_OUT_MUX_LED_LINK3 43 952*4882a593Smuzhiyun #define QCA953X_GPIO_OUT_MUX_LED_LINK4 44 953*4882a593Smuzhiyun #define QCA953X_GPIO_OUT_MUX_LED_LINK5 45 954*4882a593Smuzhiyun 955*4882a593Smuzhiyun #define QCA955X_GPIO_REG_OUT_FUNC0 0x2c 956*4882a593Smuzhiyun #define QCA955X_GPIO_REG_OUT_FUNC1 0x30 957*4882a593Smuzhiyun #define QCA955X_GPIO_REG_OUT_FUNC2 0x34 958*4882a593Smuzhiyun #define QCA955X_GPIO_REG_OUT_FUNC3 0x38 959*4882a593Smuzhiyun #define QCA955X_GPIO_REG_OUT_FUNC4 0x3c 960*4882a593Smuzhiyun #define QCA955X_GPIO_REG_OUT_FUNC5 0x40 961*4882a593Smuzhiyun #define QCA955X_GPIO_REG_FUNC 0x6c 962*4882a593Smuzhiyun 963*4882a593Smuzhiyun #define QCA956X_GPIO_REG_OUT_FUNC0 0x2c 964*4882a593Smuzhiyun #define QCA956X_GPIO_REG_OUT_FUNC1 0x30 965*4882a593Smuzhiyun #define QCA956X_GPIO_REG_OUT_FUNC2 0x34 966*4882a593Smuzhiyun #define QCA956X_GPIO_REG_OUT_FUNC3 0x38 967*4882a593Smuzhiyun #define QCA956X_GPIO_REG_OUT_FUNC4 0x3c 968*4882a593Smuzhiyun #define QCA956X_GPIO_REG_OUT_FUNC5 0x40 969*4882a593Smuzhiyun #define QCA956X_GPIO_REG_IN_ENABLE0 0x44 970*4882a593Smuzhiyun #define QCA956X_GPIO_REG_IN_ENABLE3 0x50 971*4882a593Smuzhiyun #define QCA956X_GPIO_REG_FUNC 0x6c 972*4882a593Smuzhiyun 973*4882a593Smuzhiyun #define QCA956X_GPIO_OUT_MUX_GE0_MDO 32 974*4882a593Smuzhiyun #define QCA956X_GPIO_OUT_MUX_GE0_MDC 33 975*4882a593Smuzhiyun 976*4882a593Smuzhiyun #define AR71XX_GPIO_COUNT 16 977*4882a593Smuzhiyun #define AR7240_GPIO_COUNT 18 978*4882a593Smuzhiyun #define AR7241_GPIO_COUNT 20 979*4882a593Smuzhiyun #define AR913X_GPIO_COUNT 22 980*4882a593Smuzhiyun #define AR933X_GPIO_COUNT 30 981*4882a593Smuzhiyun #define AR934X_GPIO_COUNT 23 982*4882a593Smuzhiyun #define QCA953X_GPIO_COUNT 18 983*4882a593Smuzhiyun #define QCA955X_GPIO_COUNT 24 984*4882a593Smuzhiyun #define QCA956X_GPIO_COUNT 23 985*4882a593Smuzhiyun 986*4882a593Smuzhiyun /* 987*4882a593Smuzhiyun * SRIF block 988*4882a593Smuzhiyun */ 989*4882a593Smuzhiyun #define AR934X_SRIF_CPU_DPLL1_REG 0x1c0 990*4882a593Smuzhiyun #define AR934X_SRIF_CPU_DPLL2_REG 0x1c4 991*4882a593Smuzhiyun #define AR934X_SRIF_CPU_DPLL3_REG 0x1c8 992*4882a593Smuzhiyun 993*4882a593Smuzhiyun #define AR934X_SRIF_DDR_DPLL1_REG 0x240 994*4882a593Smuzhiyun #define AR934X_SRIF_DDR_DPLL2_REG 0x244 995*4882a593Smuzhiyun #define AR934X_SRIF_DDR_DPLL3_REG 0x248 996*4882a593Smuzhiyun 997*4882a593Smuzhiyun #define AR934X_SRIF_DPLL1_REFDIV_SHIFT 27 998*4882a593Smuzhiyun #define AR934X_SRIF_DPLL1_REFDIV_MASK 0x1f 999*4882a593Smuzhiyun #define AR934X_SRIF_DPLL1_NINT_SHIFT 18 1000*4882a593Smuzhiyun #define AR934X_SRIF_DPLL1_NINT_MASK 0x1ff 1001*4882a593Smuzhiyun #define AR934X_SRIF_DPLL1_NFRAC_MASK 0x0003ffff 1002*4882a593Smuzhiyun 1003*4882a593Smuzhiyun #define AR934X_SRIF_DPLL2_LOCAL_PLL BIT(30) 1004*4882a593Smuzhiyun #define AR934X_SRIF_DPLL2_OUTDIV_SHIFT 13 1005*4882a593Smuzhiyun #define AR934X_SRIF_DPLL2_OUTDIV_MASK 0x7 1006*4882a593Smuzhiyun 1007*4882a593Smuzhiyun #define QCA953X_SRIF_CPU_DPLL1_REG 0x1c0 1008*4882a593Smuzhiyun #define QCA953X_SRIF_CPU_DPLL2_REG 0x1c4 1009*4882a593Smuzhiyun #define QCA953X_SRIF_CPU_DPLL3_REG 0x1c8 1010*4882a593Smuzhiyun 1011*4882a593Smuzhiyun #define QCA953X_SRIF_DDR_DPLL1_REG 0x240 1012*4882a593Smuzhiyun #define QCA953X_SRIF_DDR_DPLL2_REG 0x244 1013*4882a593Smuzhiyun #define QCA953X_SRIF_DDR_DPLL3_REG 0x248 1014*4882a593Smuzhiyun 1015*4882a593Smuzhiyun #define QCA953X_SRIF_DPLL1_REFDIV_SHIFT 27 1016*4882a593Smuzhiyun #define QCA953X_SRIF_DPLL1_REFDIV_MASK 0x1f 1017*4882a593Smuzhiyun #define QCA953X_SRIF_DPLL1_NINT_SHIFT 18 1018*4882a593Smuzhiyun #define QCA953X_SRIF_DPLL1_NINT_MASK 0x1ff 1019*4882a593Smuzhiyun #define QCA953X_SRIF_DPLL1_NFRAC_MASK 0x0003ffff 1020*4882a593Smuzhiyun 1021*4882a593Smuzhiyun #define QCA953X_SRIF_DPLL2_LOCAL_PLL BIT(30) 1022*4882a593Smuzhiyun #define QCA953X_SRIF_DPLL2_OUTDIV_SHIFT 13 1023*4882a593Smuzhiyun #define QCA953X_SRIF_DPLL2_OUTDIV_MASK 0x7 1024*4882a593Smuzhiyun 1025*4882a593Smuzhiyun #define AR71XX_GPIO_FUNC_STEREO_EN BIT(17) 1026*4882a593Smuzhiyun #define AR71XX_GPIO_FUNC_SLIC_EN BIT(16) 1027*4882a593Smuzhiyun #define AR71XX_GPIO_FUNC_SPI_CS2_EN BIT(13) 1028*4882a593Smuzhiyun #define AR71XX_GPIO_FUNC_SPI_CS1_EN BIT(12) 1029*4882a593Smuzhiyun #define AR71XX_GPIO_FUNC_UART_EN BIT(8) 1030*4882a593Smuzhiyun #define AR71XX_GPIO_FUNC_USB_OC_EN BIT(4) 1031*4882a593Smuzhiyun #define AR71XX_GPIO_FUNC_USB_CLK_EN BIT(0) 1032*4882a593Smuzhiyun 1033*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_GE0_MII_CLK_EN BIT(19) 1034*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_SPI_EN BIT(18) 1035*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_SPI_CS_EN2 BIT(14) 1036*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_SPI_CS_EN1 BIT(13) 1037*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_CLK_OBS5_EN BIT(12) 1038*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_CLK_OBS4_EN BIT(11) 1039*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_CLK_OBS3_EN BIT(10) 1040*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_CLK_OBS2_EN BIT(9) 1041*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_CLK_OBS1_EN BIT(8) 1042*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_ETH_SWITCH_LED4_EN BIT(7) 1043*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_ETH_SWITCH_LED3_EN BIT(6) 1044*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_ETH_SWITCH_LED2_EN BIT(5) 1045*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_ETH_SWITCH_LED1_EN BIT(4) 1046*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_ETH_SWITCH_LED0_EN BIT(3) 1047*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_UART_RTS_CTS_EN BIT(2) 1048*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_UART_EN BIT(1) 1049*4882a593Smuzhiyun #define AR724X_GPIO_FUNC_JTAG_DISABLE BIT(0) 1050*4882a593Smuzhiyun 1051*4882a593Smuzhiyun #define AR913X_GPIO_FUNC_WMAC_LED_EN BIT(22) 1052*4882a593Smuzhiyun #define AR913X_GPIO_FUNC_EXP_PORT_CS_EN BIT(21) 1053*4882a593Smuzhiyun #define AR913X_GPIO_FUNC_I2S_REFCLKEN BIT(20) 1054*4882a593Smuzhiyun #define AR913X_GPIO_FUNC_I2S_MCKEN BIT(19) 1055*4882a593Smuzhiyun #define AR913X_GPIO_FUNC_I2S1_EN BIT(18) 1056*4882a593Smuzhiyun #define AR913X_GPIO_FUNC_I2S0_EN BIT(17) 1057*4882a593Smuzhiyun #define AR913X_GPIO_FUNC_SLIC_EN BIT(16) 1058*4882a593Smuzhiyun #define AR913X_GPIO_FUNC_UART_RTSCTS_EN BIT(9) 1059*4882a593Smuzhiyun #define AR913X_GPIO_FUNC_UART_EN BIT(8) 1060*4882a593Smuzhiyun #define AR913X_GPIO_FUNC_USB_CLK_EN BIT(4) 1061*4882a593Smuzhiyun 1062*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_SPDIF2TCK BIT(31) 1063*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_SPDIF_EN BIT(30) 1064*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_I2SO_22_18_EN BIT(29) 1065*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_I2S_MCK_EN BIT(27) 1066*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_I2SO_EN BIT(26) 1067*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_ETH_SWITCH_LED_DUPL BIT(25) 1068*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_ETH_SWITCH_LED_COLL BIT(24) 1069*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_ETH_SWITCH_LED_ACT BIT(23) 1070*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_SPI_EN BIT(18) 1071*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_SPI_CS_EN2 BIT(14) 1072*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_SPI_CS_EN1 BIT(13) 1073*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_ETH_SWITCH_LED4_EN BIT(7) 1074*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_ETH_SWITCH_LED3_EN BIT(6) 1075*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_ETH_SWITCH_LED2_EN BIT(5) 1076*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_ETH_SWITCH_LED1_EN BIT(4) 1077*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_ETH_SWITCH_LED0_EN BIT(3) 1078*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_UART_RTS_CTS_EN BIT(2) 1079*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_UART_EN BIT(1) 1080*4882a593Smuzhiyun #define AR933X_GPIO_FUNC_JTAG_DISABLE BIT(0) 1081*4882a593Smuzhiyun 1082*4882a593Smuzhiyun #define AR934X_GPIO_FUNC_CLK_OBS7_EN BIT(9) 1083*4882a593Smuzhiyun #define AR934X_GPIO_FUNC_CLK_OBS6_EN BIT(8) 1084*4882a593Smuzhiyun #define AR934X_GPIO_FUNC_CLK_OBS5_EN BIT(7) 1085*4882a593Smuzhiyun #define AR934X_GPIO_FUNC_CLK_OBS4_EN BIT(6) 1086*4882a593Smuzhiyun #define AR934X_GPIO_FUNC_CLK_OBS3_EN BIT(5) 1087*4882a593Smuzhiyun #define AR934X_GPIO_FUNC_CLK_OBS2_EN BIT(4) 1088*4882a593Smuzhiyun #define AR934X_GPIO_FUNC_CLK_OBS1_EN BIT(3) 1089*4882a593Smuzhiyun #define AR934X_GPIO_FUNC_CLK_OBS0_EN BIT(2) 1090*4882a593Smuzhiyun #define AR934X_GPIO_FUNC_JTAG_DISABLE BIT(1) 1091*4882a593Smuzhiyun 1092*4882a593Smuzhiyun #define AR934X_GPIO_OUT_GPIO 0 1093*4882a593Smuzhiyun #define AR934X_GPIO_OUT_SPI_CS1 7 1094*4882a593Smuzhiyun #define AR934X_GPIO_OUT_LED_LINK0 41 1095*4882a593Smuzhiyun #define AR934X_GPIO_OUT_LED_LINK1 42 1096*4882a593Smuzhiyun #define AR934X_GPIO_OUT_LED_LINK2 43 1097*4882a593Smuzhiyun #define AR934X_GPIO_OUT_LED_LINK3 44 1098*4882a593Smuzhiyun #define AR934X_GPIO_OUT_LED_LINK4 45 1099*4882a593Smuzhiyun #define AR934X_GPIO_OUT_EXT_LNA0 46 1100*4882a593Smuzhiyun #define AR934X_GPIO_OUT_EXT_LNA1 47 1101*4882a593Smuzhiyun 1102*4882a593Smuzhiyun #define QCA955X_GPIO_FUNC_CLK_OBS7_EN BIT(9) 1103*4882a593Smuzhiyun #define QCA955X_GPIO_FUNC_CLK_OBS6_EN BIT(8) 1104*4882a593Smuzhiyun #define QCA955X_GPIO_FUNC_CLK_OBS5_EN BIT(7) 1105*4882a593Smuzhiyun #define QCA955X_GPIO_FUNC_CLK_OBS4_EN BIT(6) 1106*4882a593Smuzhiyun #define QCA955X_GPIO_FUNC_CLK_OBS3_EN BIT(5) 1107*4882a593Smuzhiyun #define QCA955X_GPIO_FUNC_CLK_OBS2_EN BIT(4) 1108*4882a593Smuzhiyun #define QCA955X_GPIO_FUNC_CLK_OBS1_EN BIT(3) 1109*4882a593Smuzhiyun #define QCA955X_GPIO_FUNC_JTAG_DISABLE BIT(1) 1110*4882a593Smuzhiyun 1111*4882a593Smuzhiyun #define QCA955X_GPIO_OUT_GPIO 0 1112*4882a593Smuzhiyun #define QCA955X_MII_EXT_MDI 1 1113*4882a593Smuzhiyun #define QCA955X_SLIC_DATA_OUT 3 1114*4882a593Smuzhiyun #define QCA955X_SLIC_PCM_FS 4 1115*4882a593Smuzhiyun #define QCA955X_SLIC_PCM_CLK 5 1116*4882a593Smuzhiyun #define QCA955X_SPI_CLK 8 1117*4882a593Smuzhiyun #define QCA955X_SPI_CS_0 9 1118*4882a593Smuzhiyun #define QCA955X_SPI_CS_1 10 1119*4882a593Smuzhiyun #define QCA955X_SPI_CS_2 11 1120*4882a593Smuzhiyun #define QCA955X_SPI_MISO 12 1121*4882a593Smuzhiyun #define QCA955X_I2S_CLK 13 1122*4882a593Smuzhiyun #define QCA955X_I2S_WS 14 1123*4882a593Smuzhiyun #define QCA955X_I2S_SD 15 1124*4882a593Smuzhiyun #define QCA955X_I2S_MCK 16 1125*4882a593Smuzhiyun #define QCA955X_SPDIF_OUT 17 1126*4882a593Smuzhiyun #define QCA955X_UART1_TD 18 1127*4882a593Smuzhiyun #define QCA955X_UART1_RTS 19 1128*4882a593Smuzhiyun #define QCA955X_UART1_RD 20 1129*4882a593Smuzhiyun #define QCA955X_UART1_CTS 21 1130*4882a593Smuzhiyun #define QCA955X_UART0_SOUT 22 1131*4882a593Smuzhiyun #define QCA955X_SPDIF2_OUT 23 1132*4882a593Smuzhiyun #define QCA955X_LED_SGMII_SPEED0 24 1133*4882a593Smuzhiyun #define QCA955X_LED_SGMII_SPEED1 25 1134*4882a593Smuzhiyun #define QCA955X_LED_SGMII_DUPLEX 26 1135*4882a593Smuzhiyun #define QCA955X_LED_SGMII_LINK_UP 27 1136*4882a593Smuzhiyun #define QCA955X_SGMII_SPEED0_INVERT 28 1137*4882a593Smuzhiyun #define QCA955X_SGMII_SPEED1_INVERT 29 1138*4882a593Smuzhiyun #define QCA955X_SGMII_DUPLEX_INVERT 30 1139*4882a593Smuzhiyun #define QCA955X_SGMII_LINK_UP_INVERT 31 1140*4882a593Smuzhiyun #define QCA955X_GE1_MII_MDO 32 1141*4882a593Smuzhiyun #define QCA955X_GE1_MII_MDC 33 1142*4882a593Smuzhiyun #define QCA955X_SWCOM2 38 1143*4882a593Smuzhiyun #define QCA955X_SWCOM3 39 1144*4882a593Smuzhiyun #define QCA955X_MAC2_GPIO 40 1145*4882a593Smuzhiyun #define QCA955X_MAC3_GPIO 41 1146*4882a593Smuzhiyun #define QCA955X_ATT_LED 42 1147*4882a593Smuzhiyun #define QCA955X_PWR_LED 43 1148*4882a593Smuzhiyun #define QCA955X_TX_FRAME 44 1149*4882a593Smuzhiyun #define QCA955X_RX_CLEAR_EXTERNAL 45 1150*4882a593Smuzhiyun #define QCA955X_LED_NETWORK_EN 46 1151*4882a593Smuzhiyun #define QCA955X_LED_POWER_EN 47 1152*4882a593Smuzhiyun #define QCA955X_WMAC_GLUE_WOW 68 1153*4882a593Smuzhiyun #define QCA955X_RX_CLEAR_EXTENSION 70 1154*4882a593Smuzhiyun #define QCA955X_CP_NAND_CS1 73 1155*4882a593Smuzhiyun #define QCA955X_USB_SUSPEND 74 1156*4882a593Smuzhiyun #define QCA955X_ETH_TX_ERR 75 1157*4882a593Smuzhiyun #define QCA955X_DDR_DQ_OE 76 1158*4882a593Smuzhiyun #define QCA955X_CLKREQ_N_EP 77 1159*4882a593Smuzhiyun #define QCA955X_CLKREQ_N_RC 78 1160*4882a593Smuzhiyun #define QCA955X_CLK_OBS0 79 1161*4882a593Smuzhiyun #define QCA955X_CLK_OBS1 80 1162*4882a593Smuzhiyun #define QCA955X_CLK_OBS2 81 1163*4882a593Smuzhiyun #define QCA955X_CLK_OBS3 82 1164*4882a593Smuzhiyun #define QCA955X_CLK_OBS4 83 1165*4882a593Smuzhiyun #define QCA955X_CLK_OBS5 84 1166*4882a593Smuzhiyun 1167*4882a593Smuzhiyun /* 1168*4882a593Smuzhiyun * MII_CTRL block 1169*4882a593Smuzhiyun */ 1170*4882a593Smuzhiyun #define AR71XX_MII_REG_MII0_CTRL 0x00 1171*4882a593Smuzhiyun #define AR71XX_MII_REG_MII1_CTRL 0x04 1172*4882a593Smuzhiyun 1173*4882a593Smuzhiyun #define AR71XX_MII_CTRL_IF_MASK 3 1174*4882a593Smuzhiyun #define AR71XX_MII_CTRL_SPEED_SHIFT 4 1175*4882a593Smuzhiyun #define AR71XX_MII_CTRL_SPEED_MASK 3 1176*4882a593Smuzhiyun #define AR71XX_MII_CTRL_SPEED_10 0 1177*4882a593Smuzhiyun #define AR71XX_MII_CTRL_SPEED_100 1 1178*4882a593Smuzhiyun #define AR71XX_MII_CTRL_SPEED_1000 2 1179*4882a593Smuzhiyun 1180*4882a593Smuzhiyun #define AR71XX_MII0_CTRL_IF_GMII 0 1181*4882a593Smuzhiyun #define AR71XX_MII0_CTRL_IF_MII 1 1182*4882a593Smuzhiyun #define AR71XX_MII0_CTRL_IF_RGMII 2 1183*4882a593Smuzhiyun #define AR71XX_MII0_CTRL_IF_RMII 3 1184*4882a593Smuzhiyun 1185*4882a593Smuzhiyun #define AR71XX_MII1_CTRL_IF_RGMII 0 1186*4882a593Smuzhiyun #define AR71XX_MII1_CTRL_IF_RMII 1 1187*4882a593Smuzhiyun 1188*4882a593Smuzhiyun /* 1189*4882a593Smuzhiyun * AR933X GMAC interface 1190*4882a593Smuzhiyun */ 1191*4882a593Smuzhiyun #define AR933X_GMAC_REG_ETH_CFG 0x00 1192*4882a593Smuzhiyun 1193*4882a593Smuzhiyun #define AR933X_ETH_CFG_RGMII_GE0 BIT(0) 1194*4882a593Smuzhiyun #define AR933X_ETH_CFG_MII_GE0 BIT(1) 1195*4882a593Smuzhiyun #define AR933X_ETH_CFG_GMII_GE0 BIT(2) 1196*4882a593Smuzhiyun #define AR933X_ETH_CFG_MII_GE0_MASTER BIT(3) 1197*4882a593Smuzhiyun #define AR933X_ETH_CFG_MII_GE0_SLAVE BIT(4) 1198*4882a593Smuzhiyun #define AR933X_ETH_CFG_MII_GE0_ERR_EN BIT(5) 1199*4882a593Smuzhiyun #define AR933X_ETH_CFG_SW_PHY_SWAP BIT(7) 1200*4882a593Smuzhiyun #define AR933X_ETH_CFG_SW_PHY_ADDR_SWAP BIT(8) 1201*4882a593Smuzhiyun #define AR933X_ETH_CFG_RMII_GE0 BIT(9) 1202*4882a593Smuzhiyun #define AR933X_ETH_CFG_RMII_GE0_SPD_10 0 1203*4882a593Smuzhiyun #define AR933X_ETH_CFG_RMII_GE0_SPD_100 BIT(10) 1204*4882a593Smuzhiyun 1205*4882a593Smuzhiyun /* 1206*4882a593Smuzhiyun * AR934X GMAC Interface 1207*4882a593Smuzhiyun */ 1208*4882a593Smuzhiyun #define AR934X_GMAC_REG_ETH_CFG 0x00 1209*4882a593Smuzhiyun 1210*4882a593Smuzhiyun #define AR934X_ETH_CFG_RGMII_GMAC0 BIT(0) 1211*4882a593Smuzhiyun #define AR934X_ETH_CFG_MII_GMAC0 BIT(1) 1212*4882a593Smuzhiyun #define AR934X_ETH_CFG_GMII_GMAC0 BIT(2) 1213*4882a593Smuzhiyun #define AR934X_ETH_CFG_MII_GMAC0_MASTER BIT(3) 1214*4882a593Smuzhiyun #define AR934X_ETH_CFG_MII_GMAC0_SLAVE BIT(4) 1215*4882a593Smuzhiyun #define AR934X_ETH_CFG_MII_GMAC0_ERR_EN BIT(5) 1216*4882a593Smuzhiyun #define AR934X_ETH_CFG_SW_ONLY_MODE BIT(6) 1217*4882a593Smuzhiyun #define AR934X_ETH_CFG_SW_PHY_SWAP BIT(7) 1218*4882a593Smuzhiyun #define AR934X_ETH_CFG_SW_APB_ACCESS BIT(9) 1219*4882a593Smuzhiyun #define AR934X_ETH_CFG_RMII_GMAC0 BIT(10) 1220*4882a593Smuzhiyun #define AR933X_ETH_CFG_MII_CNTL_SPEED BIT(11) 1221*4882a593Smuzhiyun #define AR934X_ETH_CFG_RMII_GMAC0_MASTER BIT(12) 1222*4882a593Smuzhiyun #define AR933X_ETH_CFG_SW_ACC_MSB_FIRST BIT(13) 1223*4882a593Smuzhiyun #define AR934X_ETH_CFG_RXD_DELAY BIT(14) 1224*4882a593Smuzhiyun #define AR934X_ETH_CFG_RXD_DELAY_MASK 0x3 1225*4882a593Smuzhiyun #define AR934X_ETH_CFG_RXD_DELAY_SHIFT 14 1226*4882a593Smuzhiyun #define AR934X_ETH_CFG_RDV_DELAY BIT(16) 1227*4882a593Smuzhiyun #define AR934X_ETH_CFG_RDV_DELAY_MASK 0x3 1228*4882a593Smuzhiyun #define AR934X_ETH_CFG_RDV_DELAY_SHIFT 16 1229*4882a593Smuzhiyun 1230*4882a593Smuzhiyun /* 1231*4882a593Smuzhiyun * QCA953X GMAC Interface 1232*4882a593Smuzhiyun */ 1233*4882a593Smuzhiyun #define QCA953X_GMAC_REG_ETH_CFG 0x00 1234*4882a593Smuzhiyun 1235*4882a593Smuzhiyun #define QCA953X_ETH_CFG_SW_ONLY_MODE BIT(6) 1236*4882a593Smuzhiyun #define QCA953X_ETH_CFG_SW_PHY_SWAP BIT(7) 1237*4882a593Smuzhiyun #define QCA953X_ETH_CFG_SW_APB_ACCESS BIT(9) 1238*4882a593Smuzhiyun #define QCA953X_ETH_CFG_SW_ACC_MSB_FIRST BIT(13) 1239*4882a593Smuzhiyun 1240*4882a593Smuzhiyun /* 1241*4882a593Smuzhiyun * QCA955X GMAC Interface 1242*4882a593Smuzhiyun */ 1243*4882a593Smuzhiyun 1244*4882a593Smuzhiyun #define QCA955X_GMAC_REG_ETH_CFG 0x00 1245*4882a593Smuzhiyun #define QCA955X_GMAC_REG_SGMII_SERDES 0x18 1246*4882a593Smuzhiyun 1247*4882a593Smuzhiyun #define QCA955X_ETH_CFG_RGMII_EN BIT(0) 1248*4882a593Smuzhiyun #define QCA955X_ETH_CFG_MII_GE0 BIT(1) 1249*4882a593Smuzhiyun #define QCA955X_ETH_CFG_GMII_GE0 BIT(2) 1250*4882a593Smuzhiyun #define QCA955X_ETH_CFG_MII_GE0_MASTER BIT(3) 1251*4882a593Smuzhiyun #define QCA955X_ETH_CFG_MII_GE0_SLAVE BIT(4) 1252*4882a593Smuzhiyun #define QCA955X_ETH_CFG_GE0_ERR_EN BIT(5) 1253*4882a593Smuzhiyun #define QCA955X_ETH_CFG_GE0_SGMII BIT(6) 1254*4882a593Smuzhiyun #define QCA955X_ETH_CFG_RMII_GE0 BIT(10) 1255*4882a593Smuzhiyun #define QCA955X_ETH_CFG_MII_CNTL_SPEED BIT(11) 1256*4882a593Smuzhiyun #define QCA955X_ETH_CFG_RMII_GE0_MASTER BIT(12) 1257*4882a593Smuzhiyun #define QCA955X_ETH_CFG_RXD_DELAY_MASK 0x3 1258*4882a593Smuzhiyun #define QCA955X_ETH_CFG_RXD_DELAY_SHIFT 14 1259*4882a593Smuzhiyun #define QCA955X_ETH_CFG_RDV_DELAY BIT(16) 1260*4882a593Smuzhiyun #define QCA955X_ETH_CFG_RDV_DELAY_MASK 0x3 1261*4882a593Smuzhiyun #define QCA955X_ETH_CFG_RDV_DELAY_SHIFT 16 1262*4882a593Smuzhiyun #define QCA955X_ETH_CFG_TXD_DELAY_MASK 0x3 1263*4882a593Smuzhiyun #define QCA955X_ETH_CFG_TXD_DELAY_SHIFT 18 1264*4882a593Smuzhiyun #define QCA955X_ETH_CFG_TXE_DELAY_MASK 0x3 1265*4882a593Smuzhiyun #define QCA955X_ETH_CFG_TXE_DELAY_SHIFT 20 1266*4882a593Smuzhiyun 1267*4882a593Smuzhiyun #define QCA955X_SGMII_SERDES_LOCK_DETECT_STATUS BIT(15) 1268*4882a593Smuzhiyun #define QCA955X_SGMII_SERDES_RES_CALIBRATION_SHIFT 23 1269*4882a593Smuzhiyun #define QCA955X_SGMII_SERDES_RES_CALIBRATION_MASK 0xf 1270*4882a593Smuzhiyun /* 1271*4882a593Smuzhiyun * QCA956X GMAC Interface 1272*4882a593Smuzhiyun */ 1273*4882a593Smuzhiyun 1274*4882a593Smuzhiyun #define QCA956X_GMAC_REG_ETH_CFG 0x00 1275*4882a593Smuzhiyun #define QCA956X_GMAC_REG_SGMII_RESET 0x14 1276*4882a593Smuzhiyun #define QCA956X_GMAC_REG_SGMII_SERDES 0x18 1277*4882a593Smuzhiyun #define QCA956X_GMAC_REG_MR_AN_CONTROL 0x1c 1278*4882a593Smuzhiyun #define QCA956X_GMAC_REG_SGMII_CONFIG 0x34 1279*4882a593Smuzhiyun #define QCA956X_GMAC_REG_SGMII_DEBUG 0x58 1280*4882a593Smuzhiyun 1281*4882a593Smuzhiyun #define QCA956X_ETH_CFG_RGMII_EN BIT(0) 1282*4882a593Smuzhiyun #define QCA956X_ETH_CFG_GE0_SGMII BIT(6) 1283*4882a593Smuzhiyun #define QCA956X_ETH_CFG_SW_ONLY_MODE BIT(7) 1284*4882a593Smuzhiyun #define QCA956X_ETH_CFG_SW_PHY_SWAP BIT(8) 1285*4882a593Smuzhiyun #define QCA956X_ETH_CFG_SW_PHY_ADDR_SWAP BIT(9) 1286*4882a593Smuzhiyun #define QCA956X_ETH_CFG_SW_APB_ACCESS BIT(10) 1287*4882a593Smuzhiyun #define QCA956X_ETH_CFG_SW_ACC_MSB_FIRST BIT(13) 1288*4882a593Smuzhiyun #define QCA956X_ETH_CFG_RXD_DELAY_MASK 0x3 1289*4882a593Smuzhiyun #define QCA956X_ETH_CFG_RXD_DELAY_SHIFT 14 1290*4882a593Smuzhiyun #define QCA956X_ETH_CFG_RDV_DELAY_MASK 0x3 1291*4882a593Smuzhiyun #define QCA956X_ETH_CFG_RDV_DELAY_SHIFT 16 1292*4882a593Smuzhiyun 1293*4882a593Smuzhiyun #define QCA956X_SGMII_RESET_RX_CLK_N_RESET 0x0 1294*4882a593Smuzhiyun #define QCA956X_SGMII_RESET_RX_CLK_N BIT(0) 1295*4882a593Smuzhiyun #define QCA956X_SGMII_RESET_TX_CLK_N BIT(1) 1296*4882a593Smuzhiyun #define QCA956X_SGMII_RESET_RX_125M_N BIT(2) 1297*4882a593Smuzhiyun #define QCA956X_SGMII_RESET_TX_125M_N BIT(3) 1298*4882a593Smuzhiyun #define QCA956X_SGMII_RESET_HW_RX_125M_N BIT(4) 1299*4882a593Smuzhiyun 1300*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_CDR_BW_MASK 0x3 1301*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_CDR_BW_SHIFT 1 1302*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_TX_DR_CTRL_MASK 0x7 1303*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_TX_DR_CTRL_SHIFT 4 1304*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_PLL_BW BIT(8) 1305*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_VCO_FAST BIT(9) 1306*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_VCO_SLOW BIT(10) 1307*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_LOCK_DETECT_STATUS BIT(15) 1308*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_EN_SIGNAL_DETECT BIT(16) 1309*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_FIBER_SDO BIT(17) 1310*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_RES_CALIBRATION_SHIFT 23 1311*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_RES_CALIBRATION_MASK 0xf 1312*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_VCO_REG_SHIFT 27 1313*4882a593Smuzhiyun #define QCA956X_SGMII_SERDES_VCO_REG_MASK 0xf 1314*4882a593Smuzhiyun 1315*4882a593Smuzhiyun #define QCA956X_MR_AN_CONTROL_AN_ENABLE BIT(12) 1316*4882a593Smuzhiyun #define QCA956X_MR_AN_CONTROL_PHY_RESET BIT(15) 1317*4882a593Smuzhiyun 1318*4882a593Smuzhiyun #define QCA956X_SGMII_CONFIG_MODE_CTRL_SHIFT 0 1319*4882a593Smuzhiyun #define QCA956X_SGMII_CONFIG_MODE_CTRL_MASK 0x7 1320*4882a593Smuzhiyun 1321*4882a593Smuzhiyun #endif /* __ASM_MACH_AR71XX_REGS_H */ 1322