xref: /linux/Documentation/devicetree/bindings/remoteproc/ti,k3-m4f-rproc.yaml (revision 3a39d672e7f48b8d6b91a09afa4b55352773b4b5)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/remoteproc/ti,k3-m4f-rproc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: TI K3 M4F processor subsystems
8
9maintainers:
10  - Hari Nagalla <hnagalla@ti.com>
11  - Mathieu Poirier <mathieu.poirier@linaro.org>
12
13description: |
14  Some K3 family SoCs have Arm Cortex M4F cores. AM64x is a SoC in K3
15  family with a M4F core. Typically safety oriented applications may use
16  the M4F core in isolation without an IPC. Where as some industrial and
17  home automation applications, may use the M4F core as a remote processor
18  with IPC communications.
19
20$ref: /schemas/arm/keystone/ti,k3-sci-common.yaml#
21
22properties:
23  compatible:
24    enum:
25      - ti,am64-m4fss
26
27  power-domains:
28    maxItems: 1
29
30  "#address-cells":
31    const: 2
32
33  "#size-cells":
34    const: 2
35
36  reg:
37    items:
38      - description: IRAM internal memory region
39      - description: DRAM internal memory region
40
41  reg-names:
42    items:
43      - const: iram
44      - const: dram
45
46  resets:
47    maxItems: 1
48
49  firmware-name:
50    maxItems: 1
51    description: Name of firmware to load for the M4F core
52
53  mboxes:
54    description:
55      OMAP Mailbox specifier denoting the sub-mailbox, to be used for
56      communication with the remote processor. This property should match
57      with the sub-mailbox node used in the firmware image.
58    maxItems: 1
59
60  memory-region:
61    description:
62      phandle to the reserved memory nodes to be associated with the
63      remoteproc device. Optional memory regions available for firmware
64      specific purposes.
65      (see reserved-memory/reserved-memory.yaml in dtschema project)
66    maxItems: 8
67    items:
68      - description: regions used for DMA allocations like vrings, vring buffers
69                     and memory dedicated to firmware's specific purposes.
70    additionalItems: true
71
72required:
73  - compatible
74  - reg
75  - reg-names
76  - ti,sci
77  - ti,sci-dev-id
78  - ti,sci-proc-ids
79  - resets
80  - firmware-name
81
82unevaluatedProperties: false
83
84examples:
85  - |
86    reserved-memory {
87        #address-cells = <2>;
88        #size-cells = <2>;
89
90        mcu_m4fss_dma_memory_region: m4f-dma-memory@9cb00000 {
91            compatible = "shared-dma-pool";
92            reg = <0x00 0x9cb00000 0x00 0x100000>;
93            no-map;
94        };
95
96        mcu_m4fss_memory_region: m4f-memory@9cc00000 {
97            compatible = "shared-dma-pool";
98            reg = <0x00 0x9cc00000 0x00 0xe00000>;
99            no-map;
100        };
101    };
102
103    soc {
104        #address-cells = <2>;
105        #size-cells = <2>;
106
107        mailbox0_cluster0: mailbox-0 {
108            #mbox-cells = <1>;
109        };
110
111        remoteproc@5000000 {
112            compatible = "ti,am64-m4fss";
113            reg = <0x00 0x5000000 0x00 0x30000>,
114                  <0x00 0x5040000 0x00 0x10000>;
115            reg-names = "iram", "dram";
116            resets = <&k3_reset 9 1>;
117            firmware-name = "am62-mcu-m4f0_0-fw";
118            mboxes = <&mailbox0_cluster0>, <&mbox_m4_0>;
119            memory-region = <&mcu_m4fss_dma_memory_region>,
120                            <&mcu_m4fss_memory_region>;
121            ti,sci = <&dmsc>;
122            ti,sci-dev-id = <9>;
123            ti,sci-proc-ids = <0x18 0xff>;
124         };
125    };
126