Commit abfbb292 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull remoteproc updates from Bjorn Andersson:
 "This introduces device managed versions of functions used to register
  remoteproc devices, add support for remoteproc driver specific
  resource control, enables remoteproc drivers to specify ELF class and
  machine for coredumps. It integrates pm_runtime in the core for
  keeping resources active while the remote is booted and holds a wake
  source while recoverying a remote processor after a firmware crash.

  It refactors the remoteproc device's allocation path to simplify the
  logic, fix a few cleanup bugs and to not clone const strings onto the
  heap. Debugfs code is simplifies using the DEFINE_SHOW_ATTRIBUTE and a
  zero-length array is replaced with flexible-array.

  A new remoteproc driver for the JZ47xx VPU is introduced, the Qualcomm
  SM8250 gains support for audio, compute and sensor remoteprocs and the
  Qualcomm SC7180 modem support is cleaned up and improved.

  The Qualcomm glink subsystem-restart driver is merged into the main
  glink driver, the Qualcomm sysmon driver is extended to properly
  notify remote processors about all other remote processors' state
  transitions"

* tag 'rproc-v5.8' of git://git.kernel.org/pub/scm/linux/kernel/git/andersson/remoteproc: (43 commits)
  remoteproc: Fix an error code in devm_rproc_alloc()
  MAINTAINERS: Add myself as reviewer for Ingenic rproc driver
  remoteproc: ingenic: Added remoteproc driver
  remoteproc: Add support for runtime PM
  dt-bindings: Document JZ47xx VPU auxiliary processor
  remoteproc: wcss: Fix arguments passed to qcom_add_glink_subdev()
  remoteproc: Fix and restore the parenting hierarchy for vdev
  remoteproc: Fall back to using parent memory pool if no dedicated available
  remoteproc: Replace zero-length array with flexible-array
  remoteproc: wcss: add support for rpmsg communication
  remoteproc: core: Prevent system suspend during remoteproc recovery
  remoteproc: qcom_q6v5_mss: Remove unused q6v5_da_to_va function
  remoteproc: qcom_q6v5_mss: map/unmap mpss segments before/after use
  remoteproc: qcom_q6v5_mss: Drop accesses to MPSS PERPH register space
  dt-bindings: remoteproc: qcom: Replace halt-nav with spare-regs
  remoteproc: qcom: pas: Add SM8250 PAS remoteprocs
  dt-bindings: remoteproc: qcom: pas: Add SM8250 remoteprocs
  remoteproc: qcom_q6v5_mss: Extract mba/mpss from memory-region
  dt-bindings: remoteproc: qcom: Use memory-region to reference memory
  remoteproc: qcom: pas: Add SC7180 Modem support
  ...
parents d26a42a9 7dcef398
Loading
Loading
Loading
Loading
+77 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
%YAML 1.2
---
$id: "http://devicetree.org/schemas/remoteproc/ingenic,vpu.yaml#"
$schema: "http://devicetree.org/meta-schemas/core.yaml#"

title: Ingenic Video Processing Unit bindings

description:
  Inside the Video Processing Unit (VPU) of the recent JZ47xx SoCs from
  Ingenic is a second Xburst MIPS CPU very similar to the main core.
  This document describes the devicetree bindings for this auxiliary
  processor.

maintainers:
  - Paul Cercueil <paul@crapouillou.net>

properties:
  compatible:
    const: ingenic,jz4770-vpu-rproc

  reg:
    items:
      - description: aux registers
      - description: tcsm0 registers
      - description: tcsm1 registers
      - description: sram registers

  reg-names:
    items:
      - const: aux
      - const: tcsm0
      - const: tcsm1
      - const: sram

  clocks:
    items:
      - description: aux clock
      - description: vpu clock

  clock-names:
    items:
      - const: aux
      - const: vpu

  interrupts:
    description: VPU hardware interrupt

required:
  - compatible
  - reg
  - reg-names
  - clocks
  - clock-names
  - interrupts

additionalProperties: false

examples:
  - |
    #include <dt-bindings/clock/jz4770-cgu.h>

    vpu: video-decoder@132a0000 {
      compatible = "ingenic,jz4770-vpu-rproc";

      reg = <0x132a0000 0x20>, /* AUX */
            <0x132b0000 0x4000>, /* TCSM0 */
            <0x132c0000 0xc000>, /* TCSM1 */
            <0x132f0000 0x7000>; /* SRAM */
      reg-names = "aux", "tcsm0", "tcsm1", "sram";

      clocks = <&cgu JZ4770_CLK_AUX>, <&cgu JZ4770_CLK_VPU>;
      clock-names = "aux", "vpu";

      interrupt-parent = <&cpuintc>;
      interrupts = <3>;
    };
+12 −0
Original line number Diff line number Diff line
@@ -15,12 +15,16 @@ on the Qualcomm ADSP Hexagon core.
		    "qcom,qcs404-adsp-pas"
		    "qcom,qcs404-cdsp-pas"
		    "qcom,qcs404-wcss-pas"
		    "qcom,sc7180-mpss-pas"
		    "qcom,sdm845-adsp-pas"
		    "qcom,sdm845-cdsp-pas"
		    "qcom,sm8150-adsp-pas"
		    "qcom,sm8150-cdsp-pas"
		    "qcom,sm8150-mpss-pas"
		    "qcom,sm8150-slpi-pas"
		    "qcom,sm8250-adsp-pas"
		    "qcom,sm8250-cdsp-pas"
		    "qcom,sm8250-slpi-pas"

- interrupts-extended:
	Usage: required
@@ -44,8 +48,12 @@ on the Qualcomm ADSP Hexagon core.
	qcom,sm8150-adsp-pas:
	qcom,sm8150-cdsp-pas:
	qcom,sm8150-slpi-pas:
	qcom,sm8250-adsp-pas:
	qcom,sm8250-cdsp-pas:
	qcom,sm8250-slpi-pas:
		    must be "wdog", "fatal", "ready", "handover", "stop-ack"
	qcom,qcs404-wcss-pas:
	qcom,sc7180-mpss-pas:
	qcom,sm8150-mpss-pas:
		    must be "wdog", "fatal", "ready", "handover", "stop-ack",
		    "shutdown-ack"
@@ -105,10 +113,14 @@ on the Qualcomm ADSP Hexagon core.
	qcom,sdm845-cdsp-pas:
	qcom,sm8150-adsp-pas:
	qcom,sm8150-cdsp-pas:
	qcom,sm8250-cdsp-pas:
		    must be "cx", "load_state"
	qcom,sc7180-mpss-pas:
	qcom,sm8150-mpss-pas:
		    must be "cx", "load_state", "mss"
	qcom,sm8250-adsp-pas:
	qcom,sm8150-slpi-pas:
	qcom,sm8250-slpi-pas:
		    must be "lcx", "lmx", "load_state"

- memory-region:
+13 −9
Original line number Diff line number Diff line
@@ -79,7 +79,7 @@ on the Qualcomm Hexagon core.
		    "snoc_axi", "mnoc_axi", "qdss"
	qcom,sc7180-mss-pil:
		    must be "iface", "bus", "xo", "snoc_axi", "mnoc_axi",
		    "mss_crypto", "mss_nav", "nav"
		    "nav"
	qcom,sdm845-mss-pil:
		    must be "iface", "bus", "mem", "xo", "gpll0_mss",
		    "snoc_axi", "mnoc_axi", "prng"
@@ -102,6 +102,14 @@ on the Qualcomm Hexagon core.
		    must be "mss_restart", "pdc_reset" for the modem
		    sub-system on SC7180, SDM845 SoCs

For devices where the mba and mpss sub-nodes are not specified, mba/mpss region
should be referenced as follows:
- memory-region:
	Usage: required
	Value type: <phandle>
	Definition: reference to the reserved-memory for the mba region followed
		    by the mpss region

For the compatible strings below the following supplies are required:
  "qcom,q6v5-pil"
  "qcom,msm8916-mss-pil",
@@ -173,16 +181,12 @@ For the compatible string below the following supplies are required:

For the compatible strings below the following phandle references are required:
  "qcom,sc7180-mss-pil"
- qcom,halt-nav-regs:
- qcom,spare-regs:
	Usage: required
	Value type: <prop-encoded-array>
	Definition: reference to a list of 2 phandles with one offset each for
		    the modem sub-system running on SC7180 SoC. The first
		    phandle reference is to the mss clock node followed by the
		    offset within register space for nav halt register. The
		    second phandle reference is to a syscon representing TCSR
		    followed by the offset within syscon for conn_box_spare0
		    register.
	Definition: a phandle reference to a syscon representing TCSR followed
		    by the offset within syscon for conn_box_spare0 register
		    used by the modem sub-system running on SC7180 SoC.

The Hexagon node must contain iommus property as described in ../iommu/iommu.txt
on platforms which do not have TrustZone.
+1 −0
Original line number Diff line number Diff line
@@ -8502,6 +8502,7 @@ F: drivers/mtd/nand/raw/ingenic/
F:	drivers/pinctrl/pinctrl-ingenic.c
F:	drivers/power/supply/ingenic-battery.c
F:	drivers/pwm/pwm-jz4740.c
F:	drivers/remoteproc/ingenic_rproc.c
F:	drivers/rtc/rtc-jz4740.c
F:	drivers/tty/serial/8250/8250_ingenic.c
F:	drivers/usb/musb/jz4740.c
+9 −0
Original line number Diff line number Diff line
@@ -23,6 +23,15 @@ config IMX_REMOTEPROC

	  It's safe to say N here.

config INGENIC_VPU_RPROC
	tristate "Ingenic JZ47xx VPU remoteproc support"
	depends on MIPS || COMPILE_TEST
	help
	  Say y or m here to support the VPU in the JZ47xx SoCs from Ingenic.

	  This can be either built-in or a loadable module.
	  If unsure say N.

config MTK_SCP
	tristate "Mediatek SCP support"
	depends on ARCH_MEDIATEK
Loading