mirror of
				https://github.com/smaeul/u-boot.git
				synced 2025-11-03 21:48:15 +00:00 
			
		
		
		
	- In a number of cases, use CONFIG_ARCH_EXYNOS[45] rather than CONFIG_EXYNOS[45] - In other cases, test for CONFIG_ARCH_EXYNOS or CONFIG_ARCH_S5PC1XX - Migrate specific SoC CONFIG values to Kconfig - Use CONFIG_TARGET_x rather than CONFIG_x - Migrate other CONFIG_EXYNOS_x symbols to Kconfig - Reference CONFIG_EXYNOS_RELOCATE_CODE_BASE directly as EXYNOS_RELOCATE_CODE_BASE - Rename CONFIG_S5P_PA_SYSRAM to CONFIG_SMP_PEN_ADDR to match the rest of U-Boot usage. Cc: Minkyu Kang <mk7.kang@samsung.com> Signed-off-by: Tom Rini <trini@konsulko.com>
		
			
				
	
	
		
			557 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			557 lines
		
	
	
		
			15 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
/* SPDX-License-Identifier: GPL-2.0+ */
 | 
						|
/*
 | 
						|
 * Machine Specific Values for EXYNOS4012 based board
 | 
						|
 *
 | 
						|
 * Copyright (C) 2011 Samsung Electronics
 | 
						|
 */
 | 
						|
 | 
						|
#ifndef _ORIGEN_SETUP_H
 | 
						|
#define _ORIGEN_SETUP_H
 | 
						|
 | 
						|
#include <config.h>
 | 
						|
#include <asm/arch/cpu.h>
 | 
						|
 | 
						|
/* Bus Configuration Register Address */
 | 
						|
#define ASYNC_CONFIG		0x10010350
 | 
						|
 | 
						|
/* CLK_SRC_CPU */
 | 
						|
#define MUX_HPM_SEL_MOUTAPLL		0x0
 | 
						|
#define MUX_HPM_SEL_SCLKMPLL		0x1
 | 
						|
#define MUX_CORE_SEL_MOUTAPLL		0x0
 | 
						|
#define MUX_CORE_SEL_SCLKMPLL		0x1
 | 
						|
#define MUX_MPLL_SEL_FILPLL		0x0
 | 
						|
#define MUX_MPLL_SEL_MOUTMPLLFOUT	0x1
 | 
						|
#define MUX_APLL_SEL_FILPLL		0x0
 | 
						|
#define MUX_APLL_SEL_MOUTMPLLFOUT	0x1
 | 
						|
#define CLK_SRC_CPU_VAL			((MUX_HPM_SEL_MOUTAPLL << 20) \
 | 
						|
					| (MUX_CORE_SEL_MOUTAPLL << 16) \
 | 
						|
					| (MUX_MPLL_SEL_MOUTMPLLFOUT << 8)\
 | 
						|
					| (MUX_APLL_SEL_MOUTMPLLFOUT << 0))
 | 
						|
 | 
						|
/* CLK_DIV_CPU0 */
 | 
						|
#define APLL_RATIO		0x0
 | 
						|
#define PCLK_DBG_RATIO		0x1
 | 
						|
#define ATB_RATIO		0x3
 | 
						|
#define PERIPH_RATIO		0x3
 | 
						|
#define COREM1_RATIO		0x7
 | 
						|
#define COREM0_RATIO		0x3
 | 
						|
#define CORE_RATIO		0x0
 | 
						|
#define CLK_DIV_CPU0_VAL	((APLL_RATIO << 24) \
 | 
						|
				| (PCLK_DBG_RATIO << 20) \
 | 
						|
				| (ATB_RATIO << 16) \
 | 
						|
				| (PERIPH_RATIO << 12) \
 | 
						|
				| (COREM1_RATIO << 8) \
 | 
						|
				| (COREM0_RATIO << 4) \
 | 
						|
				| (CORE_RATIO << 0))
 | 
						|
 | 
						|
/* CLK_DIV_CPU1 */
 | 
						|
#define HPM_RATIO		0x0
 | 
						|
#define COPY_RATIO		0x3
 | 
						|
#define CLK_DIV_CPU1_VAL	((HPM_RATIO << 4) | (COPY_RATIO))
 | 
						|
 | 
						|
/* CLK_SRC_DMC */
 | 
						|
#define MUX_PWI_SEL_XXTI		0x0
 | 
						|
#define MUX_PWI_SEL_XUSBXTI		0x1
 | 
						|
#define MUX_PWI_SEL_SCLK_HDMI24M	0x2
 | 
						|
#define MUX_PWI_SEL_SCLK_USBPHY0	0x3
 | 
						|
#define MUX_PWI_SEL_SCLK_USBPHY1	0x4
 | 
						|
#define MUX_PWI_SEL_SCLK_HDMIPHY	0x5
 | 
						|
#define MUX_PWI_SEL_SCLKMPLL		0x6
 | 
						|
#define MUX_PWI_SEL_SCLKEPLL		0x7
 | 
						|
#define MUX_PWI_SEL_SCLKVPLL		0x8
 | 
						|
#define MUX_DPHY_SEL_SCLKMPLL		0x0
 | 
						|
#define MUX_DPHY_SEL_SCLKAPLL		0x1
 | 
						|
#define MUX_DMC_BUS_SEL_SCLKMPLL	0x0
 | 
						|
#define MUX_DMC_BUS_SEL_SCLKAPLL	0x1
 | 
						|
#define CLK_SRC_DMC_VAL			((MUX_PWI_SEL_XUSBXTI << 16) \
 | 
						|
					| (MUX_DPHY_SEL_SCLKMPLL << 8) \
 | 
						|
					| (MUX_DMC_BUS_SEL_SCLKMPLL << 4))
 | 
						|
 | 
						|
/* CLK_DIV_DMC0 */
 | 
						|
#define CORE_TIMERS_RATIO	0x1
 | 
						|
#define COPY2_RATIO		0x3
 | 
						|
#define DMCP_RATIO		0x1
 | 
						|
#define DMCD_RATIO		0x1
 | 
						|
#define DMC_RATIO		0x1
 | 
						|
#define DPHY_RATIO		0x1
 | 
						|
#define ACP_PCLK_RATIO		0x1
 | 
						|
#define ACP_RATIO		0x3
 | 
						|
#define CLK_DIV_DMC0_VAL	((CORE_TIMERS_RATIO << 28) \
 | 
						|
				| (COPY2_RATIO << 24) \
 | 
						|
				| (DMCP_RATIO << 20) \
 | 
						|
				| (DMCD_RATIO << 16) \
 | 
						|
				| (DMC_RATIO << 12) \
 | 
						|
				| (DPHY_RATIO << 8) \
 | 
						|
				| (ACP_PCLK_RATIO << 4)	\
 | 
						|
				| (ACP_RATIO << 0))
 | 
						|
 | 
						|
/* CLK_DIV_DMC1 */
 | 
						|
#define DPM_RATIO		0x1
 | 
						|
#define DVSEM_RATIO		0x1
 | 
						|
#define PWI_RATIO		0x1
 | 
						|
#define CLK_DIV_DMC1_VAL	((DPM_RATIO << 24) \
 | 
						|
				| (DVSEM_RATIO << 16) \
 | 
						|
				| (PWI_RATIO << 8))
 | 
						|
 | 
						|
/* CLK_SRC_TOP0 */
 | 
						|
#define MUX_ONENAND_SEL_ACLK_133	0x0
 | 
						|
#define MUX_ONENAND_SEL_ACLK_160	0x1
 | 
						|
#define MUX_ACLK_133_SEL_SCLKMPLL	0x0
 | 
						|
#define MUX_ACLK_133_SEL_SCLKAPLL	0x1
 | 
						|
#define MUX_ACLK_160_SEL_SCLKMPLL	0x0
 | 
						|
#define MUX_ACLK_160_SEL_SCLKAPLL	0x1
 | 
						|
#define MUX_ACLK_100_SEL_SCLKMPLL	0x0
 | 
						|
#define MUX_ACLK_100_SEL_SCLKAPLL	0x1
 | 
						|
#define MUX_ACLK_200_SEL_SCLKMPLL	0x0
 | 
						|
#define MUX_ACLK_200_SEL_SCLKAPLL	0x1
 | 
						|
#define MUX_VPLL_SEL_FINPLL		0x0
 | 
						|
#define MUX_VPLL_SEL_FOUTVPLL		0x1
 | 
						|
#define MUX_EPLL_SEL_FINPLL		0x0
 | 
						|
#define MUX_EPLL_SEL_FOUTEPLL		0x1
 | 
						|
#define MUX_ONENAND_1_SEL_MOUTONENAND	0x0
 | 
						|
#define MUX_ONENAND_1_SEL_SCLKVPLL	0x1
 | 
						|
#define CLK_SRC_TOP0_VAL		((MUX_ONENAND_SEL_ACLK_133 << 28) \
 | 
						|
					| (MUX_ACLK_133_SEL_SCLKMPLL << 24) \
 | 
						|
					| (MUX_ACLK_160_SEL_SCLKMPLL << 20) \
 | 
						|
					| (MUX_ACLK_100_SEL_SCLKMPLL << 16) \
 | 
						|
					| (MUX_ACLK_200_SEL_SCLKMPLL << 12) \
 | 
						|
					| (MUX_VPLL_SEL_FINPLL << 8) \
 | 
						|
					| (MUX_EPLL_SEL_FINPLL << 4)\
 | 
						|
					| (MUX_ONENAND_1_SEL_MOUTONENAND << 0))
 | 
						|
 | 
						|
/* CLK_SRC_TOP1 */
 | 
						|
#define VPLLSRC_SEL_FINPLL	0x0
 | 
						|
#define VPLLSRC_SEL_SCLKHDMI24M	0x1
 | 
						|
#define CLK_SRC_TOP1_VAL	(VPLLSRC_SEL_FINPLL)
 | 
						|
 | 
						|
/* CLK_DIV_TOP */
 | 
						|
#define ONENAND_RATIO		0x0
 | 
						|
#define ACLK_133_RATIO		0x5
 | 
						|
#define ACLK_160_RATIO		0x4
 | 
						|
#define ACLK_100_RATIO		0x7
 | 
						|
#define ACLK_200_RATIO		0x3
 | 
						|
#define CLK_DIV_TOP_VAL		((ONENAND_RATIO << 16)	\
 | 
						|
				| (ACLK_133_RATIO << 12)\
 | 
						|
				| (ACLK_160_RATIO << 8)	\
 | 
						|
				| (ACLK_100_RATIO << 4)	\
 | 
						|
				| (ACLK_200_RATIO << 0))
 | 
						|
 | 
						|
/* CLK_SRC_LEFTBUS */
 | 
						|
#define MUX_GDL_SEL_SCLKMPLL	0x0
 | 
						|
#define MUX_GDL_SEL_SCLKAPLL	0x1
 | 
						|
#define CLK_SRC_LEFTBUS_VAL	(MUX_GDL_SEL_SCLKMPLL)
 | 
						|
 | 
						|
/* CLK_DIV_LEFTBUS */
 | 
						|
#define GPL_RATIO		0x1
 | 
						|
#define GDL_RATIO		0x3
 | 
						|
#define CLK_DIV_LEFTBUS_VAL	((GPL_RATIO << 4) | (GDL_RATIO))
 | 
						|
 | 
						|
/* CLK_SRC_RIGHTBUS */
 | 
						|
#define MUX_GDR_SEL_SCLKMPLL	0x0
 | 
						|
#define MUX_GDR_SEL_SCLKAPLL	0x1
 | 
						|
#define CLK_SRC_RIGHTBUS_VAL	(MUX_GDR_SEL_SCLKMPLL)
 | 
						|
 | 
						|
/* CLK_DIV_RIGHTBUS */
 | 
						|
#define GPR_RATIO		0x1
 | 
						|
#define GDR_RATIO		0x3
 | 
						|
#define CLK_DIV_RIGHTBUS_VAL	((GPR_RATIO << 4) | (GDR_RATIO))
 | 
						|
 | 
						|
/* CLK_SRS_FSYS: 6 = SCLKMPLL */
 | 
						|
#define SATA_SEL_SCLKMPLL	0
 | 
						|
#define SATA_SEL_SCLKAPLL	1
 | 
						|
 | 
						|
#define MMC_SEL_XXTI		0
 | 
						|
#define MMC_SEL_XUSBXTI		1
 | 
						|
#define MMC_SEL_SCLK_HDMI24M	2
 | 
						|
#define MMC_SEL_SCLK_USBPHY0	3
 | 
						|
#define MMC_SEL_SCLK_USBPHY1	4
 | 
						|
#define MMC_SEL_SCLK_HDMIPHY	5
 | 
						|
#define MMC_SEL_SCLKMPLL	6
 | 
						|
#define MMC_SEL_SCLKEPLL	7
 | 
						|
#define MMC_SEL_SCLKVPLL	8
 | 
						|
 | 
						|
#define MMCC0_SEL		MMC_SEL_SCLKMPLL
 | 
						|
#define MMCC1_SEL		MMC_SEL_SCLKMPLL
 | 
						|
#define MMCC2_SEL		MMC_SEL_SCLKMPLL
 | 
						|
#define MMCC3_SEL		MMC_SEL_SCLKMPLL
 | 
						|
#define MMCC4_SEL		MMC_SEL_SCLKMPLL
 | 
						|
#define CLK_SRC_FSYS_VAL	((SATA_SEL_SCLKMPLL << 24) \
 | 
						|
				| (MMCC4_SEL << 16) \
 | 
						|
				| (MMCC3_SEL << 12) \
 | 
						|
				| (MMCC2_SEL << 8) \
 | 
						|
				| (MMCC1_SEL << 4) \
 | 
						|
				| (MMCC0_SEL << 0))
 | 
						|
 | 
						|
/* SCLK_MMC[0-4] = MOUTMMC[0-4]/(MMC[0-4]_RATIO + 1)/(MMC[0-4]_PRE_RATIO +1) */
 | 
						|
/* CLK_DIV_FSYS1 */
 | 
						|
#define MMC0_RATIO		0xF
 | 
						|
#define MMC0_PRE_RATIO		0x0
 | 
						|
#define MMC1_RATIO		0xF
 | 
						|
#define MMC1_PRE_RATIO		0x0
 | 
						|
#define CLK_DIV_FSYS1_VAL	((MMC1_PRE_RATIO << 24) \
 | 
						|
				| (MMC1_RATIO << 16) \
 | 
						|
				| (MMC0_PRE_RATIO << 8) \
 | 
						|
				| (MMC0_RATIO << 0))
 | 
						|
 | 
						|
/* CLK_DIV_FSYS2 */
 | 
						|
#define MMC2_RATIO		0xF
 | 
						|
#define MMC2_PRE_RATIO		0x0
 | 
						|
#define MMC3_RATIO		0xF
 | 
						|
#define MMC3_PRE_RATIO		0x0
 | 
						|
#define CLK_DIV_FSYS2_VAL	((MMC3_PRE_RATIO << 24) \
 | 
						|
				| (MMC3_RATIO << 16) \
 | 
						|
				| (MMC2_PRE_RATIO << 8) \
 | 
						|
				| (MMC2_RATIO << 0))
 | 
						|
 | 
						|
/* CLK_DIV_FSYS3 */
 | 
						|
#define MMC4_RATIO		0xF
 | 
						|
#define MMC4_PRE_RATIO		0x0
 | 
						|
#define CLK_DIV_FSYS3_VAL	((MMC4_PRE_RATIO << 8) \
 | 
						|
				| (MMC4_RATIO << 0))
 | 
						|
 | 
						|
/* CLK_SRC_PERIL0 */
 | 
						|
#define UART_SEL_XXTI		0
 | 
						|
#define UART_SEL_XUSBXTI	1
 | 
						|
#define UART_SEL_SCLK_HDMI24M	2
 | 
						|
#define UART_SEL_SCLK_USBPHY0	3
 | 
						|
#define UART_SEL_SCLK_USBPHY1	4
 | 
						|
#define UART_SEL_SCLK_HDMIPHY	5
 | 
						|
#define UART_SEL_SCLKMPLL	6
 | 
						|
#define UART_SEL_SCLKEPLL	7
 | 
						|
#define UART_SEL_SCLKVPLL	8
 | 
						|
 | 
						|
#define UART0_SEL		UART_SEL_SCLKMPLL
 | 
						|
#define UART1_SEL		UART_SEL_SCLKMPLL
 | 
						|
#define UART2_SEL		UART_SEL_SCLKMPLL
 | 
						|
#define UART3_SEL		UART_SEL_SCLKMPLL
 | 
						|
#define UART4_SEL		UART_SEL_SCLKMPLL
 | 
						|
#define CLK_SRC_PERIL0_VAL	((UART4_SEL << 16) \
 | 
						|
				| (UART3_SEL << 12) \
 | 
						|
				| (UART2_SEL << 8) \
 | 
						|
				| (UART1_SEL << 4) \
 | 
						|
				| (UART0_SEL << 0))
 | 
						|
 | 
						|
/* SCLK_UART[0-4] = MOUTUART[0-4]/(UART[0-4]_RATIO + 1) */
 | 
						|
/* CLK_DIV_PERIL0 */
 | 
						|
#define UART0_RATIO		7
 | 
						|
#define UART1_RATIO		7
 | 
						|
#define UART2_RATIO		7
 | 
						|
#define UART3_RATIO		7
 | 
						|
#define UART4_RATIO		7
 | 
						|
#define CLK_DIV_PERIL0_VAL	((UART4_RATIO << 16) \
 | 
						|
				| (UART3_RATIO << 12) \
 | 
						|
				| (UART2_RATIO << 8) \
 | 
						|
				| (UART1_RATIO << 4) \
 | 
						|
				| (UART0_RATIO << 0))
 | 
						|
 | 
						|
/* Clock Source CAM/FIMC */
 | 
						|
/* CLK_SRC_CAM */
 | 
						|
#define CAM0_SEL_XUSBXTI	1
 | 
						|
#define CAM1_SEL_XUSBXTI	1
 | 
						|
#define CSIS0_SEL_XUSBXTI	1
 | 
						|
#define CSIS1_SEL_XUSBXTI	1
 | 
						|
 | 
						|
#define FIMC_SEL_SCLKMPLL	6
 | 
						|
#define FIMC0_LCLK_SEL		FIMC_SEL_SCLKMPLL
 | 
						|
#define FIMC1_LCLK_SEL		FIMC_SEL_SCLKMPLL
 | 
						|
#define FIMC2_LCLK_SEL		FIMC_SEL_SCLKMPLL
 | 
						|
#define FIMC3_LCLK_SEL		FIMC_SEL_SCLKMPLL
 | 
						|
 | 
						|
#define CLK_SRC_CAM_VAL		((CSIS1_SEL_XUSBXTI << 28) \
 | 
						|
				| (CSIS0_SEL_XUSBXTI << 24) \
 | 
						|
				| (CAM1_SEL_XUSBXTI << 20) \
 | 
						|
				| (CAM0_SEL_XUSBXTI << 16) \
 | 
						|
				| (FIMC3_LCLK_SEL << 12) \
 | 
						|
				| (FIMC2_LCLK_SEL << 8) \
 | 
						|
				| (FIMC1_LCLK_SEL << 4) \
 | 
						|
				| (FIMC0_LCLK_SEL << 0))
 | 
						|
 | 
						|
/* SCLK CAM */
 | 
						|
/* CLK_DIV_CAM */
 | 
						|
#define FIMC0_LCLK_RATIO	4
 | 
						|
#define FIMC1_LCLK_RATIO	4
 | 
						|
#define FIMC2_LCLK_RATIO	4
 | 
						|
#define FIMC3_LCLK_RATIO	4
 | 
						|
#define CLK_DIV_CAM_VAL		((FIMC3_LCLK_RATIO << 12) \
 | 
						|
				| (FIMC2_LCLK_RATIO << 8) \
 | 
						|
				| (FIMC1_LCLK_RATIO << 4) \
 | 
						|
				| (FIMC0_LCLK_RATIO << 0))
 | 
						|
 | 
						|
/* SCLK MFC */
 | 
						|
/* CLK_SRC_MFC */
 | 
						|
#define MFC_SEL_MPLL		0
 | 
						|
#define MOUTMFC_0		0
 | 
						|
#define MFC_SEL			MOUTMFC_0
 | 
						|
#define MFC_0_SEL		MFC_SEL_MPLL
 | 
						|
#define CLK_SRC_MFC_VAL		((MFC_SEL << 8) | (MFC_0_SEL))
 | 
						|
 | 
						|
 | 
						|
/* CLK_DIV_MFC */
 | 
						|
#define MFC_RATIO		3
 | 
						|
#define CLK_DIV_MFC_VAL		(MFC_RATIO)
 | 
						|
 | 
						|
/* SCLK G3D */
 | 
						|
/* CLK_SRC_G3D */
 | 
						|
#define G3D_SEL_MPLL		0
 | 
						|
#define MOUTG3D_0		0
 | 
						|
#define G3D_SEL			MOUTG3D_0
 | 
						|
#define G3D_0_SEL		G3D_SEL_MPLL
 | 
						|
#define CLK_SRC_G3D_VAL		((G3D_SEL << 8) | (G3D_0_SEL))
 | 
						|
 | 
						|
/* CLK_DIV_G3D */
 | 
						|
#define G3D_RATIO		1
 | 
						|
#define CLK_DIV_G3D_VAL		(G3D_RATIO)
 | 
						|
 | 
						|
/* SCLK LCD0 */
 | 
						|
/* CLK_SRC_LCD0 */
 | 
						|
#define FIMD_SEL_SCLKMPLL	6
 | 
						|
#define MDNIE0_SEL_XUSBXTI	1
 | 
						|
#define MDNIE_PWM0_SEL_XUSBXTI	1
 | 
						|
#define MIPI0_SEL_XUSBXTI	1
 | 
						|
#define CLK_SRC_LCD0_VAL	((MIPI0_SEL_XUSBXTI << 12) \
 | 
						|
				| (MDNIE_PWM0_SEL_XUSBXTI << 8) \
 | 
						|
				| (MDNIE0_SEL_XUSBXTI << 4) \
 | 
						|
				| (FIMD_SEL_SCLKMPLL << 0))
 | 
						|
 | 
						|
/* CLK_DIV_LCD0 */
 | 
						|
#define FIMD0_RATIO		4
 | 
						|
#define CLK_DIV_LCD0_VAL	(FIMD0_RATIO)
 | 
						|
 | 
						|
/* Required period to generate a stable clock output */
 | 
						|
/* PLL_LOCK_TIME */
 | 
						|
#define PLL_LOCKTIME		0x1C20
 | 
						|
 | 
						|
/* PLL Values */
 | 
						|
#define DISABLE			0
 | 
						|
#define ENABLE			1
 | 
						|
#define SET_PLL(mdiv, pdiv, sdiv)	((ENABLE << 31)\
 | 
						|
					| (mdiv << 16) \
 | 
						|
					| (pdiv << 8) \
 | 
						|
					| (sdiv << 0))
 | 
						|
 | 
						|
/* APLL_CON0 */
 | 
						|
#define APLL_MDIV		0xFA
 | 
						|
#define APLL_PDIV		0x6
 | 
						|
#define APLL_SDIV		0x1
 | 
						|
#define APLL_CON0_VAL		SET_PLL(APLL_MDIV, APLL_PDIV, APLL_SDIV)
 | 
						|
 | 
						|
/* APLL_CON1 */
 | 
						|
#define APLL_AFC_ENB		0x1
 | 
						|
#define APLL_AFC		0xC
 | 
						|
#define APLL_CON1_VAL		((APLL_AFC_ENB << 31) | (APLL_AFC << 0))
 | 
						|
 | 
						|
/* MPLL_CON0 */
 | 
						|
#define MPLL_MDIV		0xC8
 | 
						|
#define MPLL_PDIV		0x6
 | 
						|
#define MPLL_SDIV		0x1
 | 
						|
#define MPLL_CON0_VAL		SET_PLL(MPLL_MDIV, MPLL_PDIV, MPLL_SDIV)
 | 
						|
 | 
						|
/* MPLL_CON1 */
 | 
						|
#define MPLL_AFC_ENB		0x0
 | 
						|
#define MPLL_AFC		0x1C
 | 
						|
#define MPLL_CON1_VAL		((MPLL_AFC_ENB << 31) | (MPLL_AFC << 0))
 | 
						|
 | 
						|
/* EPLL_CON0 */
 | 
						|
#define EPLL_MDIV		0x30
 | 
						|
#define EPLL_PDIV		0x3
 | 
						|
#define EPLL_SDIV		0x2
 | 
						|
#define EPLL_CON0_VAL		SET_PLL(EPLL_MDIV, EPLL_PDIV, EPLL_SDIV)
 | 
						|
 | 
						|
/* EPLL_CON1 */
 | 
						|
#define EPLL_K			0x0
 | 
						|
#define EPLL_CON1_VAL		(EPLL_K >> 0)
 | 
						|
 | 
						|
/* VPLL_CON0 */
 | 
						|
#define VPLL_MDIV		0x35
 | 
						|
#define VPLL_PDIV		0x3
 | 
						|
#define VPLL_SDIV		0x2
 | 
						|
#define VPLL_CON0_VAL		SET_PLL(VPLL_MDIV, VPLL_PDIV, VPLL_SDIV)
 | 
						|
 | 
						|
/* VPLL_CON1 */
 | 
						|
#define VPLL_SSCG_EN		DISABLE
 | 
						|
#define VPLL_SEL_PF_DN_SPREAD	0x0
 | 
						|
#define VPLL_MRR		0x11
 | 
						|
#define VPLL_MFR		0x0
 | 
						|
#define VPLL_K			0x400
 | 
						|
#define VPLL_CON1_VAL		((VPLL_SSCG_EN << 31)\
 | 
						|
				| (VPLL_SEL_PF_DN_SPREAD << 29) \
 | 
						|
				| (VPLL_MRR << 24) \
 | 
						|
				| (VPLL_MFR << 16) \
 | 
						|
				| (VPLL_K << 0))
 | 
						|
 | 
						|
/* DMC */
 | 
						|
#define DIRECT_CMD_NOP	0x07000000
 | 
						|
#define DIRECT_CMD_ZQ	0x0a000000
 | 
						|
#define DIRECT_CMD_CHIP1_SHIFT	(1 << 20)
 | 
						|
#define MEM_TIMINGS_MSR_COUNT	4
 | 
						|
#define CTRL_START	(1 << 0)
 | 
						|
#define CTRL_DLL_ON	(1 << 1)
 | 
						|
#define AREF_EN		(1 << 5)
 | 
						|
#define DRV_TYPE	(1 << 6)
 | 
						|
 | 
						|
struct mem_timings {
 | 
						|
	unsigned direct_cmd_msr[MEM_TIMINGS_MSR_COUNT];
 | 
						|
	unsigned timingref;
 | 
						|
	unsigned timingrow;
 | 
						|
	unsigned timingdata;
 | 
						|
	unsigned timingpower;
 | 
						|
	unsigned zqcontrol;
 | 
						|
	unsigned control0;
 | 
						|
	unsigned control1;
 | 
						|
	unsigned control2;
 | 
						|
	unsigned concontrol;
 | 
						|
	unsigned prechconfig;
 | 
						|
	unsigned memcontrol;
 | 
						|
	unsigned memconfig0;
 | 
						|
	unsigned memconfig1;
 | 
						|
	unsigned dll_resync;
 | 
						|
	unsigned dll_on;
 | 
						|
};
 | 
						|
 | 
						|
/* MIU */
 | 
						|
/* MIU Config Register Offsets*/
 | 
						|
#define APB_SFR_INTERLEAVE_CONF_OFFSET	0x400
 | 
						|
#define APB_SFR_ARBRITATION_CONF_OFFSET	0xC00
 | 
						|
#define ABP_SFR_SLV_ADDRMAP_CONF_OFFSET	0x800
 | 
						|
#define ABP_SFR_INTERLEAVE_ADDRMAP_START_OFFSET	0x808
 | 
						|
#define ABP_SFR_INTERLEAVE_ADDRMAP_END_OFFSET	0x810
 | 
						|
#define ABP_SFR_SLV0_SINGLE_ADDRMAP_START_OFFSET	0x818
 | 
						|
#define ABP_SFR_SLV0_SINGLE_ADDRMAP_END_OFFSET	0x820
 | 
						|
#define ABP_SFR_SLV1_SINGLE_ADDRMAP_START_OFFSET	0x828
 | 
						|
#define ABP_SFR_SLV1_SINGLE_ADDRMAP_END_OFFSET	0x830
 | 
						|
 | 
						|
#ifdef CONFIG_TARGET_ORIGEN
 | 
						|
/* Interleave: 2Bit, Interleave_bit1: 0x15, Interleave_bit0: 0x7 */
 | 
						|
#define APB_SFR_INTERLEAVE_CONF_VAL	0x20001507
 | 
						|
#define APB_SFR_ARBRITATION_CONF_VAL	0x00000001
 | 
						|
#endif
 | 
						|
 | 
						|
#define INTERLEAVE_ADDR_MAP_START_ADDR	0x40000000
 | 
						|
#define INTERLEAVE_ADDR_MAP_END_ADDR	0xbfffffff
 | 
						|
#define INTERLEAVE_ADDR_MAP_EN		0x00000001
 | 
						|
 | 
						|
#ifdef CONFIG_MIU_1BIT_INTERLEAVED
 | 
						|
/* Interleave_bit0: 0xC*/
 | 
						|
#define APB_SFR_INTERLEAVE_CONF_VAL	0x0000000c
 | 
						|
#endif
 | 
						|
#ifdef CONFIG_MIU_2BIT_INTERLEAVED
 | 
						|
/* Interleave: 2Bit, Interleave_bit1: 0x15, Interleave_bit0: 0xc */
 | 
						|
#define APB_SFR_INTERLEAVE_CONF_VAL	0x2000150c
 | 
						|
#endif
 | 
						|
#define SLAVE0_SINGLE_ADDR_MAP_START_ADDR	0x40000000
 | 
						|
#define SLAVE0_SINGLE_ADDR_MAP_END_ADDR		0x7fffffff
 | 
						|
#define SLAVE1_SINGLE_ADDR_MAP_START_ADDR	0x80000000
 | 
						|
#define SLAVE1_SINGLE_ADDR_MAP_END_ADDR		0xbfffffff
 | 
						|
/* Enable SME0 and SME1*/
 | 
						|
#define APB_SFR_SLV_ADDR_MAP_CONF_VAL		0x00000006
 | 
						|
 | 
						|
#define FORCE_DLL_RESYNC	3
 | 
						|
#define DLL_CONTROL_ON		1
 | 
						|
 | 
						|
#define DIRECT_CMD1	0x00020000
 | 
						|
#define DIRECT_CMD2	0x00030000
 | 
						|
#define DIRECT_CMD3	0x00010002
 | 
						|
#define DIRECT_CMD4	0x00000328
 | 
						|
 | 
						|
#define CTRL_ZQ_MODE_NOTERM	(0x1 << 0)
 | 
						|
#define CTRL_ZQ_START		(0x1 << 1)
 | 
						|
#define CTRL_ZQ_DIV		(0 << 4)
 | 
						|
#define CTRL_ZQ_MODE_DDS	(0x7 << 8)
 | 
						|
#define CTRL_ZQ_MODE_TERM	(0x2 << 11)
 | 
						|
#define CTRL_ZQ_FORCE_IMPN	(0x5 << 14)
 | 
						|
#define CTRL_ZQ_FORCE_IMPP	(0x6 << 17)
 | 
						|
#define CTRL_DCC		(0xE38 << 20)
 | 
						|
#define ZQ_CONTROL_VAL		(CTRL_ZQ_MODE_NOTERM | CTRL_ZQ_START\
 | 
						|
				| CTRL_ZQ_DIV | CTRL_ZQ_MODE_DDS\
 | 
						|
				| CTRL_ZQ_MODE_TERM | CTRL_ZQ_FORCE_IMPN\
 | 
						|
				| CTRL_ZQ_FORCE_IMPP | CTRL_DCC)
 | 
						|
 | 
						|
#define ASYNC			(0 << 0)
 | 
						|
#define CLK_RATIO		(1 << 1)
 | 
						|
#define DIV_PIPE		(1 << 3)
 | 
						|
#define AWR_ON			(1 << 4)
 | 
						|
#define AREF_DISABLE		(0 << 5)
 | 
						|
#define DRV_TYPE_DISABLE	(0 << 6)
 | 
						|
#define CHIP0_NOT_EMPTY		(0 << 8)
 | 
						|
#define CHIP1_NOT_EMPTY		(0 << 9)
 | 
						|
#define DQ_SWAP_DISABLE		(0 << 10)
 | 
						|
#define QOS_FAST_DISABLE	(0 << 11)
 | 
						|
#define RD_FETCH		(0x3 << 12)
 | 
						|
#define TIMEOUT_LEVEL0		(0xFFF << 16)
 | 
						|
#define CONCONTROL_VAL		(ASYNC | CLK_RATIO | DIV_PIPE | AWR_ON\
 | 
						|
				| AREF_DISABLE | DRV_TYPE_DISABLE\
 | 
						|
				| CHIP0_NOT_EMPTY | CHIP1_NOT_EMPTY\
 | 
						|
				| DQ_SWAP_DISABLE | QOS_FAST_DISABLE\
 | 
						|
				| RD_FETCH | TIMEOUT_LEVEL0)
 | 
						|
 | 
						|
#define CLK_STOP_DISABLE	(0 << 1)
 | 
						|
#define DPWRDN_DISABLE		(0 << 2)
 | 
						|
#define DPWRDN_TYPE		(0 << 3)
 | 
						|
#define TP_DISABLE		(0 << 4)
 | 
						|
#define DSREF_DIABLE		(0 << 5)
 | 
						|
#define ADD_LAT_PALL		(1 << 6)
 | 
						|
#define MEM_TYPE_DDR3		(0x6 << 8)
 | 
						|
#define MEM_WIDTH_32		(0x2 << 12)
 | 
						|
#define NUM_CHIP_2		(1 << 16)
 | 
						|
#define BL_8			(0x3 << 20)
 | 
						|
#define MEMCONTROL_VAL		(CLK_STOP_DISABLE | DPWRDN_DISABLE\
 | 
						|
				| DPWRDN_TYPE | TP_DISABLE | DSREF_DIABLE\
 | 
						|
				| ADD_LAT_PALL | MEM_TYPE_DDR3 | MEM_WIDTH_32\
 | 
						|
				| NUM_CHIP_2 | BL_8)
 | 
						|
 | 
						|
 | 
						|
#define CHIP_BANK_8		(0x3 << 0)
 | 
						|
#define CHIP_ROW_14		(0x2 << 4)
 | 
						|
#define CHIP_COL_10		(0x3 << 8)
 | 
						|
#define CHIP_MAP_INTERLEAVED	(1 << 12)
 | 
						|
#define CHIP_MASK		(0xe0 << 16)
 | 
						|
#ifdef CONFIG_MIU_LINEAR
 | 
						|
#define CHIP0_BASE		(0x40 << 24)
 | 
						|
#define CHIP1_BASE		(0x60 << 24)
 | 
						|
#else
 | 
						|
#define CHIP0_BASE		(0x20 << 24)
 | 
						|
#define CHIP1_BASE		(0x40 << 24)
 | 
						|
#endif
 | 
						|
#define MEMCONFIG0_VAL		(CHIP_BANK_8 | CHIP_ROW_14 | CHIP_COL_10\
 | 
						|
				| CHIP_MAP_INTERLEAVED | CHIP_MASK | CHIP0_BASE)
 | 
						|
#define MEMCONFIG1_VAL		(CHIP_BANK_8 | CHIP_ROW_14 | CHIP_COL_10\
 | 
						|
				| CHIP_MAP_INTERLEAVED | CHIP_MASK | CHIP1_BASE)
 | 
						|
 | 
						|
#define TP_CNT			(0xff << 24)
 | 
						|
#define PRECHCONFIG		TP_CNT
 | 
						|
 | 
						|
#define CTRL_OFF		(0 << 0)
 | 
						|
#define CTRL_DLL_OFF		(0 << 1)
 | 
						|
#define CTRL_HALF		(0 << 2)
 | 
						|
#define CTRL_DFDQS		(1 << 3)
 | 
						|
#define DQS_DELAY		(0 << 4)
 | 
						|
#define CTRL_START_POINT	(0x10 << 8)
 | 
						|
#define CTRL_INC		(0x10 << 16)
 | 
						|
#define CTRL_FORCE		(0x71 << 24)
 | 
						|
#define CONTROL0_VAL		(CTRL_OFF | CTRL_DLL_OFF | CTRL_HALF\
 | 
						|
				| CTRL_DFDQS | DQS_DELAY | CTRL_START_POINT\
 | 
						|
				| CTRL_INC | CTRL_FORCE)
 | 
						|
 | 
						|
#define CTRL_SHIFTC		(0x6 << 0)
 | 
						|
#define CTRL_REF		(8 << 4)
 | 
						|
#define CTRL_SHGATE		(1 << 29)
 | 
						|
#define TERM_READ_EN		(1 << 30)
 | 
						|
#define TERM_WRITE_EN		(1 << 31)
 | 
						|
#define CONTROL1_VAL		(CTRL_SHIFTC | CTRL_REF | CTRL_SHGATE\
 | 
						|
				| TERM_READ_EN | TERM_WRITE_EN)
 | 
						|
 | 
						|
#define CONTROL2_VAL		0x00000000
 | 
						|
 | 
						|
#ifdef CONFIG_TARGET_ORIGEN
 | 
						|
#define TIMINGREF_VAL		0x000000BB
 | 
						|
#define TIMINGROW_VAL		0x4046654f
 | 
						|
#define	TIMINGDATA_VAL		0x46400506
 | 
						|
#define	TIMINGPOWER_VAL		0x52000A3C
 | 
						|
#else
 | 
						|
#define TIMINGREF_VAL		0x000000BC
 | 
						|
#define TIMINGROW_VAL		0x45430506
 | 
						|
#define	TIMINGDATA_VAL		0x56500506
 | 
						|
#define	TIMINGPOWER_VAL		0x5444033d
 | 
						|
#endif
 | 
						|
#endif
 |