xref: /rk3399_rockchip-uboot/arch/arm/include/asm/arch-rockchip/grf_rv1108.h (revision a1e3d296959e9db987307718f4d4704938e170b9)
109aa7c46SAndy Yan /*
295b95808SZhihuan He  * Copyright (C) 2018 Rockchip Electronics Co., Ltd
395b95808SZhihuan He  * Author: Zhihuan He <huan.he@rock-chips.com>
409aa7c46SAndy Yan  * SPDX-License-Identifier:	GPL-2.0+
509aa7c46SAndy Yan  */
695b95808SZhihuan He 
709aa7c46SAndy Yan #ifndef _ASM_ARCH_GRF_RV1108_H
809aa7c46SAndy Yan #define _ASM_ARCH_GRF_RV1108_H
909aa7c46SAndy Yan 
1009aa7c46SAndy Yan #include <common.h>
1109aa7c46SAndy Yan 
1209aa7c46SAndy Yan struct rv1108_grf {
1309aa7c46SAndy Yan 	u32 reserved[4];
1409aa7c46SAndy Yan 	u32 gpio1a_iomux;
1509aa7c46SAndy Yan 	u32 gpio1b_iomux;
1609aa7c46SAndy Yan 	u32 gpio1c_iomux;
1709aa7c46SAndy Yan 	u32 gpio1d_iomux;
1809aa7c46SAndy Yan 	u32 gpio2a_iomux;
1909aa7c46SAndy Yan 	u32 gpio2b_iomux;
2009aa7c46SAndy Yan 	u32 gpio2c_iomux;
2109aa7c46SAndy Yan 	u32 gpio2d_iomux;
2209aa7c46SAndy Yan 	u32 gpio3a_iomux;
2309aa7c46SAndy Yan 	u32 gpio3b_iomux;
2409aa7c46SAndy Yan 	u32 gpio3c_iomux;
2509aa7c46SAndy Yan 	u32 gpio3d_iomux;
2609aa7c46SAndy Yan 	u32 reserved1[52];
2709aa7c46SAndy Yan 	u32 gpio1a_pull;
2809aa7c46SAndy Yan 	u32 gpio1b_pull;
2909aa7c46SAndy Yan 	u32 gpio1c_pull;
3009aa7c46SAndy Yan 	u32 gpio1d_pull;
3109aa7c46SAndy Yan 	u32 gpio2a_pull;
3209aa7c46SAndy Yan 	u32 gpio2b_pull;
3309aa7c46SAndy Yan 	u32 gpio2c_pull;
3409aa7c46SAndy Yan 	u32 gpio2d_pull;
3509aa7c46SAndy Yan 	u32 gpio3a_pull;
3609aa7c46SAndy Yan 	u32 gpio3b_pull;
3709aa7c46SAndy Yan 	u32 gpio3c_pull;
3809aa7c46SAndy Yan 	u32 gpio3d_pull;
3909aa7c46SAndy Yan 	u32 reserved2[52];
4009aa7c46SAndy Yan 	u32 gpio1a_drv;
4109aa7c46SAndy Yan 	u32 gpio1b_drv;
4209aa7c46SAndy Yan 	u32 gpio1c_drv;
4309aa7c46SAndy Yan 	u32 gpio1d_drv;
4409aa7c46SAndy Yan 	u32 gpio2a_drv;
4509aa7c46SAndy Yan 	u32 gpio2b_drv;
4609aa7c46SAndy Yan 	u32 gpio2c_drv;
4709aa7c46SAndy Yan 	u32 gpio2d_drv;
4809aa7c46SAndy Yan 	u32 gpio3a_drv;
4909aa7c46SAndy Yan 	u32 gpio3b_drv;
5009aa7c46SAndy Yan 	u32 gpio3c_drv;
5109aa7c46SAndy Yan 	u32 gpio3d_drv;
5209aa7c46SAndy Yan 	u32 reserved3[50];
5309aa7c46SAndy Yan 	u32 gpio1l_sr;
5409aa7c46SAndy Yan 	u32 gpio1h_sr;
5509aa7c46SAndy Yan 	u32 gpio2l_sr;
5609aa7c46SAndy Yan 	u32 gpio2h_sr;
5709aa7c46SAndy Yan 	u32 gpio3l_sr;
5809aa7c46SAndy Yan 	u32 gpio3h_sr;
5909aa7c46SAndy Yan 	u32 reserved4[26];
6009aa7c46SAndy Yan 	u32 gpio1l_smt;
6109aa7c46SAndy Yan 	u32 gpio1h_smt;
6209aa7c46SAndy Yan 	u32 gpio2l_smt;
6309aa7c46SAndy Yan 	u32 gpio2h_smt;
6409aa7c46SAndy Yan 	u32 gpio3l_smt;
6509aa7c46SAndy Yan 	u32 gpio3h_smt;
6609aa7c46SAndy Yan 	u32 reserved5[24];
6709aa7c46SAndy Yan 	u32 soc_con0;
6809aa7c46SAndy Yan 	u32 soc_con1;
6909aa7c46SAndy Yan 	u32 soc_con2;
7009aa7c46SAndy Yan 	u32 soc_con3;
7109aa7c46SAndy Yan 	u32 soc_con4;
7209aa7c46SAndy Yan 	u32 soc_con5;
7309aa7c46SAndy Yan 	u32 soc_con6;
7409aa7c46SAndy Yan 	u32 soc_con7;
7509aa7c46SAndy Yan 	u32 soc_con8;
7609aa7c46SAndy Yan 	u32 soc_con9;
7709aa7c46SAndy Yan 	u32 soc_con10;
7809aa7c46SAndy Yan 	u32 soc_con11;
7909aa7c46SAndy Yan 	u32 reserved6[20];
8009aa7c46SAndy Yan 	u32 soc_status0;
8109aa7c46SAndy Yan 	u32 soc_status1;
8209aa7c46SAndy Yan 	u32 reserved7[30];
8309aa7c46SAndy Yan 	u32 cpu_con0;
8409aa7c46SAndy Yan 	u32 cpu_con1;
8509aa7c46SAndy Yan 	u32 reserved8[30];
8609aa7c46SAndy Yan 	u32 os_reg0;
8709aa7c46SAndy Yan 	u32 os_reg1;
8809aa7c46SAndy Yan 	u32 os_reg2;
8909aa7c46SAndy Yan 	u32 os_reg3;
9009aa7c46SAndy Yan 	u32 reserved9[29];
9109aa7c46SAndy Yan 	u32 ddr_status;
9209aa7c46SAndy Yan 	u32 reserved10[30];
9309aa7c46SAndy Yan 	u32 sig_det_con;
9409aa7c46SAndy Yan 	u32 reserved11[3];
9509aa7c46SAndy Yan 	u32 sig_det_status;
9609aa7c46SAndy Yan 	u32 reserved12[3];
9709aa7c46SAndy Yan 	u32 sig_det_clr;
9809aa7c46SAndy Yan 	u32 reserved13[23];
9909aa7c46SAndy Yan 	u32 host_con0;
10009aa7c46SAndy Yan 	u32 host_con1;
10109aa7c46SAndy Yan 	u32 reserved14[2];
10209aa7c46SAndy Yan 	u32 dma_con0;
10309aa7c46SAndy Yan 	u32 dma_con1;
104*329c0b94SDavid Wu 	u32 reserved15[59];
10509aa7c46SAndy Yan 	u32 uoc_status;
106*329c0b94SDavid Wu 	u32 reserved16[2];
10709aa7c46SAndy Yan 	u32 host_status;
108*329c0b94SDavid Wu 	u32 reserved17[59];
10909aa7c46SAndy Yan 	u32 gmac_con0;
110*329c0b94SDavid Wu 	u32 reserved18[191];
11109aa7c46SAndy Yan 	u32 chip_id;
11209aa7c46SAndy Yan };
113*329c0b94SDavid Wu 
114*329c0b94SDavid Wu check_member(rv1108_grf, chip_id, 0x0c00);
11509aa7c46SAndy Yan 
11695b95808SZhihuan He struct rv1108_pmu_grf {
11795b95808SZhihuan He 	u32 gpioa_iomux;
11895b95808SZhihuan He 	u32 gpiob_iomux;
11995b95808SZhihuan He 	u32 gpioc_iomux;
12095b95808SZhihuan He 	u32 reserved1;
12195b95808SZhihuan He 	u32 gpioa_p;
12295b95808SZhihuan He 	u32 gpiob_p;
12395b95808SZhihuan He 	u32 gpioc_p;
12495b95808SZhihuan He 	u32 reserved2;
12595b95808SZhihuan He 	u32 gpioa_e;
12695b95808SZhihuan He 	u32 gpiob_e;
12795b95808SZhihuan He 	u32 gpioc_e;
12895b95808SZhihuan He 	u32 reserved3;
12995b95808SZhihuan He 	u32 gpioa_smt;
13095b95808SZhihuan He 	u32 gpiob_smt;
13195b95808SZhihuan He 	u32 gpioc_smt;
13295b95808SZhihuan He 	u32 reserved4;
13395b95808SZhihuan He 	u32 gpio0a_sr;
13495b95808SZhihuan He 	u32 gpio0b_sr;
13595b95808SZhihuan He 	u32 gpio0c_sr;
13695b95808SZhihuan He 	u32 reserved5[(0x100-0x4c)/4];
13795b95808SZhihuan He 	u32 soc_con[4];
13895b95808SZhihuan He 	u32 reserved6[(0x180-0x110)/4];
13995b95808SZhihuan He 	u32 dll_con[2];
14095b95808SZhihuan He 	u32 reserved7[2];
14195b95808SZhihuan He 	u32 dll_status[2];
14295b95808SZhihuan He 	u32 reserved8[(0x200-0x198)/4];
14395b95808SZhihuan He 	u32 os_reg[4];
14495b95808SZhihuan He 	u32 reserved9[(0x300-0x210)/4];
14595b95808SZhihuan He 	u32 fast_boot_addr;
14695b95808SZhihuan He 	u32 reserved10[(0x380-0x304)/4];
14795b95808SZhihuan He 	u32 a7_jtag_mask;
14895b95808SZhihuan He 	u32 reserved11[(0x388-0x384)/4];
14995b95808SZhihuan He 	u32 ceva_jtag_mask;
15095b95808SZhihuan He };
15195b95808SZhihuan He check_member(rv1108_pmu_grf, ceva_jtag_mask, 0x388);
15295b95808SZhihuan He 
15395b95808SZhihuan He enum {
15495b95808SZhihuan He 	/* GRF_SOC_CON0 */
15595b95808SZhihuan He 	MSCH_MAINDDR3_SHIFT		= 4,
15695b95808SZhihuan He 	MSCH_MAINDDR3			= 1 << MSCH_MAINDDR3_SHIFT,
15795b95808SZhihuan He 	MSCH_MAINPARTIALPOP_SHIFT	= 5,
15895b95808SZhihuan He 	MSCH_MAINPARTIALPOP		= 1 << MSCH_MAINPARTIALPOP_SHIFT,
15995b95808SZhihuan He 	MSCH_MAINPARTIALPOP_MASK	= 1 << MSCH_MAINPARTIALPOP_SHIFT,
16095b95808SZhihuan He };
16195b95808SZhihuan He 
16295b95808SZhihuan He enum {
16395b95808SZhihuan He 	/* PMU_GRF_SOC_CON0 */
16495b95808SZhihuan He 	DDRPHY_BUFFEREN_CORE_SHIFT	= 2,
16595b95808SZhihuan He 	DDRPHY_BUFFEREN_CORE_MASK	= 1 << DDRPHY_BUFFEREN_CORE_SHIFT,
16695b95808SZhihuan He 	DDRPHY_BUFFEREN_CORE_EN		= 1 << DDRPHY_BUFFEREN_CORE_SHIFT,
16795b95808SZhihuan He };
16809aa7c46SAndy Yan #endif
169