Home
last modified time | relevance | path

Searched refs:hci (Results 1 – 25 of 65) sorted by relevance

123

/linux-6.6.21/drivers/i3c/master/mipi-i3c-hci/
Dcore.c30 #define reg_read(r) readl(hci->base_regs + (r))
31 #define reg_write(r, v) writel(v, hci->base_regs + (r))
128 struct i3c_hci *hci = to_i3c_hci(m); in i3c_hci_bus_init() local
134 if (hci->cmd == &mipi_i3c_hci_cmd_v1) { in i3c_hci_bus_init()
135 ret = mipi_i3c_hci_dat_v1.init(hci); in i3c_hci_bus_init()
151 ret = hci->io->init(hci); in i3c_hci_bus_init()
163 struct i3c_hci *hci = to_i3c_hci(m); in i3c_hci_bus_cleanup() local
168 hci->io->cleanup(hci); in i3c_hci_bus_cleanup()
169 if (hci->cmd == &mipi_i3c_hci_cmd_v1) in i3c_hci_bus_cleanup()
170 mipi_i3c_hci_dat_v1.cleanup(hci); in i3c_hci_bus_cleanup()
[all …]
Dext_caps.c24 static int hci_extcap_hardware_id(struct i3c_hci *hci, void __iomem *base) in hci_extcap_hardware_id() argument
26 hci->vendor_mipi_id = readl(base + 0x04); in hci_extcap_hardware_id()
27 hci->vendor_version_id = readl(base + 0x08); in hci_extcap_hardware_id()
28 hci->vendor_product_id = readl(base + 0x0c); in hci_extcap_hardware_id()
30 dev_info(&hci->master.dev, "vendor MIPI ID: %#x\n", hci->vendor_mipi_id); in hci_extcap_hardware_id()
31 dev_info(&hci->master.dev, "vendor version ID: %#x\n", hci->vendor_version_id); in hci_extcap_hardware_id()
32 dev_info(&hci->master.dev, "vendor product ID: %#x\n", hci->vendor_product_id); in hci_extcap_hardware_id()
35 switch (hci->vendor_mipi_id) { in hci_extcap_hardware_id()
37 hci->quirks |= HCI_QUIRK_RAW_CCC; in hci_extcap_hardware_id()
45 static int hci_extcap_master_config(struct i3c_hci *hci, void __iomem *base) in hci_extcap_master_config() argument
[all …]
Ddat_v1.c38 #define dat_w0_read(i) readl(hci->DAT_regs + (i) * 8)
39 #define dat_w1_read(i) readl(hci->DAT_regs + (i) * 8 + 4)
40 #define dat_w0_write(i, v) writel(v, hci->DAT_regs + (i) * 8)
41 #define dat_w1_write(i, v) writel(v, hci->DAT_regs + (i) * 8 + 4)
52 static int hci_dat_v1_init(struct i3c_hci *hci) in hci_dat_v1_init() argument
56 if (!hci->DAT_regs) { in hci_dat_v1_init()
57 dev_err(&hci->master.dev, in hci_dat_v1_init()
61 if (hci->DAT_entry_size != 8) { in hci_dat_v1_init()
62 dev_err(&hci->master.dev, in hci_dat_v1_init()
67 if (!hci->DAT_data) { in hci_dat_v1_init()
[all …]
Dpio.c23 #define pio_reg_read(r) readl(hci->PIO_regs + (PIO_##r))
24 #define pio_reg_write(r, v) writel(v, hci->PIO_regs + (PIO_##r))
139 static int hci_pio_init(struct i3c_hci *hci) in hci_pio_init() argument
148 hci->io_data = pio; in hci_pio_init()
152 dev_info(&hci->master.dev, "CMD/RESP FIFO = %ld entries\n", in hci_pio_init()
154 dev_info(&hci->master.dev, "IBI FIFO = %ld bytes\n", in hci_pio_init()
156 dev_info(&hci->master.dev, "RX data FIFO = %d bytes\n", in hci_pio_init()
158 dev_info(&hci->master.dev, "TX data FIFO = %d bytes\n", in hci_pio_init()
168 if (hci->version_major == 1) { in hci_pio_init()
209 static void hci_pio_cleanup(struct i3c_hci *hci) in hci_pio_cleanup() argument
[all …]
Ddma.c40 #define rhs_reg_read(r) readl(hci->RHS_regs + (RHS_##r))
41 #define rhs_reg_write(r, v) writel(v, hci->RHS_regs + (RHS_##r))
165 static void hci_dma_cleanup(struct i3c_hci *hci) in hci_dma_cleanup() argument
167 struct hci_rings_data *rings = hci->io_data; in hci_dma_cleanup()
183 dma_free_coherent(&hci->master.dev, in hci_dma_cleanup()
187 dma_free_coherent(&hci->master.dev, in hci_dma_cleanup()
192 dma_free_coherent(&hci->master.dev, in hci_dma_cleanup()
196 dma_unmap_single(&hci->master.dev, rh->ibi_data_dma, in hci_dma_cleanup()
205 hci->io_data = NULL; in hci_dma_cleanup()
208 static int hci_dma_init(struct i3c_hci *hci) in hci_dma_init() argument
[all …]
Ddat.h19 int (*init)(struct i3c_hci *hci);
20 void (*cleanup)(struct i3c_hci *hci);
21 int (*alloc_entry)(struct i3c_hci *hci);
22 void (*free_entry)(struct i3c_hci *hci, unsigned int dat_idx);
23 void (*set_dynamic_addr)(struct i3c_hci *hci, unsigned int dat_idx, u8 addr);
24 void (*set_static_addr)(struct i3c_hci *hci, unsigned int dat_idx, u8 addr);
25 void (*set_flags)(struct i3c_hci *hci, unsigned int dat_idx, u32 w0, u32 w1);
26 void (*clear_flags)(struct i3c_hci *hci, unsigned int dat_idx, u32 w0, u32 w1);
27 int (*get_index)(struct i3c_hci *hci, u8 address);
Dcmd_v1.c122 static enum hci_cmd_mode get_i3c_mode(struct i3c_hci *hci) in get_i3c_mode() argument
124 struct i3c_bus *bus = i3c_master_get_bus(&hci->master); in get_i3c_mode()
139 static enum hci_cmd_mode get_i2c_mode(struct i3c_hci *hci) in get_i2c_mode() argument
141 struct i3c_bus *bus = i3c_master_get_bus(&hci->master); in get_i2c_mode()
172 static int hci_cmd_v1_prep_ccc(struct i3c_hci *hci, in hci_cmd_v1_prep_ccc() argument
177 enum hci_cmd_mode mode = get_i3c_mode(hci); in hci_cmd_v1_prep_ccc()
188 ret = mipi_i3c_hci_dat_v1.get_index(hci, ccc_addr); in hci_cmd_v1_prep_ccc()
222 static void hci_cmd_v1_prep_i3c_xfer(struct i3c_hci *hci, in hci_cmd_v1_prep_i3c_xfer() argument
228 enum hci_cmd_mode mode = get_i3c_mode(hci); in hci_cmd_v1_prep_i3c_xfer()
257 static void hci_cmd_v1_prep_i2c_xfer(struct i3c_hci *hci, in hci_cmd_v1_prep_i2c_xfer() argument
[all …]
Dcmd_v2.c66 static unsigned int get_i3c_rate_idx(struct i3c_hci *hci) in get_i3c_rate_idx() argument
68 struct i3c_bus *bus = i3c_master_get_bus(&hci->master); in get_i3c_rate_idx()
83 static unsigned int get_i2c_rate_idx(struct i3c_hci *hci) in get_i2c_rate_idx() argument
85 struct i3c_bus *bus = i3c_master_get_bus(&hci->master); in get_i2c_rate_idx()
92 static void hci_cmd_v2_prep_private_xfer(struct i3c_hci *hci, in hci_cmd_v2_prep_private_xfer() argument
151 static int hci_cmd_v2_prep_ccc(struct i3c_hci *hci, struct hci_xfer *xfer, in hci_cmd_v2_prep_ccc() argument
155 unsigned int rate = get_i3c_rate_idx(hci); in hci_cmd_v2_prep_ccc()
161 hci_cmd_v2_prep_private_xfer(hci, xfer, ccc_addr, mode, rate); in hci_cmd_v2_prep_ccc()
217 static void hci_cmd_v2_prep_i3c_xfer(struct i3c_hci *hci, in hci_cmd_v2_prep_i3c_xfer() argument
222 unsigned int rate = get_i3c_rate_idx(hci); in hci_cmd_v2_prep_i3c_xfer()
[all …]
Dhci.h112 bool (*irq_handler)(struct i3c_hci *hci, unsigned int mask);
113 int (*queue_xfer)(struct i3c_hci *hci, struct hci_xfer *xfer, int n);
114 bool (*dequeue_xfer)(struct i3c_hci *hci, struct hci_xfer *xfer, int n);
115 int (*request_ibi)(struct i3c_hci *hci, struct i3c_dev_desc *dev,
117 void (*free_ibi)(struct i3c_hci *hci, struct i3c_dev_desc *dev);
118 void (*recycle_ibi_slot)(struct i3c_hci *hci, struct i3c_dev_desc *dev,
120 int (*init)(struct i3c_hci *hci);
121 void (*cleanup)(struct i3c_hci *hci);
140 void mipi_i3c_hci_resume(struct i3c_hci *hci);
141 void mipi_i3c_hci_pio_reset(struct i3c_hci *hci);
[all …]
Dcmd.h50 (atomic_inc_return_relaxed(&hci->next_cmd_tid) % (1U << 4))
54 int (*prep_ccc)(struct i3c_hci *hci, struct hci_xfer *xfer,
56 void (*prep_i3c_xfer)(struct i3c_hci *hci, struct i3c_dev_desc *dev,
58 void (*prep_i2c_xfer)(struct i3c_hci *hci, struct i2c_dev_desc *dev,
60 int (*perform_daa)(struct i3c_hci *hci);
DMakefile3 obj-$(CONFIG_MIPI_I3C_HCI) += mipi-i3c-hci.o
4 mipi-i3c-hci-y := core.o ext_caps.o pio.o dma.o \
Ddct_v1.c20 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()
Dibi.h30 i3c_hci_addr_to_dev(struct i3c_hci *hci, unsigned int addr) in i3c_hci_addr_to_dev() argument
32 struct i3c_bus *bus = i3c_master_get_bus(&hci->master); in i3c_hci_addr_to_dev()
Dext_caps.h17 int i3c_hci_parse_ext_caps(struct i3c_hci *hci);
Ddct.h13 void i3c_hci_dct_get_val(struct i3c_hci *hci, unsigned int dct_idx,
/linux-6.6.21/drivers/net/wireless/realtek/rtw88/
Dhci.h37 return rtwdev->hci.ops->tx_write(rtwdev, pkt_info, skb); in rtw_hci_tx_write()
42 return rtwdev->hci.ops->tx_kick_off(rtwdev); in rtw_hci_tx_kick_off()
47 return rtwdev->hci.ops->setup(rtwdev); in rtw_hci_setup()
52 return rtwdev->hci.ops->start(rtwdev); in rtw_hci_start()
57 rtwdev->hci.ops->stop(rtwdev); in rtw_hci_stop()
62 rtwdev->hci.ops->deep_ps(rtwdev, enter); in rtw_hci_deep_ps()
67 rtwdev->hci.ops->link_ps(rtwdev, enter); in rtw_hci_link_ps()
72 rtwdev->hci.ops->interface_cfg(rtwdev); in rtw_hci_interface_cfg()
78 return rtwdev->hci.ops->write_data_rsvd_page(rtwdev, buf, size); in rtw_hci_write_data_rsvd_page()
84 return rtwdev->hci.ops->write_data_h2c(rtwdev, buf, size); in rtw_hci_write_data_h2c()
[all …]
Dps.c74 request = rtw_read8(rtwdev, rtwdev->hci.rpwm_addr); in rtw_power_mode_change()
75 confirm = rtw_read8(rtwdev, rtwdev->hci.cpwm_addr); in rtw_power_mode_change()
90 rtw_write8(rtwdev, rtwdev->hci.rpwm_addr, request); in rtw_power_mode_change()
96 rtwdev->hci.cpwm_addr); in rtw_power_mode_change()
/linux-6.6.21/net/nfc/hci/
DMakefile6 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
/linux-6.6.21/Documentation/devicetree/bindings/i3c/
Dmipi-i3c-hci.yaml4 $id: http://devicetree.org/schemas/i3c/mipi-i3c-hci.yaml#
27 https://www.mipi.org/specifications/i3c-hci
31 const: mipi-i3c-hci
47 compatible = "mipi-i3c-hci";
/linux-6.6.21/drivers/staging/gdm724x/
Dgdm_usb.c59 struct hci_packet *hci; in request_mac_address() local
64 hci = kmalloc(struct_size(hci, data, 1), GFP_KERNEL); in request_mac_address()
65 if (!hci) in request_mac_address()
68 hci->cmd_evt = gdm_cpu_to_dev16(udev->gdm_ed, LTE_GET_INFORMATION); in request_mac_address()
69 hci->len = gdm_cpu_to_dev16(udev->gdm_ed, 1); in request_mac_address()
70 hci->data[0] = MAC_ADDRESS; in request_mac_address()
72 ret = usb_bulk_msg(usbdev, usb_sndbulkpipe(usbdev, 2), hci, 5, in request_mac_address()
76 kfree(hci); in request_mac_address()
387 struct hci_packet *hci; in do_rx() local
406 hci = (struct hci_packet *)r->buf; in do_rx()
[all …]
/linux-6.6.21/Documentation/ABI/testing/
Dsysfs-driver-hid2 What: /sys/class/bluetooth/hci<addr>/<hid-bus>:<vendor-id>:<product-id>.<num>/report_descriptor
13 What: /sys/class/bluetooth/hci<addr>/<hid-bus>:<vendor-id>:<product-id>.<num>/country
/linux-6.6.21/drivers/net/wireless/realtek/rtw89/
Dcore.h4372 struct rtw89_hci_info hci; member
4470 return rtwdev->hci.ops->tx_write(rtwdev, tx_req); in rtw89_hci_tx_write()
4475 rtwdev->hci.ops->reset(rtwdev); in rtw89_hci_reset()
4480 return rtwdev->hci.ops->start(rtwdev); in rtw89_hci_start()
4485 rtwdev->hci.ops->stop(rtwdev); in rtw89_hci_stop()
4490 return rtwdev->hci.ops->deinit(rtwdev); in rtw89_hci_deinit()
4495 rtwdev->hci.ops->pause(rtwdev, pause); in rtw89_hci_pause()
4500 rtwdev->hci.ops->switch_mode(rtwdev, low_power); in rtw89_hci_switch_mode()
4505 rtwdev->hci.ops->recalc_int_mit(rtwdev); in rtw89_hci_recalc_int_mit()
4510 return rtwdev->hci.ops->check_and_reclaim_tx_resource(rtwdev, txch); in rtw89_hci_check_and_reclaim_tx_resource()
[all …]
/linux-6.6.21/Documentation/devicetree/bindings/ufs/
Dsamsung,exynos-ufs.yaml35 - const: hci
85 reg-names = "hci", "vs_hci", "unipro", "ufsp";
/linux-6.6.21/drivers/i3c/master/
DKconfig56 https://www.mipi.org/specifications/i3c-hci
59 called mipi-i3c-hci.
/linux-6.6.21/Documentation/driver-api/nfc/
Dindex.rst10 nfc-hci

123