xref: /openbmc/u-boot/arch/arm/include/asm/arch-rockchip/grf_rk3368.h (revision 83d290c56fab2d38cd1ab4c4cc7099559c1d5046)
1*83d290c5STom Rini /* SPDX-License-Identifier: GPL-2.0+ */
2c1828cf7SPhilipp Tomsich /*
3c1828cf7SPhilipp Tomsich  * (C) Copyright 2016 Rockchip Electronics Co., Ltd
4c1828cf7SPhilipp Tomsich  * (C) Copyright 2017 Theobroma Systems Design und Consulting GmbH
527600a58SAndy Yan  */
627600a58SAndy Yan #ifndef _ASM_ARCH_GRF_RK3368_H
727600a58SAndy Yan #define _ASM_ARCH_GRF_RK3368_H
827600a58SAndy Yan 
927600a58SAndy Yan #include <common.h>
1027600a58SAndy Yan 
1127600a58SAndy Yan struct rk3368_grf {
1227600a58SAndy Yan 	u32 gpio1a_iomux;
1327600a58SAndy Yan 	u32 gpio1b_iomux;
1427600a58SAndy Yan 	u32 gpio1c_iomux;
1527600a58SAndy Yan 	u32 gpio1d_iomux;
1627600a58SAndy Yan 	u32 gpio2a_iomux;
1727600a58SAndy Yan 	u32 gpio2b_iomux;
1827600a58SAndy Yan 	u32 gpio2c_iomux;
1927600a58SAndy Yan 	u32 gpio2d_iomux;
2027600a58SAndy Yan 	u32 gpio3a_iomux;
2127600a58SAndy Yan 	u32 gpio3b_iomux;
2227600a58SAndy Yan 	u32 gpio3c_iomux;
2327600a58SAndy Yan 	u32 gpio3d_iomux;
2427600a58SAndy Yan 	u32 reserved[0x34];
2527600a58SAndy Yan 	u32 gpio1a_pull;
2627600a58SAndy Yan 	u32 gpio1b_pull;
2727600a58SAndy Yan 	u32 gpio1c_pull;
2827600a58SAndy Yan 	u32 gpio1d_pull;
2927600a58SAndy Yan 	u32 gpio2a_pull;
3027600a58SAndy Yan 	u32 gpio2b_pull;
3127600a58SAndy Yan 	u32 gpio2c_pull;
3227600a58SAndy Yan 	u32 gpio2d_pull;
3327600a58SAndy Yan 	u32 gpio3a_pull;
3427600a58SAndy Yan 	u32 gpio3b_pull;
3527600a58SAndy Yan 	u32 gpio3c_pull;
3627600a58SAndy Yan 	u32 gpio3d_pull;
3727600a58SAndy Yan 	u32 reserved1[0x34];
3827600a58SAndy Yan 	u32 gpio1a_drv;
3927600a58SAndy Yan 	u32 gpio1b_drv;
4027600a58SAndy Yan 	u32 gpio1c_drv;
4127600a58SAndy Yan 	u32 gpio1d_drv;
4227600a58SAndy Yan 	u32 gpio2a_drv;
4327600a58SAndy Yan 	u32 gpio2b_drv;
4427600a58SAndy Yan 	u32 gpio2c_drv;
4527600a58SAndy Yan 	u32 gpio2d_drv;
4627600a58SAndy Yan 	u32 gpio3a_drv;
4727600a58SAndy Yan 	u32 gpio3b_drv;
4827600a58SAndy Yan 	u32 gpio3c_drv;
4927600a58SAndy Yan 	u32 gpio3d_drv;
5027600a58SAndy Yan 	u32 reserved2[0x34];
5127600a58SAndy Yan 	u32 gpio1l_sr;
5227600a58SAndy Yan 	u32 gpio1h_sr;
5327600a58SAndy Yan 	u32 gpio2l_sr;
5427600a58SAndy Yan 	u32 gpio2h_sr;
5527600a58SAndy Yan 	u32 gpio3l_sr;
5627600a58SAndy Yan 	u32 gpio3h_sr;
5727600a58SAndy Yan 	u32 reserved3[0x1a];
5827600a58SAndy Yan 	u32 gpio_smt;
5927600a58SAndy Yan 	u32 reserved4[0x1f];
6027600a58SAndy Yan 	u32 soc_con0;
6127600a58SAndy Yan 	u32 soc_con1;
6227600a58SAndy Yan 	u32 soc_con2;
6327600a58SAndy Yan 	u32 soc_con3;
6427600a58SAndy Yan 	u32 soc_con4;
6527600a58SAndy Yan 	u32 soc_con5;
6627600a58SAndy Yan 	u32 soc_con6;
6727600a58SAndy Yan 	u32 soc_con7;
6827600a58SAndy Yan 	u32 soc_con8;
6927600a58SAndy Yan 	u32 soc_con9;
7027600a58SAndy Yan 	u32 soc_con10;
7127600a58SAndy Yan 	u32 soc_con11;
7227600a58SAndy Yan 	u32 soc_con12;
7327600a58SAndy Yan 	u32 soc_con13;
7427600a58SAndy Yan 	u32 soc_con14;
7527600a58SAndy Yan 	u32 soc_con15;
7627600a58SAndy Yan 	u32 soc_con16;
7727600a58SAndy Yan 	u32 soc_con17;
78403e9cbcSPhilipp Tomsich 	u32 reserved5[0x6e];
79403e9cbcSPhilipp Tomsich 	u32 ddrc0_con0;
8027600a58SAndy Yan };
8127600a58SAndy Yan check_member(rk3368_grf, soc_con17, 0x444);
82403e9cbcSPhilipp Tomsich check_member(rk3368_grf, ddrc0_con0, 0x600);
8327600a58SAndy Yan 
8427600a58SAndy Yan struct rk3368_pmu_grf {
8527600a58SAndy Yan 	u32 gpio0a_iomux;
8627600a58SAndy Yan 	u32 gpio0b_iomux;
8727600a58SAndy Yan 	u32 gpio0c_iomux;
8827600a58SAndy Yan 	u32 gpio0d_iomux;
8927600a58SAndy Yan 	u32 gpio0a_pull;
9027600a58SAndy Yan 	u32 gpio0b_pull;
9127600a58SAndy Yan 	u32 gpio0c_pull;
9227600a58SAndy Yan 	u32 gpio0d_pull;
9327600a58SAndy Yan 	u32 gpio0a_drv;
9427600a58SAndy Yan 	u32 gpio0b_drv;
9527600a58SAndy Yan 	u32 gpio0c_drv;
9627600a58SAndy Yan 	u32 gpio0d_drv;
9727600a58SAndy Yan 	u32 gpio0l_sr;
9827600a58SAndy Yan 	u32 gpio0h_sr;
99525a8c8fSPhilipp Tomsich 	u32 reserved[0x72];
100cc89369fSKever Yang 	u32 os_reg[4];
10127600a58SAndy Yan };
102525a8c8fSPhilipp Tomsich check_member(rk3368_pmu_grf, gpio0h_sr, 0x34);
103525a8c8fSPhilipp Tomsich check_member(rk3368_pmu_grf, os_reg[0], 0x200);
10427600a58SAndy Yan 
10527600a58SAndy Yan /*GRF_SOC_CON11/12/13*/
10627600a58SAndy Yan enum {
10727600a58SAndy Yan 	MCU_SRAM_BASE_BIT27_BIT12_SHIFT	= 0,
10827600a58SAndy Yan 	MCU_SRAM_BASE_BIT27_BIT12_MASK	= GENMASK(15, 0),
10927600a58SAndy Yan };
11027600a58SAndy Yan 
11127600a58SAndy Yan /*GRF_SOC_CON12*/
11227600a58SAndy Yan enum {
11327600a58SAndy Yan 	MCU_EXSRAM_BASE_BIT27_BIT12_SHIFT  = 0,
11427600a58SAndy Yan 	MCU_EXSRAM_BASE_BIT27_BIT12_MASK   = GENMASK(15, 0),
11527600a58SAndy Yan };
11627600a58SAndy Yan 
11727600a58SAndy Yan /*GRF_SOC_CON13*/
11827600a58SAndy Yan enum {
11927600a58SAndy Yan 	MCU_EXPERI_BASE_BIT27_BIT12_SHIFT  = 0,
12027600a58SAndy Yan 	MCU_EXPERI_BASE_BIT27_BIT12_MASK   = GENMASK(15, 0),
12127600a58SAndy Yan };
12227600a58SAndy Yan 
12327600a58SAndy Yan /*GRF_SOC_CON14*/
12427600a58SAndy Yan enum {
12527600a58SAndy Yan 	MCU_EXPERI_BASE_BIT31_BIT28_SHIFT	= 12,
12627600a58SAndy Yan 	MCU_EXPERI_BASE_BIT31_BIT28_MASK	= GENMASK(15, 12),
12727600a58SAndy Yan 	MCU_EXSRAM_BASE_BIT31_BIT28_SHIFT	= 8,
12827600a58SAndy Yan 	MCU_EXSRAM_BASE_BIT31_BIT28_MASK	= GENMASK(11, 8),
12927600a58SAndy Yan 	MCU_SRAM_BASE_BIT31_BIT28_SHIFT		= 4,
13027600a58SAndy Yan 	MCU_SRAM_BASE_BIT31_BIT28_MASK		= GENMASK(7, 4),
13127600a58SAndy Yan 	MCU_CODE_BASE_BIT31_BIT28_SHIFT		= 0,
13227600a58SAndy Yan 	MCU_CODE_BASE_BIT31_BIT28_MASK		= GENMASK(3, 0),
13327600a58SAndy Yan };
134793f2fd2SPhilipp Tomsich 
13527600a58SAndy Yan #endif
136