Support the remote devices on the remote processor via the RPMSG bus on i.MX platform.
The expected DTS layout structure is following: cm33: remoteproc-cm33 { compatible = "fsl,imx8ulp-cm33"; rpmsg { rpmsg-io-channel { gpio@0 { compatible = "fsl,imx-rpmsg-gpio"; reg = <0>; }; gpio@1 { compatible = "fsl,imx-rpmsg-gpio"; reg = <1>; }; ... }; rpmsg-i2c-channel { i2c@0 { compatible = "fsl,imx-rpmsg-i2c"; reg = <0>; }; }; ... }; }; Shenwei Wang (4): dt-bindings: remoteproc: imx_rproc: Add "rpmsg" subnode support remoteproc: imx_rproc: Populate devices under "rpmsg" subnode gpio: imx-rpmsg: add imx-rpmsg GPIO driver arm64: dts: imx8ulp: Add rpmsg node under imx_rproc .../bindings/remoteproc/fsl,imx-rproc.yaml | 117 ++++ arch/arm64/boot/dts/freescale/imx8ulp.dtsi | 27 + drivers/gpio/Kconfig | 11 + drivers/gpio/Makefile | 1 + drivers/gpio/gpio-imx-rpmsg.c | 559 ++++++++++++++++++ drivers/remoteproc/imx_rproc.c | 125 ++++ include/linux/imx_rpmsg.h | 55 ++ 7 files changed, 895 insertions(+) create mode 100644 drivers/gpio/gpio-imx-rpmsg.c create mode 100644 include/linux/imx_rpmsg.h -- 2.43.0