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