Merge branch 'u-boot-ti/master' into 'u-boot-arm/master'
This commit is contained in:
@@ -27,6 +27,7 @@
|
||||
#include <miiphy.h>
|
||||
#include <cpsw.h>
|
||||
#include <asm/errno.h>
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/usb/ch9.h>
|
||||
#include <linux/usb/gadget.h>
|
||||
#include <linux/usb/musb.h>
|
||||
@@ -137,6 +138,16 @@ int arch_misc_init(void)
|
||||
}
|
||||
|
||||
#if defined(CONFIG_SPL_BUILD) || defined(CONFIG_NOR_BOOT)
|
||||
/*
|
||||
* This function is the place to do per-board things such as ramp up the
|
||||
* MPU clock frequency.
|
||||
*/
|
||||
__weak void am33xx_spl_board_init(void)
|
||||
{
|
||||
do_setup_dpll(&dpll_core_regs, &dpll_core_opp100);
|
||||
do_setup_dpll(&dpll_mpu_regs, &dpll_mpu_opp100);
|
||||
}
|
||||
|
||||
static void rtc32k_enable(void)
|
||||
{
|
||||
struct rtc_regs *rtc = (struct rtc_regs *)RTC_BASE;
|
||||
|
||||
@@ -51,10 +51,14 @@ const struct dpll_regs dpll_ddr_regs = {
|
||||
.cm_div_m2_dpll = CM_WKUP + 0xA0,
|
||||
};
|
||||
|
||||
const struct dpll_params dpll_mpu = {
|
||||
struct dpll_params dpll_mpu_opp100 = {
|
||||
CONFIG_SYS_MPUCLK, OSC-1, 1, -1, -1, -1, -1};
|
||||
const struct dpll_params dpll_core = {
|
||||
const struct dpll_params dpll_core_opp100 = {
|
||||
1000, OSC-1, -1, -1, 10, 8, 4};
|
||||
const struct dpll_params dpll_mpu = {
|
||||
MPUPLL_M_300, OSC-1, 1, -1, -1, -1, -1};
|
||||
const struct dpll_params dpll_core = {
|
||||
50, OSC-1, -1, -1, 1, 1, 1};
|
||||
const struct dpll_params dpll_per = {
|
||||
960, OSC-1, 5, -1, -1, -1, -1};
|
||||
|
||||
|
||||
@@ -17,6 +17,7 @@
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/cpu.h>
|
||||
#include <asm/arch/clock.h>
|
||||
#include <power/tps65910.h>
|
||||
|
||||
struct ctrl_stat *cstat = (struct ctrl_stat *)CTRL_BASE;
|
||||
|
||||
@@ -119,3 +120,59 @@ int print_cpuinfo(void)
|
||||
return 0;
|
||||
}
|
||||
#endif /* CONFIG_DISPLAY_CPUINFO */
|
||||
|
||||
#ifdef CONFIG_AM33XX
|
||||
int am335x_get_efuse_mpu_max_freq(struct ctrl_dev *cdev)
|
||||
{
|
||||
int sil_rev;
|
||||
|
||||
sil_rev = readl(&cdev->deviceid) >> 28;
|
||||
|
||||
if (sil_rev == 1)
|
||||
/* PG 2.0, efuse may not be set. */
|
||||
return MPUPLL_M_800;
|
||||
else if (sil_rev >= 2) {
|
||||
/* Check what the efuse says our max speed is. */
|
||||
int efuse_arm_mpu_max_freq;
|
||||
efuse_arm_mpu_max_freq = readl(&cdev->efuse_sma);
|
||||
switch ((efuse_arm_mpu_max_freq & DEVICE_ID_MASK)) {
|
||||
case AM335X_ZCZ_1000:
|
||||
return MPUPLL_M_1000;
|
||||
case AM335X_ZCZ_800:
|
||||
return MPUPLL_M_800;
|
||||
case AM335X_ZCZ_720:
|
||||
return MPUPLL_M_720;
|
||||
case AM335X_ZCZ_600:
|
||||
case AM335X_ZCE_600:
|
||||
return MPUPLL_M_600;
|
||||
case AM335X_ZCZ_300:
|
||||
case AM335X_ZCE_300:
|
||||
return MPUPLL_M_300;
|
||||
}
|
||||
}
|
||||
|
||||
/* PG 1.0 or otherwise unknown, use the PG1.0 max */
|
||||
return MPUPLL_M_720;
|
||||
}
|
||||
|
||||
int am335x_get_tps65910_mpu_vdd(int sil_rev, int frequency)
|
||||
{
|
||||
/* For PG2.1 and later, we have one set of values. */
|
||||
if (sil_rev >= 2) {
|
||||
switch (frequency) {
|
||||
case MPUPLL_M_1000:
|
||||
return TPS65910_OP_REG_SEL_1_3_2_5;
|
||||
case MPUPLL_M_800:
|
||||
return TPS65910_OP_REG_SEL_1_2_6;
|
||||
case MPUPLL_M_720:
|
||||
return TPS65910_OP_REG_SEL_1_2_0;
|
||||
case MPUPLL_M_600:
|
||||
case MPUPLL_M_300:
|
||||
return TPS65910_OP_REG_SEL_1_1_3;
|
||||
}
|
||||
}
|
||||
|
||||
/* Default to PG1.0/PG2.0 values. */
|
||||
return TPS65910_OP_REG_SEL_1_1_3;
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -76,6 +76,9 @@ void spl_board_init(void)
|
||||
#if defined(CONFIG_AM33XX) && defined(CONFIG_SPL_MUSB_NEW_SUPPORT)
|
||||
arch_misc_init();
|
||||
#endif
|
||||
#ifdef CONFIG_AM33XX
|
||||
am33xx_spl_board_init();
|
||||
#endif
|
||||
}
|
||||
|
||||
int board_mmc_init(bd_t *bis)
|
||||
|
||||
@@ -589,13 +589,6 @@ void scale_vcores(struct vcores_data const *vcores)
|
||||
|
||||
val = optimize_vcore_voltage(&vcores->iva);
|
||||
do_scale_vcore(vcores->iva.addr, val, vcores->iva.pmic);
|
||||
|
||||
if (emif_sdram_type() == EMIF_SDRAM_TYPE_DDR3) {
|
||||
/* Configure LDO SRAM "magic" bits */
|
||||
writel(2, (*prcm)->prm_sldo_core_setup);
|
||||
writel(2, (*prcm)->prm_sldo_mpu_setup);
|
||||
writel(2, (*prcm)->prm_sldo_mm_setup);
|
||||
}
|
||||
}
|
||||
|
||||
static inline void enable_clock_domain(u32 const clkctrl_reg, u32 enable_mode)
|
||||
|
||||
@@ -286,12 +286,6 @@ struct prcm_regs const omap5_es1_prcm = {
|
||||
.prm_vc_val_bypass = 0x4ae07ba0,
|
||||
.prm_vc_cfg_i2c_mode = 0x4ae07bb4,
|
||||
.prm_vc_cfg_i2c_clk = 0x4ae07bb8,
|
||||
.prm_sldo_core_setup = 0x4ae07bc4,
|
||||
.prm_sldo_core_ctrl = 0x4ae07bc8,
|
||||
.prm_sldo_mpu_setup = 0x4ae07bcc,
|
||||
.prm_sldo_mpu_ctrl = 0x4ae07bd0,
|
||||
.prm_sldo_mm_setup = 0x4ae07bd4,
|
||||
.prm_sldo_mm_ctrl = 0x4ae07bd8,
|
||||
|
||||
/* SCRM stuff, used by some boards */
|
||||
.scrm_auxclk0 = 0x4ae0a310,
|
||||
@@ -735,12 +729,6 @@ struct prcm_regs const omap5_es2_prcm = {
|
||||
.prm_vc_cfg_i2c_mode = 0x4ae07cb4,
|
||||
.prm_vc_cfg_i2c_clk = 0x4ae07cb8,
|
||||
|
||||
.prm_sldo_core_setup = 0x4ae07cc4,
|
||||
.prm_sldo_core_ctrl = 0x4ae07cc8,
|
||||
.prm_sldo_mpu_setup = 0x4ae07ccc,
|
||||
.prm_sldo_mpu_ctrl = 0x4ae07cd0,
|
||||
.prm_sldo_mm_setup = 0x4ae07cd4,
|
||||
.prm_sldo_mm_ctrl = 0x4ae07cd8,
|
||||
.prm_abbldo_mpu_setup = 0x4ae07cdc,
|
||||
.prm_abbldo_mpu_ctrl = 0x4ae07ce0,
|
||||
|
||||
|
||||
@@ -11,9 +11,17 @@
|
||||
#ifndef _CLOCKS_AM33XX_H_
|
||||
#define _CLOCKS_AM33XX_H_
|
||||
|
||||
/* MAIN PLL Fdll supported frequencies */
|
||||
#define MPUPLL_M_1000 1000
|
||||
#define MPUPLL_M_800 800
|
||||
#define MPUPLL_M_720 720
|
||||
#define MPUPLL_M_600 600
|
||||
#define MPUPLL_M_550 550
|
||||
#define MPUPLL_M_300 300
|
||||
|
||||
/* MAIN PLL Fdll = 550 MHz, by default */
|
||||
#ifndef CONFIG_SYS_MPUCLK
|
||||
#define CONFIG_SYS_MPUCLK 550
|
||||
#define CONFIG_SYS_MPUCLK MPUPLL_M_550
|
||||
#endif
|
||||
|
||||
#define UART_RESET (0x1 << 1)
|
||||
@@ -21,5 +29,7 @@
|
||||
#define UART_SMART_IDLE_EN (0x1 << 0x3)
|
||||
|
||||
extern void enable_dmm_clocks(void);
|
||||
extern const struct dpll_params dpll_core_opp100;
|
||||
extern struct dpll_params dpll_mpu_opp100;
|
||||
|
||||
#endif /* endif _CLOCKS_AM33XX_H_ */
|
||||
|
||||
@@ -38,6 +38,16 @@
|
||||
#define AM335X 0xB944
|
||||
#define TI81XX 0xB81E
|
||||
#define DEVICE_ID (CTRL_BASE + 0x0600)
|
||||
#define DEVICE_ID_MASK 0x1FFF
|
||||
|
||||
/* MPU max frequencies */
|
||||
#define AM335X_ZCZ_300 0x1FEF
|
||||
#define AM335X_ZCZ_600 0x1FAF
|
||||
#define AM335X_ZCZ_720 0x1F2F
|
||||
#define AM335X_ZCZ_800 0x1E2F
|
||||
#define AM335X_ZCZ_1000 0x1C2F
|
||||
#define AM335X_ZCE_300 0x1FDF
|
||||
#define AM335X_ZCE_600 0x1F9F
|
||||
|
||||
/* This gives the status of the boot mode pins on the evm */
|
||||
#define SYSBOOT_MASK (BIT(0) | BIT(1) | BIT(2)\
|
||||
@@ -509,6 +519,8 @@ struct ctrl_dev {
|
||||
unsigned int macid1h; /* offset 0x3c */
|
||||
unsigned int resv4[4];
|
||||
unsigned int miisel; /* offset 0x50 */
|
||||
unsigned int resv5[106];
|
||||
unsigned int efuse_sma; /* offset 0x1FC */
|
||||
};
|
||||
|
||||
/* gmii_sel register defines */
|
||||
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
#ifndef _SYS_PROTO_H_
|
||||
#define _SYS_PROTO_H_
|
||||
#include <asm/arch/cpu.h>
|
||||
|
||||
#define BOARD_REV_ID 0x0
|
||||
|
||||
@@ -42,4 +43,7 @@ u32 wait_on_value(u32, u32, void *, u32);
|
||||
#ifdef CONFIG_NOR_BOOT
|
||||
void enable_norboot_pin_mux(void);
|
||||
#endif
|
||||
void am33xx_spl_board_init(void);
|
||||
int am335x_get_efuse_mpu_max_freq(struct ctrl_dev *cdev);
|
||||
int am335x_get_tps65910_mpu_vdd(int sil_rev, int frequency);
|
||||
#endif
|
||||
|
||||
@@ -310,12 +310,6 @@ struct prcm_regs {
|
||||
u32 prm_vc_val_bypass;
|
||||
u32 prm_vc_cfg_i2c_mode;
|
||||
u32 prm_vc_cfg_i2c_clk;
|
||||
u32 prm_sldo_core_setup;
|
||||
u32 prm_sldo_core_ctrl;
|
||||
u32 prm_sldo_mpu_setup;
|
||||
u32 prm_sldo_mpu_ctrl;
|
||||
u32 prm_sldo_mm_setup;
|
||||
u32 prm_sldo_mm_ctrl;
|
||||
u32 prm_abbldo_mpu_setup;
|
||||
u32 prm_abbldo_mpu_ctrl;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user