| /linux/drivers/i3c/master/mipi-i3c-hci/ |
| H A D | core.c | 18 #include <linux/platform_data/mipi-i3c-hci.h> 22 #include "hci.h" 32 #define HCI_VERSION 0x00 /* HCI Version (in BCD) */ 120 static void i3c_hci_set_master_dyn_addr(struct i3c_hci *hci) in i3c_hci_set_master_dyn_addr() 123 MASTER_DYNAMIC_ADDR(hci->dyn_addr) | MASTER_DYNAMIC_ADDR_VALID); 128 struct i3c_hci *hci = to_i3c_hci(m); in i3c_hci_bus_init() 129 struct device *dev = hci->master.dev.parent; in i3c_hci_bus_init() 133 if (hci->cmd == &mipi_i3c_hci_cmd_v1) { in i3c_hci_bus_init() 134 ret = mipi_i3c_hci_dat_v1.init(hci); in i3c_hci_bus_init() 142 hci in i3c_hci_bus_init() 118 i3c_hci_set_master_dyn_addr(struct i3c_hci * hci) i3c_hci_set_master_dyn_addr() argument 126 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_bus_init() local 168 i3c_hci_bus_disable(struct i3c_hci * hci) i3c_hci_bus_disable() argument 184 i3c_hci_software_reset(struct i3c_hci * hci) i3c_hci_software_reset() argument 212 i3c_hci_sync_irq_inactive(struct i3c_hci * hci) i3c_hci_sync_irq_inactive() argument 225 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_bus_cleanup() local 232 mipi_i3c_hci_resume(struct i3c_hci * hci) mipi_i3c_hci_resume() argument 238 mipi_i3c_hci_pio_reset(struct i3c_hci * hci) mipi_i3c_hci_pio_reset() argument 244 mipi_i3c_hci_dct_index_reset(struct i3c_hci * hci) mipi_i3c_hci_dct_index_reset() argument 249 i3c_hci_process_xfer(struct i3c_hci * hci,struct hci_xfer * xfer,int n) i3c_hci_process_xfer() argument 282 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_send_ccc_cmd() local 355 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_daa() local 365 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_i3c_xfers() local 420 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_i2c_xfers() local 461 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_attach_i3c_dev() local 485 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_reattach_i3c_dev() local 497 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_detach_i3c_dev() local 509 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_attach_i2c_dev() local 533 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_detach_i2c_dev() local 548 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_request_ibi() local 562 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_free_ibi() local 570 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_enable_ibi() local 580 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_disable_ibi() local 591 struct i3c_hci *hci = to_i3c_hci(m); i3c_hci_recycle_ibi_slot() local 617 struct i3c_hci *hci = dev_id; i3c_hci_irq_handler() local 658 is_version_1_1_or_newer(struct i3c_hci * hci) is_version_1_1_or_newer() argument 663 i3c_hci_set_io_mode(struct i3c_hci * hci,bool dma) i3c_hci_set_io_mode() argument 684 i3c_hci_reset_and_init(struct i3c_hci * hci) i3c_hci_reset_and_init() argument 764 struct i3c_hci *hci = dev_get_drvdata(dev); i3c_hci_rpm_suspend() local 783 struct i3c_hci *hci = dev_get_drvdata(dev); i3c_hci_rpm_resume() local 808 struct i3c_hci *hci = dev_get_drvdata(dev); i3c_hci_runtime_suspend() local 818 struct i3c_hci *hci = dev_get_drvdata(dev); i3c_hci_runtime_resume() local 828 struct i3c_hci *hci = dev_get_drvdata(dev); i3c_hci_suspend() local 838 struct i3c_hci *hci = dev_get_drvdata(dev); i3c_hci_resume_common() local 871 struct i3c_hci *hci = dev_get_drvdata(dev); i3c_hci_rpm_enable() local 880 i3c_hci_init(struct i3c_hci * hci) i3c_hci_init() argument 972 struct i3c_hci *hci; i3c_hci_probe() local 1027 struct i3c_hci *hci = platform_get_drvdata(pdev); i3c_hci_remove() local [all...] |
| H A D | pio.c | 14 #include "hci.h" 22 #define pio_reg_read(r) readl(hci->PIO_regs + (PIO_##r)) 23 #define pio_reg_write(r, v) writel(v, hci->PIO_regs + (PIO_##r)) 137 static void __hci_pio_init(struct i3c_hci *hci, u32 *size_val_ptr) in __hci_pio_init() argument 140 struct hci_pio_data *pio = hci->io_data; in __hci_pio_init() 153 if (hci->version_major == 1) { in __hci_pio_init() 192 static void hci_pio_suspend(struct i3c_hci *hci) in hci_pio_suspend() argument 196 i3c_hci_sync_irq_inactive(hci); in hci_pio_suspend() 199 static void hci_pio_resume(struct i3c_hci *hci) in hci_pio_resume() argument 201 __hci_pio_init(hci, NUL in hci_pio_resume() 204 hci_pio_init(struct i3c_hci * hci) hci_pio_init() argument 229 hci_pio_cleanup(struct i3c_hci * hci) hci_pio_cleanup() argument 247 hci_pio_write_cmd(struct i3c_hci * hci,struct hci_xfer * xfer) hci_pio_write_cmd() argument 265 hci_pio_do_rx(struct i3c_hci * hci,struct hci_pio_data * pio) hci_pio_do_rx() argument 291 hci_pio_do_trailing_rx(struct i3c_hci * hci,struct hci_pio_data * pio,unsigned int count) hci_pio_do_trailing_rx() argument 333 hci_pio_do_tx(struct i3c_hci * hci,struct hci_pio_data * pio) hci_pio_do_tx() argument 374 hci_pio_process_rx(struct i3c_hci * hci,struct hci_pio_data * pio) hci_pio_process_rx() argument 381 hci_pio_process_tx(struct i3c_hci * hci,struct hci_pio_data * pio) hci_pio_process_tx() argument 388 hci_pio_queue_data(struct i3c_hci * hci,struct hci_pio_data * pio) hci_pio_queue_data() argument 421 hci_pio_push_to_next_rx(struct i3c_hci * hci,struct hci_xfer * xfer,unsigned int words_to_keep) hci_pio_push_to_next_rx() argument 503 hci_pio_process_resp(struct i3c_hci * hci,struct hci_pio_data * pio) hci_pio_process_resp() argument 570 hci_pio_queue_resp(struct i3c_hci * hci,struct hci_pio_data * pio) hci_pio_queue_resp() argument 589 hci_pio_process_cmd(struct i3c_hci * hci,struct hci_pio_data * pio) hci_pio_process_cmd() argument 616 hci_pio_queue_xfer(struct i3c_hci * hci,struct hci_xfer * xfer,int n) hci_pio_queue_xfer() argument 650 hci_pio_dequeue_xfer_common(struct i3c_hci * hci,struct hci_pio_data * pio,struct hci_xfer * xfer,int n) hci_pio_dequeue_xfer_common() argument 712 hci_pio_dequeue_xfer(struct i3c_hci * hci,struct hci_xfer * xfer,int n) hci_pio_dequeue_xfer() argument 728 hci_pio_err(struct i3c_hci * hci,struct hci_pio_data * pio,u32 status) hci_pio_err() argument 769 hci_pio_set_ibi_thresh(struct i3c_hci * hci,struct hci_pio_data * pio,unsigned int thresh_val) hci_pio_set_ibi_thresh() argument 785 hci_pio_get_ibi_segment(struct i3c_hci * hci,struct hci_pio_data * pio) hci_pio_get_ibi_segment() argument 836 hci_pio_prep_new_ibi(struct i3c_hci * hci,struct hci_pio_data * pio) hci_pio_prep_new_ibi() argument 891 hci_pio_free_ibi_slot(struct i3c_hci * hci,struct hci_pio_data * pio) hci_pio_free_ibi_slot() argument 903 hci_pio_process_ibi(struct i3c_hci * hci,struct hci_pio_data * pio) hci_pio_process_ibi() argument 971 hci_pio_request_ibi(struct i3c_hci * hci,struct i3c_dev_desc * dev,const struct i3c_ibi_setup * req) hci_pio_request_ibi() argument 992 hci_pio_free_ibi(struct i3c_hci * hci,struct i3c_dev_desc * dev) hci_pio_free_ibi() argument 1002 hci_pio_recycle_ibi_slot(struct i3c_hci * hci,struct i3c_dev_desc * dev,struct i3c_ibi_slot * slot) hci_pio_recycle_ibi_slot() argument 1012 hci_pio_irq_handler(struct i3c_hci * hci) hci_pio_irq_handler() argument [all...] |
| H A D | dma.c | 7 * Note: The I3C HCI v2.0 spec is still in flux. The IBI support is based on 20 #include "hci.h" 41 #define rhs_reg_read(r) readl(hci->RHS_regs + (RHS_##r)) 42 #define rhs_reg_write(r, v) writel(v, hci->RHS_regs + (RHS_##r)) 149 static void hci_dma_cleanup(struct i3c_hci *hci) in hci_dma_cleanup() 151 struct hci_rings_data *rings = hci->io_data; in hci_dma_cleanup() 165 i3c_hci_sync_irq_inactive(hci); in hci_dma_cleanup() 179 struct i3c_hci *hci = data; in hci_dma_free() 180 struct hci_rings_data *rings = hci->io_data; in hci_dma_free() 204 hci in hci_dma_free() 148 hci_dma_cleanup(struct i3c_hci * hci) hci_dma_cleanup() argument 178 struct i3c_hci *hci = data; hci_dma_free() local 212 hci_dma_init_rh(struct i3c_hci * hci,struct hci_rh_data * rh,int i) hci_dma_init_rh() argument 266 hci_dma_init_rings(struct i3c_hci * hci) hci_dma_init_rings() argument 278 hci_dma_suspend(struct i3c_hci * hci) hci_dma_suspend() argument 293 hci_dma_resume(struct i3c_hci * hci) hci_dma_resume() argument 301 hci_dma_init(struct i3c_hci * hci) hci_dma_init() argument 427 hci_dma_unmap_xfer(struct i3c_hci * hci,struct hci_xfer * xfer_list,unsigned int n) hci_dma_unmap_xfer() argument 449 hci_dma_map_xfer_list(struct i3c_hci * hci,struct device * dev,struct hci_xfer * xfer_list,int n) hci_dma_map_xfer_list() argument 468 hci_dma_queue_xfer(struct i3c_hci * hci,struct hci_xfer * xfer_list,int n) hci_dma_queue_xfer() argument 542 hci_dma_dequeue_xfer(struct i3c_hci * hci,struct hci_xfer * xfer_list,int n) hci_dma_dequeue_xfer() argument 612 hci_dma_handle_error(struct i3c_hci * hci,struct hci_xfer * xfer_list,int n) hci_dma_handle_error() argument 617 hci_dma_xfer_done(struct i3c_hci * hci,struct hci_rh_data * rh) hci_dma_xfer_done() argument 664 hci_dma_request_ibi(struct i3c_hci * hci,struct i3c_dev_desc * dev,const struct i3c_ibi_setup * req) hci_dma_request_ibi() argument 685 hci_dma_free_ibi(struct i3c_hci * hci,struct i3c_dev_desc * dev) hci_dma_free_ibi() argument 695 hci_dma_recycle_ibi_slot(struct i3c_hci * hci,struct i3c_dev_desc * dev,struct i3c_ibi_slot * slot) hci_dma_recycle_ibi_slot() argument 705 hci_dma_process_ibi(struct i3c_hci * hci,struct hci_rh_data * rh) hci_dma_process_ibi() argument 857 hci_dma_irq_handler(struct i3c_hci * hci) hci_dma_irq_handler() argument [all...] |
| H A D | hci.h | 7 * Common HCI stuff 28 #define reg_read(r) readl(hci->base_regs + (r)) 29 #define reg_write(r, v) writel(v, hci->base_regs + (r)) 84 * hci->cmd->*() method. The cmd method will initialize cmd_desc[] and 88 * hci->io->queue_xfer(), and requires CMD_0_ROC to be set. 141 bool (*irq_handler)(struct i3c_hci *hci); 142 int (*queue_xfer)(struct i3c_hci *hci, struct hci_xfer *xfer, int n); 143 bool (*dequeue_xfer)(struct i3c_hci *hci, struct hci_xfer *xfer, int n); 144 int (*handle_error)(struct i3c_hci *hci, struct hci_xfer *xfer, int n); 145 int (*request_ibi)(struct i3c_hci *hci, struc [all...] |
| H A D | cmd_v1.c | 7 * I3C HCI v1.0/v1.1 Command Descriptor Handling 13 #include "hci.h" 120 static enum hci_cmd_mode get_i3c_mode(struct i3c_hci *hci) in get_i3c_mode() argument 122 struct i3c_bus *bus = i3c_master_get_bus(&hci->master); in get_i3c_mode() 135 static enum hci_cmd_mode get_i2c_mode(struct i3c_hci *hci) in get_i2c_mode() argument 137 struct i3c_bus *bus = i3c_master_get_bus(&hci->master); in get_i2c_mode() 168 static int hci_cmd_v1_prep_ccc(struct i3c_hci *hci, in hci_cmd_v1_prep_ccc() argument 173 enum hci_cmd_mode mode = get_i3c_mode(hci); in hci_cmd_v1_prep_ccc() 184 ret = mipi_i3c_hci_dat_v1.get_index(hci, ccc_addr); in hci_cmd_v1_prep_ccc() 218 static void hci_cmd_v1_prep_i3c_xfer(struct i3c_hci *hci, in hci_cmd_v1_prep_i3c_xfer() argument 253 hci_cmd_v1_prep_i2c_xfer(struct i3c_hci * hci,struct i2c_dev_desc * dev,struct hci_xfer * xfer) hci_cmd_v1_prep_i2c_xfer() argument 288 hci_cmd_v1_daa(struct i3c_hci * hci) hci_cmd_v1_daa() argument [all...] |
| H A D | cmd_v2.c | 7 * I3C HCI v2.0 Command Descriptor Handling 9 * Note: The I3C HCI v2.0 spec is still in flux. The code here will change. 15 #include "hci.h" 64 static unsigned int get_i3c_rate_idx(struct i3c_hci *hci) in get_i3c_rate_idx() argument 66 struct i3c_bus *bus = i3c_master_get_bus(&hci->master); in get_i3c_rate_idx() 81 static unsigned int get_i2c_rate_idx(struct i3c_hci *hci) in get_i2c_rate_idx() argument 83 struct i3c_bus *bus = i3c_master_get_bus(&hci->master); in get_i2c_rate_idx() 90 static void hci_cmd_v2_prep_private_xfer(struct i3c_hci *hci, in hci_cmd_v2_prep_private_xfer() argument 149 static int hci_cmd_v2_prep_ccc(struct i3c_hci *hci, struct hci_xfer *xfer, in hci_cmd_v2_prep_ccc() argument 153 unsigned int rate = get_i3c_rate_idx(hci); in hci_cmd_v2_prep_ccc() 215 hci_cmd_v2_prep_i3c_xfer(struct i3c_hci * hci,struct i3c_dev_desc * dev,struct hci_xfer * xfer) hci_cmd_v2_prep_i3c_xfer() argument 226 hci_cmd_v2_prep_i2c_xfer(struct i3c_hci * hci,struct i2c_dev_desc * dev,struct hci_xfer * xfer) hci_cmd_v2_prep_i2c_xfer() argument 237 hci_cmd_v2_daa(struct i3c_hci * hci) hci_cmd_v2_daa() argument [all...] |
| H A D | cmd.h | 51 (atomic_inc_return_relaxed(&hci->next_cmd_tid) % (1U << 4)) 55 int (*prep_ccc)(struct i3c_hci *hci, struct hci_xfer *xfer, 57 void (*prep_i3c_xfer)(struct i3c_hci *hci, struct i3c_dev_desc *dev, 59 void (*prep_i2c_xfer)(struct i3c_hci *hci, struct i2c_dev_desc *dev, 61 int (*perform_daa)(struct i3c_hci *hci);
|
| H A D | hci_quirks.c | 3 * I3C HCI Quirks 12 #include "hci.h" 25 void amd_set_od_pp_timing(struct i3c_hci *hci) in amd_set_od_pp_timing() argument 37 void amd_set_resp_buf_thld(struct i3c_hci *hci) in amd_set_resp_buf_thld() argument
|
| H A D | dct_v1.c | 13 #include "hci.h" 20 void i3c_hci_dct_get_val(struct i3c_hci *hci, unsigned int dct_idx, in i3c_hci_dct_get_val() argument 23 void __iomem *reg = hci->DCT_regs + dct_idx * 4 * 4; in i3c_hci_dct_get_val()
|
| /linux/Documentation/driver-api/nfc/ |
| H A D | nfc-hci.rst | 2 HCI backend for NFC Core 11 The HCI layer implements much of the ETSI TS 102 622 V10.2.0 specification. It 12 enables easy writing of HCI-based NFC drivers. The HCI layer runs as an NFC Core 14 to HCI commands and events. 16 HCI chapter 19 HCI registers as an nfc device with NFC Core. Requests coming from userspace are 20 routed through netlink sockets to NFC Core and then to HCI. From this point, 21 they are translated in a sequence of HCI commands sent to the HCI layer in the 24 from HCI Rx context). 25 HCI events can also be received from the host controller. They will be handled [all …]
|
| H A D | nfc-pn544.rst | 18 In the normal (HCI) mode and in the firmware update mode read and 22 In the normal (HCI) mode the protocol used is derived from the ETSI 23 HCI specification. The firmware is updated using a specific protocol, 24 which is different from HCI. 26 HCI messages consist of an eight bit header and the message body. The 27 header contains the message length. Maximum size for an HCI message is 28 33. In HCI mode sent messages are tested for a correct 33 For the ETSI HCI specification see
|
| /linux/Documentation/devicetree/bindings/i3c/ |
| H A D | mipi-i3c-hci.yaml | 4 $id: http://devicetree.org/schemas/i3c/mipi-i3c-hci.yaml# 7 title: MIPI I3C HCI 15 The MIPI I3C HCI (Host Controller Interface) specification defines 24 https://www.mipi.org/specifications/i3c-hci 29 - mipi-i3c-hci 30 - microchip,sama7d65-i3c-hci 53 const: microchip,sama7d65-i3c-hci 66 compatible = "mipi-i3c-hci";
|
| /linux/net/nfc/hci/ |
| H A D | Kconfig | 4 tristate "NFC HCI implementation" 7 Say Y here if you want to build support for a kernel NFC HCI 9 HCI frames, like for example the NXP pn544. 14 bool "SHDLC link layer for HCI based NFC drivers" 17 Say yes if you use an NFC HCI driver that requires SHDLC link layer.
|
| H A D | Makefile | 3 # Makefile for the Linux NFC HCI layer. 6 obj-$(CONFIG_NFC_HCI) += hci.o 8 hci-y := core.o hcp.o command.o llc.o llc_nop.o 9 hci-$(CONFIG_NFC_SHDLC) += llc_shdlc.o
|
| H A D | command.c | 6 #define pr_fmt(fmt) "hci: %s: " fmt, __func__ 13 #include <net/nfc/hci.h> 15 #include "hci.h" 26 /* TODO: Define hci cmd execution delay. Should it be the same in nfc_hci_execute_cmd_async() 34 * HCI command execution completion callback. 35 * err will be a standard linux error (may be converted from HCI response) 43 pr_debug("HCI Cmd completed with result=%d\n", err); in nfc_hci_execute_cb() 68 /* TODO: Define hci cmd execution delay. Should it be the same in nfc_hci_execute_cmd() 108 * Execute an hci command sent to gate. 249 * and fill param with it. HCI spec 6.1.3.5 */ in nfc_hci_clear_all_pipes()
|
| H A D | hcp.c | 6 #define pr_fmt(fmt) "hci: %s: " fmt, __func__ 12 #include <net/nfc/hci.h> 14 #include "hci.h"
|
| /linux/drivers/bluetooth/ |
| H A D | hci_serdev.c | 3 * Bluetooth HCI serdev driver lib 28 /* Update HCI stat counters */ in hci_uart_tx_complete() 91 /* ------- Interface to HCI layer ------ */ 163 /* Send frames from HCI layer */ 237 /* HCI UART devices are assumed to be wakeable by default. in hci_uart_wakeup() 328 /* Initialize and register HCI device */ in hci_uart_register_device_priv() 331 BT_ERR("Can't allocate HCI device"); in hci_uart_register_device_priv() 373 BT_ERR("Can't register HCI device"); in hci_uart_register_device_priv()
|
| H A D | dtl1_cs.c | |
| H A D | hci_ldisc.c | 4 * Bluetooth HCI UART driver 52 BT_INFO("HCI UART protocol %s registered", p->name); in hci_uart_register_proto() 82 /* Update HCI stat counters */ in hci_uart_tx_complete() 196 BT_ERR("Can't register HCI device"); in hci_uart_init_work() 233 /* ------- Interface to HCI layer ------ */ 285 /* Send frames from HCI layer */ 671 /* Initialize and register HCI device */ in hci_uart_register_dev() 674 BT_ERR("Can't allocate HCI device"); in hci_uart_register_dev() 722 BT_ERR("Can't register HCI device"); in hci_uart_register_dev() 881 BT_INFO("HCI UART driver ver %s", VERSION); in hci_uart_init() [all …]
|
| H A D | bluecard_cs.c | |
| /linux/drivers/nfc/st21nfca/ |
| H A D | st21nfca.h | 9 #include <net/nfc/hci.h> 15 /* framing in HCI mode */ 53 #define DRIVER_DESC "HCI NFC driver for ST21NFCA" 76 * @HCI_CLEAR_ALL_PIPES: Allow to execute a HCI clear all pipes command. 89 * @HCI_GET_PARAM: Allow to retrieve an HCI CLF parameter (for example the
|
| /linux/net/bluetooth/ |
| H A D | Kconfig | 24 HCI device and connection manager, scheduler 29 HCI Device drivers (Interface to the hardware) 96 This options enables support for the Microsoft defined HCI 104 Project defined HCI vendor extensions.
|
| H A D | hci_core.c | 23 /* Bluetooth HCI core. */ 51 /* HCI device list */ 55 /* HCI callback list */ 59 /* HCI ID Numbering */ 62 /* Get HCI device by index. 434 /* ---- HCI ioctl helpers ---- */ in hci_dev_do_open() 846 /* ---- Interface to HCI drivers ---- */ in hci_get_dev_info() 928 /* During the HCI setup phase, a few error conditions are in hci_power_on() 1397 /* Convert to HCI addr type which struct smp_ltk uses */ in hci_bdaddr_is_paired() 1421 /* HCI comman in hci_bdaddr_is_paired() [all...] |
| /linux/Documentation/devicetree/bindings/ufs/ |
| H A D | samsung,exynos-ufs.yaml | 27 - description: HCI register 34 - const: hci 124 reg-names = "hci", "vs_hci", "unipro", "ufsp";
|
| /linux/Documentation/devicetree/bindings/net/nfc/ |
| H A D | marvell,nci.yaml | 19 hci-muxed: 22 Specifies that the chip is muxing NCI over HCI frames 167 hci-muxed;
|