Convert TI Keystone DSP remoteproc binding from legacy text format to DT schema. No functional changes are introduced during conversion.
Signed-off-by: Bhargav Joshi <[email protected]> --- .../bindings/remoteproc/ti,keystone-rproc.txt | 182 --------------------- .../bindings/remoteproc/ti,keystone-rproc.yaml | 140 ++++++++++++++++ 2 files changed, 140 insertions(+), 182 deletions(-) diff --git a/Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.txt b/Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.txt deleted file mode 100644 index 8475521336333..0000000000000 --- a/Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.txt +++ /dev/null @@ -1,182 +0,0 @@ -TI Keystone DSP devices -======================= - -The TI Keystone 2 family of SoCs usually have one or more (upto 8) TI DSP Core -sub-systems that are used to offload some of the processor-intensive tasks or -algorithms, for achieving various system level goals. - -These processor sub-systems usually contain additional sub-modules like L1 -and/or L2 caches/SRAMs, an Interrupt Controller, an external memory controller, -a dedicated local power/sleep controller etc. The DSP processor core in -Keystone 2 SoCs is usually a TMS320C66x CorePac processor. - -DSP Device Node: -================ -Each DSP Core sub-system is represented as a single DT node, and should also -have an alias with the stem 'rproc' defined. Each node has a number of required -or optional properties that enable the OS running on the host processor (ARM -CorePac) to perform the device management of the remote processor and to -communicate with the remote processor. - -Required properties: --------------------- -The following are the mandatory properties: - -- compatible: Should be one of the following, - "ti,k2hk-dsp" for DSPs on Keystone 2 66AK2H/K SoCs - "ti,k2l-dsp" for DSPs on Keystone 2 66AK2L SoCs - "ti,k2e-dsp" for DSPs on Keystone 2 66AK2E SoCs - "ti,k2g-dsp" for DSPs on Keystone 2 66AK2G SoCs - -- reg: Should contain an entry for each value in 'reg-names'. - Each entry should have the memory region's start address - and the size of the region, the representation matching - the parent node's '#address-cells' and '#size-cells' values. - -- reg-names: Should contain strings with the following names, each - representing a specific internal memory region, and - should be defined in this order, - "l2sram", "l1pram", "l1dram" - -- ti,syscon-dev: Should be a pair of the phandle to the Keystone Device - State Control node, and the register offset of the DSP - boot address register within that node's address space. - -- resets: Should contain the phandle to the reset controller node - managing the resets for this device, and a reset - specifier. Please refer to either of the following reset - bindings for the reset argument specifier as per SoC, - Documentation/devicetree/bindings/reset/ti-syscon-reset.txt - for 66AK2HK/66AK2L/66AK2E SoCs or, - Documentation/devicetree/bindings/reset/ti,sci-reset.yaml - for 66AK2G SoCs - -- interrupts: Should contain an entry for each value in 'interrupt-names'. - Each entry should have the interrupt source number used by - the remote processor to the host processor. The values should - follow the interrupt-specifier format as dictated by the - 'interrupt-parent' node. The purpose of each is as per the - description in the 'interrupt-names' property. - -- interrupt-names: Should contain strings with the following names, each - representing a specific interrupt, - "vring" - interrupt for virtio based IPC - "exception" - interrupt for exception notification - -- kick-gpios: Should specify the gpio device needed for the virtio IPC - stack. This will be used to interrupt the remote processor. - The gpio device to be used is as per the bindings in, - Documentation/devicetree/bindings/gpio/ti,keystone-dsp-gpio.yaml - -SoC-specific Required properties: ---------------------------------- -The following are mandatory properties for Keystone 2 66AK2HK, 66AK2L and 66AK2E -SoCs only: - -- clocks: Should contain the device's input clock, and should be - defined as per the bindings in, - Documentation/devicetree/bindings/clock/ti,keystone,psc-clock.yaml - -The following are mandatory properties for Keystone 2 66AK2G SoCs only: - -- power-domains: Should contain a phandle to a PM domain provider node - and an args specifier containing the DSP device id - value. This property is as per the binding, - Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml - -Optional properties: --------------------- - -- memory-region: phandle to the reserved memory node to be associated - with the remoteproc device. The reserved memory node - can be a CMA memory node, and should be defined as - per the bindings in - Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt - - -Examples: ---------- - -1. - /* 66AK2H/K DSP aliases */ - aliases { - rproc0 = &dsp0; - rproc1 = &dsp1; - rproc2 = &dsp2; - rproc3 = &dsp3; - rproc4 = &dsp4; - rproc5 = &dsp5; - rproc6 = &dsp6; - rproc7 = &dsp7; - }; - - /* 66AK2H/K DSP memory node */ - reserved-memory { - #address-cells = <2>; - #size-cells = <2>; - ranges; - - dsp_common_memory: dsp-common-memory@81f800000 { - compatible = "shared-dma-pool"; - reg = <0x00000008 0x1f800000 0x00000000 0x800000>; - reusable; - }; - }; - - /* 66AK2H/K DSP node */ - soc { - dsp0: dsp@10800000 { - compatible = "ti,k2hk-dsp"; - reg = <0x10800000 0x00100000>, - <0x10e00000 0x00008000>, - <0x10f00000 0x00008000>; - reg-names = "l2sram", "l1pram", "l1dram"; - clocks = <&clkgem0>; - ti,syscon-dev = <&devctrl 0x40>; - resets = <&pscrst 0>; - interrupt-parent = <&kirq0>; - interrupts = <0 8>; - interrupt-names = "vring", "exception"; - kick-gpios = <&dspgpio0 27 0>; - memory-region = <&dsp_common_memory>; - }; - - }; - -2. - /* 66AK2G DSP alias */ - aliases { - rproc0 = &dsp0; - }; - - /* 66AK2G DSP memory node */ - reserved-memory { - #address-cells = <2>; - #size-cells = <2>; - ranges; - - dsp_common_memory: dsp-common-memory@81f800000 { - compatible = "shared-dma-pool"; - reg = <0x00000008 0x1f800000 0x00000000 0x800000>; - reusable; - }; - }; - - /* 66AK2G DSP node */ - soc { - dsp0: dsp@10800000 { - compatible = "ti,k2g-dsp"; - reg = <0x10800000 0x00100000>, - <0x10e00000 0x00008000>, - <0x10f00000 0x00008000>; - reg-names = "l2sram", "l1pram", "l1dram"; - power-domains = <&k2g_pds 0x0046>; - ti,syscon-dev = <&devctrl 0x40>; - resets = <&k2g_reset 0x0046 0x1>; - interrupt-parent = <&kirq0>; - interrupts = <0 8>; - interrupt-names = "vring", "exception"; - kick-gpios = <&dspgpio0 27 0>; - memory-region = <&dsp_common_memory>; - }; - }; diff --git a/Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.yaml b/Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.yaml new file mode 100644 index 0000000000000..3117cfb2b3e07 --- /dev/null +++ b/Documentation/devicetree/bindings/remoteproc/ti,keystone-rproc.yaml @@ -0,0 +1,140 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/remoteproc/ti,keystone-rproc.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: TI Keystone DSP devices + +maintainers: + - Suman Anna <[email protected]> + +description: > + The TI Keystone 2 family of SoCs usually have one or more (up to 8) TI DSP + Core sub-systems that are used to offload some of the processor-intensive + tasks or algorithms, for achieving various system level goals. + + These processor sub-systems usually contain additional sub-modules like L1 + and/or L2 caches/SRAMs, an Interrupt Controller, an external memory + controller, a dedicated local power/sleep controller etc. The DSP processor + core in Keystone 2 SoCs is usually a TMS320C66x CorePac processor. + + Each DSP Core sub-system is represented as a single DT node, and should also + have an alias with the stem 'rproc' defined. Each node has a number of + required or optional properties that enable the OS running on the host + processor (ARM CorePac) to perform the device management of the remote + processor and to communicate with the remote processor. + +properties: + compatible: + enum: + - ti,k2hk-dsp + - ti,k2l-dsp + - ti,k2e-dsp + - ti,k2g-dsp + + reg: + minItems: 3 + maxItems: 3 + + reg-names: + items: + - const: l2sram + - const: l1pram + - const: l1dram + + interrupts: + minItems: 2 + maxItems: 2 + + interrupt-names: + items: + - const: vring + - const: exception + + ti,syscon-dev: + description: Phandle and offset to syscon device + $ref: /schemas/types.yaml#/definitions/phandle-array + items: + - items: + - description: Phandle to Keystone Device State Control node + - description: offset of the DSP boot address register + + resets: + maxItems: 1 + description: + refer to either of the following reset bindings for the reset argument + specifier as per SoC, + Documentation/devicetree/bindings/reset/ti-syscon-reset.txt for + 66AK2HK/66AK2L/66AK2E SoCs or, + Documentation/devicetree/bindings/reset/ti,sci-reset.yaml for 66AK2G SoCs + + kick-gpios: + maxItems: 1 + description: + GPIO used by the virtio IPC stack to interrupt the remote processor. See + Documentation/devicetree/bindings/gpio/ti,keystone-dsp-gpio.yaml + + memory-region: + maxItems: 1 + description: + Reserved memory node can be CMA memory node, and should be defined as per + Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt + + clocks: + maxItems: 1 + description: + Input clock (66AK2HK/66AK2L/66AK2E only), see + Documentation/devicetree/bindings/clock/ti,keystone,psc-clock.yaml + + power-domains: + maxItems: 1 + description: + PM domain provider phandle and DSP device id (66AK2G only), see + Documentation/devicetree/bindings/soc/ti/sci-pm-domain.yaml + +required: + - compatible + - reg + - reg-names + - interrupts + - interrupt-names + - ti,syscon-dev + - resets + - kick-gpios + +allOf: + - if: + properties: + compatible: + contains: + const: ti,k2g-dsp + then: + properties: + clocks: false + required: + - power-domains + else: + properties: + power-domains: false + required: + - clocks + +additionalProperties: false + +examples: + - | + dsp@10800000 { + compatible = "ti,k2g-dsp"; + reg = <0x10800000 0x00100000>, + <0x10e00000 0x00008000>, + <0x10f00000 0x00008000>; + reg-names = "l2sram", "l1pram", "l1dram"; + power-domains = <&k2g_pds 0x0046>; + ti,syscon-dev = <&devctrl 0x844>; + resets = <&k2g_reset 0x0046 0x1>; + interrupts = <0>, <8>; + interrupt-names = "vring", "exception"; + kick-gpios = <&dspgpio0 27 0>; + memory-region = <&dsp_common_memory>; + }; --- base-commit: 67f0943b394d920b6c142aad8c6af94340342ae7 change-id: 20261006-ti-keystone-rproc-4e3b8f328662 Best regards, -- Bhargav

