On 02/08/2016 05:33 AM, Rai Harninder wrote: > This patch enable VID support for ls2080ardb platform. > It uses the common VID driver > > Signed-off-by: Rai Harninder <harninder....@nxp.com> > --- > Changes in v2 > - Use CONFIG_FSL_LSCH3 instead of CONFIG_LAYERSCAPE > since the latter is defined for other platforms > as well > - Modify patch description > > .../include/asm/arch-fsl-layerscape/immap_lsch3.h | 4 ++++ > board/freescale/common/vid.c | 15 ++++++++++++++- > board/freescale/ls2080ardb/ls2080ardb.c | 5 +++++ > include/configs/ls2080ardb.h | 16 ++++++++++++++++ > 4 files changed, 39 insertions(+), 1 deletions(-) > > diff --git a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h > b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h > index 91f3ce8..4fd58ee 100644 > --- a/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h > +++ b/arch/arm/include/asm/arch-fsl-layerscape/immap_lsch3.h > @@ -146,6 +146,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; > diff --git a/board/freescale/common/vid.c b/board/freescale/common/vid.c > index 1bd65a8..b037643 100644 > --- a/board/freescale/common/vid.c > +++ b/board/freescale/common/vid.c > @@ -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; > diff --git a/board/freescale/ls2080ardb/ls2080ardb.c > b/board/freescale/ls2080ardb/ls2080ardb.c > index c63b639..9515b25 100644 > --- a/board/freescale/ls2080ardb/ls2080ardb.c > +++ b/board/freescale/ls2080ardb/ls2080ardb.c > @@ -122,6 +122,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; > diff --git a/include/configs/ls2080ardb.h b/include/configs/ls2080ardb.h > index 116dbcd..9a95f31 100644 > --- a/include/configs/ls2080ardb.h > +++ b/include/configs/ls2080ardb.h > @@ -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 >
Rai, Did you test this patch to confirm the voltage change? I don't see you calling adjust_vdd(). York _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot