11fdab21dSBoris Brezillon* Device tree bindings for Atmel EBI 21fdab21dSBoris Brezillon 31fdab21dSBoris BrezillonThe External Bus Interface (EBI) controller is a bus where you can connect 41fdab21dSBoris Brezillonasynchronous (NAND, NOR, SRAM, ....) and synchronous memories (SDR/DDR SDRAMs). 51fdab21dSBoris BrezillonThe EBI provides a glue-less interface to asynchronous memories through the SMC 61fdab21dSBoris Brezillon(Static Memory Controller). 71fdab21dSBoris Brezillon 81fdab21dSBoris BrezillonRequired properties: 91fdab21dSBoris Brezillon 101fdab21dSBoris Brezillon- compatible: "atmel,at91sam9260-ebi" 111fdab21dSBoris Brezillon "atmel,at91sam9261-ebi" 121fdab21dSBoris Brezillon "atmel,at91sam9263-ebi0" 131fdab21dSBoris Brezillon "atmel,at91sam9263-ebi1" 141fdab21dSBoris Brezillon "atmel,at91sam9rl-ebi" 151fdab21dSBoris Brezillon "atmel,at91sam9g45-ebi" 161fdab21dSBoris Brezillon "atmel,at91sam9x5-ebi" 171fdab21dSBoris Brezillon "atmel,sama5d3-ebi" 18*996acbfbSTudor Ambarus "microchip,sam9x60-ebi" 191fdab21dSBoris Brezillon 201fdab21dSBoris Brezillon- reg: Contains offset/length value for EBI memory mapping. 211fdab21dSBoris Brezillon This property might contain several entries if the EBI 221fdab21dSBoris Brezillon memory range is not contiguous 231fdab21dSBoris Brezillon 241fdab21dSBoris Brezillon- #address-cells: Must be 2. 251fdab21dSBoris Brezillon The first cell encodes the CS. 261fdab21dSBoris Brezillon The second cell encode the offset into the CS memory 271fdab21dSBoris Brezillon range. 281fdab21dSBoris Brezillon 291fdab21dSBoris Brezillon- #size-cells: Must be set to 1. 301fdab21dSBoris Brezillon 311fdab21dSBoris Brezillon- ranges: Encodes CS to memory region association. 321fdab21dSBoris Brezillon 331fdab21dSBoris Brezillon- clocks: Clock feeding the EBI controller. 341fdab21dSBoris Brezillon See clock-bindings.txt 351fdab21dSBoris Brezillon 361fdab21dSBoris BrezillonChildren device nodes are representing device connected to the EBI bus. 371fdab21dSBoris Brezillon 381fdab21dSBoris BrezillonRequired device node properties: 391fdab21dSBoris Brezillon 401fdab21dSBoris Brezillon- reg: Contains the chip-select id, the offset and the length 411fdab21dSBoris Brezillon of the memory region requested by the device. 421fdab21dSBoris Brezillon 431fdab21dSBoris BrezillonEBI bus configuration will be defined directly in the device subnode. 441fdab21dSBoris Brezillon 451fdab21dSBoris BrezillonOptional EBI/SMC properties: 461fdab21dSBoris Brezillon 471fdab21dSBoris Brezillon- atmel,smc-bus-width: width of the asynchronous device's data bus 481fdab21dSBoris Brezillon 8, 16 or 32. 491fdab21dSBoris Brezillon Default to 8 when undefined. 501fdab21dSBoris Brezillon 511fdab21dSBoris Brezillon- atmel,smc-byte-access-type "write" or "select" (see Atmel datasheet). 521fdab21dSBoris Brezillon Default to "select" when undefined. 531fdab21dSBoris Brezillon 541fdab21dSBoris Brezillon- atmel,smc-read-mode "nrd" or "ncs". 551fdab21dSBoris Brezillon Default to "ncs" when undefined. 561fdab21dSBoris Brezillon 571fdab21dSBoris Brezillon- atmel,smc-write-mode "nwe" or "ncs". 581fdab21dSBoris Brezillon Default to "ncs" when undefined. 591fdab21dSBoris Brezillon 601fdab21dSBoris Brezillon- atmel,smc-exnw-mode "disabled", "frozen" or "ready". 611fdab21dSBoris Brezillon Default to "disabled" when undefined. 621fdab21dSBoris Brezillon 631fdab21dSBoris Brezillon- atmel,smc-page-mode enable page mode if present. The provided value 641fdab21dSBoris Brezillon defines the page size (supported values: 4, 8, 651fdab21dSBoris Brezillon 16 and 32). 661fdab21dSBoris Brezillon 671fdab21dSBoris Brezillon- atmel,smc-tdf-mode: "normal" or "optimized". When set to 681fdab21dSBoris Brezillon "optimized" the data float time is optimized 691fdab21dSBoris Brezillon depending on the next device being accessed 701fdab21dSBoris Brezillon (next device setup time is subtracted to the 711fdab21dSBoris Brezillon current device data float time). 721fdab21dSBoris Brezillon Default to "normal" when undefined. 731fdab21dSBoris Brezillon 741fdab21dSBoris BrezillonIf at least one atmel,smc- property is defined the following SMC timing 751fdab21dSBoris Brezillonproperties become mandatory. In the other hand, if none of the atmel,smc- 761fdab21dSBoris Brezillonproperties are specified, we assume that the EBI bus configuration will be 771fdab21dSBoris Brezillonhandled by the sub-device driver, and none of those properties should be 781fdab21dSBoris Brezillondefined. 791fdab21dSBoris Brezillon 801fdab21dSBoris BrezillonAll the timings are expressed in nanoseconds (see Atmel datasheet for a full 811fdab21dSBoris Brezillondescription). 821fdab21dSBoris Brezillon 831fdab21dSBoris Brezillon- atmel,smc-ncs-rd-setup-ns 841fdab21dSBoris Brezillon- atmel,smc-nrd-setup-ns 851fdab21dSBoris Brezillon- atmel,smc-ncs-wr-setup-ns 861fdab21dSBoris Brezillon- atmel,smc-nwe-setup-ns 871fdab21dSBoris Brezillon- atmel,smc-ncs-rd-pulse-ns 881fdab21dSBoris Brezillon- atmel,smc-nrd-pulse-ns 891fdab21dSBoris Brezillon- atmel,smc-ncs-wr-pulse-ns 901fdab21dSBoris Brezillon- atmel,smc-nwe-pulse-ns 911fdab21dSBoris Brezillon- atmel,smc-nwe-cycle-ns 921fdab21dSBoris Brezillon- atmel,smc-nrd-cycle-ns 931fdab21dSBoris Brezillon- atmel,smc-tdf-ns 941fdab21dSBoris Brezillon 951fdab21dSBoris BrezillonExample: 961fdab21dSBoris Brezillon 971fdab21dSBoris Brezillon ebi: ebi@10000000 { 981fdab21dSBoris Brezillon compatible = "atmel,sama5d3-ebi"; 991fdab21dSBoris Brezillon #address-cells = <2>; 1001fdab21dSBoris Brezillon #size-cells = <1>; 1011fdab21dSBoris Brezillon atmel,smc = <&hsmc>; 1021fdab21dSBoris Brezillon atmel,matrix = <&matrix>; 1031fdab21dSBoris Brezillon reg = <0x10000000 0x10000000 1041fdab21dSBoris Brezillon 0x40000000 0x30000000>; 1051fdab21dSBoris Brezillon ranges = <0x0 0x0 0x10000000 0x10000000 1061fdab21dSBoris Brezillon 0x1 0x0 0x40000000 0x10000000 1071fdab21dSBoris Brezillon 0x2 0x0 0x50000000 0x10000000 1081fdab21dSBoris Brezillon 0x3 0x0 0x60000000 0x10000000>; 1091fdab21dSBoris Brezillon clocks = <&mck>; 1101fdab21dSBoris Brezillon 1111fdab21dSBoris Brezillon pinctrl-names = "default"; 1121fdab21dSBoris Brezillon pinctrl-0 = <&pinctrl_ebi_addr>; 1131fdab21dSBoris Brezillon 1141fdab21dSBoris Brezillon nor: flash@0,0 { 1151fdab21dSBoris Brezillon compatible = "cfi-flash"; 1161fdab21dSBoris Brezillon #address-cells = <1>; 1171fdab21dSBoris Brezillon #size-cells = <1>; 1181fdab21dSBoris Brezillon reg = <0x0 0x0 0x1000000>; 1191fdab21dSBoris Brezillon bank-width = <2>; 1201fdab21dSBoris Brezillon 1211fdab21dSBoris Brezillon atmel,smc-read-mode = "nrd"; 1221fdab21dSBoris Brezillon atmel,smc-write-mode = "nwe"; 1231fdab21dSBoris Brezillon atmel,smc-bus-width = <16>; 1241fdab21dSBoris Brezillon atmel,smc-ncs-rd-setup-ns = <0>; 1251fdab21dSBoris Brezillon atmel,smc-ncs-wr-setup-ns = <0>; 1261fdab21dSBoris Brezillon atmel,smc-nwe-setup-ns = <8>; 1271fdab21dSBoris Brezillon atmel,smc-nrd-setup-ns = <16>; 1281fdab21dSBoris Brezillon atmel,smc-ncs-rd-pulse-ns = <84>; 1291fdab21dSBoris Brezillon atmel,smc-ncs-wr-pulse-ns = <84>; 1301fdab21dSBoris Brezillon atmel,smc-nrd-pulse-ns = <76>; 1311fdab21dSBoris Brezillon atmel,smc-nwe-pulse-ns = <76>; 1321fdab21dSBoris Brezillon atmel,smc-nrd-cycle-ns = <107>; 1331fdab21dSBoris Brezillon atmel,smc-nwe-cycle-ns = <84>; 1341fdab21dSBoris Brezillon atmel,smc-tdf-ns = <16>; 1351fdab21dSBoris Brezillon }; 1361fdab21dSBoris Brezillon }; 1371fdab21dSBoris Brezillon 138