diff options
Diffstat (limited to 'board/st/u8500/mcde_display.c')
-rw-r--r-- | board/st/u8500/mcde_display.c | 65 |
1 files changed, 26 insertions, 39 deletions
diff --git a/board/st/u8500/mcde_display.c b/board/st/u8500/mcde_display.c index b3116a03c..f3aa24bb9 100644 --- a/board/st/u8500/mcde_display.c +++ b/board/st/u8500/mcde_display.c @@ -189,13 +189,10 @@ static int mcde_display_power_init(void) { int val; int i; - int ret; - - if (!cpu_is_u8500v11()) - return 0; /* - * On v1.1 HREF boards (HREF+), Vaux1 needs to be enabled for the + * On v1.1 HREF boards (HREF+) and V2 boards + * Vaux1 needs to be enabled for the * display to work. This is done by enabling the regulators in the * AB8500 via PRCMU I2C transactions. * @@ -206,21 +203,18 @@ static int mcde_display_power_init(void) * Turn off and delay is required to have it work across soft reboots. */ - ret = ab8500_read(AB8500_REGU_CTRL2, + val = ab8500_read(AB8500_REGU_CTRL2, AB8500_REGU_VAUX12_REGU_REG); - if (ret < 0) { + if (val < 0) { printf("Read vaux1 status failed\n"); - goto out; + return -EINVAL; } - val = ret; - /* Turn off */ - ret = ab8500_write(AB8500_REGU_CTRL2, AB8500_REGU_VAUX12_REGU_REG, - val & ~MASK_LDO_VAUX1); - if (ret < 0) { + if (ab8500_write(AB8500_REGU_CTRL2, AB8500_REGU_VAUX12_REGU_REG, + val & ~MASK_LDO_VAUX1) < 0) { printf("Turn off Vaux1 failed\n"); - goto out; + return -EINVAL; } udelay(10 * 1000); @@ -229,12 +223,11 @@ static int mcde_display_power_init(void) /* Find voltage from vauxn table */ for (i = 0; i < ARRAY_SIZE(vauxn_table) ; i++) { if (vauxn_table[i].voltage == CONFIG_SYS_DISPLAY_VOLTAGE) { - ret = ab8500_write(AB8500_REGU_CTRL2, + if (ab8500_write(AB8500_REGU_CTRL2, AB8500_REGU_VAUX1_SEL_REG, - vauxn_table[i].regval); - if (ret < 0) { + vauxn_table[i].regval) < 0) { printf("AB8500_REGU_VAUX1_SEL_REG failed\n"); - goto out; + return -EINVAL; } break; } @@ -244,38 +237,34 @@ static int mcde_display_power_init(void) val = val | (1 << MASK_LDO_VAUX1_SHIFT); /* Turn on the supply */ - ret = ab8500_write(AB8500_REGU_CTRL2, - AB8500_REGU_VAUX12_REGU_REG, val); - if (ret < 0) { + if (ab8500_write(AB8500_REGU_CTRL2, + AB8500_REGU_VAUX12_REGU_REG, val) < 0) { printf("Turn on Vaux1 failed\n"); - goto out; + return -EINVAL; } /* DCI & CSI (DSI / PLL / Camera) */ /* Vana & Vpll HP mode */ - ret = ab8500_write(AB8500_REGU_CTRL2, AB8500_REGU_VPLLVANA_REGU_REG, - VANA_ENABLE_IN_HP_MODE); - if (ret < 0) { + if (ab8500_write(AB8500_REGU_CTRL2, AB8500_REGU_VPLLVANA_REGU_REG, + VANA_ENABLE_IN_HP_MODE) < 0) { printf("Turn on Vana failed\n"); - goto out; + return -EINVAL; } /* Enable the PWM control for the backlight Main display */ - ret = ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, ENABLE_PWM1); - if (ret < 0) { + if (ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL7_REG, + ENABLE_PWM1) < 0) { printf("Enable PWM1 failed\n"); - goto out; + return -EINVAL; } - ret = ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL1_REG, - PWM_DUTY_LOW_1024_1024); - if (ret < 0) { + if (ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL1_REG, + PWM_DUTY_LOW_1024_1024) < 0) { printf("PWM_DUTY_LOW_1024_1024 failed\n"); - goto out; + return -EINVAL; } - ret = ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL2_REG, - PWM_DUTY_HI_1024_1024); - if (ret < 0) { + if (ab8500_write(AB8500_MISC, AB8500_PWM_OUT_CTRL2_REG, + PWM_DUTY_HI_1024_1024) < 0) { printf("PWM_DUTY_HI_1024_1024 failed\n"); - goto out; + return -EINVAL; } if (!mcde_is_vaux1_enabled() || mcde_get_vaux1_voltage() @@ -287,8 +276,6 @@ static int mcde_display_power_init(void) } return 0; -out: - return ret; } |