dt-bindings: Add devicetree bindings
Add snapshot of device tree bindings from keystone common kernel, branch "android-mainline-keystone-qcom-release" at c4c12103f9c0 ("Snap for 9228065 from e32903b9a63bb558df8b803b076619c53c16baad to android-mainline-keystone-qcom-release"). Change-Id: I7682079615cbd9f29340a5c1f2a1d84ec441a1f1 Signed-off-by: Melody Olvera <quic_molvera@quicinc.com>
This commit is contained in:
210
bindings/memory-controllers/ti-aemif.txt
Normal file
210
bindings/memory-controllers/ti-aemif.txt
Normal file
@@ -0,0 +1,210 @@
|
||||
* Device tree bindings for Texas instruments AEMIF controller
|
||||
|
||||
The Async External Memory Interface (EMIF16/AEMIF) controller is intended to
|
||||
provide a glue-less interface to a variety of asynchronous memory devices like
|
||||
ASRA M, NOR and NAND memory. A total of 256M bytes of any of these memories
|
||||
can be accessed at any given time via four chip selects with 64M byte access
|
||||
per chip select. Synchronous memories such as DDR1 SD RAM, SDR SDRAM
|
||||
and Mobile SDR are not supported.
|
||||
|
||||
Documentation:
|
||||
Davinci DM646x - http://www.ti.com/lit/ug/sprueq7c/sprueq7c.pdf
|
||||
OMAP-L138 (DA850) - http://www.ti.com/lit/ug/spruh77a/spruh77a.pdf
|
||||
Kestone - http://www.ti.com/lit/ug/sprugz3a/sprugz3a.pdf
|
||||
|
||||
Required properties:
|
||||
|
||||
- compatible: "ti,davinci-aemif"
|
||||
"ti,keystone-aemif"
|
||||
"ti,da850-aemif"
|
||||
|
||||
- reg: contains offset/length value for AEMIF control registers
|
||||
space.
|
||||
|
||||
- #address-cells: Must be 2. The partition number has to be encoded in the
|
||||
first address cell and it may accept values 0..N-1
|
||||
(N - total number of partitions). It's recommended to
|
||||
assign N-1 number for the control partition. The second
|
||||
cell is the offset into the partition.
|
||||
|
||||
- #size-cells: Must be set to 1.
|
||||
|
||||
- ranges: Contains memory regions. There are two types of
|
||||
ranges/partitions:
|
||||
- CS-specific partition/range. If continuous, must be
|
||||
set up to reflect the memory layout for 4 chipselects,
|
||||
if not then additional range/partition can be added and
|
||||
child device can select the proper one.
|
||||
- control partition which is common for all CS
|
||||
interfaces.
|
||||
|
||||
- clocks: the clock feeding the controller clock. Required only
|
||||
if clock tree data present in device tree.
|
||||
See clock-bindings.txt
|
||||
|
||||
- clock-names: clock name. It has to be "aemif". Required only if clock
|
||||
tree data present in device tree, in another case don't
|
||||
use it.
|
||||
See clock-bindings.txt
|
||||
|
||||
- clock-ranges: Empty property indicating that child nodes can inherit
|
||||
named clocks. Required only if clock tree data present
|
||||
in device tree.
|
||||
See clock-bindings.txt
|
||||
|
||||
|
||||
Child chip-select (cs) nodes contain the memory devices nodes connected to
|
||||
such as NOR (e.g. cfi-flash) and NAND (ti,davinci-nand, see davinci-nand.txt).
|
||||
There might be board specific devices like FPGAs.
|
||||
|
||||
Required child cs node properties:
|
||||
|
||||
- #address-cells: Must be 2.
|
||||
|
||||
- #size-cells: Must be 1.
|
||||
|
||||
- ranges: Empty property indicating that child nodes can inherit
|
||||
memory layout.
|
||||
|
||||
- clock-ranges: Empty property indicating that child nodes can inherit
|
||||
named clocks. Required only if clock tree data present
|
||||
in device tree.
|
||||
|
||||
- ti,cs-chipselect: number of chipselect. Indicates on the aemif driver
|
||||
which chipselect is used for accessing the memory. For
|
||||
compatibles "ti,davinci-aemif" and "ti,keystone-aemif"
|
||||
it can be in range [0-3]. For compatible
|
||||
"ti,da850-aemif" range is [2-5].
|
||||
|
||||
Optional child cs node properties:
|
||||
|
||||
- ti,cs-bus-width: width of the asynchronous device's data bus
|
||||
8 or 16 if not preset 8
|
||||
|
||||
- ti,cs-select-strobe-mode: enable/disable select strobe mode
|
||||
In select strobe mode chip select behaves as
|
||||
the strobe and is active only during the strobe
|
||||
period. If present then enable.
|
||||
|
||||
- ti,cs-extended-wait-mode: enable/disable extended wait mode
|
||||
if set, the controller monitors the EMIFWAIT pin
|
||||
mapped to that chip select to determine if the
|
||||
device wants to extend the strobe period. If
|
||||
present then enable.
|
||||
|
||||
- ti,cs-min-turnaround-ns: minimum turn around time, ns
|
||||
Time between the end of one asynchronous memory
|
||||
access and the start of another asynchronous
|
||||
memory access. This delay is not incurred
|
||||
between a read followed by read or a write
|
||||
followed by a write to same chip select.
|
||||
|
||||
- ti,cs-read-setup-ns: read setup width, ns
|
||||
Time between the beginning of a memory cycle
|
||||
and the activation of read strobe.
|
||||
Minimum value is 1 (0 treated as 1).
|
||||
|
||||
- ti,cs-read-strobe-ns: read strobe width, ns
|
||||
Time between the activation and deactivation of
|
||||
the read strobe.
|
||||
Minimum value is 1 (0 treated as 1).
|
||||
|
||||
- ti,cs-read-hold-ns: read hold width, ns
|
||||
Time between the deactivation of the read
|
||||
strobe and the end of the cycle (which may be
|
||||
either an address change or the deactivation of
|
||||
the chip select signal.
|
||||
Minimum value is 1 (0 treated as 1).
|
||||
|
||||
- ti,cs-write-setup-ns: write setup width, ns
|
||||
Time between the beginning of a memory cycle
|
||||
and the activation of write strobe.
|
||||
Minimum value is 1 (0 treated as 1).
|
||||
|
||||
- ti,cs-write-strobe-ns: write strobe width, ns
|
||||
Time between the activation and deactivation of
|
||||
the write strobe.
|
||||
Minimum value is 1 (0 treated as 1).
|
||||
|
||||
- ti,cs-write-hold-ns: write hold width, ns
|
||||
Time between the deactivation of the write
|
||||
strobe and the end of the cycle (which may be
|
||||
either an address change or the deactivation of
|
||||
the chip select signal.
|
||||
Minimum value is 1 (0 treated as 1).
|
||||
|
||||
If any of the above parameters are absent, current parameter value will be taken
|
||||
from the corresponding HW reg.
|
||||
|
||||
Example for aemif, davinci nand and nor flash chip select shown below.
|
||||
|
||||
memory-controller@21000a00 {
|
||||
compatible = "ti,davinci-aemif";
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
clocks = <&clkaemif 0>;
|
||||
clock-names = "aemif";
|
||||
clock-ranges;
|
||||
reg = <0x21000A00 0x00000100>;
|
||||
ranges = <0 0 0x70000000 0x10000000
|
||||
1 0 0x21000A00 0x00000100>;
|
||||
/*
|
||||
* Partition0: CS-specific memory range which is
|
||||
* implemented as continuous physical memory region
|
||||
* Partition1: control memory range
|
||||
*/
|
||||
|
||||
nand:cs2 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
clock-ranges;
|
||||
ranges;
|
||||
|
||||
ti,cs-chipselect = <2>;
|
||||
/* all timings in nanoseconds */
|
||||
ti,cs-min-turnaround-ns = <0>;
|
||||
ti,cs-read-hold-ns = <7>;
|
||||
ti,cs-read-strobe-ns = <42>;
|
||||
ti,cs-read-setup-ns = <14>;
|
||||
ti,cs-write-hold-ns = <7>;
|
||||
ti,cs-write-strobe-ns = <42>;
|
||||
ti,cs-write-setup-ns = <14>;
|
||||
|
||||
nand@0,0x8000000 {
|
||||
compatible = "ti,davinci-nand";
|
||||
reg = <0 0x8000000 0x4000000
|
||||
1 0x0000000 0x0000100>;
|
||||
/*
|
||||
* Partition0, offset 0x8000000, size 0x4000000
|
||||
* Partition1, offset 0x0000000, size 0x0000100
|
||||
*/
|
||||
|
||||
.. see davinci-nand.txt
|
||||
};
|
||||
};
|
||||
|
||||
nor:cs0 {
|
||||
#address-cells = <2>;
|
||||
#size-cells = <1>;
|
||||
clock-ranges;
|
||||
ranges;
|
||||
|
||||
ti,cs-chipselect = <0>;
|
||||
/* all timings in nanoseconds */
|
||||
ti,cs-min-turnaround-ns = <0>;
|
||||
ti,cs-read-hold-ns = <8>;
|
||||
ti,cs-read-strobe-ns = <40>;
|
||||
ti,cs-read-setup-ns = <14>;
|
||||
ti,cs-write-hold-ns = <7>;
|
||||
ti,cs-write-strobe-ns = <40>;
|
||||
ti,cs-write-setup-ns = <14>;
|
||||
ti,cs-bus-width = <16>;
|
||||
|
||||
flash@0,0x0000000 {
|
||||
compatible = "cfi-flash";
|
||||
reg = <0 0x0000000 0x4000000>;
|
||||
|
||||
...
|
||||
};
|
||||
};
|
||||
};
|
Reference in New Issue
Block a user