Lines Matching refs:isp
29 static void isp1760_init_core(struct isp1760_device *isp) in isp1760_init_core() argument
35 if (isp->rst_gpio) { in isp1760_init_core()
36 gpiod_set_value_cansleep(isp->rst_gpio, 1); in isp1760_init_core()
38 gpiod_set_value_cansleep(isp->rst_gpio, 0); in isp1760_init_core()
45 isp1760_write32(isp->regs, HC_RESET_REG, SW_RESET_RESET_ALL); in isp1760_init_core()
51 if (isp->devflags & ISP1760_FLAG_BUS_WIDTH_16) in isp1760_init_core()
53 if (isp->devflags & ISP1760_FLAG_ANALOG_OC) in isp1760_init_core()
55 if (isp->devflags & ISP1760_FLAG_DACK_POL_HIGH) in isp1760_init_core()
57 if (isp->devflags & ISP1760_FLAG_DREQ_POL_HIGH) in isp1760_init_core()
59 if (isp->devflags & ISP1760_FLAG_INTR_POL_HIGH) in isp1760_init_core()
61 if (isp->devflags & ISP1760_FLAG_INTR_EDGE_TRIG) in isp1760_init_core()
70 if (isp->devflags & ISP1760_FLAG_ISP1761) { in isp1760_init_core()
71 isp1760_write32(isp->regs, DC_MODE, 0); in isp1760_init_core()
80 isp1760_write32(isp->regs, HC_HW_MODE_CTRL, hwmode); in isp1760_init_core()
81 isp1760_write32(isp->regs, HC_HW_MODE_CTRL, hwmode); in isp1760_init_core()
90 if ((isp->devflags & ISP1760_FLAG_ISP1761) && in isp1760_init_core()
91 (isp->devflags & ISP1760_FLAG_OTG_EN)) in isp1760_init_core()
98 isp1760_write32(isp->regs, HC_PORT1_CTRL, otgctrl); in isp1760_init_core()
100 dev_info(isp->dev, "bus width: %u, oc: %s\n", in isp1760_init_core()
101 isp->devflags & ISP1760_FLAG_BUS_WIDTH_16 ? 16 : 32, in isp1760_init_core()
102 isp->devflags & ISP1760_FLAG_ANALOG_OC ? "analog" : "digital"); in isp1760_init_core()
105 void isp1760_set_pullup(struct isp1760_device *isp, bool enable) in isp1760_set_pullup() argument
107 isp1760_write32(isp->regs, HW_OTG_CTRL_SET, in isp1760_set_pullup()
114 struct isp1760_device *isp; in isp1760_register() local
129 isp = devm_kzalloc(dev, sizeof(*isp), GFP_KERNEL); in isp1760_register()
130 if (!isp) in isp1760_register()
133 isp->dev = dev; in isp1760_register()
134 isp->devflags = devflags; in isp1760_register()
136 isp->rst_gpio = devm_gpiod_get_optional(dev, NULL, GPIOD_OUT_HIGH); in isp1760_register()
137 if (IS_ERR(isp->rst_gpio)) in isp1760_register()
138 return PTR_ERR(isp->rst_gpio); in isp1760_register()
140 isp->regs = devm_ioremap_resource(dev, mem); in isp1760_register()
141 if (IS_ERR(isp->regs)) in isp1760_register()
142 return PTR_ERR(isp->regs); in isp1760_register()
144 isp1760_init_core(isp); in isp1760_register()
147 ret = isp1760_hcd_register(&isp->hcd, isp->regs, mem, irq, in isp1760_register()
154 ret = isp1760_udc_register(isp, irq, irqflags); in isp1760_register()
156 isp1760_hcd_unregister(&isp->hcd); in isp1760_register()
161 dev_set_drvdata(dev, isp); in isp1760_register()
168 struct isp1760_device *isp = dev_get_drvdata(dev); in isp1760_unregister() local
170 isp1760_udc_unregister(isp); in isp1760_unregister()
171 isp1760_hcd_unregister(&isp->hcd); in isp1760_unregister()