mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2025-08-25 09:29:31 +00:00

ifc can connect nor, nand and fpag. Split "^.*@..." into "nand@..." and "(flash|fpga|board-control|cpld)@..." to better describe the child's node binding requirements. Fix below warning: arch/arm64/boot/dts/freescale/fsl-ls1043a-qds.dtb: /soc/memory-controller@1530000/nand@1,0: failed to match any schema with compatible: ['fsl,ifc-nand'] Signed-off-by: Frank Li <Frank.Li@nxp.com> Reviewed-by: Rob Herring (Arm) <robh@kernel.org> Link: https://lore.kernel.org/r/20240909165358.2384975-1-Frank.Li@nxp.com Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
136 lines
3.5 KiB
YAML
136 lines
3.5 KiB
YAML
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
|
%YAML 1.2
|
|
---
|
|
$id: http://devicetree.org/schemas/memory-controllers/fsl/fsl,ifc.yaml#
|
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
|
|
|
title: FSL/NXP Integrated Flash Controller
|
|
|
|
maintainers:
|
|
- Shawn Guo <shawnguo@kernel.org>
|
|
|
|
description: |
|
|
NXP's integrated flash controller (IFC) is an advanced version of the
|
|
enhanced local bus controller which includes similar programming and signal
|
|
interfaces with an extended feature set. The IFC provides access to multiple
|
|
external memory types, such as NAND flash (SLC and MLC), NOR flash, EPROM,
|
|
SRAM and other memories where address and data are shared on a bus.
|
|
|
|
properties:
|
|
$nodename:
|
|
pattern: "^memory-controller@[0-9a-f]+$"
|
|
|
|
compatible:
|
|
const: fsl,ifc
|
|
|
|
"#address-cells":
|
|
enum: [2, 3]
|
|
description: |
|
|
Should be either two or three. The first cell is the chipselect
|
|
number, and the remaining cells are the offset into the chipselect.
|
|
|
|
"#size-cells":
|
|
enum: [1, 2]
|
|
description: |
|
|
Either one or two, depending on how large each chipselect can be.
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
interrupts:
|
|
minItems: 1
|
|
maxItems: 2
|
|
description: |
|
|
IFC may have one or two interrupts. If two interrupt specifiers are
|
|
present, the first is the "common" interrupt (CM_EVTER_STAT), and the
|
|
second is the NAND interrupt (NAND_EVTER_STAT). If there is only one,
|
|
that interrupt reports both types of event.
|
|
|
|
little-endian:
|
|
type: boolean
|
|
description: |
|
|
If this property is absent, the big-endian mode will be in use as default
|
|
for registers.
|
|
|
|
ranges:
|
|
description: |
|
|
Each range corresponds to a single chipselect, and covers the entire
|
|
access window as configured.
|
|
|
|
patternProperties:
|
|
"^nand@[a-f0-9]+(,[a-f0-9]+)+$":
|
|
type: object
|
|
properties:
|
|
compatible:
|
|
const: fsl,ifc-nand
|
|
|
|
reg:
|
|
maxItems: 1
|
|
|
|
"#address-cells":
|
|
const: 1
|
|
|
|
"#size-cells":
|
|
const: 1
|
|
|
|
patternProperties:
|
|
"^partition@[0-9a-f]+":
|
|
$ref: /schemas/mtd/partitions/partition.yaml#
|
|
deprecated: true
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
|
|
additionalProperties: false
|
|
|
|
"(flash|fpga|board-control|cpld)@[a-f0-9]+(,[a-f0-9]+)+$":
|
|
type: object
|
|
oneOf:
|
|
- $ref: /schemas/board/fsl,fpga-qixis.yaml#
|
|
- $ref: /schemas/mtd/mtd-physmap.yaml#
|
|
unevaluatedProperties: false
|
|
|
|
required:
|
|
- compatible
|
|
- reg
|
|
- interrupts
|
|
|
|
additionalProperties: false
|
|
|
|
examples:
|
|
- |
|
|
soc {
|
|
#address-cells = <2>;
|
|
#size-cells = <2>;
|
|
|
|
memory-controller@ffe1e000 {
|
|
compatible = "fsl,ifc";
|
|
#address-cells = <2>;
|
|
#size-cells = <1>;
|
|
reg = <0x0 0xffe1e000 0 0x2000>;
|
|
interrupts = <16 2 19 2>;
|
|
little-endian;
|
|
|
|
/* NOR, NAND Flashes and CPLD on board */
|
|
ranges = <0x0 0x0 0x0 0xee000000 0x02000000>,
|
|
<0x1 0x0 0x0 0xffa00000 0x00010000>,
|
|
<0x3 0x0 0x0 0xffb00000 0x00020000>;
|
|
|
|
flash@0,0 {
|
|
#address-cells = <1>;
|
|
#size-cells = <1>;
|
|
compatible = "cfi-flash";
|
|
reg = <0x0 0x0 0x2000000>;
|
|
bank-width = <2>;
|
|
device-width = <1>;
|
|
|
|
partition@0 {
|
|
/* 32MB for user data */
|
|
reg = <0x0 0x02000000>;
|
|
label = "NOR Data";
|
|
};
|
|
};
|
|
};
|
|
};
|