Lines Matching +full:hci +full:- +full:muxed
1 // SPDX-License-Identifier: GPL-2.0-only
3 * Marvell NFC-over-UART driver
18 static int reset_n_io = -EINVAL;
37 struct nci_uart *nu = priv->drv_data; in nfcmrvl_uart_nci_send()
39 return nu->ops.send(nu, skb); in nfcmrvl_uart_nci_send()
45 struct nci_uart *nu = priv->drv_data; in nfcmrvl_uart_nci_update_config()
48 nci_uart_set_config(nu, le32_to_cpu(config->baudrate), in nfcmrvl_uart_nci_update_config()
49 config->flow_control); in nfcmrvl_uart_nci_update_config()
65 matched_node = of_get_compatible_child(node, "marvell,nfc-uart"); in nfcmrvl_uart_parse_dt()
67 matched_node = of_get_compatible_child(node, "mrvl,nfc-uart"); in nfcmrvl_uart_parse_dt()
69 return -ENODEV; in nfcmrvl_uart_parse_dt()
79 if (of_find_property(matched_node, "flow-control", NULL)) in nfcmrvl_uart_parse_dt()
80 pdata->flow_control = 1; in nfcmrvl_uart_parse_dt()
82 pdata->flow_control = 0; in nfcmrvl_uart_parse_dt()
84 if (of_find_property(matched_node, "break-control", NULL)) in nfcmrvl_uart_parse_dt()
85 pdata->break_control = 1; in nfcmrvl_uart_parse_dt()
87 pdata->break_control = 0; in nfcmrvl_uart_parse_dt()
103 struct device *dev = nu->tty->dev; in nfcmrvl_nci_uart_open()
111 if (dev && dev->parent && dev->parent->of_node) in nfcmrvl_nci_uart_open()
112 if (nfcmrvl_uart_parse_dt(dev->parent->of_node, &config) == 0) in nfcmrvl_nci_uart_open()
116 pr_info("No platform data / DT -> fallback to module params\n"); in nfcmrvl_nci_uart_open()
129 priv->support_fw_dnld = true; in nfcmrvl_nci_uart_open()
131 nu->drv_data = priv; in nfcmrvl_nci_uart_open()
132 nu->ndev = priv->ndev; in nfcmrvl_nci_uart_open()
139 nfcmrvl_nci_unregister_dev((struct nfcmrvl_private *)nu->drv_data); in nfcmrvl_nci_uart_close()
144 return nfcmrvl_nci_recv_frame((struct nfcmrvl_private *)nu->drv_data, in nfcmrvl_nci_uart_recv()
150 struct nfcmrvl_private *priv = (struct nfcmrvl_private *)nu->drv_data; in nfcmrvl_nci_uart_tx_start()
152 if (priv->ndev->nfc_dev->fw_download_in_progress) in nfcmrvl_nci_uart_tx_start()
156 if (priv->config.break_control && nu->tty->ops->break_ctl) { in nfcmrvl_nci_uart_tx_start()
157 nu->tty->ops->break_ctl(nu->tty, 0); in nfcmrvl_nci_uart_tx_start()
164 struct nfcmrvl_private *priv = (struct nfcmrvl_private *)nu->drv_data; in nfcmrvl_nci_uart_tx_done()
166 if (priv->ndev->nfc_dev->fw_download_in_progress) in nfcmrvl_nci_uart_tx_done()
174 if (priv->config.break_control && nu->tty->ops->break_ctl) { in nfcmrvl_nci_uart_tx_done()
175 nu->tty->ops->break_ctl(nu->tty, -1); in nfcmrvl_nci_uart_tx_done()
195 MODULE_DESCRIPTION("Marvell NFC-over-UART");
205 MODULE_PARM_DESC(hci_muxed, "Tell if transport is muxed in HCI one.");