2017-11-27 13:16:35 -05:00
/*
* Copyright 2017 Advanced Micro Devices , Inc .
*
* Permission is hereby granted , free of charge , to any person obtaining a
* copy of this software and associated documentation files ( the " Software " ) ,
* to deal in the Software without restriction , including without limitation
* the rights to use , copy , modify , merge , publish , distribute , sublicense ,
* and / or sell copies of the Software , and to permit persons to whom the
* Software is furnished to do so , subject to the following conditions :
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software .
*
* THE SOFTWARE IS PROVIDED " AS IS " , WITHOUT WARRANTY OF ANY KIND , EXPRESS OR
* IMPLIED , INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY ,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT . IN NO EVENT SHALL
* THE COPYRIGHT HOLDER ( S ) OR AUTHOR ( S ) BE LIABLE FOR ANY CLAIM , DAMAGES OR
* OTHER LIABILITY , WHETHER IN AN ACTION OF CONTRACT , TORT OR OTHERWISE ,
* ARISING FROM , OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE .
*
*/
# include "amdgpu.h"
# include "soc15.h"
# include "soc15_common.h"
2018-01-15 15:09:40 +08:00
# include "soc15_hw_ip.h"
# include "vega10_ip_offset.h"
2017-11-27 13:16:35 -05:00
int vega10_reg_base_init ( struct amdgpu_device * adev )
{
/* HW has more IP blocks, only initialized the blocke beend by our driver */
uint32_t i ;
for ( i = 0 ; i < MAX_INSTANCE ; + + i ) {
adev - > reg_offset [ GC_HWIP ] [ i ] = ( uint32_t * ) ( & ( GC_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ HDP_HWIP ] [ i ] = ( uint32_t * ) ( & ( HDP_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ MMHUB_HWIP ] [ i ] = ( uint32_t * ) ( & ( MMHUB_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ ATHUB_HWIP ] [ i ] = ( uint32_t * ) ( & ( ATHUB_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ NBIO_HWIP ] [ i ] = ( uint32_t * ) ( & ( NBIO_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ MP0_HWIP ] [ i ] = ( uint32_t * ) ( & ( MP0_BASE . instance [ i ] ) ) ;
2018-04-10 12:30:59 +08:00
adev - > reg_offset [ MP1_HWIP ] [ i ] = ( uint32_t * ) ( & ( MP1_BASE . instance [ i ] ) ) ;
2017-11-27 13:16:35 -05:00
adev - > reg_offset [ UVD_HWIP ] [ i ] = ( uint32_t * ) ( & ( UVD_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ VCE_HWIP ] [ i ] = ( uint32_t * ) ( & ( VCE_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ VCN_HWIP ] [ i ] = ( uint32_t * ) ( & ( VCN_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ DF_HWIP ] [ i ] = ( uint32_t * ) ( & ( DF_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ DCE_HWIP ] [ i ] = ( uint32_t * ) ( & ( DCE_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ OSSSYS_HWIP ] [ i ] = ( uint32_t * ) ( & ( OSSSYS_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ SDMA0_HWIP ] [ i ] = ( uint32_t * ) ( & ( SDMA0_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ SDMA1_HWIP ] [ i ] = ( uint32_t * ) ( & ( SDMA1_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ SMUIO_HWIP ] [ i ] = ( uint32_t * ) ( & ( SMUIO_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ PWR_HWIP ] [ i ] = ( uint32_t * ) ( & ( PWR_BASE . instance [ i ] ) ) ;
adev - > reg_offset [ NBIF_HWIP ] [ i ] = ( uint32_t * ) ( & ( NBIF_BASE . instance [ i ] ) ) ;
2018-04-10 12:30:59 +08:00
adev - > reg_offset [ THM_HWIP ] [ i ] = ( uint32_t * ) ( & ( THM_BASE . instance [ i ] ) ) ;
2018-07-05 16:34:13 +08:00
adev - > reg_offset [ CLK_HWIP ] [ i ] = ( uint32_t * ) ( & ( CLK_BASE . instance [ i ] ) ) ;
2017-11-27 13:16:35 -05:00
}
return 0 ;
}