summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorItsuki Yamashita <yamashitai@casio.co.jp>2016-03-25 16:09:37 +0900
committerItsuki Yamashita <yamashitai@casio.co.jp>2016-03-25 16:20:02 +0900
commit384cd24949d7e49e57d9b17c808feef7ebf4dd56 (patch)
treef6606dcc5f3b2401a3f152e074cbb61337798b96
parent241fb9873055ef45bdb76ffefd6f8b082e1b6fa9 (diff)
downloadkoi-uboot-384cd24949d7e49e57d9b17c808feef7ebf4dd56.tar.gz
pmic: enable ldo8, ldo6 for usb
LDOs for usb is on by default. But if system reboot when LDOs are off, usb could not connect in bootloader. e.g. reboot bootloader by console. Note: ldo6 is used by both of usb and mipi. Change-Id: I3184c64c26796643e61ec60bb132ea58aadd8747 Signed-off-by: Itsuki Yamashita <yamashitai@casio.co.jp>
-rw-r--r--board/samsung/koi/pmic.c17
-rw-r--r--drivers/usb/gadget/usbd-otg-hs.c2
-rw-r--r--include/pmic.h1
3 files changed, 20 insertions, 0 deletions
diff --git a/board/samsung/koi/pmic.c b/board/samsung/koi/pmic.c
index fcf87be0b..cb3a13bb0 100644
--- a/board/samsung/koi/pmic.c
+++ b/board/samsung/koi/pmic.c
@@ -300,6 +300,23 @@ int get_boot_cause(void)
return -1;
}
+void pmic_enable_usb(void)
+{
+ unsigned char ldo_ctrl;
+
+ IIC0_ESetport();
+
+ /* enable LDO6 : enable VDD_USB_AP */
+ IIC0_ERead(S2MPS14_WR_ADDR, 0x28, &ldo_ctrl);
+ ldo_ctrl |= OUTPUT_NORMAL_MODE;
+ IIC0_EWrite(S2MPS14_WR_ADDR, 0x28, ldo_ctrl);
+
+ /* enable LDO8 : enable AVDD33_UOTG */
+ IIC0_ERead(S2MPS14_WR_ADDR, 0x2A, &ldo_ctrl);
+ ldo_ctrl |= OUTPUT_NORMAL_MODE;
+ IIC0_EWrite(S2MPS14_WR_ADDR, 0x2A, ldo_ctrl);
+}
+
#ifdef CONFIG_USE_LCD
void pmic_turnon_vdd_lcd(void)
{
diff --git a/drivers/usb/gadget/usbd-otg-hs.c b/drivers/usb/gadget/usbd-otg-hs.c
index 5c5c47308..9c816d75c 100644
--- a/drivers/usb/gadget/usbd-otg-hs.c
+++ b/drivers/usb/gadget/usbd-otg-hs.c
@@ -29,6 +29,7 @@
#include <asm/io.h>
#include <asm/arch/cpu.h>
#include <asm/arch/usb2.h>
+#include <pmic.h>
#include "usbd-otg-hs.h"
#if defined(CONFIG_S5P6450)
@@ -523,6 +524,7 @@ int s3c_usbctl_init(void)
#error "* CFG_ERROR : you have to select proper CPU for Android Fastboot"
#endif
+ pmic_enable_usb();
otg.speed = speed;
otg.set_config = 0;
otg.ep0_state = EP0_STATE_INIT;
diff --git a/include/pmic.h b/include/pmic.h
index 6a05b40ae..752b411c6 100644
--- a/include/pmic.h
+++ b/include/pmic.h
@@ -62,6 +62,7 @@ int pmic_probe(struct pmic *p);
int pmic_reg_read(struct pmic *p, u32 reg, u32 *val);
int pmic_reg_write(struct pmic *p, u32 reg, u32 val);
int pmic_set_output(struct pmic *p, u32 reg, int ldo, int on);
+void pmic_enable_usb(void);
#define pmic_i2c_addr (p->hw.i2c.addr)
#define pmic_i2c_tx_num (p->hw.i2c.tx_num)