usb:gadget:s5p Enable the USB Gadget framework at GONI
This commit enables support for USB Gadgets on the GONI 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
38517a7821
commit
a954da2902
|
@ -55,6 +55,10 @@
|
||||||
#define S5PC110_VIC1_BASE 0xF2100000
|
#define S5PC110_VIC1_BASE 0xF2100000
|
||||||
#define S5PC110_VIC2_BASE 0xF2200000
|
#define S5PC110_VIC2_BASE 0xF2200000
|
||||||
#define S5PC110_VIC3_BASE 0xF2300000
|
#define S5PC110_VIC3_BASE 0xF2300000
|
||||||
|
#define S5PC110_OTG_BASE 0xEC000000
|
||||||
|
#define S5PC110_PHY_BASE 0xEC100000
|
||||||
|
#define S5PC110_USB_PHY_CONTROL 0xE010E80C
|
||||||
|
|
||||||
|
|
||||||
#ifndef __ASSEMBLY__
|
#ifndef __ASSEMBLY__
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
|
|
@ -26,7 +26,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;
|
||||||
|
|
||||||
static struct s5pc110_gpio *s5pc110_gpio;
|
static struct s5pc110_gpio *s5pc110_gpio;
|
||||||
|
@ -100,3 +102,47 @@ int board_mmc_init(bd_t *bis)
|
||||||
return s5p_mmc_init(0, 4);
|
return s5p_mmc_init(0, 4);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef CONFIG_USB_GADGET
|
||||||
|
static int s5pc1xx_phy_control(int on)
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
static int status;
|
||||||
|
struct pmic *p = get_pmic();
|
||||||
|
|
||||||
|
if (pmic_probe(p))
|
||||||
|
return -1;
|
||||||
|
|
||||||
|
if (on && !status) {
|
||||||
|
ret = pmic_set_output(p, MAX8998_REG_ONOFF1,
|
||||||
|
MAX8998_LDO3, LDO_ON);
|
||||||
|
ret = pmic_set_output(p, MAX8998_REG_ONOFF2,
|
||||||
|
MAX8998_LDO8, LDO_ON);
|
||||||
|
if (ret) {
|
||||||
|
puts("MAX8998 LDO setting error!\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
status = 1;
|
||||||
|
} else if (!on && status) {
|
||||||
|
ret = pmic_set_output(p, MAX8998_REG_ONOFF1,
|
||||||
|
MAX8998_LDO3, LDO_OFF);
|
||||||
|
ret = pmic_set_output(p, MAX8998_REG_ONOFF2,
|
||||||
|
MAX8998_LDO8, LDO_OFF);
|
||||||
|
if (ret) {
|
||||||
|
puts("MAX8998 LDO setting error!\n");
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
status = 0;
|
||||||
|
}
|
||||||
|
udelay(10000);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct s3c_plat_otg_data s5pc110_otg_data = {
|
||||||
|
.phy_control = s5pc1xx_phy_control,
|
||||||
|
.regs_phy = S5PC110_PHY_BASE,
|
||||||
|
.regs_otg = S5PC110_OTG_BASE,
|
||||||
|
.usb_phy_ctrl = S5PC110_USB_PHY_CONTROL,
|
||||||
|
};
|
||||||
|
#endif
|
||||||
|
|
|
@ -237,5 +237,8 @@
|
||||||
#define CONFIG_SYS_I2C_SPEED 50000
|
#define CONFIG_SYS_I2C_SPEED 50000
|
||||||
#define CONFIG_I2C_MULTI_BUS
|
#define CONFIG_I2C_MULTI_BUS
|
||||||
#define CONFIG_SYS_MAX_I2C_BUS 7
|
#define CONFIG_SYS_MAX_I2C_BUS 7
|
||||||
|
#define CONFIG_USB_GADGET
|
||||||
|
#define CONFIG_USB_GADGET_S3C_UDC_OTG
|
||||||
|
#define CONFIG_USB_GADGET_DUALSPEED
|
||||||
|
|
||||||
#endif /* __CONFIG_H */
|
#endif /* __CONFIG_H */
|
||||||
|
|
Loading…
Reference in New Issue