1*4882a593Smuzhiyun /* 2*4882a593Smuzhiyun * Copyright (c) 2017 Paweł Jarosz <paweljarosz3691@gmail.com> 3*4882a593Smuzhiyun * 4*4882a593Smuzhiyun * SPDX-License-Identifier: GPL-2.0 5*4882a593Smuzhiyun */ 6*4882a593Smuzhiyun 7*4882a593Smuzhiyun #ifndef _ASM_ARCH_GRF_RK3066_H 8*4882a593Smuzhiyun #define _ASM_ARCH_GRF_RK3066_H 9*4882a593Smuzhiyun 10*4882a593Smuzhiyun struct rk3066_grf_gpio_lh { 11*4882a593Smuzhiyun u32 l; 12*4882a593Smuzhiyun u32 h; 13*4882a593Smuzhiyun }; 14*4882a593Smuzhiyun 15*4882a593Smuzhiyun struct rk3066_grf { 16*4882a593Smuzhiyun struct rk3066_grf_gpio_lh gpio_dir[7]; 17*4882a593Smuzhiyun struct rk3066_grf_gpio_lh gpio_do[7]; 18*4882a593Smuzhiyun struct rk3066_grf_gpio_lh gpio_en[7]; 19*4882a593Smuzhiyun 20*4882a593Smuzhiyun u32 gpio0a_iomux; 21*4882a593Smuzhiyun u32 gpio0b_iomux; 22*4882a593Smuzhiyun u32 gpio0c_iomux; 23*4882a593Smuzhiyun u32 gpio0d_iomux; 24*4882a593Smuzhiyun 25*4882a593Smuzhiyun u32 gpio1a_iomux; 26*4882a593Smuzhiyun u32 gpio1b_iomux; 27*4882a593Smuzhiyun u32 gpio1c_iomux; 28*4882a593Smuzhiyun u32 gpio1d_iomux; 29*4882a593Smuzhiyun 30*4882a593Smuzhiyun u32 gpio2a_iomux; 31*4882a593Smuzhiyun u32 gpio2b_iomux; 32*4882a593Smuzhiyun u32 gpio2c_iomux; 33*4882a593Smuzhiyun u32 gpio2d_iomux; 34*4882a593Smuzhiyun 35*4882a593Smuzhiyun u32 gpio3a_iomux; 36*4882a593Smuzhiyun u32 gpio3b_iomux; 37*4882a593Smuzhiyun u32 gpio3c_iomux; 38*4882a593Smuzhiyun u32 gpio3d_iomux; 39*4882a593Smuzhiyun 40*4882a593Smuzhiyun u32 gpio4a_iomux; 41*4882a593Smuzhiyun u32 gpio4b_iomux; 42*4882a593Smuzhiyun u32 gpio4c_iomux; 43*4882a593Smuzhiyun u32 gpio4d_iomux; 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun u32 reserved0[5]; 46*4882a593Smuzhiyun 47*4882a593Smuzhiyun u32 gpio6b_iomux; 48*4882a593Smuzhiyun 49*4882a593Smuzhiyun u32 reserved1[2]; 50*4882a593Smuzhiyun 51*4882a593Smuzhiyun struct rk3066_grf_gpio_lh gpio_pull[7]; 52*4882a593Smuzhiyun 53*4882a593Smuzhiyun u32 soc_con0; 54*4882a593Smuzhiyun u32 soc_con1; 55*4882a593Smuzhiyun u32 soc_con2; 56*4882a593Smuzhiyun 57*4882a593Smuzhiyun u32 soc_status0; 58*4882a593Smuzhiyun 59*4882a593Smuzhiyun u32 dmac1_con[3]; 60*4882a593Smuzhiyun u32 dmac2_con[4]; 61*4882a593Smuzhiyun 62*4882a593Smuzhiyun u32 uoc0_con[3]; 63*4882a593Smuzhiyun u32 uoc1_con[4]; 64*4882a593Smuzhiyun u32 ddrc_con; 65*4882a593Smuzhiyun u32 ddrc_stat; 66*4882a593Smuzhiyun 67*4882a593Smuzhiyun u32 reserved2[10]; 68*4882a593Smuzhiyun 69*4882a593Smuzhiyun u32 os_reg[4]; 70*4882a593Smuzhiyun }; 71*4882a593Smuzhiyun check_member(rk3066_grf, os_reg[3], 0x01d4); 72*4882a593Smuzhiyun 73*4882a593Smuzhiyun /* GRF_GPIO0A_IOMUX */ 74*4882a593Smuzhiyun enum { 75*4882a593Smuzhiyun GPIO0A6_SHIFT = 12, 76*4882a593Smuzhiyun GPIO0A6_MASK = 1 << GPIO0A6_SHIFT, 77*4882a593Smuzhiyun GPIO0A6_GPIO = 0, 78*4882a593Smuzhiyun GPIO0A6_HOST_DRV_VBUS, 79*4882a593Smuzhiyun 80*4882a593Smuzhiyun GPIO0A5_SHIFT = 10, 81*4882a593Smuzhiyun GPIO0A5_MASK = 1 << GPIO0A5_SHIFT, 82*4882a593Smuzhiyun GPIO0A5_GPIO = 0, 83*4882a593Smuzhiyun GPIO0A5_OTG_DRV_VBUS, 84*4882a593Smuzhiyun 85*4882a593Smuzhiyun GPIO0A4_SHIFT = 8, 86*4882a593Smuzhiyun GPIO0A4_MASK = 1 << GPIO0A4_SHIFT, 87*4882a593Smuzhiyun GPIO0A4_GPIO = 0, 88*4882a593Smuzhiyun GPIO0A4_PWM1, 89*4882a593Smuzhiyun 90*4882a593Smuzhiyun GPIO0A3_SHIFT = 6, 91*4882a593Smuzhiyun GPIO0A3_MASK = 1 << GPIO0A3_SHIFT, 92*4882a593Smuzhiyun GPIO0A3_GPIO = 0, 93*4882a593Smuzhiyun GPIO0A3_PWM0 94*4882a593Smuzhiyun }; 95*4882a593Smuzhiyun 96*4882a593Smuzhiyun /* GRF_GPIO0D_IOMUX */ 97*4882a593Smuzhiyun enum { 98*4882a593Smuzhiyun GPIO0D7_SHIFT = 14, 99*4882a593Smuzhiyun GPIO0D7_MASK = 1 << GPIO0D7_SHIFT, 100*4882a593Smuzhiyun GPIO0D7_GPIO = 0, 101*4882a593Smuzhiyun GPIO0D7_PWM3, 102*4882a593Smuzhiyun 103*4882a593Smuzhiyun GPIO0D6_SHIFT = 12, 104*4882a593Smuzhiyun GPIO0D6_MASK = 1 << GPIO0D6_SHIFT, 105*4882a593Smuzhiyun GPIO0D6_GPIO = 0, 106*4882a593Smuzhiyun GPIO0D6_PWM2 107*4882a593Smuzhiyun }; 108*4882a593Smuzhiyun 109*4882a593Smuzhiyun /* GRF_GPIO1A_IOMUX */ 110*4882a593Smuzhiyun enum { 111*4882a593Smuzhiyun GPIO1A7_SHIFT = 14, 112*4882a593Smuzhiyun GPIO1A7_MASK = 3 << GPIO1A7_SHIFT, 113*4882a593Smuzhiyun GPIO1A7_GPIO = 0, 114*4882a593Smuzhiyun GPIO1A7_UART1_RTS_N, 115*4882a593Smuzhiyun GPIO1A7_SPI0_TXD, 116*4882a593Smuzhiyun 117*4882a593Smuzhiyun GPIO1A6_SHIFT = 12, 118*4882a593Smuzhiyun GPIO1A6_MASK = 3 << GPIO1A6_SHIFT, 119*4882a593Smuzhiyun GPIO1A6_GPIO = 0, 120*4882a593Smuzhiyun GPIO1A6_UART1_CTS_N, 121*4882a593Smuzhiyun GPIO1A6_SPI0_RXD, 122*4882a593Smuzhiyun 123*4882a593Smuzhiyun GPIO1A5_SHIFT = 10, 124*4882a593Smuzhiyun GPIO1A5_MASK = 3 << GPIO1A5_SHIFT, 125*4882a593Smuzhiyun GPIO1A5_GPIO = 0, 126*4882a593Smuzhiyun GPIO1A5_UART1_SOUT, 127*4882a593Smuzhiyun GPIO1A5_SPI0_CLK, 128*4882a593Smuzhiyun 129*4882a593Smuzhiyun GPIO1A4_SHIFT = 8, 130*4882a593Smuzhiyun GPIO1A4_MASK = 3 << GPIO1A4_SHIFT, 131*4882a593Smuzhiyun GPIO1A4_GPIO = 0, 132*4882a593Smuzhiyun GPIO1A4_UART1_SIN, 133*4882a593Smuzhiyun GPIO1A4_SPI0_CSN0, 134*4882a593Smuzhiyun 135*4882a593Smuzhiyun GPIO1A3_SHIFT = 6, 136*4882a593Smuzhiyun GPIO1A3_MASK = 1 << GPIO1A3_SHIFT, 137*4882a593Smuzhiyun GPIO1A3_GPIO = 0, 138*4882a593Smuzhiyun GPIO1A3_UART0_RTS_N, 139*4882a593Smuzhiyun 140*4882a593Smuzhiyun GPIO1A2_SHIFT = 4, 141*4882a593Smuzhiyun GPIO1A2_MASK = 1 << GPIO1A2_SHIFT, 142*4882a593Smuzhiyun GPIO1A2_GPIO = 0, 143*4882a593Smuzhiyun GPIO1A2_UART0_CTS_N, 144*4882a593Smuzhiyun 145*4882a593Smuzhiyun GPIO1A1_SHIFT = 2, 146*4882a593Smuzhiyun GPIO1A1_MASK = 1 << GPIO1A1_SHIFT, 147*4882a593Smuzhiyun GPIO1A1_GPIO = 0, 148*4882a593Smuzhiyun GPIO1A1_UART0_SOUT, 149*4882a593Smuzhiyun 150*4882a593Smuzhiyun GPIO1A0_SHIFT = 0, 151*4882a593Smuzhiyun GPIO1A0_MASK = 1 << GPIO1A0_SHIFT, 152*4882a593Smuzhiyun GPIO1A0_GPIO = 0, 153*4882a593Smuzhiyun GPIO1A0_UART0_SIN 154*4882a593Smuzhiyun }; 155*4882a593Smuzhiyun 156*4882a593Smuzhiyun /* GRF_GPIO1B_IOMUX */ 157*4882a593Smuzhiyun enum { 158*4882a593Smuzhiyun GPIO1B1_SHIFT = 2, 159*4882a593Smuzhiyun GPIO1B1_MASK = 1 << GPIO1B1_SHIFT, 160*4882a593Smuzhiyun GPIO1B1_GPIO = 0, 161*4882a593Smuzhiyun GPIO1B1_UART2_SOUT, 162*4882a593Smuzhiyun 163*4882a593Smuzhiyun GPIO1B0_SHIFT = 0, 164*4882a593Smuzhiyun GPIO1B0_MASK = 1 << GPIO1B0_SHIFT, 165*4882a593Smuzhiyun GPIO1B0_GPIO = 0, 166*4882a593Smuzhiyun GPIO1B0_UART2_SIN 167*4882a593Smuzhiyun }; 168*4882a593Smuzhiyun 169*4882a593Smuzhiyun /* GRF_GPIO2C_IOMUX */ 170*4882a593Smuzhiyun enum { 171*4882a593Smuzhiyun GPIO2C7_SHIFT = 14, 172*4882a593Smuzhiyun GPIO2C7_MASK = 3 << GPIO2C7_SHIFT, 173*4882a593Smuzhiyun GPIO2C7_GPIO = 0, 174*4882a593Smuzhiyun GPIO2C7_LCDC1_DATA23, 175*4882a593Smuzhiyun GPIO2C7_SPI1_CSN1, 176*4882a593Smuzhiyun GPIO2C7_HSADC_DATA4, 177*4882a593Smuzhiyun 178*4882a593Smuzhiyun GPIO2C6_SHIFT = 12, 179*4882a593Smuzhiyun GPIO2C6_MASK = 3 << GPIO2C6_SHIFT, 180*4882a593Smuzhiyun GPIO2C6_GPIO = 0, 181*4882a593Smuzhiyun GPIO2C6_LCDC1_DATA22, 182*4882a593Smuzhiyun GPIO2C6_SPI1_RXD, 183*4882a593Smuzhiyun GPIO2C6_HSADC_DATA3, 184*4882a593Smuzhiyun 185*4882a593Smuzhiyun GPIO2C5_SHIFT = 10, 186*4882a593Smuzhiyun GPIO2C5_MASK = 3 << GPIO2C5_SHIFT, 187*4882a593Smuzhiyun GPIO2C5_GPIO = 0, 188*4882a593Smuzhiyun GPIO2C5_LCDC1_DATA21, 189*4882a593Smuzhiyun GPIO2C5_SPI1_TXD, 190*4882a593Smuzhiyun GPIO2C5_HSADC_DATA2, 191*4882a593Smuzhiyun 192*4882a593Smuzhiyun GPIO2C4_SHIFT = 8, 193*4882a593Smuzhiyun GPIO2C4_MASK = 3 << GPIO2C4_SHIFT, 194*4882a593Smuzhiyun GPIO2C4_GPIO = 0, 195*4882a593Smuzhiyun GPIO2C4_LCDC1_DATA20, 196*4882a593Smuzhiyun GPIO2C4_SPI1_CSN0, 197*4882a593Smuzhiyun GPIO2C4_HSADC_DATA1, 198*4882a593Smuzhiyun 199*4882a593Smuzhiyun GPIO2C3_SHIFT = 6, 200*4882a593Smuzhiyun GPIO2C3_MASK = 3 << GPIO2C3_SHIFT, 201*4882a593Smuzhiyun GPIO2C3_GPIO = 0, 202*4882a593Smuzhiyun GPIO2C3_LCDC1_DATA19, 203*4882a593Smuzhiyun GPIO2C3_SPI1_CLK, 204*4882a593Smuzhiyun GPIO2C3_HSADC_DATA0 205*4882a593Smuzhiyun }; 206*4882a593Smuzhiyun 207*4882a593Smuzhiyun /* GRF_GPIO2D_IOMUX */ 208*4882a593Smuzhiyun enum { 209*4882a593Smuzhiyun GPIO2D7_SHIFT = 14, 210*4882a593Smuzhiyun GPIO2D7_MASK = 1 << GPIO2D7_SHIFT, 211*4882a593Smuzhiyun GPIO2D7_GPIO = 0, 212*4882a593Smuzhiyun GPIO2D7_I2C1_SCL, 213*4882a593Smuzhiyun 214*4882a593Smuzhiyun GPIO2D6_SHIFT = 12, 215*4882a593Smuzhiyun GPIO2D6_MASK = 1 << GPIO2D6_SHIFT, 216*4882a593Smuzhiyun GPIO2D6_GPIO = 0, 217*4882a593Smuzhiyun GPIO2D6_I2C1_SDA, 218*4882a593Smuzhiyun 219*4882a593Smuzhiyun GPIO2D5_SHIFT = 10, 220*4882a593Smuzhiyun GPIO2D5_MASK = 1 << GPIO2D5_SHIFT, 221*4882a593Smuzhiyun GPIO2D5_GPIO = 0, 222*4882a593Smuzhiyun GPIO2D5_I2C0_SCL, 223*4882a593Smuzhiyun 224*4882a593Smuzhiyun GPIO2D4_SHIFT = 8, 225*4882a593Smuzhiyun GPIO2D4_MASK = 1 << GPIO2D4_SHIFT, 226*4882a593Smuzhiyun GPIO2D4_GPIO = 0, 227*4882a593Smuzhiyun GPIO2D4_I2C0_SDA 228*4882a593Smuzhiyun 229*4882a593Smuzhiyun }; 230*4882a593Smuzhiyun 231*4882a593Smuzhiyun /* GRF_GPIO3A_IOMUX */ 232*4882a593Smuzhiyun enum { 233*4882a593Smuzhiyun GPIO3A7_SHIFT = 14, 234*4882a593Smuzhiyun GPIO3A7_MASK = 1 << GPIO3A7_SHIFT, 235*4882a593Smuzhiyun GPIO3A7_GPIO = 0, 236*4882a593Smuzhiyun GPIO3A7_SDMMC0_WRITE_PRT, 237*4882a593Smuzhiyun 238*4882a593Smuzhiyun GPIO3A6_SHIFT = 12, 239*4882a593Smuzhiyun GPIO3A6_MASK = 1 << GPIO3A6_SHIFT, 240*4882a593Smuzhiyun GPIO3A6_GPIO = 0, 241*4882a593Smuzhiyun GPIO3A6_SDMMC0_RSTN_OUT, 242*4882a593Smuzhiyun 243*4882a593Smuzhiyun GPIO3A5_SHIFT = 10, 244*4882a593Smuzhiyun GPIO3A5_MASK = 1 << GPIO3A5_SHIFT, 245*4882a593Smuzhiyun GPIO3A5_GPIO = 0, 246*4882a593Smuzhiyun GPIO3A5_I2C4_SCL, 247*4882a593Smuzhiyun 248*4882a593Smuzhiyun GPIO3A4_SHIFT = 8, 249*4882a593Smuzhiyun GPIO3A4_MASK = 1 << GPIO3A4_SHIFT, 250*4882a593Smuzhiyun GPIO3A4_GPIO = 0, 251*4882a593Smuzhiyun GPIO3A4_I2C4_SDA, 252*4882a593Smuzhiyun 253*4882a593Smuzhiyun GPIO3A3_SHIFT = 6, 254*4882a593Smuzhiyun GPIO3A3_MASK = 1 << GPIO3A3_SHIFT, 255*4882a593Smuzhiyun GPIO3A3_GPIO = 0, 256*4882a593Smuzhiyun GPIO3A3_I2C3_SCL, 257*4882a593Smuzhiyun 258*4882a593Smuzhiyun GPIO3A2_SHIFT = 4, 259*4882a593Smuzhiyun GPIO3A2_MASK = 1 << GPIO3A2_SHIFT, 260*4882a593Smuzhiyun GPIO3A2_GPIO = 0, 261*4882a593Smuzhiyun GPIO3A2_I2C3_SDA, 262*4882a593Smuzhiyun 263*4882a593Smuzhiyun GPIO3A1_SHIFT = 2, 264*4882a593Smuzhiyun GPIO3A1_MASK = 1 << GPIO3A1_SHIFT, 265*4882a593Smuzhiyun GPIO3A1_GPIO = 0, 266*4882a593Smuzhiyun GPIO3A1_I2C2_SCL, 267*4882a593Smuzhiyun 268*4882a593Smuzhiyun GPIO3A0_SHIFT = 0, 269*4882a593Smuzhiyun GPIO3A0_MASK = 1 << GPIO3A0_SHIFT, 270*4882a593Smuzhiyun GPIO3A0_GPIO = 0, 271*4882a593Smuzhiyun GPIO3A0_I2C2_SDA, 272*4882a593Smuzhiyun }; 273*4882a593Smuzhiyun 274*4882a593Smuzhiyun /* GRF_GPIO3B_IOMUX */ 275*4882a593Smuzhiyun enum { 276*4882a593Smuzhiyun GPIO3B7_SHIFT = 14, 277*4882a593Smuzhiyun GPIO3B7_MASK = 1 << GPIO3B7_SHIFT, 278*4882a593Smuzhiyun GPIO3B7_GPIO = 0, 279*4882a593Smuzhiyun GPIO3B7_SDMMC0_WRITE_PRT, 280*4882a593Smuzhiyun 281*4882a593Smuzhiyun GPIO3B6_SHIFT = 12, 282*4882a593Smuzhiyun GPIO3B6_MASK = 1 << GPIO3B6_SHIFT, 283*4882a593Smuzhiyun GPIO3B6_GPIO = 0, 284*4882a593Smuzhiyun GPIO3B6_SDMMC0_DETECT_N, 285*4882a593Smuzhiyun 286*4882a593Smuzhiyun GPIO3B5_SHIFT = 10, 287*4882a593Smuzhiyun GPIO3B5_MASK = 1 << GPIO3B5_SHIFT, 288*4882a593Smuzhiyun GPIO3B5_GPIO = 0, 289*4882a593Smuzhiyun GPIO3B5_SDMMC0_DATA3, 290*4882a593Smuzhiyun 291*4882a593Smuzhiyun GPIO3B4_SHIFT = 8, 292*4882a593Smuzhiyun GPIO3B4_MASK = 1 << GPIO3B4_SHIFT, 293*4882a593Smuzhiyun GPIO3B4_GPIO = 0, 294*4882a593Smuzhiyun GPIO3B4_SDMMC0_DATA2, 295*4882a593Smuzhiyun 296*4882a593Smuzhiyun GPIO3B3_SHIFT = 6, 297*4882a593Smuzhiyun GPIO3B3_MASK = 1 << GPIO3B3_SHIFT, 298*4882a593Smuzhiyun GPIO3B3_GPIO = 0, 299*4882a593Smuzhiyun GPIO3B3_SDMMC0_DATA1, 300*4882a593Smuzhiyun 301*4882a593Smuzhiyun GPIO3B2_SHIFT = 4, 302*4882a593Smuzhiyun GPIO3B2_MASK = 1 << GPIO3B2_SHIFT, 303*4882a593Smuzhiyun GPIO3B2_GPIO = 0, 304*4882a593Smuzhiyun GPIO3B2_SDMMC0_DATA0, 305*4882a593Smuzhiyun 306*4882a593Smuzhiyun GPIO3B1_SHIFT = 2, 307*4882a593Smuzhiyun GPIO3B1_MASK = 1 << GPIO3B1_SHIFT, 308*4882a593Smuzhiyun GPIO3B1_GPIO = 0, 309*4882a593Smuzhiyun GPIO3B1_SDMMC0_CMD, 310*4882a593Smuzhiyun 311*4882a593Smuzhiyun GPIO3B0_SHIFT = 0, 312*4882a593Smuzhiyun GPIO3B0_MASK = 1 << GPIO3B0_SHIFT, 313*4882a593Smuzhiyun GPIO3B0_GPIO = 0, 314*4882a593Smuzhiyun GPIO3B0_SDMMC0_CLKOUT 315*4882a593Smuzhiyun 316*4882a593Smuzhiyun }; 317*4882a593Smuzhiyun 318*4882a593Smuzhiyun /* GRF_GPIO3C_IOMUX */ 319*4882a593Smuzhiyun enum { 320*4882a593Smuzhiyun GPIO3C7_SHIFT = 14, 321*4882a593Smuzhiyun GPIO3C7_MASK = 1 << GPIO3C7_SHIFT, 322*4882a593Smuzhiyun GPIO3C7_GPIO = 0, 323*4882a593Smuzhiyun GPIO3C7_SDMMC1_WRITE_PRT, 324*4882a593Smuzhiyun 325*4882a593Smuzhiyun GPIO3C6_SHIFT = 12, 326*4882a593Smuzhiyun GPIO3C6_MASK = 1 << GPIO3C6_SHIFT, 327*4882a593Smuzhiyun GPIO3C6_GPIO = 0, 328*4882a593Smuzhiyun GPIO3C6_SDMMC1_DETECT_N, 329*4882a593Smuzhiyun 330*4882a593Smuzhiyun GPIO3C5_SHIFT = 10, 331*4882a593Smuzhiyun GPIO3C5_MASK = 1 << GPIO3C5_SHIFT, 332*4882a593Smuzhiyun GPIO3C5_GPIO = 0, 333*4882a593Smuzhiyun GPIO3C5_SDMMC1_CLKOUT, 334*4882a593Smuzhiyun 335*4882a593Smuzhiyun GPIO3C4_SHIFT = 8, 336*4882a593Smuzhiyun GPIO3C4_MASK = 1 << GPIO3C4_SHIFT, 337*4882a593Smuzhiyun GPIO3C4_GPIO = 0, 338*4882a593Smuzhiyun GPIO3C4_SDMMC1_DATA3, 339*4882a593Smuzhiyun 340*4882a593Smuzhiyun GPIO3C3_SHIFT = 6, 341*4882a593Smuzhiyun GPIO3C3_MASK = 1 << GPIO3C3_SHIFT, 342*4882a593Smuzhiyun GPIO3C3_GPIO = 0, 343*4882a593Smuzhiyun GPIO3C3_SDMMC1_DATA2, 344*4882a593Smuzhiyun 345*4882a593Smuzhiyun GPIO3C2_SHIFT = 4, 346*4882a593Smuzhiyun GPIO3C2_MASK = 1 << GPIO3C2_SHIFT, 347*4882a593Smuzhiyun GPIO3C2_GPIO = 0, 348*4882a593Smuzhiyun GPIO3C2_SDMMC1_DATA1, 349*4882a593Smuzhiyun 350*4882a593Smuzhiyun GPIO3C1_SHIFT = 2, 351*4882a593Smuzhiyun GPIO3C1_MASK = 1 << GPIO3C1_SHIFT, 352*4882a593Smuzhiyun GPIO3C1_GPIO = 0, 353*4882a593Smuzhiyun GPIO3C1_SDMMC1_DATA0, 354*4882a593Smuzhiyun 355*4882a593Smuzhiyun GPIO3C0_SHIFT = 0, 356*4882a593Smuzhiyun GPIO3C0_MASK = 1 << GPIO3C0_SHIFT, 357*4882a593Smuzhiyun GPIO3C0_GPIO = 0, 358*4882a593Smuzhiyun GPIO3C0_SMMC1_CMD 359*4882a593Smuzhiyun }; 360*4882a593Smuzhiyun 361*4882a593Smuzhiyun /* GRF_GPIO3D_IOMUX */ 362*4882a593Smuzhiyun enum { 363*4882a593Smuzhiyun GPIO3D7_SHIFT = 14, 364*4882a593Smuzhiyun GPIO3D7_MASK = 3 << GPIO3D7_SHIFT, 365*4882a593Smuzhiyun GPIO3D7_GPIO = 0, 366*4882a593Smuzhiyun GPIO3D7_FLASH_DQS, 367*4882a593Smuzhiyun GPIO3D7_EMMC_CLKOUT, 368*4882a593Smuzhiyun 369*4882a593Smuzhiyun GPIO3D6_SHIFT = 12, 370*4882a593Smuzhiyun GPIO3D6_MASK = 1 << GPIO3D6_SHIFT, 371*4882a593Smuzhiyun GPIO3D6_GPIO = 0, 372*4882a593Smuzhiyun GPIO3D6_UART3_RTS_N, 373*4882a593Smuzhiyun 374*4882a593Smuzhiyun GPIO3D5_SHIFT = 10, 375*4882a593Smuzhiyun GPIO3D5_MASK = 1 << GPIO3D5_SHIFT, 376*4882a593Smuzhiyun GPIO3D5_GPIO = 0, 377*4882a593Smuzhiyun GPIO3D5_UART3_CTS_N, 378*4882a593Smuzhiyun 379*4882a593Smuzhiyun GPIO3D4_SHIFT = 8, 380*4882a593Smuzhiyun GPIO3D4_MASK = 1 << GPIO3D4_SHIFT, 381*4882a593Smuzhiyun GPIO3D4_GPIO = 0, 382*4882a593Smuzhiyun GPIO3D4_UART3_SOUT, 383*4882a593Smuzhiyun 384*4882a593Smuzhiyun GPIO3D3_SHIFT = 6, 385*4882a593Smuzhiyun GPIO3D3_MASK = 1 << GPIO3D3_SHIFT, 386*4882a593Smuzhiyun GPIO3D3_GPIO = 0, 387*4882a593Smuzhiyun GPIO3D3_UART3_SIN, 388*4882a593Smuzhiyun 389*4882a593Smuzhiyun GPIO3D2_SHIFT = 4, 390*4882a593Smuzhiyun GPIO3D2_MASK = 1 << GPIO3D2_SHIFT, 391*4882a593Smuzhiyun GPIO3D2_GPIO = 0, 392*4882a593Smuzhiyun GPIO3D2_SDMMC1_INT_N, 393*4882a593Smuzhiyun 394*4882a593Smuzhiyun GPIO3D1_SHIFT = 2, 395*4882a593Smuzhiyun GPIO3D1_MASK = 1 << GPIO3D1_SHIFT, 396*4882a593Smuzhiyun GPIO3D1_GPIO = 0, 397*4882a593Smuzhiyun GPIO3D1_SDMMC1_BACKEND_PWR, 398*4882a593Smuzhiyun 399*4882a593Smuzhiyun GPIO3D0_SHIFT = 0, 400*4882a593Smuzhiyun GPIO3D0_MASK = 1 << GPIO3D0_SHIFT, 401*4882a593Smuzhiyun GPIO3D0_GPIO = 0, 402*4882a593Smuzhiyun GPIO3D0_SDMMC1_PWR_EN 403*4882a593Smuzhiyun 404*4882a593Smuzhiyun }; 405*4882a593Smuzhiyun 406*4882a593Smuzhiyun /* GRF_GPIO4A_IOMUX */ 407*4882a593Smuzhiyun enum { 408*4882a593Smuzhiyun GPIO4A7_SHIFT = 14, 409*4882a593Smuzhiyun GPIO4A7_MASK = 1 << GPIO4A7_SHIFT, 410*4882a593Smuzhiyun GPIO4A7_GPIO = 0, 411*4882a593Smuzhiyun GPIO4A7_FLASH_DATA15, 412*4882a593Smuzhiyun 413*4882a593Smuzhiyun GPIO4A6_SHIFT = 12, 414*4882a593Smuzhiyun GPIO4A6_MASK = 1 << GPIO4A6_SHIFT, 415*4882a593Smuzhiyun GPIO4A6_GPIO = 0, 416*4882a593Smuzhiyun GPIO4A6_FLASH_DATA14, 417*4882a593Smuzhiyun 418*4882a593Smuzhiyun GPIO4A5_SHIFT = 10, 419*4882a593Smuzhiyun GPIO4A5_MASK = 1 << GPIO4A5_SHIFT, 420*4882a593Smuzhiyun GPIO4A5_GPIO = 0, 421*4882a593Smuzhiyun GPIO4A5_FLASH_DATA13, 422*4882a593Smuzhiyun 423*4882a593Smuzhiyun GPIO4A4_SHIFT = 8, 424*4882a593Smuzhiyun GPIO4A4_MASK = 1 << GPIO4A4_SHIFT, 425*4882a593Smuzhiyun GPIO4A4_GPIO = 0, 426*4882a593Smuzhiyun GPIO4A4_FLASH_DATA12, 427*4882a593Smuzhiyun 428*4882a593Smuzhiyun GPIO4A3_SHIFT = 6, 429*4882a593Smuzhiyun GPIO4A3_MASK = 1 << GPIO4A3_SHIFT, 430*4882a593Smuzhiyun GPIO4A3_GPIO = 0, 431*4882a593Smuzhiyun GPIO4A3_FLASH_DATA11, 432*4882a593Smuzhiyun 433*4882a593Smuzhiyun GPIO4A2_SHIFT = 4, 434*4882a593Smuzhiyun GPIO4A2_MASK = 1 << GPIO4A2_SHIFT, 435*4882a593Smuzhiyun GPIO4A2_GPIO = 0, 436*4882a593Smuzhiyun GPIO4A2_FLASH_DATA10, 437*4882a593Smuzhiyun 438*4882a593Smuzhiyun GPIO4A1_SHIFT = 2, 439*4882a593Smuzhiyun GPIO4A1_MASK = 1 << GPIO4A1_SHIFT, 440*4882a593Smuzhiyun GPIO4A1_GPIO = 0, 441*4882a593Smuzhiyun GPIO4A1_FLASH_DATA9, 442*4882a593Smuzhiyun 443*4882a593Smuzhiyun GPIO4A0_SHIFT = 0, 444*4882a593Smuzhiyun GPIO4A0_MASK = 1 << GPIO4A0_SHIFT, 445*4882a593Smuzhiyun GPIO4A0_GPIO = 0, 446*4882a593Smuzhiyun GPIO4A0_FLASH_DATA8 447*4882a593Smuzhiyun 448*4882a593Smuzhiyun }; 449*4882a593Smuzhiyun 450*4882a593Smuzhiyun /* GRF_GPIO4B_IOMUX */ 451*4882a593Smuzhiyun enum { 452*4882a593Smuzhiyun GPIO4B7_SHIFT = 14, 453*4882a593Smuzhiyun GPIO4B7_MASK = 1 << GPIO4B7_SHIFT, 454*4882a593Smuzhiyun GPIO4B7_GPIO = 0, 455*4882a593Smuzhiyun GPIO4B7_SPI0_CSN1, 456*4882a593Smuzhiyun 457*4882a593Smuzhiyun GPIO4B6_SHIFT = 12, 458*4882a593Smuzhiyun GPIO4B6_MASK = 1 << GPIO4B6_SHIFT, 459*4882a593Smuzhiyun GPIO4B6_GPIO = 0, 460*4882a593Smuzhiyun GPIO4B6_FLASH_CSN7, 461*4882a593Smuzhiyun 462*4882a593Smuzhiyun GPIO4B5_SHIFT = 10, 463*4882a593Smuzhiyun GPIO4B5_MASK = 1 << GPIO4B5_SHIFT, 464*4882a593Smuzhiyun GPIO4B5_GPIO = 0, 465*4882a593Smuzhiyun GPIO4B5_FLASH_CSN6, 466*4882a593Smuzhiyun 467*4882a593Smuzhiyun GPIO4B4_SHIFT = 8, 468*4882a593Smuzhiyun GPIO4B4_MASK = 1 << GPIO4B4_SHIFT, 469*4882a593Smuzhiyun GPIO4B4_GPIO = 0, 470*4882a593Smuzhiyun GPIO4B4_FLASH_CSN5, 471*4882a593Smuzhiyun 472*4882a593Smuzhiyun GPIO4B3_SHIFT = 6, 473*4882a593Smuzhiyun GPIO4B3_MASK = 1 << GPIO4B3_SHIFT, 474*4882a593Smuzhiyun GPIO4B3_GPIO = 0, 475*4882a593Smuzhiyun GPIO4B3_FLASH_CSN4, 476*4882a593Smuzhiyun 477*4882a593Smuzhiyun GPIO4B2_SHIFT = 4, 478*4882a593Smuzhiyun GPIO4B2_MASK = 3 << GPIO4B2_SHIFT, 479*4882a593Smuzhiyun GPIO4B2_GPIO = 0, 480*4882a593Smuzhiyun GPIO4B2_FLASH_CSN3, 481*4882a593Smuzhiyun GPIO4B2_EMMC_RSTN_OUT, 482*4882a593Smuzhiyun 483*4882a593Smuzhiyun GPIO4B1_SHIFT = 2, 484*4882a593Smuzhiyun GPIO4B1_MASK = 3 << GPIO4B1_SHIFT, 485*4882a593Smuzhiyun GPIO4B1_GPIO = 0, 486*4882a593Smuzhiyun GPIO4B1_FLASH_CSN2, 487*4882a593Smuzhiyun GPIO4B1_EMMC_CMD, 488*4882a593Smuzhiyun 489*4882a593Smuzhiyun GPIO4B0_SHIFT = 0, 490*4882a593Smuzhiyun GPIO4B0_MASK = 1 << GPIO4B0_SHIFT, 491*4882a593Smuzhiyun GPIO4B0_GPIO = 0, 492*4882a593Smuzhiyun GPIO4B0_FLASH_CSN1 493*4882a593Smuzhiyun }; 494*4882a593Smuzhiyun 495*4882a593Smuzhiyun /* GRF_SOC_CON0 */ 496*4882a593Smuzhiyun enum { 497*4882a593Smuzhiyun SMC_MUX_CON_SHIFT = 13, 498*4882a593Smuzhiyun SMC_MUX_CON_MASK = 1 << SMC_MUX_CON_SHIFT, 499*4882a593Smuzhiyun 500*4882a593Smuzhiyun NOC_REMAP_SHIFT = 12, 501*4882a593Smuzhiyun NOC_REMAP_MASK = 1 << NOC_REMAP_SHIFT, 502*4882a593Smuzhiyun 503*4882a593Smuzhiyun EMMC_FLASH_SEL_SHIFT = 11, 504*4882a593Smuzhiyun EMMC_FLASH_SEL_MASK = 1 << EMMC_FLASH_SEL_SHIFT, 505*4882a593Smuzhiyun 506*4882a593Smuzhiyun TZPC_REVISION_SHIFT = 7, 507*4882a593Smuzhiyun TZPC_REVISION_MASK = 0xf << TZPC_REVISION_SHIFT, 508*4882a593Smuzhiyun 509*4882a593Smuzhiyun L2CACHE_ACC_SHIFT = 5, 510*4882a593Smuzhiyun L2CACHE_ACC_MASK = 3 << L2CACHE_ACC_SHIFT, 511*4882a593Smuzhiyun 512*4882a593Smuzhiyun L2RD_WAIT_SHIFT = 3, 513*4882a593Smuzhiyun L2RD_WAIT_MASK = 3 << L2RD_WAIT_SHIFT, 514*4882a593Smuzhiyun 515*4882a593Smuzhiyun IMEMRD_WAIT_SHIFT = 1, 516*4882a593Smuzhiyun IMEMRD_WAIT_MASK = 3 << IMEMRD_WAIT_SHIFT, 517*4882a593Smuzhiyun 518*4882a593Smuzhiyun SOC_REMAP_SHIFT = 0, 519*4882a593Smuzhiyun SOC_REMAP_MASK = 1 << SOC_REMAP_SHIFT, 520*4882a593Smuzhiyun }; 521*4882a593Smuzhiyun 522*4882a593Smuzhiyun /* GRF_SOC_CON1 */ 523*4882a593Smuzhiyun enum { 524*4882a593Smuzhiyun RKI2C4_SEL_SHIFT = 15, 525*4882a593Smuzhiyun RKI2C4_SEL_MASK = 1 << RKI2C4_SEL_SHIFT, 526*4882a593Smuzhiyun 527*4882a593Smuzhiyun RKI2C3_SEL_SHIFT = 14, 528*4882a593Smuzhiyun RKI2C3_SEL_MASK = 1 << RKI2C3_SEL_SHIFT, 529*4882a593Smuzhiyun 530*4882a593Smuzhiyun RKI2C2_SEL_SHIFT = 13, 531*4882a593Smuzhiyun RKI2C2_SEL_MASK = 1 << RKI2C2_SEL_SHIFT, 532*4882a593Smuzhiyun 533*4882a593Smuzhiyun RKI2C1_SEL_SHIFT = 12, 534*4882a593Smuzhiyun RKI2C1_SEL_MASK = 1 << RKI2C1_SEL_SHIFT, 535*4882a593Smuzhiyun 536*4882a593Smuzhiyun RKI2C0_SEL_SHIFT = 11, 537*4882a593Smuzhiyun RKI2C0_SEL_MASK = 1 << RKI2C0_SEL_SHIFT, 538*4882a593Smuzhiyun 539*4882a593Smuzhiyun VCODEC_SEL_SHIFT = 10, 540*4882a593Smuzhiyun VCODEC_SEL_MASK = 1 << VCODEC_SEL_SHIFT, 541*4882a593Smuzhiyun 542*4882a593Smuzhiyun PERI_EMEM_PAUSE_SHIFT = 9, 543*4882a593Smuzhiyun PERI_EMEM_PAUSE_MASK = 1 << PERI_EMEM_PAUSE_SHIFT, 544*4882a593Smuzhiyun 545*4882a593Smuzhiyun PERI_USB_PAUSE_SHIFT = 8, 546*4882a593Smuzhiyun PERI_USB_PAUSE_MASK = 1 << PERI_USB_PAUSE_SHIFT, 547*4882a593Smuzhiyun 548*4882a593Smuzhiyun SMC_MUX_MODE_0_SHIFT = 6, 549*4882a593Smuzhiyun SMC_MUX_MODE_0_MASK = 1 << SMC_MUX_MODE_0_SHIFT, 550*4882a593Smuzhiyun 551*4882a593Smuzhiyun SMC_SRAM_MW_0_SHIFT = 4, 552*4882a593Smuzhiyun SMC_SRAM_MW_0_MASK = 3 << SMC_SRAM_MW_0_SHIFT, 553*4882a593Smuzhiyun 554*4882a593Smuzhiyun SMC_REMAP_0_SHIFT = 3, 555*4882a593Smuzhiyun SMC_REMAP_0_MASK = 1 << SMC_REMAP_0_SHIFT, 556*4882a593Smuzhiyun 557*4882a593Smuzhiyun SMC_A_GT_M0_SYNC_SHIFT = 2, 558*4882a593Smuzhiyun SMC_A_GT_M0_SYNC_MASK = 1 << SMC_A_GT_M0_SYNC_SHIFT, 559*4882a593Smuzhiyun 560*4882a593Smuzhiyun EMAC_SPEED_SHIFT = 1, 561*4882a593Smuzhiyun EMAC_SPEEC_MASK = 1 << EMAC_SPEED_SHIFT, 562*4882a593Smuzhiyun 563*4882a593Smuzhiyun EMAC_MODE_SHIFT = 0, 564*4882a593Smuzhiyun EMAC_MODE_MASK = 1 << EMAC_MODE_SHIFT, 565*4882a593Smuzhiyun }; 566*4882a593Smuzhiyun 567*4882a593Smuzhiyun /* GRF_SOC_CON2 */ 568*4882a593Smuzhiyun enum { 569*4882a593Smuzhiyun 570*4882a593Smuzhiyun MSCH4_MAINDDR3_SHIFT = 7, 571*4882a593Smuzhiyun MSCH4_MAINDDR3_MASK = 1 << MSCH4_MAINDDR3_SHIFT, 572*4882a593Smuzhiyun MSCH4_MAINDDR3_DDR3 = 1, 573*4882a593Smuzhiyun 574*4882a593Smuzhiyun EMAC_NEWRCV_EN_SHIFT = 6, 575*4882a593Smuzhiyun EMAC_NEWRCV_EN_MASK = 1 << EMAC_NEWRCV_EN_SHIFT, 576*4882a593Smuzhiyun 577*4882a593Smuzhiyun SW_ADDR15_EN_SHIFT = 5, 578*4882a593Smuzhiyun SW_ADDR15_EN_MASK = 1 << SW_ADDR15_EN_SHIFT, 579*4882a593Smuzhiyun 580*4882a593Smuzhiyun SW_ADDR16_EN_SHIFT = 4, 581*4882a593Smuzhiyun SW_ADDR16_EN_MASK = 1 << SW_ADDR16_EN_SHIFT, 582*4882a593Smuzhiyun 583*4882a593Smuzhiyun SW_ADDR17_EN_SHIFT = 3, 584*4882a593Smuzhiyun SW_ADDR17_EN_MASK = 1 << SW_ADDR17_EN_SHIFT, 585*4882a593Smuzhiyun 586*4882a593Smuzhiyun BANK2_TO_RANK_EN_SHIFT = 2, 587*4882a593Smuzhiyun BANK2_TO_RANK_EN_MASK = 1 << BANK2_TO_RANK_EN_SHIFT, 588*4882a593Smuzhiyun 589*4882a593Smuzhiyun RANK_TO_ROW15_EN_SHIFT = 1, 590*4882a593Smuzhiyun RANK_TO_ROW15_EN_MASK = 1 << RANK_TO_ROW15_EN_SHIFT, 591*4882a593Smuzhiyun 592*4882a593Smuzhiyun UPCTL_C_ACTIVE_IN_SHIFT = 0, 593*4882a593Smuzhiyun UPCTL_C_ACTIVE_IN_MASK = 1 << UPCTL_C_ACTIVE_IN_SHIFT, 594*4882a593Smuzhiyun UPCTL_C_ACTIVE_IN_MAY = 0, 595*4882a593Smuzhiyun UPCTL_C_ACTIVE_IN_WILL, 596*4882a593Smuzhiyun }; 597*4882a593Smuzhiyun 598*4882a593Smuzhiyun /* GRF_DDRC_CON0 */ 599*4882a593Smuzhiyun enum { 600*4882a593Smuzhiyun DTO_LB_SHIFT = 11, 601*4882a593Smuzhiyun DTO_LB_MASK = 3 << DTO_LB_SHIFT, 602*4882a593Smuzhiyun 603*4882a593Smuzhiyun DTO_TE_SHIFT = 9, 604*4882a593Smuzhiyun DTO_TE_MASK = 3 << DTO_TE_SHIFT, 605*4882a593Smuzhiyun 606*4882a593Smuzhiyun DTO_PDR_SHIFT = 7, 607*4882a593Smuzhiyun DTO_PDR_MASK = 3 << DTO_PDR_SHIFT, 608*4882a593Smuzhiyun 609*4882a593Smuzhiyun DTO_PDD_SHIFT = 5, 610*4882a593Smuzhiyun DTO_PDD_MASK = 3 << DTO_PDD_SHIFT, 611*4882a593Smuzhiyun 612*4882a593Smuzhiyun DTO_IOM_SHIFT = 3, 613*4882a593Smuzhiyun DTO_IOM_MASK = 3 << DTO_IOM_SHIFT, 614*4882a593Smuzhiyun 615*4882a593Smuzhiyun DTO_OE_SHIFT = 1, 616*4882a593Smuzhiyun DTO_OE_MASK = 3 << DTO_OE_SHIFT, 617*4882a593Smuzhiyun 618*4882a593Smuzhiyun ATO_AE_SHIFT = 0, 619*4882a593Smuzhiyun ATO_AE_MASK = 1 << ATO_AE_SHIFT, 620*4882a593Smuzhiyun }; 621*4882a593Smuzhiyun #endif 622