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