151 lines
3.1 KiB
YAML
151 lines
3.1 KiB
YAML
|
# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
|
||
|
%YAML 1.2
|
||
|
---
|
||
|
$id: http://devicetree.org/schemas/mtd/denali,nand.yaml#
|
||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||
|
|
||
|
title: Denali NAND controller
|
||
|
|
||
|
maintainers:
|
||
|
- Masahiro Yamada <yamada.masahiro@socionext.com>
|
||
|
|
||
|
properties:
|
||
|
compatible:
|
||
|
enum:
|
||
|
- altr,socfpga-denali-nand
|
||
|
- socionext,uniphier-denali-nand-v5a
|
||
|
- socionext,uniphier-denali-nand-v5b
|
||
|
|
||
|
reg-names:
|
||
|
description: |
|
||
|
There are two register regions:
|
||
|
nand_data: host data/command interface
|
||
|
denali_reg: register interface
|
||
|
items:
|
||
|
- const: nand_data
|
||
|
- const: denali_reg
|
||
|
|
||
|
reg:
|
||
|
minItems: 2
|
||
|
maxItems: 2
|
||
|
|
||
|
interrupts:
|
||
|
maxItems: 1
|
||
|
|
||
|
clock-names:
|
||
|
description: |
|
||
|
There are three clocks:
|
||
|
nand: controller core clock
|
||
|
nand_x: bus interface clock
|
||
|
ecc: ECC circuit clock
|
||
|
items:
|
||
|
- const: nand
|
||
|
- const: nand_x
|
||
|
- const: ecc
|
||
|
|
||
|
clocks:
|
||
|
minItems: 3
|
||
|
maxItems: 3
|
||
|
|
||
|
reset-names:
|
||
|
description: |
|
||
|
There are two optional resets:
|
||
|
nand: controller core reset
|
||
|
reg: register reset
|
||
|
oneOf:
|
||
|
- items:
|
||
|
- const: nand
|
||
|
- const: reg
|
||
|
- const: nand
|
||
|
- const: reg
|
||
|
|
||
|
resets:
|
||
|
minItems: 1
|
||
|
maxItems: 2
|
||
|
|
||
|
allOf:
|
||
|
- $ref: nand-controller.yaml
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: altr,socfpga-denali-nand
|
||
|
then:
|
||
|
patternProperties:
|
||
|
"^nand@[a-f0-9]$":
|
||
|
type: object
|
||
|
properties:
|
||
|
nand-ecc-strength:
|
||
|
enum:
|
||
|
- 8
|
||
|
- 15
|
||
|
nand-ecc-step-size:
|
||
|
enum:
|
||
|
- 512
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: socionext,uniphier-denali-nand-v5a
|
||
|
then:
|
||
|
patternProperties:
|
||
|
"^nand@[a-f0-9]$":
|
||
|
type: object
|
||
|
properties:
|
||
|
nand-ecc-strength:
|
||
|
enum:
|
||
|
- 8
|
||
|
- 16
|
||
|
- 24
|
||
|
nand-ecc-step-size:
|
||
|
enum:
|
||
|
- 1024
|
||
|
|
||
|
- if:
|
||
|
properties:
|
||
|
compatible:
|
||
|
contains:
|
||
|
const: socionext,uniphier-denali-nand-v5b
|
||
|
then:
|
||
|
patternProperties:
|
||
|
"^nand@[a-f0-9]$":
|
||
|
type: object
|
||
|
properties:
|
||
|
nand-ecc-strength:
|
||
|
enum:
|
||
|
- 8
|
||
|
- 16
|
||
|
nand-ecc-step-size:
|
||
|
enum:
|
||
|
- 1024
|
||
|
|
||
|
required:
|
||
|
- compatible
|
||
|
- reg
|
||
|
- interrupts
|
||
|
- clock-names
|
||
|
- clocks
|
||
|
|
||
|
unevaluatedProperties: false
|
||
|
|
||
|
examples:
|
||
|
- |
|
||
|
nand-controller@ff900000 {
|
||
|
compatible = "altr,socfpga-denali-nand";
|
||
|
reg-names = "nand_data", "denali_reg";
|
||
|
reg = <0xff900000 0x20>, <0xffb80000 0x1000>;
|
||
|
interrupts = <0 144 4>;
|
||
|
clock-names = "nand", "nand_x", "ecc";
|
||
|
clocks = <&nand_clk>, <&nand_x_clk>, <&nand_ecc_clk>;
|
||
|
reset-names = "nand", "reg";
|
||
|
resets = <&nand_rst>, <&nand_reg_rst>;
|
||
|
#address-cells = <1>;
|
||
|
#size-cells = <0>;
|
||
|
|
||
|
nand@0 {
|
||
|
reg = <0>;
|
||
|
};
|
||
|
};
|