armv8/ls2080ardb: Enable VID support
This patch enable VID support for ls2080ardb platform. It uses the common VID driver. Signed-off-by: Rai Harninder <harninder.rai@nxp.com> Reviewed-by: York Sun <york.sun@nxp.com>
This commit is contained in:
parent
2ef846e45c
commit
ed2530d096
@ -180,6 +180,10 @@ struct ccsr_gur {
|
||||
u8 res_008[0x20-0x8];
|
||||
u32 gpporcr1; /* General-purpose POR configuration */
|
||||
u32 gpporcr2; /* General-purpose POR configuration 2 */
|
||||
#define FSL_CHASSIS3_DCFG_FUSESR_VID_SHIFT 25
|
||||
#define FSL_CHASSIS3_DCFG_FUSESR_VID_MASK 0x1F
|
||||
#define FSL_CHASSIS3_DCFG_FUSESR_ALTVID_SHIFT 20
|
||||
#define FSL_CHASSIS3_DCFG_FUSESR_ALTVID_MASK 0x1F
|
||||
u32 dcfg_fusesr; /* Fuse status register */
|
||||
u32 gpporcr3;
|
||||
u32 gpporcr4;
|
||||
|
@ -10,6 +10,8 @@
|
||||
#include <asm/io.h>
|
||||
#ifdef CONFIG_LS1043A
|
||||
#include <asm/arch/immap_lsch2.h>
|
||||
#elif defined(CONFIG_FSL_LSCH3)
|
||||
#include <asm/arch/immap_lsch3.h>
|
||||
#else
|
||||
#include <asm/immap_85xx.h>
|
||||
#endif
|
||||
@ -285,7 +287,7 @@ static int set_voltage(int i2caddress, int vdd)
|
||||
int adjust_vdd(ulong vdd_override)
|
||||
{
|
||||
int re_enable = disable_interrupts();
|
||||
#ifdef CONFIG_LS1043A
|
||||
#if defined(CONFIG_LS1043A) || defined(CONFIG_FSL_LSCH3)
|
||||
struct ccsr_gur *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
|
||||
#else
|
||||
ccsr_gur_t __iomem *gur =
|
||||
@ -362,7 +364,11 @@ int adjust_vdd(ulong vdd_override)
|
||||
}
|
||||
|
||||
/* get the voltage ID from fuse status register */
|
||||
#ifdef CONFIG_FSL_LSCH3
|
||||
fusesr = in_le32(&gur->dcfg_fusesr);
|
||||
#else
|
||||
fusesr = in_be32(&gur->dcfg_fusesr);
|
||||
#endif
|
||||
/*
|
||||
* VID is used according to the table below
|
||||
* ---------------------------------------
|
||||
@ -387,6 +393,13 @@ int adjust_vdd(ulong vdd_override)
|
||||
vid = (fusesr >> FSL_CHASSIS2_DCFG_FUSESR_VID_SHIFT) &
|
||||
FSL_CHASSIS2_DCFG_FUSESR_VID_MASK;
|
||||
}
|
||||
#elif defined(CONFIG_FSL_LSCH3)
|
||||
vid = (fusesr >> FSL_CHASSIS3_DCFG_FUSESR_ALTVID_SHIFT) &
|
||||
FSL_CHASSIS3_DCFG_FUSESR_ALTVID_MASK;
|
||||
if ((vid == 0) || (vid == FSL_CHASSIS3_DCFG_FUSESR_ALTVID_MASK)) {
|
||||
vid = (fusesr >> FSL_CHASSIS3_DCFG_FUSESR_VID_SHIFT) &
|
||||
FSL_CHASSIS3_DCFG_FUSESR_VID_MASK;
|
||||
}
|
||||
#else
|
||||
vid = (fusesr >> FSL_CORENET_DCFG_FUSESR_ALTVID_SHIFT) &
|
||||
FSL_CORENET_DCFG_FUSESR_ALTVID_MASK;
|
||||
|
@ -22,6 +22,7 @@
|
||||
|
||||
#include "../common/qixis.h"
|
||||
#include "ls2080ardb_qixis.h"
|
||||
#include "../common/vid.h"
|
||||
|
||||
#define PIN_MUX_SEL_SDHC 0x00
|
||||
#define PIN_MUX_SEL_DSPI 0x0a
|
||||
@ -123,6 +124,11 @@ int select_i2c_ch_pca9547(u8 ch)
|
||||
return 0;
|
||||
}
|
||||
|
||||
int i2c_multiplexer_select_vid_channel(u8 channel)
|
||||
{
|
||||
return select_i2c_ch_pca9547(channel);
|
||||
}
|
||||
|
||||
int config_board_mux(int ctrl_type)
|
||||
{
|
||||
u8 reg5;
|
||||
@ -189,6 +195,9 @@ int misc_init_r(void)
|
||||
if (hwconfig("sdhc"))
|
||||
config_board_mux(MUX_TYPE_SDHC);
|
||||
|
||||
if (adjust_vdd(0))
|
||||
printf("Warning: Adjusting core voltage failed.\n");
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -14,6 +14,22 @@
|
||||
|
||||
#define CONFIG_DISPLAY_BOARDINFO
|
||||
|
||||
#define I2C_MUX_CH_VOL_MONITOR 0xa
|
||||
#define I2C_VOL_MONITOR_ADDR 0x38
|
||||
#define CONFIG_VOL_MONITOR_IR36021_READ
|
||||
#define CONFIG_VOL_MONITOR_IR36021_SET
|
||||
|
||||
#define CONFIG_VID_FLS_ENV "ls2080ardb_vdd_mv"
|
||||
#ifndef CONFIG_SPL_BUILD
|
||||
#define CONFIG_VID
|
||||
#endif
|
||||
/* step the IR regulator in 5mV increments */
|
||||
#define IR_VDD_STEP_DOWN 5
|
||||
#define IR_VDD_STEP_UP 5
|
||||
/* The lowest and highest voltage allowed for LS2080ARDB */
|
||||
#define VDD_MV_MIN 819
|
||||
#define VDD_MV_MAX 1212
|
||||
|
||||
#ifndef __ASSEMBLY__
|
||||
unsigned long get_board_sys_clk(void);
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user