| /linux/Documentation/ABI/testing/ |
| H A D | sysfs-bus-rpmsg | 1 What: /sys/bus/rpmsg/devices/.../name 4 Contact: Ohad Ben-Cohen <ohad@wizery.com> 6 Every rpmsg device is a communication channel with a remote 7 processor. Channels are identified with a (textual) name, 9 rpmsg.h). 11 This sysfs entry contains the name of this channel. 13 What: /sys/bus/rpmsg/devices/.../src 16 Contact: Ohad Ben-Cohen <ohad@wizery.com> 18 Every rpmsg device is a communication channel with a remote 19 processor. Channels have a local ("source") rpmsg address, [all …]
|
| /linux/Documentation/devicetree/bindings/sound/ |
| H A D | fsl,rpmsg.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/sound/fsl,rpmsg.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 7 title: NXP Audio RPMSG CPU DAI Controller 10 - Shengjiu Wang <shengjiu.wang@nxp.com> 15 Linux side is a device which provides audio service by rpmsg channel. 17 such as SAI, MICFIL, .etc through building rpmsg channels between 18 Cortex-A and Cortex-M. 21 - $ref: sound-card-common.yaml# [all …]
|
| /linux/sound/soc/fsl/ |
| H A D | fsl_rpmsg.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 // Copyright 2018-2021 NXP 5 #include <linux/clk-provider.h> 11 #include <linux/rpmsg.h> 18 #include "imx-pcm.h" 45 struct fsl_rpmsg *rpmsg = snd_soc_dai_get_drvdata(dai); in fsl_rpmsg_hw_params() local 46 struct clk *p = rpmsg->mclk, *pll = NULL, *npll = NULL; in fsl_rpmsg_hw_params() 51 while (p && rpmsg->pll8k && rpmsg->pll11k) { in fsl_rpmsg_hw_params() 54 if (clk_is_match(pp, rpmsg->pll8k) || in fsl_rpmsg_hw_params() 55 clk_is_match(pp, rpmsg->pll11k)) { in fsl_rpmsg_hw_params() [all …]
|
| H A D | imx-audio-rpmsg.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 // Copyright 2017-2020 NXP 5 #include <linux/rpmsg.h> 6 #include "imx-pcm-rpmsg.h" 21 struct imx_audio_rpmsg *rpmsg = dev_get_drvdata(&rpdev->dev); in imx_audio_rpmsg_cb() local 27 if (!rpmsg->rpmsg_pdev) in imx_audio_rpmsg_cb() 30 info = platform_get_drvdata(rpmsg->rpmsg_pdev); in imx_audio_rpmsg_cb() 32 dev_dbg(&rpdev->dev, "get from%d: cmd:%d. %d\n", in imx_audio_rpmsg_cb() 33 src, r_msg->header.cmd, r_msg->param.resp); in imx_audio_rpmsg_cb() 35 switch (r_msg->header.type) { in imx_audio_rpmsg_cb() [all …]
|
| H A D | imx-pcm-rpmsg.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 // Copyright 2017-2021 NXP 4 #include <linux/dma-mapping.h> 8 #include <linux/rpmsg.h> 15 #include "imx-pcm.h" 17 #include "imx-pcm-rpmsg.h" 39 struct rpmsg_device *rpdev = info->rpdev; in imx_rpmsg_pcm_send_message() 42 mutex_lock(&info->msg_lock); in imx_rpmsg_pcm_send_message() 44 dev_err(info->dev, "rpmsg channel not ready\n"); in imx_rpmsg_pcm_send_message() 45 mutex_unlock(&info->msg_lock); in imx_rpmsg_pcm_send_message() [all …]
|
| /linux/include/linux/ |
| H A D | rpmsg.h | 1 /* SPDX-License-Identifier: BSD-3-Clause */ 20 #include <linux/rpmsg/byteorder.h> 21 #include <uapi/linux/rpmsg.h> 29 * struct rpmsg_channel_info - channel info representation 30 * @name: name o 35 char name[RPMSG_NAME_SIZE]; global() member [all...] |
| H A D | mod_devicetable.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 25 * struct pci_device_id - PCI device ID structure 35 * @class_mask: Limit which sub-fields of the class field are compared. 42 * @override_only: Match only when dev->driver_override is this driver. 47 __u32 class, class_mask; /* (class,subclass,prog-if) triplet */ 69 * Device table entry for "new style" table-driven USB drivers. 77 * Terminate the driver's table with an all-zeroes entry. 82 * struct usb_device_id - identifies USB devices for probing and hotplugging 90 * @idProduct: Vendor-assigned product ID. 91 * @bcdDevice_lo: Low end of range of vendor-assigned product version numbers. [all …]
|
| /linux/drivers/rpmsg/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 3 menu "Rpmsg drivers" 5 # RPMSG always gets selected by whoever wants it 6 config RPMSG config 10 tristate "RPMSG device interface" 11 depends on RPMSG 14 Say Y here to export rpmsg endpoints as device files, usually found 15 in /dev. They make it possible for user-space programs to send and 16 receive rpmsg packets. 19 tristate "RPMSG control interface" [all …]
|
| H A D | virtio_rpmsg_bus.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Virtio-based remote processor messaging bus 8 * Ohad Ben-Cohen <ohad@wizery.com> 14 #include <linux/dma-mapping.h> 20 #include <linux/rpmsg.h> 21 #include <linux/rpmsg/byteorder.h> 22 #include <linux/rpmsg/ns.h> 34 * struct virtproc_info - virtual remote processor state 52 * This structure stores the rpmsg state of a given virtio remote processor 71 /* The feature bitmap for virtio rpmsg */ [all …]
|
| H A D | mtk_rpmsg.c | 1 // SPDX-License-Identifier: GPL-2.0 10 #include <linux/rpmsg/mtk_rpmsg.h> 36 * struct rpmsg_ns_msg - dynamic name service announcement message 37 * @name: name of remote service that is published 41 * messages, an appropriate rpmsg channel (i.e device) is created. In turn, the 42 * ->probe() handler of the appropriate rpmsg driver will be invoked 43 * (if/as-soon-as one is registered). 46 char name[RPMSG_NAME_SIZE]; member 75 struct rpmsg_endpoint *ept = &mept->ept; in mtk_rpmsg_ipi_handler() 78 ret = (*ept->cb)(ept->rpdev, data, len, ept->priv, ept->addr); in mtk_rpmsg_ipi_handler() [all …]
|
| H A D | rpmsg_ns.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) STMicroelectronics 2020 - All Rights Reserved 8 #include <linux/rpmsg.h> 9 #include <linux/rpmsg/ns.h> 15 * rpmsg_ns_register_device() - register name service device based on rpdev 19 * basis for the rpmsg name service device. 23 rpdev->src = RPMSG_NS_ADDR; in rpmsg_ns_register_device() 24 rpdev->dst = RPMSG_NS_ADDR; in rpmsg_ns_register_device() 30 /* invoked when a name service announcement arrives */ 37 struct device *dev = rpdev->dev.parent; in rpmsg_ns_cb() [all …]
|
| H A D | qcom_glink_rpm.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (c) 2016-2017, Linaro Ltd 17 #include <linux/rpmsg.h> 27 #define RPM_TOC_MAX_ENTRIES ((RPM_TOC_SIZE - sizeof(struct rpm_toc)) / \ 75 head = readl(pipe->head); in glink_rpm_rx_avail() 76 tail = readl(pipe->tail); in glink_rpm_rx_avail() 79 return pipe->native.length - tail + head; in glink_rpm_rx_avail() 81 return head - tail; in glink_rpm_rx_avail() 91 tail = readl(pipe->tail); in glink_rpm_rx_peek() 93 if (tail >= pipe->native.length) in glink_rpm_rx_peek() [all …]
|
| /linux/include/linux/rpmsg/ |
| H A D | ns.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 7 #include <linux/rpmsg.h> 8 #include <linux/rpmsg/byteorder.h> 12 * struct rpmsg_ns_msg - dynamic name service announcement message 13 * @name: name of remote service that is published 19 * rpmsg channel (i.e device) is created/destroyed. In turn, the ->probe() 20 * or ->remove() handler of the appropriate rpmsg driver will be invoked 21 * (if/as-soon-as one is registered). 24 char name[RPMSG_NAME_SIZE]; member 30 * enum rpmsg_ns_flags - dynamic name service announcement flags
|
| /linux/drivers/tty/ |
| H A D | rpmsg_tty.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2021 STMicroelectronics - All Rights Reserved 5 * The rpmsg tty driver implements serial communication on the RPMsg bus to makes 6 * possible for user-space programs to send and receive rpmsg messages as a standard 9 * The remote processor can instantiate a new tty by requesting a "rpmsg-tty" RPMsg service. 10 * The "rpmsg-tty" service is directly used for data exchange. No flow control is implemented yet. 16 #include <linux/rpmsg.h> 31 int id; /* TTY rpmsg index */ 32 struct rpmsg_device *rpdev; /* rpmsg device */ 37 struct rpmsg_tty_port *cport = dev_get_drvdata(&rpdev->dev); in rpmsg_tty_cb() [all …]
|
| /linux/samples/rpmsg/ |
| H A D | rpmsg_client_sample.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * Remote processor messaging - sample client driver 8 * Ohad Ben-Cohen <ohad@wizery.com> 14 #include <linux/rpmsg.h> 29 struct instance_data *idata = dev_get_drvdata(&rpdev->dev); in rpmsg_sample_cb() 31 dev_info(&rpdev->dev, "incoming msg %d (src: 0x%x)\n", in rpmsg_sample_cb() 32 ++idata->rx_count, src); in rpmsg_sample_cb() 38 if (idata->rx_count >= count) { in rpmsg_sample_cb() 39 dev_info(&rpdev->dev, "goodbye!\n"); in rpmsg_sample_cb() 44 ret = rpmsg_send(rpdev->ept, MSG, strlen(MSG)); in rpmsg_sample_cb() [all …]
|
| /linux/drivers/cdx/controller/ |
| H A D | cdx_rpmsg.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2022-2023, Advanced Micro Devices, Inc. 8 #include <linux/rpmsg.h> 21 { .name = "mcdi_ipc" }, 24 MODULE_DEVICE_TABLE(rpmsg, cdx_rpmsg_id_table); 35 return -ENOMEM; in cdx_rpmsg_send() 40 ret = rpmsg_send(cdx_mcdi->ept, send_buf, hdr_len + sdu_len); in cdx_rpmsg_send() 55 dev = &pdev->dev; in cdx_attach_to_rproc() 57 cdx_mcdi = cdx_c->priv; in cdx_attach_to_rproc() 59 r5_core_node = of_parse_phandle(dev->of_node, "xlnx,rproc", 0); in cdx_attach_to_rproc() [all …]
|
| /linux/net/qrtr/ |
| H A D | smd.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 #include <linux/rpmsg.h> 15 struct rpmsg_endpoint *channel; member 23 struct qrtr_smd_dev *qdev = dev_get_drvdata(&rpdev->dev); in qcom_smd_qrtr_callback() 27 return -EAGAIN; in qcom_smd_qrtr_callback() 29 rc = qrtr_endpoint_post(&qdev->ep, data, len); in qcom_smd_qrtr_callback() 30 if (rc == -EINVAL) { in qcom_smd_qrtr_callback() 31 dev_err(qdev->dev, "invalid ipcrouter packet\n"); in qcom_smd_qrtr_callback() 49 rc = rpmsg_send(qdev->channel, skb->data, skb->len); in qcom_smd_qrtr_send() 64 qdev = devm_kzalloc(&rpdev->dev, sizeof(*qdev), GFP_KERNEL); in qcom_smd_qrtr_probe() [all …]
|
| /linux/drivers/edac/ |
| H A D | versalnet_edac.c | 1 // SPDX-License-Identifier: GPL-2.0 13 #include <linux/rpmsg.h> 74 * struct ecc_error_info - ECC error log information. 122 * struct ecc_status - ECC status information to report. 125 * @channel: Channel number. 131 u8 channel; member 136 * struct mc_priv - DDR memory controller private instance data. 143 * @regs: The registers sent on the rpmsg. 146 * @ept: rpmsg endpoint. 227 p = &priv->stat; in get_ddr_info() [all …]
|
| /linux/drivers/soc/qcom/ |
| H A D | wcnss_ctrl.c | 1 // SPDX-License-Identifier: GPL-2.0-only 14 #include <linux/rpmsg.h> 27 * struct wcnss_ctrl - driver context 29 * @channel: SMD channel handle 37 struct rpmsg_endpoint *channel; member 64 * struct wcnss_msg_hdr - common packet header for requests and responses 74 * struct wcnss_version_resp - version request response 85 * struct wcnss_download_nv_req - firmware fragment request 101 * struct wcnss_download_nv_resp - firmware download response 111 * wcnss_ctrl_smd_callback() - handler from SMD responses [all …]
|
| H A D | smd-rpm.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. 14 #include <linux/rpmsg.h> 15 #include <linux/soc/qcom/smd-rpm.h> 20 * struct qcom_smd_rpm - state of the rpm device driver 21 * @rpm_channel: reference to the smd channel 37 * struct qcom_rpm_header - header for all rpm requests and responses 47 * struct qcom_rpm_request - request message to the rpm 63 * struct qcom_rpm_message - response message from the rpm 86 * qcom_rpm_smd_write - write @buf to @type:@id [all …]
|
| /linux/drivers/remoteproc/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 54 This can be either built-in or a loadable module. 80 use-cases to run on your platform (multimedia codecs are 105 Required for Suspend-to-RAM on AM33xx and AM43xx SoCs. Also needed 111 tristate "DA8xx/OMAP-L13x remoteproc support" 115 Say y here to support DA8xx/OMAP-L13x remote processors via the 119 use-cases to run on your platform (multimedia codecs are 122 This module controls the name of the firmware file that gets 126 "rproc-dsp-fw". 157 Support for TI PRU remote processors present within a PRU-ICSS [all …]
|
| H A D | omap_remoteproc.c | 1 // SPDX-License-Identifier: GPL-2.0-only 5 * Copyright (C) 2011-2020 Texas Instruments Incorporated - http://www.ti.com/ 8 * Ohad Ben-Cohen <ohad@wizery.com> 12 * Suman Anna <s-anna@ti.com> 13 * Hari Kanigeri <h-kanigeri2@ti.com> 27 #include <linux/dma-mapping.h> 31 #include <linux/omap-iommu.h> 32 #include <linux/omap-mailbox.h> 36 #include <clocksource/timer-ti-dm.h> 38 #include <linux/platform_data/dmtimer-omap.h> [all …]
|
| /linux/drivers/misc/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 27 See Documentation/misc-devices/ad525x_dpot.rst for the 40 module will be called ad525x_dpot-i2c. 51 module will be called ad525x_dpot-spi. 65 This option enables device driver support for in-band access to the 78 website <https://www-03.ibm.com/systems/info/x86servers/serverproven/compat/us/> 83 tristate "IBM Virtual Management Channel support" 86 This is the IBM POWER Virtual Management Channel 89 Management Channel virtual adapter on the PowerVM 104 If you choose to build module, its name will be phantom. If unsure, [all …]
|
| H A D | fastrpc.c | 1 // SPDX-License-Identifier: GPL-2.0 2 // Copyright (c) 2011-2018, The Linux Foundation. All rights reserved. 7 #include <linux/dma-buf.h> 8 #include <linux/dma-mapping.h> 9 #include <linux/dma-resv.h> 19 #include <linux/rpmsg.h> 314 if (map->table) { in fastrpc_free_map() 315 if (map->attr & FASTRPC_ATTR_SECUREMAP) { in fastrpc_free_map() 317 int vmid = map->fl->cctx->vmperms[0].vmid; in fastrpc_free_map() 323 err = qcom_scm_assign_mem(map->phys, map->len, in fastrpc_free_map() [all …]
|
| /linux/drivers/net/wireless/ath/wcn36xx/ |
| H A D | main.c | 24 #include <linux/rpmsg.h> 50 /* The wcn firmware expects channel values to matching 53 CHAN2G(2412, 1), /* Channel 1 */ 54 CHAN2G(2417, 2), /* Channel 2 */ 55 CHAN2G(2422, 3), /* Channel 3 */ 56 CHAN2G(2427, 4), /* Channel 4 */ 57 CHAN2G(2432, 5), /* Channel 5 */ 58 CHAN2G(2437, 6), /* Channel 6 */ 59 CHAN2G(2442, 7), /* Channel 7 */ 60 CHAN2G(2447, 8), /* Channel 8 */ [all …]
|