xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-rockchip/grf_rk3128.h (revision 9f9d01585cb94be301305b8f50f41a28e46ac336)
12241bfd6SKever Yang /*
22241bfd6SKever Yang  * (C) Copyright 2017 Rockchip Electronics Co., Ltd
32241bfd6SKever Yang  *
42241bfd6SKever Yang  * SPDX-License-Identifier:     GPL-2.0+
52241bfd6SKever Yang  */
62241bfd6SKever Yang #ifndef _ASM_ARCH_GRF_RK3128_H
72241bfd6SKever Yang #define _ASM_ARCH_GRF_RK3128_H
82241bfd6SKever Yang 
92241bfd6SKever Yang #include <common.h>
102241bfd6SKever Yang 
112241bfd6SKever Yang struct rk3128_grf {
122241bfd6SKever Yang 	unsigned int reserved[0x2a];
132241bfd6SKever Yang 	unsigned int gpio0a_iomux;
142241bfd6SKever Yang 	unsigned int gpio0b_iomux;
152241bfd6SKever Yang 	unsigned int gpio0c_iomux;
162241bfd6SKever Yang 	unsigned int gpio0d_iomux;
172241bfd6SKever Yang 	unsigned int gpio1a_iomux;
182241bfd6SKever Yang 	unsigned int gpio1b_iomux;
192241bfd6SKever Yang 	unsigned int gpio1c_iomux;
202241bfd6SKever Yang 	unsigned int gpio1d_iomux;
212241bfd6SKever Yang 	unsigned int gpio2a_iomux;
222241bfd6SKever Yang 	unsigned int gpio2b_iomux;
232241bfd6SKever Yang 	unsigned int gpio2c_iomux;
242241bfd6SKever Yang 	unsigned int gpio2d_iomux;
252241bfd6SKever Yang 	unsigned int gpio3a_iomux;
262241bfd6SKever Yang 	unsigned int gpio3b_iomux;
272241bfd6SKever Yang 	unsigned int gpio3c_iomux;
282241bfd6SKever Yang 	unsigned int gpio3d_iomux;
292241bfd6SKever Yang 	unsigned int gpio2c_iomux2;
302241bfd6SKever Yang 	unsigned int grf_cif_iomux;
312241bfd6SKever Yang 	unsigned int grf_cif_iomux1;
322241bfd6SKever Yang 	unsigned int reserved1[(0x118 - 0xf0) / 4 - 1];
332241bfd6SKever Yang 	unsigned int gpio0l_pull;
342241bfd6SKever Yang 	unsigned int gpio0h_pull;
352241bfd6SKever Yang 	unsigned int gpio1l_pull;
362241bfd6SKever Yang 	unsigned int gpio1h_pull;
372241bfd6SKever Yang 	unsigned int gpio2l_pull;
382241bfd6SKever Yang 	unsigned int gpio2h_pull;
392241bfd6SKever Yang 	unsigned int gpio3l_pull;
402241bfd6SKever Yang 	unsigned int gpio3h_pull;
412241bfd6SKever Yang 	unsigned int reserved2;
422241bfd6SKever Yang 	unsigned int soc_con0;
432241bfd6SKever Yang 	unsigned int soc_con1;
442241bfd6SKever Yang 	unsigned int soc_con2;
452241bfd6SKever Yang 	unsigned int soc_status0;
462241bfd6SKever Yang 	unsigned int reserved3[6];
472241bfd6SKever Yang 	unsigned int mac_con0;
482241bfd6SKever Yang 	unsigned int mac_con1;
492241bfd6SKever Yang 	unsigned int reserved4[4];
502241bfd6SKever Yang 	unsigned int uoc0_con0;
512241bfd6SKever Yang 	unsigned int reserved5;
522241bfd6SKever Yang 	unsigned int uoc1_con1;
532241bfd6SKever Yang 	unsigned int uoc1_con2;
542241bfd6SKever Yang 	unsigned int uoc1_con3;
552241bfd6SKever Yang 	unsigned int uoc1_con4;
562241bfd6SKever Yang 	unsigned int uoc1_con5;
572241bfd6SKever Yang 	unsigned int reserved6;
582241bfd6SKever Yang 	unsigned int ddrc_stat;
592241bfd6SKever Yang 	unsigned int reserved9;
602241bfd6SKever Yang 	unsigned int soc_status1;
612241bfd6SKever Yang 	unsigned int cpu_con0;
622241bfd6SKever Yang 	unsigned int cpu_con1;
632241bfd6SKever Yang 	unsigned int cpu_con2;
642241bfd6SKever Yang 	unsigned int cpu_con3;
652241bfd6SKever Yang 	unsigned int reserved10;
662241bfd6SKever Yang 	unsigned int reserved11;
672241bfd6SKever Yang 	unsigned int cpu_status0;
682241bfd6SKever Yang 	unsigned int cpu_status1;
692241bfd6SKever Yang 	unsigned int os_reg[8];
702241bfd6SKever Yang 	unsigned int reserved12[(0x280 - 0x1e4) / 4 - 1];
712241bfd6SKever Yang 	unsigned int usbphy0_con[8];
722241bfd6SKever Yang 	unsigned int usbphy1_con[8];
732241bfd6SKever Yang 	unsigned int uoc_status0;
742241bfd6SKever Yang 	unsigned int reserved13[(0x300 - 0x2c0) / 4 - 1];
752241bfd6SKever Yang 	unsigned int chip_tag;
762241bfd6SKever Yang 	unsigned int sdmmc_det_cnt;
772241bfd6SKever Yang };
782241bfd6SKever Yang check_member(rk3128_grf, sdmmc_det_cnt, 0x304);
792241bfd6SKever Yang 
802241bfd6SKever Yang struct rk3128_pmu {
812241bfd6SKever Yang 	unsigned int wakeup_cfg;
822241bfd6SKever Yang 	unsigned int pwrdn_con;
832241bfd6SKever Yang 	unsigned int pwrdn_st;
842241bfd6SKever Yang 	unsigned int idle_req;
852241bfd6SKever Yang 	unsigned int idle_st;
862241bfd6SKever Yang 	unsigned int pwrmode_con;
872241bfd6SKever Yang 	unsigned int pwr_state;
882241bfd6SKever Yang 	unsigned int osc_cnt;
892241bfd6SKever Yang 	unsigned int core_pwrdwn_cnt;
902241bfd6SKever Yang 	unsigned int core_pwrup_cnt;
912241bfd6SKever Yang 	unsigned int sft_con;
922241bfd6SKever Yang 	unsigned int ddr_sref_st;
932241bfd6SKever Yang 	unsigned int int_con;
942241bfd6SKever Yang 	unsigned int int_st;
952241bfd6SKever Yang 	unsigned int sys_reg[4];
962241bfd6SKever Yang };
972241bfd6SKever Yang check_member(rk3128_pmu, int_st, 0x34);
982241bfd6SKever Yang 
992241bfd6SKever Yang /* GRF_GPIO0A_IOMUX */
1002241bfd6SKever Yang enum {
1012241bfd6SKever Yang 	GPIO0A7_SHIFT		= 14,
1022241bfd6SKever Yang 	GPIO0A7_MASK		= 3 << GPIO0A7_SHIFT,
1032241bfd6SKever Yang 	GPIO0A7_GPIO		= 0,
1042241bfd6SKever Yang 	GPIO0A7_I2C3_SDA,
1052241bfd6SKever Yang 
1062241bfd6SKever Yang 	GPIO0A6_SHIFT		= 12,
1072241bfd6SKever Yang 	GPIO0A6_MASK		= 3 << GPIO0A6_SHIFT,
1082241bfd6SKever Yang 	GPIO0A6_GPIO		= 0,
1092241bfd6SKever Yang 	GPIO0A6_I2C3_SCL,
1102241bfd6SKever Yang 
1112241bfd6SKever Yang 	GPIO0A3_SHIFT		= 6,
1122241bfd6SKever Yang 	GPIO0A3_MASK		= 3 << GPIO0A3_SHIFT,
1132241bfd6SKever Yang 	GPIO0A3_GPIO		= 0,
1142241bfd6SKever Yang 	GPIO0A3_I2C1_SDA,
1152241bfd6SKever Yang 
1162241bfd6SKever Yang 	GPIO0A2_SHIFT		= 4,
1172241bfd6SKever Yang 	GPIO0A2_MASK		= 1 << GPIO0A2_SHIFT,
1182241bfd6SKever Yang 	GPIO0A2_GPIO		= 0,
1192241bfd6SKever Yang 	GPIO0A2_I2C1_SCL,
1202241bfd6SKever Yang 
1212241bfd6SKever Yang 	GPIO0A1_SHIFT		= 2,
1222241bfd6SKever Yang 	GPIO0A1_MASK		= 1 << GPIO0A1_SHIFT,
1232241bfd6SKever Yang 	GPIO0A1_GPIO		= 0,
1242241bfd6SKever Yang 	GPIO0A1_I2C0_SDA,
1252241bfd6SKever Yang 
1262241bfd6SKever Yang 	GPIO0A0_SHIFT		= 0,
1272241bfd6SKever Yang 	GPIO0A0_MASK		= 1 << GPIO0A0_SHIFT,
1282241bfd6SKever Yang 	GPIO0A0_GPIO		= 0,
1292241bfd6SKever Yang 	GPIO0A0_I2C0_SCL,
1302241bfd6SKever Yang };
1312241bfd6SKever Yang 
1322241bfd6SKever Yang /* GRF_GPIO0B_IOMUX */
1332241bfd6SKever Yang enum {
1342241bfd6SKever Yang 	GPIO0B6_SHIFT		= 12,
1352241bfd6SKever Yang 	GPIO0B6_MASK		= 3 << GPIO0B6_SHIFT,
1362241bfd6SKever Yang 	GPIO0B6_GPIO		= 0,
1372241bfd6SKever Yang 	GPIO0B6_I2S_SDI,
1382241bfd6SKever Yang 	GPIO0B6_SPI_CSN0,
1392241bfd6SKever Yang 
1402241bfd6SKever Yang 	GPIO0B5_SHIFT		= 10,
1412241bfd6SKever Yang 	GPIO0B5_MASK		= 3 << GPIO0B5_SHIFT,
1422241bfd6SKever Yang 	GPIO0B5_GPIO		= 0,
1432241bfd6SKever Yang 	GPIO0B5_I2S_SDO,
1442241bfd6SKever Yang 	GPIO0B5_SPI_RXD,
1452241bfd6SKever Yang 
1462241bfd6SKever Yang 	GPIO0B4_SHIFT		= 8,
1472241bfd6SKever Yang 	GPIO0B4_MASK		= 1 << GPIO0B4_SHIFT,
1482241bfd6SKever Yang 	GPIO0B4_GPIO		= 0,
1492241bfd6SKever Yang 	GPIO0B4_I2S_LRCKTX,
1502241bfd6SKever Yang 
1512241bfd6SKever Yang 	GPIO0B3_SHIFT		= 6,
1522241bfd6SKever Yang 	GPIO0B3_MASK		= 3 << GPIO0B3_SHIFT,
1532241bfd6SKever Yang 	GPIO0B3_GPIO		= 0,
1542241bfd6SKever Yang 	GPIO0B3_I2S_LRCKRX,
1552241bfd6SKever Yang 	GPIO0B3_SPI_TXD,
1562241bfd6SKever Yang 
1572241bfd6SKever Yang 	GPIO0B1_SHIFT		= 2,
1582241bfd6SKever Yang 	GPIO0B1_MASK		= 3,
1592241bfd6SKever Yang 	GPIO0B1_GPIO		= 0,
1602241bfd6SKever Yang 	GPIO0B1_I2S_SCLK,
1612241bfd6SKever Yang 	GPIO0B1_SPI_CLK,
1622241bfd6SKever Yang 
1632241bfd6SKever Yang 	GPIO0B0_SHIFT		= 0,
1642241bfd6SKever Yang 	GPIO0B0_MASK		= 3,
1652241bfd6SKever Yang 	GPIO0B0_GPIO		= 0,
1662241bfd6SKever Yang 	GPIO0B0_I2S1_MCLK,
1672241bfd6SKever Yang };
1682241bfd6SKever Yang 
1692241bfd6SKever Yang /* GRF_GPIO0D_IOMUX */
1702241bfd6SKever Yang enum {
1712241bfd6SKever Yang 	GPIO0D4_SHIFT		= 8,
1722241bfd6SKever Yang 	GPIO0D4_MASK		= 1 << GPIO0D4_SHIFT,
1732241bfd6SKever Yang 	GPIO0D4_GPIO		= 0,
1742241bfd6SKever Yang 	GPIO0D4_PWM2,
1752241bfd6SKever Yang 
1762241bfd6SKever Yang 	GPIO0D3_SHIFT		= 6,
1772241bfd6SKever Yang 	GPIO0D3_MASK		= 1 << GPIO0D3_SHIFT,
1782241bfd6SKever Yang 	GPIO0D3_GPIO		= 0,
1792241bfd6SKever Yang 	GPIO0D3_PWM1,
1802241bfd6SKever Yang 
1812241bfd6SKever Yang 	GPIO0D2_SHIFT		= 4,
1822241bfd6SKever Yang 	GPIO0D2_MASK		= 1 << GPIO0D2_SHIFT,
1832241bfd6SKever Yang 	GPIO0D2_GPIO		= 0,
1842241bfd6SKever Yang 	GPIO0D2_PWM0,
1852241bfd6SKever Yang 
1862241bfd6SKever Yang 	GPIO0D1_SHIFT		= 2,
1872241bfd6SKever Yang 	GPIO0D1_MASK		= 1 << GPIO0D1_SHIFT,
1882241bfd6SKever Yang 	GPIO0D1_GPIO		= 0,
1892241bfd6SKever Yang 	GPIO0D1_UART2_CTSN,
1902241bfd6SKever Yang 
1912241bfd6SKever Yang 	GPIO0D0_SHIFT		= 0,
1922241bfd6SKever Yang 	GPIO0D0_MASK		= 3 << GPIO0D0_SHIFT,
1932241bfd6SKever Yang 	GPIO0D0_GPIO		= 0,
1942241bfd6SKever Yang 	GPIO0D0_UART2_RTSN,
1952241bfd6SKever Yang 	GPIO0D0_PMIC_SLEEP,
1962241bfd6SKever Yang };
1972241bfd6SKever Yang 
1982241bfd6SKever Yang /* GRF_GPIO1A_IOMUX */
1992241bfd6SKever Yang enum {
2002241bfd6SKever Yang 	GPIO1A5_SHIFT		= 10,
2012241bfd6SKever Yang 	GPIO1A5_MASK		= 3 << GPIO1A5_SHIFT,
2022241bfd6SKever Yang 	GPIO1A5_GPIO		= 0,
2032241bfd6SKever Yang 	GPIO1A5_I2S_SDI,
2042241bfd6SKever Yang 	GPIO1A5_SDMMC_DATA3,
2052241bfd6SKever Yang 
2062241bfd6SKever Yang 	GPIO1A4_SHIFT		= 8,
2072241bfd6SKever Yang 	GPIO1A4_MASK		= 3 << GPIO1A4_SHIFT,
2082241bfd6SKever Yang 	GPIO1A4_GPIO		= 0,
2092241bfd6SKever Yang 	GPIO1A4_I2S_SD0,
2102241bfd6SKever Yang 	GPIO1A4_SDMMC_DATA2,
2112241bfd6SKever Yang 
2122241bfd6SKever Yang 	GPIO1A3_SHIFT		= 6,
2132241bfd6SKever Yang 	GPIO1A3_MASK		= 1 << GPIO1A3_SHIFT,
2142241bfd6SKever Yang 	GPIO1A3_GPIO		= 0,
2152241bfd6SKever Yang 	GPIO1A3_I2S_LRCKTX,
2162241bfd6SKever Yang 
2172241bfd6SKever Yang 	GPIO1A2_SHIFT		= 4,
2182241bfd6SKever Yang 	GPIO1A2_MASK		= 3 << GPIO1A2_SHIFT,
2192241bfd6SKever Yang 	GPIO1A2_GPIO		= 0,
2202241bfd6SKever Yang 	GPIO1A2_I2S_LRCKRX,
2212241bfd6SKever Yang 	GPIO1A2_SDMMC_DATA1,
2222241bfd6SKever Yang 
2232241bfd6SKever Yang 	GPIO1A1_SHIFT		= 2,
2242241bfd6SKever Yang 	GPIO1A1_MASK		= 3 << GPIO1A1_SHIFT,
2252241bfd6SKever Yang 	GPIO1A1_GPIO		= 0,
2262241bfd6SKever Yang 	GPIO1A1_I2S_SCLK,
2272241bfd6SKever Yang 	GPIO1A1_SDMMC_DATA0,
2282241bfd6SKever Yang 	GPIO1A1_PMIC_SLEEP,
2292241bfd6SKever Yang 
2302241bfd6SKever Yang 	GPIO1A0_SHIFT		= 0,
2312241bfd6SKever Yang 	GPIO1A0_MASK		= 3,
2322241bfd6SKever Yang 	GPIO1A0_GPIO		= 0,
2332241bfd6SKever Yang 	GPIO1A0_I2S_MCLK,
2342241bfd6SKever Yang 	GPIO1A0_SDMMC_CLKOUT,
2352241bfd6SKever Yang 	GPIO1A0_XIN32K,
2362241bfd6SKever Yang 
2372241bfd6SKever Yang };
2382241bfd6SKever Yang 
2392241bfd6SKever Yang /* GRF_GPIO1B_IOMUX */
2402241bfd6SKever Yang enum {
2412241bfd6SKever Yang 	GPIO1B7_SHIFT		= 14,
2422241bfd6SKever Yang 	GPIO1B7_MASK		= 1 << GPIO1B7_SHIFT,
2432241bfd6SKever Yang 	GPIO1B7_GPIO		= 0,
2442241bfd6SKever Yang 	GPIO1B7_MMC0_CMD,
2452241bfd6SKever Yang 
2462241bfd6SKever Yang 	GPIO1B6_SHIFT		= 12,
2472241bfd6SKever Yang 	GPIO1B6_MASK		= 1 << GPIO1B6_SHIFT,
2482241bfd6SKever Yang 	GPIO1B6_GPIO		= 0,
2492241bfd6SKever Yang 	GPIO1B6_MMC_PWREN,
2502241bfd6SKever Yang 
2512241bfd6SKever Yang 	GPIO1B2_SHIFT		= 4,
2522241bfd6SKever Yang 	GPIO1B2_MASK		= 3 << GPIO1B2_SHIFT,
2532241bfd6SKever Yang 	GPIO1B2_GPIO		= 0,
2542241bfd6SKever Yang 	GPIO1B2_SPI_RXD,
2552241bfd6SKever Yang 	GPIO1B2_UART1_SIN,
2562241bfd6SKever Yang 
2572241bfd6SKever Yang 	GPIO1B1_SHIFT		= 2,
2582241bfd6SKever Yang 	GPIO1B1_MASK		= 3 << GPIO1B1_SHIFT,
2592241bfd6SKever Yang 	GPIO1B1_GPIO		= 0,
2602241bfd6SKever Yang 	GPIO1B1_SPI_TXD,
2612241bfd6SKever Yang 	GPIO1B1_UART1_SOUT,
2622241bfd6SKever Yang 
2632241bfd6SKever Yang 	GPIO1B0_SHIFT		= 0,
2642241bfd6SKever Yang 	GPIO1B0_MASK		= 3 << GPIO1B0_SHIFT,
2652241bfd6SKever Yang 	GPIO1B0_GPIO		= 0,
2662241bfd6SKever Yang 	GPIO1B0_SPI_CLK,
2672241bfd6SKever Yang 	GPIO1B0_UART1_CTSN
2682241bfd6SKever Yang };
2692241bfd6SKever Yang 
2702241bfd6SKever Yang /* GRF_GPIO1C_IOMUX */
2712241bfd6SKever Yang enum {
2722241bfd6SKever Yang 	GPIO1C6_SHIFT		= 12,
2732241bfd6SKever Yang 	GPIO1C6_MASK		= 3 << GPIO1C6_SHIFT,
2742241bfd6SKever Yang 	GPIO1C6_GPIO		= 0,
2752241bfd6SKever Yang 	GPIO1C6_NAND_CS2,
2762241bfd6SKever Yang 	GPIO1C6_EMMC_CMD,
2772241bfd6SKever Yang 
2782241bfd6SKever Yang 	GPIO1C5_SHIFT		= 10,
2792241bfd6SKever Yang 	GPIO1C5_MASK		= 3 << GPIO1C5_SHIFT,
2802241bfd6SKever Yang 	GPIO1C5_GPIO		= 0,
2812241bfd6SKever Yang 	GPIO1C5_MMC0_D3,
2822241bfd6SKever Yang 	GPIO1C5_JTAG_TMS,
2832241bfd6SKever Yang 
2842241bfd6SKever Yang 	GPIO1C4_SHIFT		= 8,
2852241bfd6SKever Yang 	GPIO1C4_MASK		= 3 << GPIO1C4_SHIFT,
2862241bfd6SKever Yang 	GPIO1C4_GPIO		= 0,
2872241bfd6SKever Yang 	GPIO1C4_MMC0_D2,
2882241bfd6SKever Yang 	GPIO1C4_JTAG_TCK,
2892241bfd6SKever Yang 
2902241bfd6SKever Yang 	GPIO1C3_SHIFT		= 6,
2912241bfd6SKever Yang 	GPIO1C3_MASK		= 3 << GPIO1C3_SHIFT,
2922241bfd6SKever Yang 	GPIO1C3_GPIO		= 0,
2932241bfd6SKever Yang 	GPIO1C3_MMC0_D1,
2942241bfd6SKever Yang 	GPIO1C3_UART2_RX,
2952241bfd6SKever Yang 
2962241bfd6SKever Yang 	GPIO1C2_SHIFT		= 4,
2972241bfd6SKever Yang 	GPIO1C2_MASK		= 3 << GPIO1C2_SHIFT ,
2982241bfd6SKever Yang 	GPIO1C2_GPIO		= 0,
2992241bfd6SKever Yang 	GPIO1C2_MMC0_D0,
3002241bfd6SKever Yang 	GPIO1C2_UART2_TX,
3012241bfd6SKever Yang 
3022241bfd6SKever Yang 	GPIO1C1_SHIFT		= 2,
3032241bfd6SKever Yang 	GPIO1C1_MASK		= 1 << GPIO1C1_SHIFT,
3042241bfd6SKever Yang 	GPIO1C1_GPIO		= 0,
3052241bfd6SKever Yang 	GPIO1C1_MMC0_DETN,
3062241bfd6SKever Yang 
3072241bfd6SKever Yang 	GPIO1C0_SHIFT		= 0,
3082241bfd6SKever Yang 	GPIO1C0_MASK		= 1 << GPIO1C0_SHIFT,
3092241bfd6SKever Yang 	GPIO1C0_GPIO		= 0,
3102241bfd6SKever Yang 	GPIO1C0_MMC0_CLKOUT,
3112241bfd6SKever Yang };
3122241bfd6SKever Yang 
3132241bfd6SKever Yang /* GRF_GPIO1D_IOMUX */
3142241bfd6SKever Yang enum {
3152241bfd6SKever Yang 	GPIO1D7_SHIFT		= 14,
3162241bfd6SKever Yang 	GPIO1D7_MASK		= 3 << GPIO1D7_SHIFT,
3172241bfd6SKever Yang 	GPIO1D7_GPIO		= 0,
3182241bfd6SKever Yang 	GPIO1D7_NAND_D7,
3192241bfd6SKever Yang 	GPIO1D7_EMMC_D7,
3202241bfd6SKever Yang 	GPIO1D7_SPI_CSN1,
3212241bfd6SKever Yang 
3222241bfd6SKever Yang 	GPIO1D6_SHIFT		= 12,
3232241bfd6SKever Yang 	GPIO1D6_MASK		= 3 << GPIO1D6_SHIFT,
3242241bfd6SKever Yang 	GPIO1D6_GPIO		= 0,
3252241bfd6SKever Yang 	GPIO1D6_NAND_D6,
3262241bfd6SKever Yang 	GPIO1D6_EMMC_D6,
3272241bfd6SKever Yang 	GPIO1D6_SPI_CSN0,
3282241bfd6SKever Yang 
3292241bfd6SKever Yang 	GPIO1D5_SHIFT		= 10,
3302241bfd6SKever Yang 	GPIO1D5_MASK		= 3 << GPIO1D5_SHIFT,
3312241bfd6SKever Yang 	GPIO1D5_GPIO		= 0,
3322241bfd6SKever Yang 	GPIO1D5_NAND_D5,
3332241bfd6SKever Yang 	GPIO1D5_EMMC_D5,
3342241bfd6SKever Yang 	GPIO1D5_SPI_TXD1,
3352241bfd6SKever Yang 
3362241bfd6SKever Yang 	GPIO1D4_SHIFT		= 8,
3372241bfd6SKever Yang 	GPIO1D4_MASK		= 3 << GPIO1D4_SHIFT,
3382241bfd6SKever Yang 	GPIO1D4_GPIO		= 0,
3392241bfd6SKever Yang 	GPIO1D4_NAND_D4,
3402241bfd6SKever Yang 	GPIO1D4_EMMC_D4,
3412241bfd6SKever Yang 	GPIO1D4_SPI_RXD1,
3422241bfd6SKever Yang 
3432241bfd6SKever Yang 	GPIO1D3_SHIFT		= 6,
3442241bfd6SKever Yang 	GPIO1D3_MASK		= 3 << GPIO1D3_SHIFT,
3452241bfd6SKever Yang 	GPIO1D3_GPIO		= 0,
3462241bfd6SKever Yang 	GPIO1D3_NAND_D3,
3472241bfd6SKever Yang 	GPIO1D3_EMMC_D3,
3482241bfd6SKever Yang 	GPIO1D3_SFC_SIO3,
3492241bfd6SKever Yang 
3502241bfd6SKever Yang 	GPIO1D2_SHIFT		= 4,
3512241bfd6SKever Yang 	GPIO1D2_MASK		= 3 << GPIO1D2_SHIFT,
3522241bfd6SKever Yang 	GPIO1D2_GPIO		= 0,
3532241bfd6SKever Yang 	GPIO1D2_NAND_D2,
3542241bfd6SKever Yang 	GPIO1D2_EMMC_D2,
3552241bfd6SKever Yang 	GPIO1D2_SFC_SIO2,
3562241bfd6SKever Yang 
3572241bfd6SKever Yang 	GPIO1D1_SHIFT		= 2,
3582241bfd6SKever Yang 	GPIO1D1_MASK		= 3 << GPIO1D1_SHIFT,
3592241bfd6SKever Yang 	GPIO1D1_GPIO		= 0,
3602241bfd6SKever Yang 	GPIO1D1_NAND_D1,
3612241bfd6SKever Yang 	GPIO1D1_EMMC_D1,
3622241bfd6SKever Yang 	GPIO1D1_SFC_SIO1,
3632241bfd6SKever Yang 
3642241bfd6SKever Yang 	GPIO1D0_SHIFT		= 0,
3652241bfd6SKever Yang 	GPIO1D0_MASK		= 3 << GPIO1D0_SHIFT,
3662241bfd6SKever Yang 	GPIO1D0_GPIO		= 0,
3672241bfd6SKever Yang 	GPIO1D0_NAND_D0,
3682241bfd6SKever Yang 	GPIO1D0_EMMC_D0,
3692241bfd6SKever Yang 	GPIO1D0_SFC_SIO0,
3702241bfd6SKever Yang };
3712241bfd6SKever Yang 
3722241bfd6SKever Yang /* GRF_GPIO2A_IOMUX */
3732241bfd6SKever Yang enum {
3742241bfd6SKever Yang 	GPIO2A7_SHIFT		= 14,
3752241bfd6SKever Yang 	GPIO2A7_MASK		= 3 << GPIO2A7_SHIFT,
3762241bfd6SKever Yang 	GPIO2A7_GPIO		= 0,
3772241bfd6SKever Yang 	GPIO2A7_NAND_DQS,
3782241bfd6SKever Yang 	GPIO2A7_EMMC_CLKOUT,
3792241bfd6SKever Yang 
3802241bfd6SKever Yang 	GPIO2A6_SHIFT		= 12,
3812241bfd6SKever Yang 	GPIO2A6_MASK		= 1 << GPIO2A6_SHIFT,
3822241bfd6SKever Yang 	GPIO2A6_GPIO		= 0,
3832241bfd6SKever Yang 	GPIO2A6_NAND_CS0,
3842241bfd6SKever Yang 
3852241bfd6SKever Yang 	GPIO2A5_SHIFT		= 10,
3862241bfd6SKever Yang 	GPIO2A5_MASK		= 3 << GPIO2A5_SHIFT,
3872241bfd6SKever Yang 	GPIO2A5_GPIO		= 0,
3882241bfd6SKever Yang 	GPIO2A5_NAND_WP,
3892241bfd6SKever Yang 	GPIO2A5_EMMC_PWREN,
3902241bfd6SKever Yang 
3912241bfd6SKever Yang 	GPIO2A4_SHIFT		= 8,
3922241bfd6SKever Yang 	GPIO2A4_MASK		= 3 << GPIO2A4_SHIFT,
3932241bfd6SKever Yang 	GPIO2A4_GPIO		= 0,
3942241bfd6SKever Yang 	GPIO2A4_NAND_RDY,
3952241bfd6SKever Yang 	GPIO2A4_EMMC_CMD,
3962241bfd6SKever Yang 	GPIO2A3_SFC_CLK,
3972241bfd6SKever Yang 
3982241bfd6SKever Yang 	GPIO2A3_SHIFT		= 6,
3992241bfd6SKever Yang 	GPIO2A3_MASK		= 3 << GPIO2A3_SHIFT,
4002241bfd6SKever Yang 	GPIO2A3_GPIO		= 0,
4012241bfd6SKever Yang 	GPIO2A3_NAND_RDN,
4022241bfd6SKever Yang 	GPIO2A4_SFC_CSN1,
4032241bfd6SKever Yang 
4042241bfd6SKever Yang 	GPIO2A2_SHIFT		= 4,
4052241bfd6SKever Yang 	GPIO2A2_MASK		= 3 << GPIO2A2_SHIFT,
4062241bfd6SKever Yang 	GPIO2A2_GPIO		= 0,
4072241bfd6SKever Yang 	GPIO2A2_NAND_WRN,
4082241bfd6SKever Yang 	GPIO2A4_SFC_CSN0,
4092241bfd6SKever Yang 
4102241bfd6SKever Yang 	GPIO2A1_SHIFT		= 2,
4112241bfd6SKever Yang 	GPIO2A1_MASK		= 3 << GPIO2A1_SHIFT,
4122241bfd6SKever Yang 	GPIO2A1_GPIO		= 0,
4132241bfd6SKever Yang 	GPIO2A1_NAND_CLE,
4142241bfd6SKever Yang 	GPIO2A1_EMMC_CLKOUT,
4152241bfd6SKever Yang 
4162241bfd6SKever Yang 	GPIO2A0_SHIFT		= 0,
4172241bfd6SKever Yang 	GPIO2A0_MASK		= 3 << GPIO2A0_SHIFT,
4182241bfd6SKever Yang 	GPIO2A0_GPIO		= 0,
4192241bfd6SKever Yang 	GPIO2A0_NAND_ALE,
4202241bfd6SKever Yang 	GPIO2A0_SPI_CLK,
4212241bfd6SKever Yang };
4222241bfd6SKever Yang 
4232241bfd6SKever Yang /* GRF_GPIO2B_IOMUX */
4242241bfd6SKever Yang enum {
4252241bfd6SKever Yang 	GPIO2B7_SHIFT		= 14,
4262241bfd6SKever Yang 	GPIO2B7_MASK		= 3 << GPIO2B7_SHIFT,
4272241bfd6SKever Yang 	GPIO2B7_GPIO		= 0,
4282241bfd6SKever Yang 	GPIO2B7_LCDC0_D13,
4292241bfd6SKever Yang 	GPIO2B7_EBC_SDCE5,
4302241bfd6SKever Yang 	GPIO2B7_GMAC_RXER,
4312241bfd6SKever Yang 
4322241bfd6SKever Yang 	GPIO2B6_SHIFT		= 12,
4332241bfd6SKever Yang 	GPIO2B6_MASK		= 3 << GPIO2B6_SHIFT,
4342241bfd6SKever Yang 	GPIO2B6_GPIO		= 0,
4352241bfd6SKever Yang 	GPIO2B6_LCDC0_D12,
4362241bfd6SKever Yang 	GPIO2B6_EBC_SDCE4,
4372241bfd6SKever Yang 	GPIO2B6_GMAC_CLK,
4382241bfd6SKever Yang 
4392241bfd6SKever Yang 	GPIO2B5_SHIFT		= 10,
4402241bfd6SKever Yang 	GPIO2B5_MASK		= 3 << GPIO2B5_SHIFT,
4412241bfd6SKever Yang 	GPIO2B5_GPIO		= 0,
4422241bfd6SKever Yang 	GPIO2B5_LCDC0_D11,
4432241bfd6SKever Yang 	GPIO2B5_EBC_SDCE3,
4442241bfd6SKever Yang 	GPIO2B5_GMAC_TXEN,
4452241bfd6SKever Yang 
4462241bfd6SKever Yang 	GPIO2B4_SHIFT		= 8,
4472241bfd6SKever Yang 	GPIO2B4_MASK		= 3 << GPIO2B4_SHIFT,
4482241bfd6SKever Yang 	GPIO2B4_GPIO		= 0,
4492241bfd6SKever Yang 	GPIO2B4_LCDC0_D10,
4502241bfd6SKever Yang 	GPIO2B4_EBC_SDCE2,
4512241bfd6SKever Yang 	GPIO2B4_GMAC_MDIO,
4522241bfd6SKever Yang 
4532241bfd6SKever Yang 	GPIO2B3_SHIFT		= 6,
4542241bfd6SKever Yang 	GPIO2B3_MASK		= 3 << GPIO2B3_SHIFT,
4552241bfd6SKever Yang 	GPIO2B3_GPIO		= 0,
4562241bfd6SKever Yang 	GPIO2B3_LCDC0_DEN,
4572241bfd6SKever Yang 	GPIO2B3_EBC_GDCLK,
4582241bfd6SKever Yang 	GPIO2B3_GMAC_RXCLK,
4592241bfd6SKever Yang 
4602241bfd6SKever Yang 	GPIO2B2_SHIFT		= 4,
4612241bfd6SKever Yang 	GPIO2B2_MASK		= 3 << GPIO2B2_SHIFT,
4622241bfd6SKever Yang 	GPIO2B2_GPIO		= 0,
4632241bfd6SKever Yang 	GPIO2B2_LCDC0_VSYNC,
4642241bfd6SKever Yang 	GPIO2B2_EBC_SDOE,
4652241bfd6SKever Yang 	GPIO2B2_GMAC_CRS,
4662241bfd6SKever Yang 
4672241bfd6SKever Yang 	GPIO2B1_SHIFT		= 2,
4682241bfd6SKever Yang 	GPIO2B1_MASK		= 3 << GPIO2B1_SHIFT,
4692241bfd6SKever Yang 	GPIO2B1_GPIO		= 0,
4702241bfd6SKever Yang 	GPIO2B1_LCDC0_HSYNC,
4712241bfd6SKever Yang 	GPIO2B1_EBC_SDLE,
4722241bfd6SKever Yang 	GPIO2B1_GMAC_TXCLK,
4732241bfd6SKever Yang 
4742241bfd6SKever Yang 	GPIO2B0_SHIFT		= 0,
4752241bfd6SKever Yang 	GPIO2B0_MASK		= 3 << GPIO2B0_SHIFT,
4762241bfd6SKever Yang 	GPIO2B0_GPIO		= 0,
4772241bfd6SKever Yang 	GPIO2B0_LCDC0_DCLK,
4782241bfd6SKever Yang 	GPIO2B0_EBC_SDCLK,
4792241bfd6SKever Yang 	GPIO2B0_GMAC_RXDV,
4802241bfd6SKever Yang };
4812241bfd6SKever Yang 
4822241bfd6SKever Yang /* GRF_GPIO2C_IOMUX */
4832241bfd6SKever Yang enum {
4842241bfd6SKever Yang 	GPIO2C3_SHIFT		= 6,
4852241bfd6SKever Yang 	GPIO2C3_MASK		= 3 << GPIO2C3_SHIFT,
4862241bfd6SKever Yang 	GPIO2C3_GPIO		= 0,
4872241bfd6SKever Yang 	GPIO2C3_LCDC0_D17,
4882241bfd6SKever Yang 	GPIO2C3_EBC_GDPWR0,
4892241bfd6SKever Yang 	GPIO2C3_GMAC_TXD0,
4902241bfd6SKever Yang 
4912241bfd6SKever Yang 	GPIO2C2_SHIFT		= 4,
4922241bfd6SKever Yang 	GPIO2C2_MASK		= 3 << GPIO2C2_SHIFT,
4932241bfd6SKever Yang 	GPIO2C2_GPIO		= 0,
4942241bfd6SKever Yang 	GPIO2C2_LCDC0_D16,
4952241bfd6SKever Yang 	GPIO2C2_EBC_GDSP,
4962241bfd6SKever Yang 	GPIO2C2_GMAC_TXD1,
4972241bfd6SKever Yang 
4982241bfd6SKever Yang 	GPIO2C1_SHIFT		= 2,
4992241bfd6SKever Yang 	GPIO2C1_MASK		= 3 << GPIO2C1_SHIFT,
5002241bfd6SKever Yang 	GPIO2C1_GPIO		= 0,
5012241bfd6SKever Yang 	GPIO2C1_LCDC0_D15,
5022241bfd6SKever Yang 	GPIO2C1_EBC_GDOE,
5032241bfd6SKever Yang 	GPIO2C1_GMAC_RXD0,
5042241bfd6SKever Yang 
5052241bfd6SKever Yang 	GPIO2C0_SHIFT		= 0,
5062241bfd6SKever Yang 	GPIO2C0_MASK		= 3 << GPIO2C0_SHIFT,
5072241bfd6SKever Yang 	GPIO2C0_GPIO		= 0,
5082241bfd6SKever Yang 	GPIO2C0_LCDC0_D14,
5092241bfd6SKever Yang 	GPIO2C0_EBC_VCOM,
5102241bfd6SKever Yang 	GPIO2C0_GMAC_RXD1,
5112241bfd6SKever Yang };
5122241bfd6SKever Yang 
5132241bfd6SKever Yang /* GRF_GPIO2D_IOMUX */
5142241bfd6SKever Yang enum {
5152241bfd6SKever Yang 	GPIO2D6_SHIFT		= 12,
5162241bfd6SKever Yang 	GPIO2D6_MASK		= 3 << GPIO2D6_SHIFT,
5172241bfd6SKever Yang 	GPIO2D6_GPIO		= 0,
5182241bfd6SKever Yang 	GPIO2D6_LCDC0_D22,
5192241bfd6SKever Yang 	GPIO2D6_GMAC_COL	= 4,
5202241bfd6SKever Yang 
5212241bfd6SKever Yang 	GPIO2D1_SHIFT		= 2,
5222241bfd6SKever Yang 	GPIO2D1_MASK		= 3 << GPIO2D1_SHIFT,
5232241bfd6SKever Yang 	GPIO2D1_GPIO		= 0,
5242241bfd6SKever Yang 	GPIO2D1_GMAC_MDC	= 3,
5252241bfd6SKever Yang };
5262241bfd6SKever Yang 
5272241bfd6SKever Yang /* GRF_GPIO2C_IOMUX2 */
5282241bfd6SKever Yang enum {
5292241bfd6SKever Yang 	GPIO2C7_SHIFT		= 12,
5302241bfd6SKever Yang 	GPIO2C7_MASK		= 7 << GPIO2C7_SHIFT,
5312241bfd6SKever Yang 	GPIO2C7_GPIO		= 0,
5322241bfd6SKever Yang 	GPIO2C7_GMAC_TXD3	= 4,
5332241bfd6SKever Yang 
5342241bfd6SKever Yang 	GPIO2C6_SHIFT		= 12,
5352241bfd6SKever Yang 	GPIO2C6_MASK		= 7 << GPIO2C6_SHIFT,
5362241bfd6SKever Yang 	GPIO2C6_GPIO		= 0,
5372241bfd6SKever Yang 	GPIO2C6_GMAC_TXD2	= 4,
5382241bfd6SKever Yang 
539*9f9d0158SJoseph Chen 	GPIO2C5_SHIFT		= 4,
5402241bfd6SKever Yang 	GPIO2C5_MASK		= 7 << GPIO2C5_SHIFT,
5412241bfd6SKever Yang 	GPIO2C5_GPIO		= 0,
5422241bfd6SKever Yang 	GPIO2C5_I2C2_SCL	= 3,
5432241bfd6SKever Yang 	GPIO2C5_GMAC_RXD2,
5442241bfd6SKever Yang 
545*9f9d0158SJoseph Chen 	GPIO2C4_SHIFT		= 0,
5462241bfd6SKever Yang 	GPIO2C4_MASK		= 7 << GPIO2C4_SHIFT,
5472241bfd6SKever Yang 	GPIO2C4_GPIO		= 0,
5482241bfd6SKever Yang 	GPIO2C4_I2C2_SDA	= 3,
5492241bfd6SKever Yang 	GPIO2C4_GMAC_RXD2,
5502241bfd6SKever Yang };
5512241bfd6SKever Yang #endif
552