217 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
			
		
		
	
	
			217 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			ArmAsm
		
	
	
	
/* SPDX-License-Identifier: GPL-2.0+ */
 | 
						|
/*
 | 
						|
 * Copyright (C) 2016 Freescale Semiconductor, Inc.
 | 
						|
 * Copyright 2019 NXP
 | 
						|
 */
 | 
						|
 | 
						|
#include <config.h>
 | 
						|
 | 
						|
.macro imx7ulp_ddr_freq_decrease
 | 
						|
	ldr r2, =0x403f0000
 | 
						|
	ldr r3, =0x00000000
 | 
						|
	str r3, [r2, #0xdc]
 | 
						|
 | 
						|
	ldr r2, =0x403e0000
 | 
						|
	ldr r3, =0x01000020
 | 
						|
	str r3, [r2, #0x40]
 | 
						|
	ldr r3, =0x01000000
 | 
						|
	str r3, [r2, #0x500]
 | 
						|
 | 
						|
	ldr r3, =0x80808080
 | 
						|
	str r3, [r2, #0x50c]
 | 
						|
	ldr r3, =0x00160002
 | 
						|
	str r3, [r2, #0x508]
 | 
						|
	ldr r3, =0x00000001
 | 
						|
	str r3, [r2, #0x510]
 | 
						|
	ldr r3, =0x00000014
 | 
						|
	str r3, [r2, #0x514]
 | 
						|
	ldr r3, =0x00000001
 | 
						|
	str r3, [r2, #0x500]
 | 
						|
 | 
						|
	ldr r3, =0x01000000
 | 
						|
wait1:
 | 
						|
	ldr r4, [r2, #0x500]
 | 
						|
	and r4, r3
 | 
						|
	cmp r4, r3
 | 
						|
	bne wait1
 | 
						|
 | 
						|
	ldr r3, =0x8080801B
 | 
						|
	str r3, [r2, #0x50c]
 | 
						|
 | 
						|
	ldr r3, =0x00000040
 | 
						|
wait2:
 | 
						|
	ldr r4, [r2, #0x50c]
 | 
						|
	and r4, r3
 | 
						|
	cmp r4, r3
 | 
						|
	bne wait2
 | 
						|
 | 
						|
	ldr r3, =0x00000001
 | 
						|
	str r3, [r2, #0x30]
 | 
						|
	ldr r3, =0x11000020
 | 
						|
	str r3, [r2, #0x40]
 | 
						|
 | 
						|
	ldr r2, =0x403f0000
 | 
						|
	ldr r3, =0x42000000
 | 
						|
	str r3, [r2, #0xdc]
 | 
						|
 | 
						|
.endm
 | 
						|
 | 
						|
.macro imx7ulp_evk_ddr_setting
 | 
						|
 | 
						|
	imx7ulp_ddr_freq_decrease
 | 
						|
 | 
						|
	/* Enable MMDC PCC clock */
 | 
						|
	ldr r2, =0x40b30000
 | 
						|
	ldr r3, =0x40000000
 | 
						|
	str r3, [r2, #0xac]
 | 
						|
 | 
						|
	/* Configure DDR pad */
 | 
						|
	ldr r0, =0x40ad0000
 | 
						|
	ldr r1, =0x00040000
 | 
						|
	str r1, [r0, #0x128]
 | 
						|
	ldr r1, =0x0
 | 
						|
	str r1, [r0, #0xf8]
 | 
						|
	ldr r1, =0x00000180
 | 
						|
	str r1, [r0, #0xd8]
 | 
						|
	ldr r1, =0x00000180
 | 
						|
	str r1, [r0, #0x108]
 | 
						|
	ldr r1, =0x00000180
 | 
						|
	str r1, [r0, #0x104]
 | 
						|
	ldr r1, =0x00010000
 | 
						|
	str r1, [r0, #0x124]
 | 
						|
	ldr r1, =0x0000018C
 | 
						|
	str r1, [r0, #0x80]
 | 
						|
	ldr r1, =0x0000018C
 | 
						|
	str r1, [r0, #0x84]
 | 
						|
	ldr r1, =0x0000018C
 | 
						|
	str r1, [r0, #0x88]
 | 
						|
	ldr r1, =0x0000018C
 | 
						|
	str r1, [r0, #0x8c]
 | 
						|
 | 
						|
	ldr r1, =0x00010000
 | 
						|
	str r1, [r0, #0x120]
 | 
						|
	ldr r1, =0x00000180
 | 
						|
	str r1, [r0, #0x10c]
 | 
						|
	ldr r1, =0x00000180
 | 
						|
	str r1, [r0, #0x110]
 | 
						|
	ldr r1, =0x00000180
 | 
						|
	str r1, [r0, #0x114]
 | 
						|
	ldr r1, =0x00000180
 | 
						|
	str r1, [r0, #0x118]
 | 
						|
	ldr r1, =0x00000180
 | 
						|
	str r1, [r0, #0x90]
 | 
						|
	ldr r1, =0x00000180
 | 
						|
	str r1, [r0, #0x94]
 | 
						|
	ldr r1, =0x00000180
 | 
						|
	str r1, [r0, #0x98]
 | 
						|
	ldr r1, =0x00000180
 | 
						|
	str r1, [r0, #0x9c]
 | 
						|
	ldr r1, =0x00040000
 | 
						|
	str r1, [r0, #0xe0]
 | 
						|
	ldr r1, =0x00040000
 | 
						|
	str r1, [r0, #0xe4]
 | 
						|
 | 
						|
	ldr r0, =0x40ab0000
 | 
						|
	ldr r1, =0x00008000
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
	ldr r1, =0xA1390003
 | 
						|
	str r1, [r0, #0x800]
 | 
						|
	ldr r1, =0x0D3900A0
 | 
						|
	str r1, [r0, #0x85c]
 | 
						|
	ldr r1, =0x00400000
 | 
						|
	str r1, [r0, #0x890]
 | 
						|
 | 
						|
	ldr r1, =0x40404040
 | 
						|
	str r1, [r0, #0x848]
 | 
						|
	ldr r1, =0x40404040
 | 
						|
	str r1, [r0, #0x850]
 | 
						|
	ldr r1, =0x33333333
 | 
						|
	str r1, [r0, #0x81c]
 | 
						|
	ldr r1, =0x33333333
 | 
						|
	str r1, [r0, #0x820]
 | 
						|
	ldr r1, =0x33333333
 | 
						|
	str r1, [r0, #0x824]
 | 
						|
	ldr r1, =0x33333333
 | 
						|
	str r1, [r0, #0x828]
 | 
						|
 | 
						|
	ldr r1, =0x24922492
 | 
						|
	str r1, [r0, #0x8c0]
 | 
						|
	ldr r1, =0x00000800
 | 
						|
	str r1, [r0, #0x8b8]
 | 
						|
 | 
						|
	ldr r1, =0x00020052
 | 
						|
	str r1, [r0, #0x4]
 | 
						|
	ldr r1, =0x292C42F3
 | 
						|
	str r1, [r0, #0xc]
 | 
						|
	ldr r1, =0x00100A22
 | 
						|
	str r1, [r0, #0x10]
 | 
						|
	ldr r1, =0x00120556
 | 
						|
	str r1, [r0, #0x38]
 | 
						|
	ldr r1, =0x00C700DB
 | 
						|
	str r1, [r0, #0x14]
 | 
						|
	ldr r1, =0x00211718
 | 
						|
	str r1, [r0, #0x18]
 | 
						|
 | 
						|
	ldr r1, =0x0F9F26D2
 | 
						|
	str r1, [r0, #0x2c]
 | 
						|
	ldr r1, =0x009F0E10
 | 
						|
	str r1, [r0, #0x30]
 | 
						|
	ldr r1, =0x0000003F
 | 
						|
	str r1, [r0, #0x40]
 | 
						|
	ldr r1, =0xC3190000
 | 
						|
	str r1, [r0, #0x0]
 | 
						|
 | 
						|
	ldr r1, =0x00008010
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
	ldr r1, =0x00008018
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
	ldr r1, =0x003F8030
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
	ldr r1, =0x003F8038
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
	ldr r1, =0xFF0A8030
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
	ldr r1, =0xFF0A8038
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
	ldr r1, =0x04028030
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
	ldr r1, =0x04028038
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
	ldr r1, =0x83018030
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
	ldr r1, =0x83018038
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
	ldr r1, =0x01038030
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
	ldr r1, =0x01038038
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
 | 
						|
	ldr r1, =0x20000000
 | 
						|
	str r1, [r0, #0x83c]
 | 
						|
 | 
						|
	ldr r1, =0x00001800
 | 
						|
	str r1, [r0, #0x20]
 | 
						|
	ldr r1, =0xA1310000
 | 
						|
	str r1, [r0, #0x800]
 | 
						|
	ldr r1, =0x00020052
 | 
						|
	str r1, [r0, #0x4]
 | 
						|
	ldr r1, =0x00011006
 | 
						|
	str r1, [r0, #0x404]
 | 
						|
	ldr r1, =0x00000000
 | 
						|
	str r1, [r0, #0x1c]
 | 
						|
 | 
						|
.endm
 | 
						|
 | 
						|
.macro imx7ulp_clock_gating
 | 
						|
.endm
 | 
						|
 | 
						|
.macro imx7ulp_qos_setting
 | 
						|
.endm
 | 
						|
 | 
						|
.macro imx7ulp_ddr_setting
 | 
						|
	imx7ulp_evk_ddr_setting
 | 
						|
.endm
 | 
						|
 | 
						|
/* include the common plugin code here */
 | 
						|
#include <asm/arch/mx7ulp_plugin.S>
 |