DWC_PRINTF("gpio_otgdet = %d irq = %d enabled\n",
pdata->gpio_otgdet, otg_cable_irq);
} else {
- DWC_PRINTF("gpio_otgdet = %d irq = %d case3!!!!!!!!!!!!!!\n",
+ DWC_PRINTF("gpio_otgdet = %d irq = %d buf = %s case3!!!!!!!!!!!!!!\n",
pdata->gpio_otgdet, otg_cable_irq, buf);
return 0;
}
struct device_attribute *attr, char *buf)
{
struct platform_device *dev = to_platform_device(_dev);
- dwc_otg_device_t *otg_dev = platform_get_drvdata(dev);
struct sprd_usb_platform_data *pdata = dev->dev.platform_data;
int otg_status;
struct platform_device *dev = to_platform_device(_dev);
dwc_otg_device_t *otg_dev = platform_get_drvdata(dev);
struct sprd_usb_platform_data *pdata = dev->dev.platform_data;
- int otg_cable_irq;
if (strncmp(buf, "off", 3) == 0) {
return 0;
}
#ifdef CONFIG_PM
-static int dwc_otg_suspend(struct platform_device *dev, pm_message_t state)
+static __maybe_unused int dwc_otg_suspend(struct platform_device *dev,
+ pm_message_t state)
{
pr_info("%s\n", __func__);
return 0;
}
-static int dwc_otg_resume(struct platform_device *dev)
+static __maybe_unused int dwc_otg_resume(struct platform_device *dev)
{
pr_info("%s\n", __func__);
return 0;
ret = of_address_to_resource(np, 0, &res);
if(ret < 0){
dev_err(&_dev->dev, "no reg of property specified\n");
- return NULL;
+ return ret;
}
#endif
usb_phy_init(_dev);
* Map the DWC_otg Core memory into virtual address space.
*/
#ifdef CONFIG_OF
- dwc_otg_device->os_dep.base = (unsigned long)ioremap_nocache(res.start,
+ dwc_otg_device->os_dep.base = (void *)ioremap_nocache(res.start,
resource_size(&res));
#if defined(CONFIG_ARCH_SCX20)
USB_GUSBCFG_REG = dwc_otg_device->os_dep.base + GUSBCFG_OFFSET;
void usb_otg_cable_detect_work(void *p)
{
dwc_otg_device_t *otg_dev = p;
- struct sprd_usb_platform_data *platform_data =&otg_dev->platform_data;
+ /*
+ * struct sprd_usb_platform_data *platform_data
+ * = &otg_dev->platform_data;
+ */
int value = 0;
int vbus_irq;
-
+
vbus_irq = usb_get_vbus_irq();
value = usb_get_id_state();
if (value){
}
+#ifndef CONFIG_USB_EXTERNAL_DETECT
+#ifndef CONFIG_MFD_SM5504
static irqreturn_t usb_otg_cable_detect_handler(int irq, void *dev)
{
dwc_otg_device_t *otg_dev = dev;
return IRQ_HANDLED;
}
+#endif /* CONFIG_MFD_SM5504 */
+#endif /* CONFIG_USB_EXTERNAL_DETECT */
#ifdef CONFIG_USB_EXTERNAL_DETECT
int dwc_otg_start(void *data, bool enable)
{
struct usb_hcd *hcd = NULL;
dwc_otg_device_t *otg_dev = (dwc_otg_device_t *)data;
- struct sprd_usb_platform_data *platform_data
- = &otg_dev->platform_data;
pr_info("%s enable=%d+\n", __func__, enable);
return 0;
}
#endif
+#ifdef CONFIG_ARM64
static struct device *device_hcd_dwc_otg;
+#endif /* CONFIG_ARM64 */
static u64 dwc_otg_dmamask = DMA_BIT_MASK(32);
/**
* Initializes the HCD. This function allocates memory for and initializes the
struct usb_hcd *hcd = NULL;
dwc_otg_hcd_t *dwc_otg_hcd = NULL;
dwc_otg_device_t *otg_dev = platform_get_drvdata(_dev);
- struct sprd_usb_platform_data *pdata= _dev->dev.platform_data;
int irq;
+#ifndef CONFIG_USB_EXTERNAL_DETECT
+#ifndef CONFIG_MFD_SM5504
+ struct sprd_usb_platform_data *pdata= _dev->dev.platform_data;
int otg_cable_irq;
int otg_cable_connected;
+#endif /* CONFIG_MFD_SM5504 */
+#endif /* CONFIG_USB_EXTERNAL_DETECT */
int retval = 0;
DWC_DEBUGPL(DBG_HCD, "DWC OTG HCD INIT\n");
static char pcd_name[] = "dwc_otg";
dwc_otg_device_t *otg_dev = platform_get_drvdata(_dev);
struct gadget_wrapper *d;
+#if 0
int retval;
+#endif
d = dwc_alloc(sizeof(*d));
if (d == NULL) {
static void usb_ldo_switch(int is_on)
{
+ int ret;
if(!IS_ERR_OR_NULL(usb_regulator)){
- if(is_on){
+ if(is_on) {
regulator_set_voltage(usb_regulator,3300000,3300000);
- regulator_enable(usb_regulator);
- }else{
- regulator_disable(usb_regulator);
+ ret = regulator_enable(usb_regulator);
+ } else {
+ ret = regulator_disable(usb_regulator);
}
}
}
if (of_property_read_u32(np, "tune_value", &tune_from_uboot))
{
pr_info("read tune_value error\n");
- return -ENODEV;
+ return;
}
pr_info("Usb_hw.c: [%s]usb phy tune from uboot: 0x%x\n", __FUNCTION__, tune_from_uboot);
#endif
#elif defined(CONFIG_ARCH_SCX20)
__raw_writel(tune_from_uboot,REG_AP_APB_USB_CTRL0);
#else
- __raw_writel(tune_from_uboot,REG_AP_APB_USB_PHY_TUNE);
+ __raw_writel(tune_from_uboot,
+ (void __iomem __force *)REG_AP_APB_USB_PHY_TUNE);
#endif
#endif
__raw_writel(tune_host, REG_AP_APB_USB_CTRL0);
phy_tune = __raw_readl(REG_AP_APB_USB_CTRL0);
#else
- __raw_writel(tune_host, REG_AP_APB_USB_PHY_TUNE);
- phy_tune = __raw_readl(REG_AP_APB_USB_PHY_TUNE);
+ __raw_writel(tune_host,
+ (void __iomem __force *)REG_AP_APB_USB_PHY_TUNE);
+ phy_tune = __raw_readl((void __iomem __force *)REG_AP_APB_USB_PHY_TUNE);
#endif
#endif
pr_info("Usb_hw.c: [%s] set tune_host=0x%x\n", __func__, phy_tune);
__raw_writel(tune_from_uboot, REG_AP_APB_USB_CTRL0);
phy_tune = __raw_readl(REG_AP_APB_USB_CTRL0);
#else
- __raw_writel(tune_from_uboot, REG_AP_APB_USB_PHY_TUNE);
- phy_tune = __raw_readl(REG_AP_APB_USB_PHY_TUNE);
+ __raw_writel(tune_from_uboot,
+ (void __iomem __force *)REG_AP_APB_USB_PHY_TUNE);
+ phy_tune = __raw_readl((void __iomem __force *)REG_AP_APB_USB_PHY_TUNE);
#endif
#endif
pr_info("Usb_hw.c: [%s] set tune_from_uboot=0x%x\n", __func__, phy_tune);
void charge_pump_set(int gpio, int state)
{
struct regulator *usb_regulator = NULL;
+ int ret;
#define USB_CHG_PUMP_NAME "chg_pump"
if( GPIO_INVALID != gpio) {
usb_regulator = regulator_get(NULL, USB_CHG_PUMP_NAME);
if (usb_regulator) {
if (state)
- regulator_enable(usb_regulator);
+ ret = regulator_enable(usb_regulator);
else
- regulator_disable(usb_regulator);
+ ret = regulator_disable(usb_regulator);
regulator_put(usb_regulator);
}
}