From mboxrd@z Thu Jan 1 00:00:00 1970 From: Minkyu Kang Date: Thu, 21 Nov 2013 17:24:03 +0900 Subject: [U-Boot] [PATCH V3 2/2] trats2: enable ums support on Trats2 In-Reply-To: <1383836434-13003-2-git-send-email-p.wilczek@samsung.com> References: <1383745592-27139-1-git-send-email-p.wilczek@samsung.com> <1383836434-13003-1-git-send-email-p.wilczek@samsung.com> <1383836434-13003-2-git-send-email-p.wilczek@samsung.com> Message-ID: <528DC323.7020704@samsung.com> List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Dear Piotr Wilczek, On 08/11/13 00:00, Piotr Wilczek wrote: > This patch adds support for USB and enables 'ums' command on Trats2 board. > > Signed-off-by: Piotr Wilczek > Signed-off-by: Kyungmin Park > CC: Minkyu Kang > > Acked-by: Jaehoon Chung > --- > This patch depends on the lated u-boot-usb/master. > > Changes for v3: > - no changes > > Changes for v2: > - rebased on current USB tree > - removed unnecessary pmic probing > > board/samsung/trats2/trats2.c | 92 +++++++++++++++++++++++++++++++++++++++++ > include/configs/trats2.h | 18 ++++++++ > 2 files changed, 110 insertions(+) > > diff --git a/board/samsung/trats2/trats2.c b/board/samsung/trats2/trats2.c > index d44d825..41a7310 100644 > --- a/board/samsung/trats2/trats2.c > +++ b/board/samsung/trats2/trats2.c > @@ -25,6 +25,9 @@ > #include > #include > #include > +#include > +#include > +#include > > DECLARE_GLOBAL_DATA_PTR; > > @@ -308,6 +311,95 @@ int board_mmc_init(bd_t *bis) > 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; > + please remove blank line. > + > + 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"); > + int cable_connected = muic->chrg->chrg_type(muic); Please check that muic is available. > + > + return !!cable_connected; I think, cable_connected is unnecessary. return !!muic->chrg->chrg_type(muic); > +} > +#endif > +#endif > + > static int pmic_init_max77686(void) > { > struct pmic *p = pmic_get("MAX77686_PMIC"); > diff --git a/include/configs/trats2.h b/include/configs/trats2.h > index 0e93836..66b1c95 100644 > --- a/include/configs/trats2.h > +++ b/include/configs/trats2.h > @@ -113,6 +113,16 @@ > #define CONFIG_CMD_EXT4 > #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 */ > #undef CONFIG_CMD_NET > > @@ -293,6 +303,11 @@ > #define CONFIG_POWER_MUIC_MAX77693 > #define CONFIG_POWER_FG_MAX77693 > #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 */ > #define CONFIG_EXYNOS_FB > @@ -305,6 +320,9 @@ > #define CONFIG_VIDEO_BMP_GZIP > #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 */ > #define CONFIG_OF_LIBFDT 1 > > Thanks, Minkyu Kang.