Lines Matching refs:dwc3_data

110  * @dwc3_data: driver private structure
115 static int st_dwc3_drd_init(struct st_dwc3 *dwc3_data)
120 err = regmap_read(dwc3_data->regmap, dwc3_data->syscfg_reg_off, &val);
126 switch (dwc3_data->dr_mode) {
161 dev_err(dwc3_data->dev, "Unsupported mode of operation %d\n",
162 dwc3_data->dr_mode);
166 return regmap_write(dwc3_data->regmap, dwc3_data->syscfg_reg_off, val);
171 * @dwc3_data: driver private structure
173 static void st_dwc3_init(struct st_dwc3 *dwc3_data)
175 u32 reg = st_dwc3_readl(dwc3_data->glue_base, CLKRST_CTRL);
179 st_dwc3_writel(dwc3_data->glue_base, CLKRST_CTRL, reg);
182 reg = st_dwc3_readl(dwc3_data->glue_base, USB2_VBUS_MNGMNT_SEL1);
188 st_dwc3_writel(dwc3_data->glue_base, USB2_VBUS_MNGMNT_SEL1, reg);
190 reg = st_dwc3_readl(dwc3_data->glue_base, CLKRST_CTRL);
192 st_dwc3_writel(dwc3_data->glue_base, CLKRST_CTRL, reg);
197 struct st_dwc3 *dwc3_data;
205 dwc3_data = devm_kzalloc(dev, sizeof(*dwc3_data), GFP_KERNEL);
206 if (!dwc3_data)
209 dwc3_data->glue_base =
211 if (IS_ERR(dwc3_data->glue_base))
212 return PTR_ERR(dwc3_data->glue_base);
218 dwc3_data->dev = dev;
219 dwc3_data->regmap = regmap;
227 dwc3_data->syscfg_reg_off = res->start;
230 dwc3_data->glue_base, dwc3_data->syscfg_reg_off);
232 dwc3_data->rstc_pwrdn =
234 if (IS_ERR(dwc3_data->rstc_pwrdn)) {
236 ret = PTR_ERR(dwc3_data->rstc_pwrdn);
241 reset_control_deassert(dwc3_data->rstc_pwrdn);
243 dwc3_data->rstc_rst =
245 if (IS_ERR(dwc3_data->rstc_rst)) {
247 ret = PTR_ERR(dwc3_data->rstc_rst);
252 reset_control_deassert(dwc3_data->rstc_rst);
275 dwc3_data->dr_mode = usb_get_dr_mode(&child_pdev->dev);
285 ret = st_dwc3_drd_init(dwc3_data);
292 st_dwc3_init(dwc3_data);
294 platform_set_drvdata(pdev, dwc3_data);
300 reset_control_assert(dwc3_data->rstc_rst);
302 reset_control_assert(dwc3_data->rstc_pwrdn);
310 struct st_dwc3 *dwc3_data = platform_get_drvdata(pdev);
314 reset_control_assert(dwc3_data->rstc_pwrdn);
315 reset_control_assert(dwc3_data->rstc_rst);
321 struct st_dwc3 *dwc3_data = dev_get_drvdata(dev);
323 reset_control_assert(dwc3_data->rstc_pwrdn);
324 reset_control_assert(dwc3_data->rstc_rst);
333 struct st_dwc3 *dwc3_data = dev_get_drvdata(dev);
338 reset_control_deassert(dwc3_data->rstc_pwrdn);
339 reset_control_deassert(dwc3_data->rstc_rst);
341 ret = st_dwc3_drd_init(dwc3_data);
348 st_dwc3_init(dwc3_data);