trats2: enable ums support on Trats2
This patch adds support for USB and enables 'ums' command on Trats2 board. Signed-off-by: Piotr Wilczek <p.wilczek@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Acked-by: Jaehoon Chung <jh80.chung@samsung.com> Signed-off-by: Minkyu Kang <mk7.kang@samsung.com>
This commit is contained in:
parent
4498cf252b
commit
ab8efbb283
|
@ -25,6 +25,9 @@
|
||||||
#include <power/max77693_fg.h>
|
#include <power/max77693_fg.h>
|
||||||
#include <libtizen.h>
|
#include <libtizen.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
#include <usb.h>
|
||||||
|
#include <usb/s3c_udc.h>
|
||||||
|
#include <usb_mass_storage.h>
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
@ -308,6 +311,95 @@ int board_mmc_init(bd_t *bis)
|
||||||
return err0 & err2;
|
return err0 & err2;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_USB_GADGET
|
||||||
|
static int s5pc210_phy_control(int on)
|
||||||
|
{
|
||||||
|
int ret = 0;
|
||||||
|
unsigned int val;
|
||||||
|
struct pmic *p, *p_pmic, *p_muic;
|
||||||
|
|
||||||
|
p_pmic = pmic_get("MAX77686_PMIC");
|
||||||
|
if (!p_pmic)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
|
if (pmic_probe(p_pmic))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
p_muic = pmic_get("MAX77693_MUIC");
|
||||||
|
if (!p_muic)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
|
if (pmic_probe(p_muic))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (on) {
|
||||||
|
ret = max77686_set_ldo_mode(p_pmic, 12, OPMODE_ON);
|
||||||
|
if (ret)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
p = pmic_get("MAX77693_PMIC");
|
||||||
|
if (!p)
|
||||||
|
return -ENODEV;
|
||||||
|
|
||||||
|
if (pmic_probe(p))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
/* SAFEOUT */
|
||||||
|
ret = pmic_reg_read(p, MAX77693_SAFEOUT, &val);
|
||||||
|
if (ret)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
val |= MAX77693_ENSAFEOUT1;
|
||||||
|
ret = pmic_reg_write(p, MAX77693_SAFEOUT, val);
|
||||||
|
if (ret)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
/* PATH: USB */
|
||||||
|
ret = pmic_reg_write(p_muic, MAX77693_MUIC_CONTROL1,
|
||||||
|
MAX77693_MUIC_CTRL1_DN1DP2);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
ret = max77686_set_ldo_mode(p_pmic, 12, OPMODE_LPM);
|
||||||
|
if (ret)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
/* PATH: UART */
|
||||||
|
ret = pmic_reg_write(p_muic, MAX77693_MUIC_CONTROL1,
|
||||||
|
MAX77693_MUIC_CTRL1_UT1UR2);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret)
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct s3c_plat_otg_data s5pc210_otg_data = {
|
||||||
|
.phy_control = s5pc210_phy_control,
|
||||||
|
.regs_phy = EXYNOS4X12_USBPHY_BASE,
|
||||||
|
.regs_otg = EXYNOS4X12_USBOTG_BASE,
|
||||||
|
.usb_phy_ctrl = EXYNOS4X12_USBPHY_CONTROL,
|
||||||
|
.usb_flags = PHY0_SLEEP,
|
||||||
|
};
|
||||||
|
|
||||||
|
int board_usb_init(int index, enum usb_init_type init)
|
||||||
|
{
|
||||||
|
debug("USB_udc_probe\n");
|
||||||
|
return s3c_udc_probe(&s5pc210_otg_data);
|
||||||
|
}
|
||||||
|
|
||||||
|
#ifdef CONFIG_USB_CABLE_CHECK
|
||||||
|
int usb_cable_connected(void)
|
||||||
|
{
|
||||||
|
struct pmic *muic = pmic_get("MAX77693_MUIC");
|
||||||
|
if (!muic)
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
return !!muic->chrg->chrg_type(muic);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
static int pmic_init_max77686(void)
|
static int pmic_init_max77686(void)
|
||||||
{
|
{
|
||||||
struct pmic *p = pmic_get("MAX77686_PMIC");
|
struct pmic *p = pmic_get("MAX77686_PMIC");
|
||||||
|
|
|
@ -113,6 +113,16 @@
|
||||||
#define CONFIG_CMD_EXT4
|
#define CONFIG_CMD_EXT4
|
||||||
#define CONFIG_CMD_EXT4_WRITE
|
#define CONFIG_CMD_EXT4_WRITE
|
||||||
|
|
||||||
|
/* USB Composite download gadget - g_dnl */
|
||||||
|
#define CONFIG_USBDOWNLOAD_GADGET
|
||||||
|
#define CONFIG_DFU_FUNCTION
|
||||||
|
#define CONFIG_DFU_MMC
|
||||||
|
|
||||||
|
/* USB Samsung's IDs */
|
||||||
|
#define CONFIG_G_DNL_VENDOR_NUM 0x04E8
|
||||||
|
#define CONFIG_G_DNL_PRODUCT_NUM 0x6601
|
||||||
|
#define CONFIG_G_DNL_MANUFACTURER "Samsung"
|
||||||
|
|
||||||
/* To use the TFTPBOOT over USB, Please enable the CONFIG_CMD_NET */
|
/* To use the TFTPBOOT over USB, Please enable the CONFIG_CMD_NET */
|
||||||
#undef CONFIG_CMD_NET
|
#undef CONFIG_CMD_NET
|
||||||
|
|
||||||
|
@ -293,6 +303,11 @@
|
||||||
#define CONFIG_POWER_MUIC_MAX77693
|
#define CONFIG_POWER_MUIC_MAX77693
|
||||||
#define CONFIG_POWER_FG_MAX77693
|
#define CONFIG_POWER_FG_MAX77693
|
||||||
#define CONFIG_POWER_BATTERY_TRATS2
|
#define CONFIG_POWER_BATTERY_TRATS2
|
||||||
|
#define CONFIG_USB_GADGET
|
||||||
|
#define CONFIG_USB_GADGET_S3C_UDC_OTG
|
||||||
|
#define CONFIG_USB_GADGET_DUALSPEED
|
||||||
|
#define CONFIG_USB_GADGET_VBUS_DRAW 2
|
||||||
|
#define CONFIG_USB_CABLE_CHECK
|
||||||
|
|
||||||
/* LCD */
|
/* LCD */
|
||||||
#define CONFIG_EXYNOS_FB
|
#define CONFIG_EXYNOS_FB
|
||||||
|
@ -305,6 +320,9 @@
|
||||||
#define CONFIG_VIDEO_BMP_GZIP
|
#define CONFIG_VIDEO_BMP_GZIP
|
||||||
#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE ((500 * 250 * 4) + (1 << 12))
|
#define CONFIG_SYS_VIDEO_LOGO_MAX_SIZE ((500 * 250 * 4) + (1 << 12))
|
||||||
|
|
||||||
|
#define CONFIG_CMD_USB_MASS_STORAGE
|
||||||
|
#define CONFIG_USB_GADGET_MASS_STORAGE
|
||||||
|
|
||||||
/* Pass open firmware flat tree */
|
/* Pass open firmware flat tree */
|
||||||
#define CONFIG_OF_LIBFDT 1
|
#define CONFIG_OF_LIBFDT 1
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue