Lines Matching refs:data
41 struct dw8250_port_data data;
56 static inline struct dw8250_data *to_dw8250_data(struct dw8250_port_data *data)
58 return container_of(data, struct dw8250_data, data);
250 * data available. If we see such a case then we'll do a bogus
290 up = serial8250_get_port(d->data.line);
296 unsigned long event, void *data)
397 static void dw8250_quirks(struct uart_port *p, struct dw8250_data *data)
413 data->usr_reg = 0x27;
414 data->skip_autocfg = true;
429 data->uart_16550_compatible = true;
435 data->data.dma.rx_param = p->dev->parent;
436 data->data.dma.tx_param = p->dev->parent;
437 data->data.dma.fn = dw8250_idma_filter;
447 struct dw8250_data *data;
479 data = devm_kzalloc(dev, sizeof(*data), GFP_KERNEL);
480 if (!data)
483 data->data.dma.fn = dw8250_fallback_dma_filter;
484 data->usr_reg = DW_UART_USR;
485 p->private_data = &data->data;
487 data->uart_16550_compatible = device_property_read_bool(dev,
503 data->msr_mask_on |= UART_MSR_DCD;
504 data->msr_mask_off |= UART_MSR_DDCD;
509 data->msr_mask_on |= UART_MSR_DSR;
510 data->msr_mask_off |= UART_MSR_DDSR;
515 data->msr_mask_on |= UART_MSR_CTS;
516 data->msr_mask_off |= UART_MSR_DCTS;
521 data->msr_mask_off |= UART_MSR_RI;
522 data->msr_mask_off |= UART_MSR_TERI;
529 data->clk = devm_clk_get_optional(dev, "baudclk");
530 if (data->clk == NULL)
531 data->clk = devm_clk_get_optional(dev, NULL);
532 if (IS_ERR(data->clk))
533 return PTR_ERR(data->clk);
535 INIT_WORK(&data->clk_work, dw8250_clk_work_cb);
536 data->clk_notifier.notifier_call = dw8250_clk_notifier_cb;
538 err = clk_prepare_enable(data->clk);
542 if (data->clk)
543 p->uartclk = clk_get_rate(data->clk);
552 data->pclk = devm_clk_get_optional(dev, "apb_pclk");
553 if (IS_ERR(data->pclk)) {
554 err = PTR_ERR(data->pclk);
558 err = clk_prepare_enable(data->pclk);
564 data->rst = devm_reset_control_get_optional_exclusive(dev, NULL);
565 if (IS_ERR(data->rst)) {
566 err = PTR_ERR(data->rst);
569 reset_control_deassert(data->rst);
571 dw8250_quirks(p, data);
574 if (data->uart_16550_compatible)
577 if (!data->skip_autocfg)
582 data->data.dma.rxconf.src_maxburst = p->fifosize / 4;
583 data->data.dma.txconf.dst_maxburst = p->fifosize / 4;
584 up->dma = &data->data.dma;
587 data->data.line = serial8250_register_8250_port(up);
588 if (data->data.line < 0) {
589 err = data->data.line;
598 if (data->clk) {
599 err = clk_notifier_register(data->clk, &data->clk_notifier);
603 queue_work(system_unbound_wq, &data->clk_work);
606 platform_set_drvdata(pdev, data);
614 reset_control_assert(data->rst);
617 clk_disable_unprepare(data->pclk);
620 clk_disable_unprepare(data->clk);
627 struct dw8250_data *data = platform_get_drvdata(pdev);
632 if (data->clk) {
633 clk_notifier_unregister(data->clk, &data->clk_notifier);
635 flush_work(&data->clk_work);
638 serial8250_unregister_port(data->data.line);
640 reset_control_assert(data->rst);
642 clk_disable_unprepare(data->pclk);
644 clk_disable_unprepare(data->clk);
655 struct dw8250_data *data = dev_get_drvdata(dev);
657 serial8250_suspend_port(data->data.line);
664 struct dw8250_data *data = dev_get_drvdata(dev);
666 serial8250_resume_port(data->data.line);
675 struct dw8250_data *data = dev_get_drvdata(dev);
677 clk_disable_unprepare(data->clk);
679 clk_disable_unprepare(data->pclk);
686 struct dw8250_data *data = dev_get_drvdata(dev);
688 clk_prepare_enable(data->pclk);
690 clk_prepare_enable(data->clk);