| /OK3568_Linux_fs/kernel/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 …]
|
| /OK3568_Linux_fs/kernel/drivers/rpmsg/ |
| H A D | rpmsg_core.c | 1 // SPDX-License-Identifier: GPL-2.0 8 * Ohad Ben-Cohen <ohad@wizery.com> 16 #include <linux/rpmsg.h> 24 * rpmsg_create_ept() - create a new rpmsg_endpoint 25 * @rpdev: rpmsg channel device 28 * @chinfo: channel_info with the local rpmsg address to bind with @cb 30 * Every rpmsg address in the system is bound to an rx callback (so when 31 * inbound messages arrive, they are dispatched by the rpmsg bus using the 35 * bind a callback, and possibly some private data too, to an rpmsg address 39 * Simple rpmsg drivers need not call rpmsg_create_ept, because an endpoint [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> 21 #include <linux/rpmsg.h> 34 * struct virtproc_info - virtual remote processor state 51 * @ns_ept: the bus's name service endpoint 53 * This structure stores the rpmsg state of a given virtio remote processor 73 /* The feature bitmap for virtio rpmsg */ 74 #define VIRTIO_RPMSG_F_NS 0 /* RP supports name service notifications */ [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_char.c | 1 // SPDX-License-Identifier: GPL-2.0 9 * Based on rpmsg performance statistics driver by Michal Simek, which in turn 10 * was based on TI & Google OMX rpmsg driver. 19 #include <linux/rpmsg.h> 23 #include <uapi/linux/rpmsg.h> 43 * struct rpmsg_ctrldev - control device for instantiating endpoint devices 44 * @rpdev: underlaying rpmsg device 55 * struct rpmsg_eptdev - endpoint device context 58 * @rpdev: underlaying rpmsg device 61 * @ept: rpmsg endpoint reference, when open [all …]
|
| H A D | rockchip_rpmsg_test.c | 1 // SPDX-License-Identifier: GPL-2.0 6 * Author: Hongming Zou <hongming.zou@rock-chips.com> 11 #include <linux/rpmsg.h> 12 #include <linux/rpmsg/rockchip_rpmsg.h> 16 #define LINUX_TEST_MSG_2 "Rockchip rpmsg linux test pingpong!" 28 struct instance_data *idata = dev_get_drvdata(&rp->dev); in rockchip_rpmsg_test_cb() 31 dev_info(&rp->dev, "rx msg %s rx_count %d(remote_ept_id: 0x%x)\n", in rockchip_rpmsg_test_cb() 32 (char *)payload, ++idata->rx_count, remote_ept_id); in rockchip_rpmsg_test_cb() 35 if (idata->rx_count >= MSG_LIMIT) { in rockchip_rpmsg_test_cb() 36 dev_info(&rp->dev, "Rockchip rpmsg test exit!\n"); in rockchip_rpmsg_test_cb() [all …]
|
| H A D | rockchip_rpmsg.c | 1 // SPDX-License-Identifier: GPL-2.0 6 * Author: Steven Liu <steven.liu@rock-chips.com> 20 #include <linux/rpmsg/rockchip_rpmsg.h> 25 #include <soc/rockchip/rockchip-mailbox.h> 69 struct platform_device *pdev = rpdev->pdev; in rk_rpmsg_rx_callback() 70 struct device *dev = &pdev->dev; in rk_rpmsg_rx_callback() 74 dev_dbg(dev, "rpmsg master: receive cmd=0x%x data=0x%x\n", in rk_rpmsg_rx_callback() 75 rx_msg->cmd, rx_msg->data); in rk_rpmsg_rx_callback() 76 if (rx_msg->data != RPMSG_MBOX_MAGIC) in rk_rpmsg_rx_callback() 77 dev_err(dev, "rpmsg master: mailbox data error!\n"); in rk_rpmsg_rx_callback() [all …]
|
| H A D | rpmsg_internal.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 9 * Ohad Ben-Cohen <ohad@wizery.com> 16 #include <linux/rpmsg.h> 23 * struct rpmsg_device_ops - indirection table for the rpmsg_device operations 24 * @create_ept: create backend-specific endpoint, required 28 * Indirection table for the operations that a rpmsg backend should implement. 42 * struct rpmsg_endpoint_ops - indirection table for rpmsg_endpoint operations 54 * Indirection table for the operations that a rpmsg backend should implement. 56 * @trysend, while the variants sending data off-channel are optional. 84 * rpmsg_chrdev_register_device() - register chrdev device based on rpdev [all …]
|
| /OK3568_Linux_fs/kernel/Documentation/staging/ |
| H A D | rpmsg.rst | 2 Remote Processor Messaging (rpmsg) Framework 7 This document describes the rpmsg bus and how to write rpmsg drivers. 8 To learn how to add rpmsg support for new platforms, check out remoteproc.txt 17 flavor of real-time OS. 19 OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP. 20 Typically, the dual cortex-A9 is running Linux in a SMP configuration, 25 hardware accelerators, and therefore are often used to offload CPU-intensive 28 These remote processors could also be used to control latency-sensitive 34 hardware accessible only by the remote processor, reserving kernel-controlled 37 Rpmsg is a virtio-based messaging bus that allows kernel drivers to communicate [all …]
|
| H A D | remoteproc.rst | 10 of operating system, whether it's Linux or any other flavor of real-time OS. 12 OMAP4, for example, has dual Cortex-A9, dual Cortex-M3 and a C64x+ DSP. 13 In a typical configuration, the dual cortex-A9 is running Linux in a SMP 20 duplicated. In addition, this framework also adds rpmsg virtio devices 22 platform-specific remoteproc drivers only need to provide a few low-level 23 handlers, and then all rpmsg drivers will then just work 24 (for more information about the virtio-based rpmsg bus and its drivers, 25 please read Documentation/staging/rpmsg.rst). 111 struct rproc *rproc_alloc(struct device *dev, const char *name, 117 name of this remote processor, platform-specific ops handlers, [all …]
|
| /OK3568_Linux_fs/kernel/include/linux/ |
| H A D | rpmsg.h | 1 /* SPDX-License-Identifier: BSD-3-Clause */ 30 * struct rpmsg_channel_info - channel info representation 31 * @name: name of service 36 char name[RPMSG_NAME_SIZE]; member 42 * rpmsg_device - device that belong to the rpmsg bus 44 * @id: device id (used to match between rpmsg drivers and devices) 45 * @driver_override: driver name to force a match 48 * @ept: the rpmsg endpoint of this channel 49 * @announce: if set, rpmsg will announce the creation/removal of this channel 67 * struct rpmsg_endpoint - binds a local rpmsg address to its user [all …]
|
| /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/rpmsg/ |
| H A D | rpmsg-rockchip.txt | 1 * Rockchip RPMsg Platform Driver 3 The Rockchip RPMsg Platform Driver is used for Remote Processors Messaging. 7 - compatible: should be one of the following. 8 "rockchip,rk3568-rpmsg" for rk3568 SoCs. 9 - mbox-names: mailbox name for "rpmsg-rx" or "rpmsg-tx". 10 - mboxes: mailbox channel for rpmsg. 11 - rockchip,vdev-nums: number of rpmsg instance. 12 - rockchip,link-id: link_id of rpmsg instance. 4bit for master cpu_id and 4bit 19 rpmsg: rpmsg { 20 compatible = "rockchip,rk3568-rpmsg"; [all …]
|
| /OK3568_Linux_fs/kernel/drivers/platform/chrome/ |
| H A D | cros_ec_rpmsg.c | 1 // SPDX-License-Identifier: GPL-2.0 13 #include <linux/rpmsg.h> 23 * struct cros_ec_rpmsg_response - rpmsg message format from from EC. 36 * struct cros_ec_rpmsg - information about a EC over rpmsg. 38 * @rpdev: rpmsg device we are connected to 41 * @ept: The rpmsg endpoint of this channel. 55 * cros_ec_cmd_xfer_rpmsg - Transfer a message over rpmsg and receive the reply 63 * Return: -EINVAL 68 return -EINVAL; in cros_ec_cmd_xfer_rpmsg() 72 * cros_ec_pkt_xfer_rpmsg - Transfer a packet over rpmsg and receive the reply [all …]
|
| /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/remoteproc/ |
| H A D | mtk,scp.txt | 2 ---------------------------------------- 4 This binding provides support for ARM Cortex M4 Co-processor found on some 8 - compatible Should be "mediatek,mt8183-scp" 9 - reg Should contain the address ranges for the two memory 11 - reg-names Contains the corresponding names for the two memory 13 - clocks Clock for co-processor (See: ../clock/clock-bindings.txt) 14 - clock-names Contains the corresponding name for the clock. This 18 -------- 20 Subnodes of the SCP represent rpmsg devices. The names of the devices are not 22 for the rpmsg devices - but must contain the following property: [all …]
|
| /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/mfd/ |
| H A D | google,cros-ec.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/mfd/google,cros-ec.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 - Benson Leung <bleung@chromium.org> 11 - Enric Balletbo i Serra <enric.balletbo@collabora.com> 12 - Guenter Roeck <groeck@chromium.org> 23 - description: 25 const: google,cros-ec-i2c 26 - description: [all …]
|
| /OK3568_Linux_fs/kernel/drivers/media/platform/sti/delta/ |
| H A D | delta-ipc.c | 1 // SPDX-License-Identifier: GPL-2.0 7 #include <linux/rpmsg.h> 10 #include "delta-ipc.h" 11 #include "delta-mem.h" 38 #define msg_to_ctx(msg) ((struct delta_ipc_ctx *)(msg)->header.host_hdl) 39 #define msg_to_copro_hdl(msg) ((msg)->header.copro_hdl) 43 return (ctx->ipc_buf->paddr + (vaddr - ctx->ipc_buf->vaddr)); in to_paddr() 49 return ((data >= ctx->ipc_buf->vaddr) && in is_valid_data() 50 ((data + size) <= (ctx->ipc_buf->vaddr + ctx->ipc_buf->size))); in is_valid_data() 58 * this IPC shared memory, avoiding de-facto recopies inside delta-ipc. [all …]
|
| H A D | delta.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 10 #include <linux/rpmsg.h> 11 #include <media/v4l2-device.h> 12 #include <media/v4l2-mem2mem.h> 14 #include "delta-cfg.h" 17 * enum delta_state - state of decoding instance 46 * struct delta_streaminfo - information about stream to decode 89 * struct delta_au - access unit structure. 112 * struct delta_frameinfo - information about decoded frame 153 * struct delta_frame - frame structure. [all …]
|
| /OK3568_Linux_fs/kernel/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 …]
|
| /OK3568_Linux_fs/kernel/drivers/remoteproc/ |
| H A D | qcom_sysmon.c | 1 // SPDX-License-Identifier: GPL-2.0 15 #include <linux/rpmsg.h> 30 const char *name; member 76 * sysmon_send_event() - send notification of other remote's SSR event 87 len = snprintf(req, sizeof(req), "ssr:%s:%s", event->subsys_name, in sysmon_send_event() 88 sysmon_state_string[event->ssr_event]); in sysmon_send_event() 92 mutex_lock(&sysmon->lock); in sysmon_send_event() 93 reinit_completion(&sysmon->comp); in sysmon_send_event() 94 sysmon->ssr_ack = false; in sysmon_send_event() 96 ret = rpmsg_send(sysmon->ept, req, len); in sysmon_send_event() [all …]
|
| H A D | qcom_common.c | 1 // SPDX-License-Identifier: GPL-2.0-only 7 * Copyright (c) 2012-2013, The Linux Foundation. All rights reserved. 16 #include <linux/rpmsg/qcom_glink.h> 17 #include <linux/rpmsg/qcom_smd.h> 29 const char *name; member 41 glink->edge = qcom_glink_smem_register(glink->dev, glink->node); in glink_subdev_start() 43 return PTR_ERR_OR_ZERO(glink->edge); in glink_subdev_start() 50 qcom_glink_smem_unregister(glink->edge); in glink_subdev_stop() 51 glink->edge = NULL; in glink_subdev_stop() 58 qcom_glink_ssr_notify(glink->ssr_name); in glink_subdev_unprepare() [all …]
|
| /OK3568_Linux_fs/u-boot/arch/arm/dts/ |
| H A D | imx7ulp-evk.dts | 9 /dts-v1/; 15 compatible = "fsl,imx7ulp-evk", "fsl,imx7ulp", "Generic DT based system"; 19 stdout-path = &lpuart4; 24 wlreg_on-supply = <&wlreg_on>; 35 compatible = "gpio-backlight"; 36 pinctrl-names = "default"; 37 pinctrl-0 = <&pinctrl_backlight>; 39 default-on; 43 mipi_dsi_reset: mipi-dsi-reset { 44 compatible = "gpio-reset"; [all …]
|
| /OK3568_Linux_fs/kernel/net/qrtr/ |
| H A D | smd.c | 1 // SPDX-License-Identifier: GPL-2.0-only 9 #include <linux/rpmsg.h> 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() 66 return -ENOMEM; in qcom_smd_qrtr_probe() [all …]
|
| /OK3568_Linux_fs/kernel/include/linux/soc/qcom/ |
| H A D | wcnss_ctrl.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 5 #include <linux/rpmsg.h> 9 struct rpmsg_endpoint *qcom_wcnss_open_channel(void *wcnss, const char *name, 15 const char *name, in qcom_wcnss_open_channel() argument 20 return ERR_PTR(-ENXIO); in qcom_wcnss_open_channel()
|
| /OK3568_Linux_fs/kernel/include/linux/rpmsg/ |
| H A D | mtk_rpmsg.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 15 * struct mtk_rpmsg_info - IPI functions tied to the rpmsg device. 20 * @ns_ipi_id: the IPI id used for name service, or -1 if name service isn't
|
| /OK3568_Linux_fs/kernel/arch/arm64/boot/dts/mediatek/ |
| H A D | mt8183-kukui.dtsi | 1 // SPDX-License-Identifier: (GPL-2.0 OR MIT) 8 #include <dt-bindings/gpio/gpio.h> 9 #include <dt-bindings/input/input.h> 19 stdout-path = "serial0:115200n8"; 28 compatible = "fixed-clock"; 29 #clock-cells = <0>; 30 clock-frequency = <32768>; 31 clock-output-names = "clk32k"; 35 compatible = "regulator-fixed"; 36 regulator-name = "it6505_pp18"; [all …]
|