Lines Matching refs:isp

26 static void isp1760_init_core(struct isp1760_device *isp)  in isp1760_init_core()  argument
32 if (isp->rst_gpio) { in isp1760_init_core()
33 gpiod_set_value_cansleep(isp->rst_gpio, 1); in isp1760_init_core()
35 gpiod_set_value_cansleep(isp->rst_gpio, 0); in isp1760_init_core()
42 isp1760_write32(isp->regs, HC_RESET_REG, SW_RESET_RESET_ALL); in isp1760_init_core()
48 if (isp->devflags & ISP1760_FLAG_BUS_WIDTH_16) in isp1760_init_core()
50 if (isp->devflags & ISP1760_FLAG_ANALOG_OC) in isp1760_init_core()
52 if (isp->devflags & ISP1760_FLAG_DACK_POL_HIGH) in isp1760_init_core()
54 if (isp->devflags & ISP1760_FLAG_DREQ_POL_HIGH) in isp1760_init_core()
56 if (isp->devflags & ISP1760_FLAG_INTR_POL_HIGH) in isp1760_init_core()
58 if (isp->devflags & ISP1760_FLAG_INTR_EDGE_TRIG) in isp1760_init_core()
67 if (isp->devflags & ISP1760_FLAG_ISP1761) { in isp1760_init_core()
68 isp1760_write32(isp->regs, DC_MODE, 0); in isp1760_init_core()
77 isp1760_write32(isp->regs, HC_HW_MODE_CTRL, hwmode); in isp1760_init_core()
78 isp1760_write32(isp->regs, HC_HW_MODE_CTRL, hwmode); in isp1760_init_core()
87 if ((isp->devflags & ISP1760_FLAG_ISP1761) && in isp1760_init_core()
88 (isp->devflags & ISP1760_FLAG_OTG_EN)) in isp1760_init_core()
95 isp1760_write32(isp->regs, HC_PORT1_CTRL, otgctrl); in isp1760_init_core()
97 dev_info(isp->dev, "bus width: %u, oc: %s\n", in isp1760_init_core()
98 isp->devflags & ISP1760_FLAG_BUS_WIDTH_16 ? 16 : 32, in isp1760_init_core()
99 isp->devflags & ISP1760_FLAG_ANALOG_OC ? "analog" : "digital"); in isp1760_init_core()
102 void isp1760_set_pullup(struct isp1760_device *isp, bool enable) in isp1760_set_pullup() argument
104 isp1760_write32(isp->regs, HW_OTG_CTRL_SET, in isp1760_set_pullup()
111 struct isp1760_device *isp; in isp1760_register() local
123 isp = devm_kzalloc(dev, sizeof(*isp), GFP_KERNEL); in isp1760_register()
124 if (!isp) in isp1760_register()
127 isp->dev = dev; in isp1760_register()
128 isp->devflags = devflags; in isp1760_register()
130 isp->rst_gpio = devm_gpiod_get_optional(dev, NULL, GPIOD_OUT_HIGH); in isp1760_register()
131 if (IS_ERR(isp->rst_gpio)) in isp1760_register()
132 return PTR_ERR(isp->rst_gpio); in isp1760_register()
134 isp->regs = devm_ioremap_resource(dev, mem); in isp1760_register()
135 if (IS_ERR(isp->regs)) in isp1760_register()
136 return PTR_ERR(isp->regs); in isp1760_register()
138 isp1760_init_core(isp); in isp1760_register()
141 ret = isp1760_hcd_register(&isp->hcd, isp->regs, mem, irq, in isp1760_register()
148 ret = isp1760_udc_register(isp, irq, irqflags); in isp1760_register()
150 isp1760_hcd_unregister(&isp->hcd); in isp1760_register()
155 dev_set_drvdata(dev, isp); in isp1760_register()
162 struct isp1760_device *isp = dev_get_drvdata(dev); in isp1760_unregister() local
164 isp1760_udc_unregister(isp); in isp1760_unregister()
165 isp1760_hcd_unregister(&isp->hcd); in isp1760_unregister()