From 8b7464a118af5f2bf3bee2561901d44c80f518ba Mon Sep 17 00:00:00 2001 From: Bai Ping Date: Fri, 9 Oct 2015 21:04:01 +0800 Subject: MLK-11675 ARM: imx: change the VDD_SOC normal voltage to 0.975V According to the latest datasheet(Rev. C Draft 1, 10/2015) of i.MX7D, change the VDD_SOC voltage to 0.95V in run mode, and add a 25mV margin to cover the IR drop and board tolerance. So setting VDD_SOC voltage to 0.975V. Signed-off-by: Bai Ping --- board/freescale/mx7d_12x12_ddr3_arm2/mx7d_12x12_ddr3_arm2.c | 6 ++++++ .../mx7d_12x12_lpddr3_arm2/mx7d_12x12_lpddr3_arm2.c | 6 ++++++ board/freescale/mx7d_19x19_ddr3_arm2/mx7d_19x19_ddr3_arm2.c | 6 ++++++ .../mx7d_19x19_lpddr3_arm2/mx7d_19x19_lpddr3_arm2.c | 13 +++++++++++++ board/freescale/mx7dsabresd/mx7dsabresd.c | 6 ++++++ 5 files changed, 37 insertions(+) diff --git a/board/freescale/mx7d_12x12_ddr3_arm2/mx7d_12x12_ddr3_arm2.c b/board/freescale/mx7d_12x12_ddr3_arm2/mx7d_12x12_ddr3_arm2.c index 19d1ebb..b43a618 100644 --- a/board/freescale/mx7d_12x12_ddr3_arm2/mx7d_12x12_ddr3_arm2.c +++ b/board/freescale/mx7d_12x12_ddr3_arm2/mx7d_12x12_ddr3_arm2.c @@ -326,6 +326,12 @@ int power_init_board(void) pmic_reg_write(p, PFUZE300_SW1ASTBY, reg); pmic_reg_write(p, PFUZE300_SW1BSTBY, reg); + /* decrease SW1B normal voltage to 0.975V */ + pmic_reg_read(p, PFUZE300_SW1BVOLT, ®); + reg &= ~0x1f; + reg |= PFUZE300_SW1AB_SETP(975); + pmic_reg_write(p, PFUZE300_SW1BVOLT, reg); + return 0; } #endif diff --git a/board/freescale/mx7d_12x12_lpddr3_arm2/mx7d_12x12_lpddr3_arm2.c b/board/freescale/mx7d_12x12_lpddr3_arm2/mx7d_12x12_lpddr3_arm2.c index c41ccf3..bfaf34a 100644 --- a/board/freescale/mx7d_12x12_lpddr3_arm2/mx7d_12x12_lpddr3_arm2.c +++ b/board/freescale/mx7d_12x12_lpddr3_arm2/mx7d_12x12_lpddr3_arm2.c @@ -860,6 +860,12 @@ int power_init_board(void) reg |= 0x20; pmic_reg_write(p, PFUZE300_SW2MODE, reg); + /* decrease SW1B normal voltage to 0.975V */ + pmic_reg_read(p, PFUZE300_SW1BVOLT, ®); + reg &= ~0x1f; + reg |= PFUZE300_SW1AB_SETP(975); + pmic_reg_write(p, PFUZE300_SW1BVOLT, reg); + return 0; } #endif diff --git a/board/freescale/mx7d_19x19_ddr3_arm2/mx7d_19x19_ddr3_arm2.c b/board/freescale/mx7d_19x19_ddr3_arm2/mx7d_19x19_ddr3_arm2.c index 6b75ec6..5e1e178 100644 --- a/board/freescale/mx7d_19x19_ddr3_arm2/mx7d_19x19_ddr3_arm2.c +++ b/board/freescale/mx7d_19x19_ddr3_arm2/mx7d_19x19_ddr3_arm2.c @@ -630,6 +630,12 @@ int power_init_board(void) pmic_reg_write(p, PFUZE300_SW1ASTBY, reg); pmic_reg_write(p, PFUZE300_SW1BSTBY, reg); + /* decrease SW1B normal voltage to 0.975V */ + pmic_reg_read(p, PFUZE300_SW1BVOLT, ®); + reg &= ~0x1f; + reg |= PFUZE300_SW1AB_SETP(975); + pmic_reg_write(p, PFUZE300_SW1BVOLT, reg); + return 0; } #endif diff --git a/board/freescale/mx7d_19x19_lpddr3_arm2/mx7d_19x19_lpddr3_arm2.c b/board/freescale/mx7d_19x19_lpddr3_arm2/mx7d_19x19_lpddr3_arm2.c index 3e77951..9a5bf2a 100644 --- a/board/freescale/mx7d_19x19_lpddr3_arm2/mx7d_19x19_lpddr3_arm2.c +++ b/board/freescale/mx7d_19x19_lpddr3_arm2/mx7d_19x19_lpddr3_arm2.c @@ -555,6 +555,7 @@ static const struct boot_mode board_boot_modes[] = { #define PFUZE_LDOGCTL 0x69 #define PFUZE300_SW1ASTBY 0x21 #define PFUZE300_SW1AMODE 0x23 +#define PFUZE300_SW1BVOLT 0x2e #define PFUZE300_SW1BSTBY 0x2f #define PFUZE300_SW1BMODE 0x31 @@ -609,6 +610,18 @@ static int setup_pmic_voltages(void) printf("Set PFUZE300_SW1BSTBY error!\n"); return -1; } + + /* decrease SW1B normal voltage to 0.975V */ + if (i2c_read(CONFIG_PMIC_I2C_SLAVE, PFUZE300_SW1BVOLT, 1, &value, 1)) { + printf("Read SW1BVOLT error!\n"); + return -1; + } + value &= ~0x1f; + value |= 0x0b; + if (i2c_write(CONFIG_PMIC_I2C_SLAVE, PFUZE300_SW1BVOLT, 1, &value, 1)) { + printf("Set SW1BVOLT error!\n"); + return -1; + } } return 0; diff --git a/board/freescale/mx7dsabresd/mx7dsabresd.c b/board/freescale/mx7dsabresd/mx7dsabresd.c index 30d4b29..59fb352 100644 --- a/board/freescale/mx7dsabresd/mx7dsabresd.c +++ b/board/freescale/mx7dsabresd/mx7dsabresd.c @@ -964,6 +964,12 @@ int power_init_board(void) pmic_reg_write(p, PFUZE300_SW1ASTBY, reg); pmic_reg_write(p, PFUZE300_SW1BSTBY, reg); + /* decrease SW1B normal voltage to 0.975V */ + pmic_reg_read(p, PFUZE300_SW1BVOLT, ®); + reg &= ~0x1f; + reg |= PFUZE300_SW1AB_SETP(975); + pmic_reg_write(p, PFUZE300_SW1BVOLT, reg); + return 0; } #endif -- cgit v1.1