usb:gadget:s5p Enable the USB Gadget framework at Exynos4210 (C210 Universal)
This commit enables support for USB Gadgets on the Exynos4210 (C210 Universal) reference target. Signed-off-by: Lukasz Majewski <l.majewski@samsung.com> Signed-off-by: Kyungmin Park <kyungmin.park@samsung.com> Cc: Minkyu Kang <mk7.kang@samsung.com> CC: Remy Bohmer <linux@bohmer.net>
This commit is contained in:
parent
d70a560fd7
commit
ddc7e541ae
|
@ -46,6 +46,7 @@
|
||||||
#define EXYNOS4_ADC_BASE 0x13910000
|
#define EXYNOS4_ADC_BASE 0x13910000
|
||||||
#define EXYNOS4_PWMTIMER_BASE 0x139D0000
|
#define EXYNOS4_PWMTIMER_BASE 0x139D0000
|
||||||
#define EXYNOS4_MODEM_BASE 0x13A00000
|
#define EXYNOS4_MODEM_BASE 0x13A00000
|
||||||
|
#define EXYNOS4_USBPHY_CONTROL 0x10020704
|
||||||
|
|
||||||
#ifndef __ASSEMBLY__
|
#ifndef __ASSEMBLY__
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
|
|
@ -28,6 +28,9 @@
|
||||||
#include <asm/arch/gpio.h>
|
#include <asm/arch/gpio.h>
|
||||||
#include <asm/arch/mmc.h>
|
#include <asm/arch/mmc.h>
|
||||||
#include <pmic.h>
|
#include <pmic.h>
|
||||||
|
#include <usb/s3c_udc.h>
|
||||||
|
#include <asm/arch/cpu.h>
|
||||||
|
#include <max8998_pmic.h>
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
|
||||||
|
@ -253,3 +256,48 @@ int board_mmc_init(bd_t *bis)
|
||||||
|
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_USB_GADGET
|
||||||
|
static int s5pc210_phy_control(int on)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
struct pmic *p = get_pmic();
|
||||||
|
|
||||||
|
if (pmic_probe(p))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (on) {
|
||||||
|
ret |= pmic_set_output(p,
|
||||||
|
MAX8998_REG_BUCK_ACTIVE_DISCHARGE3,
|
||||||
|
MAX8998_SAFEOUT1, LDO_ON);
|
||||||
|
ret |= pmic_set_output(p, MAX8998_REG_ONOFF1,
|
||||||
|
MAX8998_LDO3, LDO_ON);
|
||||||
|
ret |= pmic_set_output(p, MAX8998_REG_ONOFF2,
|
||||||
|
MAX8998_LDO8, LDO_ON);
|
||||||
|
|
||||||
|
} else {
|
||||||
|
ret |= pmic_set_output(p, MAX8998_REG_ONOFF2,
|
||||||
|
MAX8998_LDO8, LDO_OFF);
|
||||||
|
ret |= pmic_set_output(p, MAX8998_REG_ONOFF1,
|
||||||
|
MAX8998_LDO3, LDO_OFF);
|
||||||
|
ret |= pmic_set_output(p,
|
||||||
|
MAX8998_REG_BUCK_ACTIVE_DISCHARGE3,
|
||||||
|
MAX8998_SAFEOUT1, LDO_OFF);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (ret) {
|
||||||
|
puts("MAX8998 LDO setting error!\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct s3c_plat_otg_data s5pc210_otg_data = {
|
||||||
|
.phy_control = s5pc210_phy_control,
|
||||||
|
.regs_phy = EXYNOS4_USBPHY_BASE,
|
||||||
|
.regs_otg = EXYNOS4_USBOTG_BASE,
|
||||||
|
.usb_phy_ctrl = EXYNOS4_USBPHY_CONTROL,
|
||||||
|
.usb_flags = PHY0_SLEEP,
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
|
@ -262,4 +262,8 @@
|
||||||
#define CONFIG_PMIC_I2C
|
#define CONFIG_PMIC_I2C
|
||||||
#define CONFIG_PMIC_MAX8998
|
#define CONFIG_PMIC_MAX8998
|
||||||
|
|
||||||
|
#define CONFIG_USB_GADGET
|
||||||
|
#define CONFIG_USB_GADGET_S3C_UDC_OTG
|
||||||
|
#define CONFIG_USB_GADGET_DUALSPEED
|
||||||
|
|
||||||
#endif /* __CONFIG_H */
|
#endif /* __CONFIG_H */
|
||||||
|
|
|
@ -76,6 +76,7 @@ enum {
|
||||||
|
|
||||||
#define MAX8998_LDO3 (1 << 2)
|
#define MAX8998_LDO3 (1 << 2)
|
||||||
#define MAX8998_LDO8 (1 << 5)
|
#define MAX8998_LDO8 (1 << 5)
|
||||||
|
#define MAX8998_SAFEOUT1 (1 << 4)
|
||||||
|
|
||||||
#define MAX8998_I2C_ADDR (0xCC >> 1)
|
#define MAX8998_I2C_ADDR (0xCC >> 1)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue