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