mirror of
https://github.com/edk2-porting/linux-next.git
synced 2025-01-16 01:24:08 +08:00
Memory controller drivers for v6.1, part 2
Improvements in Synopsys DesignWare Universal Multi-Protocol Memory Controller Devicetree bindings. The bindings are being split into one related to Synopsys core and into quite different derivative Zynq A05 DDR Memory Controller. Extend the Synopsys bindings with additional properties to match upcoming new device support (Baikal-T1 support). -----BEGIN PGP SIGNATURE----- iQJEBAABCgAuFiEE3dJiKD0RGyM7briowTdm5oaLg9cFAmMxg7EQHGtyemtAa2Vy bmVsLm9yZwAKCRDBN2bmhouD19vHD/9d4X2BGo+NS4CE0bmarl2Opux6FZ1EIYB0 eKNOLhDL5NvkxQ5bSCRyQ2qydZUWuVDhxOXeOKgQLJNYwFvpIuFLdc126sHzfw0S OOnwSJyAOt0Y1JrMMsZRkfB8Sn9RTN5IVTfWHWHvx8Vs+S1xd4flXn8LFDCx8Ddn 1N7yCZ3DJYSJWG/bIO0dJTE54gwMueRy8+f2xBrENhkFMf5tRWmcYyY+bOrmwm5k D1uTQMaQoUfsfOLGx+Ad+In+f2ZZN1AzC4Ych7iUoazUuUNSB76IgbUpTln3atO+ HiuA1FIzYD9/DFF4phdKtgQL61ZwE3dfmsYqGYw/7X5SNPbhOZKzNB49kyKRM2EQ FMoguTQok5ChR3l+2kqaScYQnHxfNzfXCFkKuTjQsEDgUlLPliFLtN8sNMgimcYi wAts9bLV9mVpHqIfZ/1bHRo3PfKG4jAnhKSH8VrqUyPYWY5okBTGUHjXMR1t0lOJ ehMTNdsQhj5MaBBiBFktgP8qg8fxOyFwlyE4+UCFLr5pj1h+3BxZDk3Mnkh2N5rN v7kOmc3nhQIEtv8528kGarlUtM1Ia6Wpp4Xa+OT9kH2L1zr1be7BFTSAqFEbwyPA xP8XaKXQt0jssEEE5wNM+5LTg+xFlfidPY3uSy/+HyLwwwN8qxAtDidHZN0Sh82e bjsdM9KQ0w== =SQZl -----END PGP SIGNATURE----- gpgsig -----BEGIN PGP SIGNATURE----- iQIzBAABCgAdFiEEo6/YBQwIrVS28WGKmmx57+YAGNkFAmM0sGEACgkQmmx57+YA GNmnzg//S70oLBedGdJa7wIxu7cjv0TEsWG1EJHTX//SvcIONn6Ab3WJ0008DPI8 SRC22BIyqjmNgfBzKG9OBnFc1B9SWLAygg4x3F6/uiczoJ5bSUWAKuAlReH9mqB9 POZKPoDhgMHY9GXM5YexpCskqirlI8VjbxRVlWhQ49hY4oDceamqmPU3r+e+S5Fn nO+a2bo9YwQ5PwAPE8s95+a3R/5xmDh+5oFHpJL7h3UGRvK8kW8TtUaLJi56/EOG WNZcGRBasdqJ+YESTsBrpU4ILPqAeImiAXtGACjJG2ERecl1eWqkE5CJvfAk+ZuV GpcFyL41gHK6aFJHx7JkMpwhaEN3Q6Xn2Kajk8UW/I34IV20wD67IVpYIje33huL /dcR4IOEHQNDDH3IkcsnZK7Hy8b20dfBo13nTOjiwIiHD0QKJMgAwbz+VWS2Dglv mBN1dSPfc1Cep7Kvwg8B1P34/BpwWzGKB6gwYK3yYOt4tteJPH39B8Ltba94KGbA I4EbDNvrS1gDs1IGZcR34zziwL0SQoa2rfwUVCaCoWrsTeceDErggpW6ULDTlFtZ ca90oupzynihVgza6jqjFQnRWN38Kp5rJxDNBhLgn2DX7u81qPsGZyK2oUBOjMHS MeJHF7U7txF9KVchow8Y9UjLLuPu1owhroD3TgDnKssT7zBThRw= =1MoR -----END PGP SIGNATURE----- Merge tag 'memory-controller-drv-6.1-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl into arm/drivers Memory controller drivers for v6.1, part 2 Improvements in Synopsys DesignWare Universal Multi-Protocol Memory Controller Devicetree bindings. The bindings are being split into one related to Synopsys core and into quite different derivative Zynq A05 DDR Memory Controller. Extend the Synopsys bindings with additional properties to match upcoming new device support (Baikal-T1 support). * tag 'memory-controller-drv-6.1-2' of https://git.kernel.org/pub/scm/linux/kernel/git/krzk/linux-mem-ctrl: dt-bindings: memory: snps,dw-umctl2-ddrc: Extend schema with IRQs/resets/clocks props dt-bindings: memory: snps,dw-umctl2-ddrc: Replace opencoded numbers with macros dt-bindings: memory: snps,dw-umctl2-ddrc: Use more descriptive device name dt-bindings: memory: synopsys,ddrc-ecc: Detach Zynq DDRC controller support Link: https://lore.kernel.org/r/20220926105023.119781-1-krzysztof.kozlowski@linaro.org Signed-off-by: Arnd Bergmann <arnd@arndb.de>
This commit is contained in:
commit
f6f7d870c5
@ -0,0 +1,118 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/memory-controllers/snps,dw-umctl2-ddrc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Synopsys DesignWare Universal Multi-Protocol Memory Controller
|
||||
|
||||
maintainers:
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
- Manish Narani <manish.narani@xilinx.com>
|
||||
- Michal Simek <michal.simek@xilinx.com>
|
||||
|
||||
description: |
|
||||
Synopsys DesignWare Enhanced uMCTL2 DDR Memory Controller is capable of
|
||||
working with the memory devices supporting up to (LP)DDR4 protocol. It can
|
||||
be equipped with SEC/DEC ECC feature if DRAM data bus width is either
|
||||
16-bits or 32-bits or 64-bits wide.
|
||||
|
||||
For instance the ZynqMP DDR controller is based on the DW uMCTL2 v2.40a
|
||||
controller. It has an optional SEC/DEC ECC support in 64- and 32-bits
|
||||
bus width configurations.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
oneOf:
|
||||
- deprecated: true
|
||||
description: Synopsys DW uMCTL2 DDR controller v3.80a
|
||||
const: snps,ddrc-3.80a
|
||||
- description: Synopsys DW uMCTL2 DDR controller
|
||||
const: snps,dw-umctl2-ddrc
|
||||
- description: Xilinx ZynqMP DDR controller v2.40a
|
||||
const: xlnx,zynqmp-ddrc-2.40a
|
||||
|
||||
interrupts:
|
||||
description:
|
||||
DW uMCTL2 DDRC IP-core provides individual IRQ signal for each event":"
|
||||
ECC Corrected Error, ECC Uncorrected Error, ECC Address Protection,
|
||||
Scrubber-Done signal, DFI Parity/CRC Error. Some platforms may have the
|
||||
signals merged before they reach the IRQ controller or have some of them
|
||||
absent in case if the corresponding feature is unavailable/disabled.
|
||||
minItems: 1
|
||||
maxItems: 5
|
||||
|
||||
interrupt-names:
|
||||
minItems: 1
|
||||
maxItems: 5
|
||||
oneOf:
|
||||
- description: Common ECC CE/UE/Scrubber/DFI Errors IRQ
|
||||
items:
|
||||
- const: ecc
|
||||
- description: Individual ECC CE/UE/Scrubber/DFI Errors IRQs
|
||||
items:
|
||||
enum: [ ecc_ce, ecc_ue, ecc_ap, ecc_sbr, dfi_e ]
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
clocks:
|
||||
description:
|
||||
A standard set of the clock sources contains CSRs bus clock, AXI-ports
|
||||
reference clock, DDRC core clock, Scrubber standalone clock
|
||||
(synchronous to the DDRC clock).
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
|
||||
clock-names:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
items:
|
||||
enum: [ pclk, aclk, core, sbr ]
|
||||
|
||||
resets:
|
||||
description:
|
||||
Each clock domain can have separate reset signal.
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
|
||||
reset-names:
|
||||
minItems: 1
|
||||
maxItems: 4
|
||||
items:
|
||||
enum: [ prst, arst, core, sbr ]
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
- interrupts
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/arm-gic.h>
|
||||
|
||||
memory-controller@fd070000 {
|
||||
compatible = "xlnx,zynqmp-ddrc-2.40a";
|
||||
reg = <0xfd070000 0x30000>;
|
||||
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "ecc";
|
||||
};
|
||||
- |
|
||||
#include <dt-bindings/interrupt-controller/irq.h>
|
||||
|
||||
memory-controller@3d400000 {
|
||||
compatible = "snps,dw-umctl2-ddrc";
|
||||
reg = <0x3d400000 0x400000>;
|
||||
|
||||
interrupts = <147 IRQ_TYPE_LEVEL_HIGH>, <148 IRQ_TYPE_LEVEL_HIGH>,
|
||||
<149 IRQ_TYPE_LEVEL_HIGH>, <150 IRQ_TYPE_LEVEL_HIGH>;
|
||||
interrupt-names = "ecc_ce", "ecc_ue", "ecc_sbr", "dfi_e";
|
||||
|
||||
clocks = <&pclk>, <&aclk>, <&core_clk>, <&sbr_clk>;
|
||||
clock-names = "pclk", "aclk", "core", "sbr";
|
||||
};
|
||||
...
|
@ -1,76 +0,0 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/memory-controllers/synopsys,ddrc-ecc.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Synopsys IntelliDDR Multi Protocol memory controller
|
||||
|
||||
maintainers:
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
- Manish Narani <manish.narani@xilinx.com>
|
||||
- Michal Simek <michal.simek@xilinx.com>
|
||||
|
||||
description: |
|
||||
The ZynqMP DDR ECC controller has an optional ECC support in 64-bit and
|
||||
32-bit bus width configurations.
|
||||
|
||||
The Zynq DDR ECC controller has an optional ECC support in half-bus width
|
||||
(16-bit) configuration.
|
||||
|
||||
These both ECC controllers correct single bit ECC errors and detect double bit
|
||||
ECC errors.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
enum:
|
||||
- snps,ddrc-3.80a
|
||||
- xlnx,zynq-ddrc-a05
|
||||
- xlnx,zynqmp-ddrc-2.40a
|
||||
|
||||
interrupts:
|
||||
maxItems: 1
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
allOf:
|
||||
- if:
|
||||
properties:
|
||||
compatible:
|
||||
contains:
|
||||
enum:
|
||||
- snps,ddrc-3.80a
|
||||
- xlnx,zynqmp-ddrc-2.40a
|
||||
then:
|
||||
required:
|
||||
- interrupts
|
||||
else:
|
||||
properties:
|
||||
interrupts: false
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
memory-controller@f8006000 {
|
||||
compatible = "xlnx,zynq-ddrc-a05";
|
||||
reg = <0xf8006000 0x1000>;
|
||||
};
|
||||
|
||||
- |
|
||||
axi {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <2>;
|
||||
|
||||
memory-controller@fd070000 {
|
||||
compatible = "xlnx,zynqmp-ddrc-2.40a";
|
||||
reg = <0x0 0xfd070000 0x0 0x30000>;
|
||||
interrupt-parent = <&gic>;
|
||||
interrupts = <0 112 4>;
|
||||
};
|
||||
};
|
@ -0,0 +1,38 @@
|
||||
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||||
%YAML 1.2
|
||||
---
|
||||
$id: http://devicetree.org/schemas/memory-controllers/xlnx,zynq-ddrc-a05.yaml#
|
||||
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||
|
||||
title: Zynq A05 DDR Memory Controller
|
||||
|
||||
maintainers:
|
||||
- Krzysztof Kozlowski <krzk@kernel.org>
|
||||
- Manish Narani <manish.narani@xilinx.com>
|
||||
- Michal Simek <michal.simek@xilinx.com>
|
||||
|
||||
description:
|
||||
The Zynq DDR ECC controller has an optional ECC support in half-bus width
|
||||
(16-bit) configuration. It is cappable of correcting single bit ECC errors
|
||||
and detecting double bit ECC errors.
|
||||
|
||||
properties:
|
||||
compatible:
|
||||
const: xlnx,zynq-ddrc-a05
|
||||
|
||||
reg:
|
||||
maxItems: 1
|
||||
|
||||
required:
|
||||
- compatible
|
||||
- reg
|
||||
|
||||
additionalProperties: false
|
||||
|
||||
examples:
|
||||
- |
|
||||
memory-controller@f8006000 {
|
||||
compatible = "xlnx,zynq-ddrc-a05";
|
||||
reg = <0xf8006000 0x1000>;
|
||||
};
|
||||
...
|
@ -3087,6 +3087,8 @@ W: http://wiki.xilinx.com
|
||||
T: git https://github.com/Xilinx/linux-xlnx.git
|
||||
F: Documentation/devicetree/bindings/i2c/cdns,i2c-r1p10.yaml
|
||||
F: Documentation/devicetree/bindings/i2c/xlnx,xps-iic-2.00.a.yaml
|
||||
F: Documentation/devicetree/bindings/memory-controllers/snps,dw-umctl2-ddrc.yaml
|
||||
F: Documentation/devicetree/bindings/memory-controllers/xlnx,zynq-ddrc-a05.yaml
|
||||
F: Documentation/devicetree/bindings/spi/xlnx,zynq-qspi.yaml
|
||||
F: arch/arm/mach-zynq/
|
||||
F: drivers/clocksource/timer-cadence-ttc.c
|
||||
|
Loading…
Reference in New Issue
Block a user