mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-28 05:24:47 +08:00
dt-bindings: memory: Convert ingenic,jz4780-nemc.txt to YAML
Convert the ingenic,jz4780-nemc.txt doc file to ingenic,nemc.yaml. The ingenic,jz4725b-nemc compatible string was added in the process, with a fallback to ingenic,jz4740-nemc. Signed-off-by: Paul Cercueil <paul@crapouillou.net> Signed-off-by: Rob Herring <robh@kernel.org>
This commit is contained in:
parent
1ade7d1f95
commit
9484492c84
@ -1,76 +0,0 @@
|
|||||||
* Ingenic JZ4780 NAND/external memory controller (NEMC)
|
|
||||||
|
|
||||||
This file documents the device tree bindings for the NEMC external memory
|
|
||||||
controller in Ingenic JZ4780
|
|
||||||
|
|
||||||
Required properties:
|
|
||||||
- compatible: Should be set to one of:
|
|
||||||
"ingenic,jz4740-nemc" (JZ4740)
|
|
||||||
"ingenic,jz4780-nemc" (JZ4780)
|
|
||||||
- reg: Should specify the NEMC controller registers location and length.
|
|
||||||
- clocks: Clock for the NEMC controller.
|
|
||||||
- #address-cells: Must be set to 2.
|
|
||||||
- #size-cells: Must be set to 1.
|
|
||||||
- ranges: A set of ranges for each bank describing the physical memory layout.
|
|
||||||
Each should specify the following 4 integer values:
|
|
||||||
|
|
||||||
<cs number> 0 <physical address of mapping> <size of mapping>
|
|
||||||
|
|
||||||
Each child of the NEMC node describes a device connected to the NEMC.
|
|
||||||
|
|
||||||
Required child node properties:
|
|
||||||
- reg: Should contain at least one register specifier, given in the following
|
|
||||||
format:
|
|
||||||
|
|
||||||
<cs number> <offset> <size>
|
|
||||||
|
|
||||||
Multiple registers can be specified across multiple banks. This is needed,
|
|
||||||
for example, for packaged NAND devices with multiple dies. Such devices
|
|
||||||
should be grouped into a single node.
|
|
||||||
|
|
||||||
Optional child node properties:
|
|
||||||
- ingenic,nemc-bus-width: Specifies the bus width in bits. Defaults to 8 bits.
|
|
||||||
- ingenic,nemc-tAS: Address setup time in nanoseconds.
|
|
||||||
- ingenic,nemc-tAH: Address hold time in nanoseconds.
|
|
||||||
- ingenic,nemc-tBP: Burst pitch time in nanoseconds.
|
|
||||||
- ingenic,nemc-tAW: Access wait time in nanoseconds.
|
|
||||||
- ingenic,nemc-tSTRV: Static memory recovery time in nanoseconds.
|
|
||||||
|
|
||||||
If a child node references multiple banks in its "reg" property, the same value
|
|
||||||
for all optional parameters will be configured for all banks. If any optional
|
|
||||||
parameters are omitted, they will be left unchanged from whatever they are
|
|
||||||
configured to when the NEMC device is probed (which may be the reset value as
|
|
||||||
given in the hardware reference manual, or a value configured by the boot
|
|
||||||
loader).
|
|
||||||
|
|
||||||
Example (NEMC node with a NAND child device attached at CS1):
|
|
||||||
|
|
||||||
nemc: nemc@13410000 {
|
|
||||||
compatible = "ingenic,jz4780-nemc";
|
|
||||||
reg = <0x13410000 0x10000>;
|
|
||||||
|
|
||||||
#address-cells = <2>;
|
|
||||||
#size-cells = <1>;
|
|
||||||
|
|
||||||
ranges = <1 0 0x1b000000 0x1000000
|
|
||||||
2 0 0x1a000000 0x1000000
|
|
||||||
3 0 0x19000000 0x1000000
|
|
||||||
4 0 0x18000000 0x1000000
|
|
||||||
5 0 0x17000000 0x1000000
|
|
||||||
6 0 0x16000000 0x1000000>;
|
|
||||||
|
|
||||||
clocks = <&cgu JZ4780_CLK_NEMC>;
|
|
||||||
|
|
||||||
nand: nand@1 {
|
|
||||||
compatible = "ingenic,jz4780-nand";
|
|
||||||
reg = <1 0 0x1000000>;
|
|
||||||
|
|
||||||
ingenic,nemc-tAS = <10>;
|
|
||||||
ingenic,nemc-tAH = <5>;
|
|
||||||
ingenic,nemc-tBP = <10>;
|
|
||||||
ingenic,nemc-tAW = <15>;
|
|
||||||
ingenic,nemc-tSTRV = <100>;
|
|
||||||
|
|
||||||
...
|
|
||||||
};
|
|
||||||
};
|
|
@ -0,0 +1,126 @@
|
|||||||
|
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
|
||||||
|
%YAML 1.2
|
||||||
|
---
|
||||||
|
$id: http://devicetree.org/schemas/memory-controllers/ingenic,nemc.yaml#
|
||||||
|
$schema: http://devicetree.org/meta-schemas/core.yaml#
|
||||||
|
|
||||||
|
title: Ingenic SoCs NAND / External Memory Controller (NEMC) devicetree bindings
|
||||||
|
|
||||||
|
maintainers:
|
||||||
|
- Paul Cercueil <paul@crapouillou.net>
|
||||||
|
|
||||||
|
properties:
|
||||||
|
$nodename:
|
||||||
|
pattern: "^memory-controller@[0-9a-f]+$"
|
||||||
|
|
||||||
|
compatible:
|
||||||
|
oneOf:
|
||||||
|
- enum:
|
||||||
|
- ingenic,jz4740-nemc
|
||||||
|
- ingenic,jz4780-nemc
|
||||||
|
- items:
|
||||||
|
- const: ingenic,jz4725b-nemc
|
||||||
|
- const: ingenic,jz4740-nemc
|
||||||
|
|
||||||
|
"#address-cells":
|
||||||
|
const: 2
|
||||||
|
|
||||||
|
"#size-cells":
|
||||||
|
const: 1
|
||||||
|
|
||||||
|
ranges: true
|
||||||
|
|
||||||
|
reg:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
clocks:
|
||||||
|
maxItems: 1
|
||||||
|
|
||||||
|
patternProperties:
|
||||||
|
".*@[0-9]+$":
|
||||||
|
type: object
|
||||||
|
properties:
|
||||||
|
reg:
|
||||||
|
minItems: 1
|
||||||
|
maxItems: 255
|
||||||
|
|
||||||
|
ingenic,nemc-bus-width:
|
||||||
|
allOf:
|
||||||
|
- $ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
- enum: [8, 16]
|
||||||
|
description: Specifies the bus width in bits.
|
||||||
|
|
||||||
|
ingenic,nemc-tAS:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: Address setup time in nanoseconds.
|
||||||
|
|
||||||
|
ingenic,nemc-tAH:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: Address hold time in nanoseconds.
|
||||||
|
|
||||||
|
ingenic,nemc-tBP:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: Burst pitch time in nanoseconds.
|
||||||
|
|
||||||
|
ingenic,nemc-tAW:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: Address wait time in nanoseconds.
|
||||||
|
|
||||||
|
ingenic,nemc-tSTRV:
|
||||||
|
$ref: /schemas/types.yaml#/definitions/uint32
|
||||||
|
description: Static memory recovery time in nanoseconds.
|
||||||
|
|
||||||
|
required:
|
||||||
|
- reg
|
||||||
|
|
||||||
|
required:
|
||||||
|
- compatible
|
||||||
|
- "#address-cells"
|
||||||
|
- "#size-cells"
|
||||||
|
- ranges
|
||||||
|
- reg
|
||||||
|
- clocks
|
||||||
|
|
||||||
|
additionalProperties: false
|
||||||
|
|
||||||
|
examples:
|
||||||
|
- |
|
||||||
|
#include <dt-bindings/clock/jz4780-cgu.h>
|
||||||
|
#include <dt-bindings/gpio/gpio.h>
|
||||||
|
nemc: memory-controller@13410000 {
|
||||||
|
compatible = "ingenic,jz4780-nemc";
|
||||||
|
reg = <0x13410000 0x10000>;
|
||||||
|
#address-cells = <2>;
|
||||||
|
#size-cells = <1>;
|
||||||
|
ranges = <1 0 0x1b000000 0x1000000>,
|
||||||
|
<2 0 0x1a000000 0x1000000>,
|
||||||
|
<3 0 0x19000000 0x1000000>,
|
||||||
|
<4 0 0x18000000 0x1000000>,
|
||||||
|
<5 0 0x17000000 0x1000000>,
|
||||||
|
<6 0 0x16000000 0x1000000>;
|
||||||
|
|
||||||
|
clocks = <&cgu JZ4780_CLK_NEMC>;
|
||||||
|
|
||||||
|
ethernet@6 {
|
||||||
|
compatible = "davicom,dm9000";
|
||||||
|
davicom,no-eeprom;
|
||||||
|
|
||||||
|
pinctrl-names = "default";
|
||||||
|
pinctrl-0 = <&pins_nemc_cs6>;
|
||||||
|
|
||||||
|
reg = <6 0 1>, /* addr */
|
||||||
|
<6 2 1>; /* data */
|
||||||
|
|
||||||
|
ingenic,nemc-tAS = <15>;
|
||||||
|
ingenic,nemc-tAH = <10>;
|
||||||
|
ingenic,nemc-tBP = <20>;
|
||||||
|
ingenic,nemc-tAW = <50>;
|
||||||
|
ingenic,nemc-tSTRV = <100>;
|
||||||
|
|
||||||
|
reset-gpios = <&gpf 12 GPIO_ACTIVE_HIGH>;
|
||||||
|
vcc-supply = <ð0_power>;
|
||||||
|
|
||||||
|
interrupt-parent = <&gpe>;
|
||||||
|
interrupts = <19 4>;
|
||||||
|
};
|
||||||
|
};
|
Loading…
Reference in New Issue
Block a user