Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

dt-bindings: memory: synopsys,ddrc-ecc: Detach Zynq DDRC controller support

The Zynq A05 DDRC controller has nothing in common with DW uMCTL2 DDRC:
the CSRs layout is absolutely different and it doesn't support IRQs unlike
DW uMCTL2 DDR controller of all versions (v1.x, v2.x and v3.x). Thus there
is no any reason to have these controllers described in the same bindings.
Let's split the DT-schema up.

Note since the synopsys,ddrc-ecc.yaml schema describes the Synopsys DW
uMCTL2 DDR controller only, we need to accordingly fix the device
descriptions.

Signed-off-by: Serge Semin <Sergey.Semin@baikalelectronics.ru>
Reviewed-by: Rob Herring <robh@kernel.org>
Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
Link: https://lore.kernel.org/r/20220910194237.10142-15-Sergey.Semin@baikalelectronics.ru

authored by

Serge Semin and committed by
Krzysztof Kozlowski
84508131 9f8fb803

+59 -43
+20 -43
Documentation/devicetree/bindings/memory-controllers/synopsys,ddrc-ecc.yaml
··· 4 4 $id: http://devicetree.org/schemas/memory-controllers/synopsys,ddrc-ecc.yaml# 5 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 6 6 7 - title: Synopsys IntelliDDR Multi Protocol memory controller 7 + title: Synopsys DesignWare Universal Multi-Protocol Memory Controller 8 8 9 9 maintainers: 10 10 - Krzysztof Kozlowski <krzk@kernel.org> ··· 12 12 - Michal Simek <michal.simek@xilinx.com> 13 13 14 14 description: | 15 - The ZynqMP DDR ECC controller has an optional ECC support in 64-bit and 16 - 32-bit bus width configurations. 15 + Synopsys DesignWare Enhanced uMCTL2 DDR Memory Controller is capable of 16 + working with the memory devices supporting up to (LP)DDR4 protocol. It can 17 + be equipped with SEC/DEC ECC feature if DRAM data bus width is either 18 + 16-bits or 32-bits or 64-bits wide. 17 19 18 - The Zynq DDR ECC controller has an optional ECC support in half-bus width 19 - (16-bit) configuration. 20 - 21 - These both ECC controllers correct single bit ECC errors and detect double bit 22 - ECC errors. 20 + For instance the ZynqMP DDR controller is based on the DW uMCTL2 v2.40a 21 + controller. It has an optional SEC/DEC ECC support in 64- and 32-bits 22 + bus width configurations. 23 23 24 24 properties: 25 25 compatible: 26 - enum: 27 - - snps,ddrc-3.80a 28 - - xlnx,zynq-ddrc-a05 29 - - xlnx,zynqmp-ddrc-2.40a 26 + oneOf: 27 + - description: Synopsys DW uMCTL2 DDR controller v3.80a 28 + const: snps,ddrc-3.80a 29 + - description: Xilinx ZynqMP DDR controller v2.40a 30 + const: xlnx,zynqmp-ddrc-2.40a 30 31 31 32 interrupts: 32 33 maxItems: 1 ··· 38 37 required: 39 38 - compatible 40 39 - reg 41 - 42 - allOf: 43 - - if: 44 - properties: 45 - compatible: 46 - contains: 47 - enum: 48 - - snps,ddrc-3.80a 49 - - xlnx,zynqmp-ddrc-2.40a 50 - then: 51 - required: 52 - - interrupts 53 - else: 54 - properties: 55 - interrupts: false 40 + - interrupts 56 41 57 42 additionalProperties: false 58 43 59 44 examples: 60 45 - | 61 - memory-controller@f8006000 { 62 - compatible = "xlnx,zynq-ddrc-a05"; 63 - reg = <0xf8006000 0x1000>; 46 + memory-controller@fd070000 { 47 + compatible = "xlnx,zynqmp-ddrc-2.40a"; 48 + reg = <0xfd070000 0x30000>; 49 + interrupt-parent = <&gic>; 50 + interrupts = <0 112 4>; 64 51 }; 65 - 66 - - | 67 - axi { 68 - #address-cells = <2>; 69 - #size-cells = <2>; 70 - 71 - memory-controller@fd070000 { 72 - compatible = "xlnx,zynqmp-ddrc-2.40a"; 73 - reg = <0x0 0xfd070000 0x0 0x30000>; 74 - interrupt-parent = <&gic>; 75 - interrupts = <0 112 4>; 76 - }; 77 - }; 52 + ...
+38
Documentation/devicetree/bindings/memory-controllers/xlnx,zynq-ddrc-a05.yaml
··· 1 + # SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause 2 + %YAML 1.2 3 + --- 4 + $id: http://devicetree.org/schemas/memory-controllers/xlnx,zynq-ddrc-a05.yaml# 5 + $schema: http://devicetree.org/meta-schemas/core.yaml# 6 + 7 + title: Zynq A05 DDR Memory Controller 8 + 9 + maintainers: 10 + - Krzysztof Kozlowski <krzk@kernel.org> 11 + - Manish Narani <manish.narani@xilinx.com> 12 + - Michal Simek <michal.simek@xilinx.com> 13 + 14 + description: 15 + The Zynq DDR ECC controller has an optional ECC support in half-bus width 16 + (16-bit) configuration. It is cappable of correcting single bit ECC errors 17 + and detecting double bit ECC errors. 18 + 19 + properties: 20 + compatible: 21 + const: xlnx,zynq-ddrc-a05 22 + 23 + reg: 24 + maxItems: 1 25 + 26 + required: 27 + - compatible 28 + - reg 29 + 30 + additionalProperties: false 31 + 32 + examples: 33 + - | 34 + memory-controller@f8006000 { 35 + compatible = "xlnx,zynq-ddrc-a05"; 36 + reg = <0xf8006000 0x1000>; 37 + }; 38 + ...
+1
MAINTAINERS
··· 3087 3087 T: git https://github.com/Xilinx/linux-xlnx.git 3088 3088 F: Documentation/devicetree/bindings/i2c/cdns,i2c-r1p10.yaml 3089 3089 F: Documentation/devicetree/bindings/i2c/xlnx,xps-iic-2.00.a.yaml 3090 + F: Documentation/devicetree/bindings/memory-controllers/xlnx,zynq-ddrc-a05.yaml 3090 3091 F: Documentation/devicetree/bindings/spi/xlnx,zynq-qspi.yaml 3091 3092 F: arch/arm/mach-zynq/ 3092 3093 F: drivers/clocksource/timer-cadence-ttc.c