Back to home page

OSCL-LXR

 
 

    


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