| * Device tree bindings for Atmel EBI | 
 |  | 
 | The External Bus Interface (EBI) controller is a bus where you can connect | 
 | asynchronous (NAND, NOR, SRAM, ....) and synchronous memories (SDR/DDR SDRAMs). | 
 | The EBI provides a glue-less interface to asynchronous memories through the SMC | 
 | (Static Memory Controller). | 
 |  | 
 | Required properties: | 
 |  | 
 | - compatible:		"atmel,at91sam9260-ebi" | 
 | 			"atmel,at91sam9261-ebi" | 
 | 			"atmel,at91sam9263-ebi0" | 
 | 			"atmel,at91sam9263-ebi1" | 
 | 			"atmel,at91sam9rl-ebi" | 
 | 			"atmel,at91sam9g45-ebi" | 
 | 			"atmel,at91sam9x5-ebi" | 
 | 			"atmel,sama5d3-ebi" | 
 | 			"microchip,sam9x60-ebi" | 
 |  | 
 | - reg:			Contains offset/length value for EBI memory mapping. | 
 | 			This property might contain several entries if the EBI | 
 | 			memory range is not contiguous | 
 |  | 
 | - #address-cells:	Must be 2. | 
 | 			The first cell encodes the CS. | 
 | 			The second cell encode the offset into the CS memory | 
 | 			range. | 
 |  | 
 | - #size-cells:		Must be set to 1. | 
 |  | 
 | - ranges:		Encodes CS to memory region association. | 
 |  | 
 | - clocks:		Clock feeding the EBI controller. | 
 | 			See clock-bindings.txt | 
 |  | 
 | Children device nodes are representing device connected to the EBI bus. | 
 |  | 
 | Required device node properties: | 
 |  | 
 | - reg:			Contains the chip-select id, the offset and the length | 
 | 			of the memory region requested by the device. | 
 |  | 
 | EBI bus configuration will be defined directly in the device subnode. | 
 |  | 
 | Optional EBI/SMC properties: | 
 |  | 
 | - atmel,smc-bus-width:		width of the asynchronous device's data bus | 
 | 				8, 16 or 32. | 
 | 				Default to 8 when undefined. | 
 |  | 
 | - atmel,smc-byte-access-type	"write" or "select" (see Atmel datasheet). | 
 | 				Default to "select" when undefined. | 
 |  | 
 | - atmel,smc-read-mode		"nrd" or "ncs". | 
 | 				Default to "ncs" when undefined. | 
 |  | 
 | - atmel,smc-write-mode		"nwe" or "ncs". | 
 | 				Default to "ncs" when undefined. | 
 |  | 
 | - atmel,smc-exnw-mode		"disabled", "frozen" or "ready". | 
 | 				Default to "disabled" when undefined. | 
 |  | 
 | - atmel,smc-page-mode		enable page mode if present. The provided value | 
 | 				defines the page size (supported values: 4, 8, | 
 | 				16 and 32). | 
 |  | 
 | - atmel,smc-tdf-mode:		"normal" or "optimized". When set to | 
 | 				"optimized" the data float time is optimized | 
 | 				depending on the next device being accessed | 
 | 				(next device setup time is subtracted to the | 
 | 				current device data float time). | 
 | 				Default to "normal" when undefined. | 
 |  | 
 | If at least one atmel,smc- property is defined the following SMC timing | 
 | properties become mandatory. In the other hand, if none of the atmel,smc- | 
 | properties are specified, we assume that the EBI bus configuration will be | 
 | handled by the sub-device driver, and none of those properties should be | 
 | defined. | 
 |  | 
 | All the timings are expressed in nanoseconds (see Atmel datasheet for a full | 
 | description). | 
 |  | 
 | - atmel,smc-ncs-rd-setup-ns | 
 | - atmel,smc-nrd-setup-ns | 
 | - atmel,smc-ncs-wr-setup-ns | 
 | - atmel,smc-nwe-setup-ns | 
 | - atmel,smc-ncs-rd-pulse-ns | 
 | - atmel,smc-nrd-pulse-ns | 
 | - atmel,smc-ncs-wr-pulse-ns | 
 | - atmel,smc-nwe-pulse-ns | 
 | - atmel,smc-nwe-cycle-ns | 
 | - atmel,smc-nrd-cycle-ns | 
 | - atmel,smc-tdf-ns | 
 |  | 
 | Example: | 
 |  | 
 | 	ebi: ebi@10000000 { | 
 | 		compatible = "atmel,sama5d3-ebi"; | 
 | 		#address-cells = <2>; | 
 | 		#size-cells = <1>; | 
 | 		atmel,smc = <&hsmc>; | 
 | 		atmel,matrix = <&matrix>; | 
 | 		reg = <0x10000000 0x10000000 | 
 | 		       0x40000000 0x30000000>; | 
 | 		ranges = <0x0 0x0 0x10000000 0x10000000 | 
 | 			  0x1 0x0 0x40000000 0x10000000 | 
 | 			  0x2 0x0 0x50000000 0x10000000 | 
 | 			  0x3 0x0 0x60000000 0x10000000>; | 
 | 		clocks = <&mck>; | 
 |  | 
 | 		pinctrl-names = "default"; | 
 | 		pinctrl-0 = <&pinctrl_ebi_addr>; | 
 |  | 
 | 		nor: flash@0,0 { | 
 | 			compatible = "cfi-flash"; | 
 | 			#address-cells = <1>; | 
 | 			#size-cells = <1>; | 
 | 			reg = <0x0 0x0 0x1000000>; | 
 | 			bank-width = <2>; | 
 |  | 
 | 			atmel,smc-read-mode = "nrd"; | 
 | 			atmel,smc-write-mode = "nwe"; | 
 | 			atmel,smc-bus-width = <16>; | 
 | 			atmel,smc-ncs-rd-setup-ns = <0>; | 
 | 			atmel,smc-ncs-wr-setup-ns = <0>; | 
 | 			atmel,smc-nwe-setup-ns = <8>; | 
 | 			atmel,smc-nrd-setup-ns = <16>; | 
 | 			atmel,smc-ncs-rd-pulse-ns = <84>; | 
 | 			atmel,smc-ncs-wr-pulse-ns = <84>; | 
 | 			atmel,smc-nrd-pulse-ns = <76>; | 
 | 			atmel,smc-nwe-pulse-ns = <76>; | 
 | 			atmel,smc-nrd-cycle-ns = <107>; | 
 | 			atmel,smc-nwe-cycle-ns = <84>; | 
 | 			atmel,smc-tdf-ns = <16>; | 
 | 		}; | 
 | 	}; | 
 |  |