0001 * Device tree bindings for Atmel EBI
0002
0003 The External Bus Interface (EBI) controller is a bus where you can connect
0004 asynchronous (NAND, NOR, SRAM, ....) and synchronous memories (SDR/DDR SDRAMs).
0005 The EBI provides a glue-less interface to asynchronous memories through the SMC
0006 (Static Memory Controller).
0007
0008 Required properties:
0009
0010 - compatible: "atmel,at91sam9260-ebi"
0011 "atmel,at91sam9261-ebi"
0012 "atmel,at91sam9263-ebi0"
0013 "atmel,at91sam9263-ebi1"
0014 "atmel,at91sam9rl-ebi"
0015 "atmel,at91sam9g45-ebi"
0016 "atmel,at91sam9x5-ebi"
0017 "atmel,sama5d3-ebi"
0018 "microchip,sam9x60-ebi"
0019
0020 - reg: Contains offset/length value for EBI memory mapping.
0021 This property might contain several entries if the EBI
0022 memory range is not contiguous
0023
0024 - #address-cells: Must be 2.
0025 The first cell encodes the CS.
0026 The second cell encode the offset into the CS memory
0027 range.
0028
0029 - #size-cells: Must be set to 1.
0030
0031 - ranges: Encodes CS to memory region association.
0032
0033 - clocks: Clock feeding the EBI controller.
0034 See clock-bindings.txt
0035
0036 Children device nodes are representing device connected to the EBI bus.
0037
0038 Required device node properties:
0039
0040 - reg: Contains the chip-select id, the offset and the length
0041 of the memory region requested by the device.
0042
0043 EBI bus configuration will be defined directly in the device subnode.
0044
0045 Optional EBI/SMC properties:
0046
0047 - atmel,smc-bus-width: width of the asynchronous device's data bus
0048 8, 16 or 32.
0049 Default to 8 when undefined.
0050
0051 - atmel,smc-byte-access-type "write" or "select" (see Atmel datasheet).
0052 Default to "select" when undefined.
0053
0054 - atmel,smc-read-mode "nrd" or "ncs".
0055 Default to "ncs" when undefined.
0056
0057 - atmel,smc-write-mode "nwe" or "ncs".
0058 Default to "ncs" when undefined.
0059
0060 - atmel,smc-exnw-mode "disabled", "frozen" or "ready".
0061 Default to "disabled" when undefined.
0062
0063 - atmel,smc-page-mode enable page mode if present. The provided value
0064 defines the page size (supported values: 4, 8,
0065 16 and 32).
0066
0067 - atmel,smc-tdf-mode: "normal" or "optimized". When set to
0068 "optimized" the data float time is optimized
0069 depending on the next device being accessed
0070 (next device setup time is subtracted to the
0071 current device data float time).
0072 Default to "normal" when undefined.
0073
0074 If at least one atmel,smc- property is defined the following SMC timing
0075 properties become mandatory. In the other hand, if none of the atmel,smc-
0076 properties are specified, we assume that the EBI bus configuration will be
0077 handled by the sub-device driver, and none of those properties should be
0078 defined.
0079
0080 All the timings are expressed in nanoseconds (see Atmel datasheet for a full
0081 description).
0082
0083 - atmel,smc-ncs-rd-setup-ns
0084 - atmel,smc-nrd-setup-ns
0085 - atmel,smc-ncs-wr-setup-ns
0086 - atmel,smc-nwe-setup-ns
0087 - atmel,smc-ncs-rd-pulse-ns
0088 - atmel,smc-nrd-pulse-ns
0089 - atmel,smc-ncs-wr-pulse-ns
0090 - atmel,smc-nwe-pulse-ns
0091 - atmel,smc-nwe-cycle-ns
0092 - atmel,smc-nrd-cycle-ns
0093 - atmel,smc-tdf-ns
0094
0095 Example:
0096
0097 ebi: ebi@10000000 {
0098 compatible = "atmel,sama5d3-ebi";
0099 #address-cells = <2>;
0100 #size-cells = <1>;
0101 atmel,smc = <&hsmc>;
0102 atmel,matrix = <&matrix>;
0103 reg = <0x10000000 0x10000000
0104 0x40000000 0x30000000>;
0105 ranges = <0x0 0x0 0x10000000 0x10000000
0106 0x1 0x0 0x40000000 0x10000000
0107 0x2 0x0 0x50000000 0x10000000
0108 0x3 0x0 0x60000000 0x10000000>;
0109 clocks = <&mck>;
0110
0111 pinctrl-names = "default";
0112 pinctrl-0 = <&pinctrl_ebi_addr>;
0113
0114 nor: flash@0,0 {
0115 compatible = "cfi-flash";
0116 #address-cells = <1>;
0117 #size-cells = <1>;
0118 reg = <0x0 0x0 0x1000000>;
0119 bank-width = <2>;
0120
0121 atmel,smc-read-mode = "nrd";
0122 atmel,smc-write-mode = "nwe";
0123 atmel,smc-bus-width = <16>;
0124 atmel,smc-ncs-rd-setup-ns = <0>;
0125 atmel,smc-ncs-wr-setup-ns = <0>;
0126 atmel,smc-nwe-setup-ns = <8>;
0127 atmel,smc-nrd-setup-ns = <16>;
0128 atmel,smc-ncs-rd-pulse-ns = <84>;
0129 atmel,smc-ncs-wr-pulse-ns = <84>;
0130 atmel,smc-nrd-pulse-ns = <76>;
0131 atmel,smc-nwe-pulse-ns = <76>;
0132 atmel,smc-nrd-cycle-ns = <107>;
0133 atmel,smc-nwe-cycle-ns = <84>;
0134 atmel,smc-tdf-ns = <16>;
0135 };
0136 };
0137